Bu makalemizde “Linux İşletim Sistemlerinde Dosya Sunucusu Yapılandırması (Samba / Cifs File Server)” konusunu inceleyeceğiz. Kurulum işlemimizi “CentOS Linux 6.4 İşletim Sistemi” üzerinde gerçekleştireceğiz. Kurulum adımları Red Hat türevi işletim sistemleri ile oldukça benzerdir.
Samba Nedir ?
Samba, Linux/Unix işletim sistemleri ile Windows işletim sistemleri arasındaki iletişim kuran bir ağ sunucusu yazılımıdır. Linux’ta arka planda çalışan bu Deamon Windows istemcilerinin samba kurulu olan sunucuda paylaşıma açılmış dosya ve dizinlere ulaşılmasına olanak tanır bunun yanında istemcilerin yazıcı isteklerinide yönetebilir. Tam olarak Samba yapılandırılmış bir Linux sunucusu, genel olarak dizinleri paylaştırabilir, aktif dizin servisi (ADS – Active Directory Services) verebilir ayrıca PDC (Birincil Alan Denetleyicisi) olarak da çalışabilir, Windows istemcileri ile kullanıcı onayı yapar, kaynakları (dizinleri ve yazıcıları) paylaştırır ve kullanıcı oturumlarını uyarlar. Samba Windows istemcileri (clients) için dosya, yazıcı servisi sağlamanın dışında istemciler için işlevsellik ve yardımcı uygulamalar içerir.
Samba Sunucusunun Yapabildikleri
- File server ( Windows’tan Linux’e, Linux’tan Windows’a )
- Print server ( Windows’tan Linux’e, Linux’tan Windows’a )
- PDC (Windows ve Linux için Birincil Etki Alanı Denetleyicisi) vb.
- Wins Server
- Master Browser
- Domain Browser
Active Directory (ADS – Active Directory Services) Entegre Yapılandırma
1. Öncelikle “Samba” ve “Active Directory” entegrasyonu için “Linux İşletim Sistemlerinde Kerberos ile Kimlik Doğrulama” yazımızdaki adımları uygulayarak sunucumuzu etki alanımıza üye yapıyoruz.. Yazımızda grafik arayüz (gui) veya komut istemcisinden ayarlarımızı nasıl yapacağımız anlatılmıştır. Aşağıdaki adımlar “Linux İşletim Sistemlerinde Kerberos ile Kimlik Doğrulama” yazımızdaki paketlerin kurulu olduğu ve “Kerberos” yapılandırmasının yapıldığı varsayılarak düzenlenmiştir.
2. Sunucumuzda “Kerberos” ayarlarımız bittikten sonra “/etc/samba/smb.conf” dosyasını açarak “Samba” sunucu ayarlarımızı yapıyoruz. Aynı dosyada paylaşıma açtığımız dizinin bilgilerini yapılandırıyoruz.
-- Paylaşıma açmak istediğimiz dizini oluşturuyoruz.
# mkdir /u01/test
# chmod -R 770 /u01/paylasim
# vim /etc/samba/smb.conf
-- Dosyasını açıyoruz aşağıdaki "global "değişkenlerini kendi sistemimize göre
düzenleyerek ekliyoruz. Bazı satırlar varolabilir bunları dikkatlice düzenliyoruz.
# Samba Server Global Configuration
[global]
workgroup = KORAYKEY
realm = KORAYKEY.NET
preferred master = no
server string = Samba Server Version %v
security = ads
encrypt passwords = yes
log level = 3
log file = /var/log/samba/%m
max log size = 50
printcap name = cups
printing = cups
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
winbind nested groups = Yes
winbind separator = +
idmap uid = 1000-20000
idmap gid = 1000-20000
template shell = /bin/bash
# Samba Server Shared Folder Configuration
[TEST]
comment = TEST Paylasimi
browseable = yes
path = /u01/paylasim
writable = yes
public = no
force user = %U
force group = "KORAYKEY+Domain Admins"
force create mode = 0660
create mask = 0660
force directory mode = 0770
valid users = @"KORAYKEY+Domain Users"
admin users = @"KORAYKEY+Domain Admins"
3. Sunucumuzda “samba” servisimizi başlatıyoruz ve sistemimiz açılırken otomatik başlaması için gerekli ayarları yapıyoruz.
-- Servisimizi Başlatmak için
# service smb start
-- Sistemimiz başlarken otomatik başlması için
# chkconfig smb on
4. Yaptığınız ayarların doğruluğunu “wbinfo” komutu ile test edebiliriz.
-- Active Directory üzerinde tanımlanmış kullanıcıların listesini
görebiliriz.
# wbinfo -u
-- AD üzerinde tanımlanmış kullanıcı gruplarını görebiliriz.
# wbinfo -g
-- Wbinfo komutunu kullanarak yapabileceğiniz diğer testleri görmek için
aşağıdaki komut ile yardım alabiliriz.
# wbinfo --help
5. Sunucumuzda Firewall ve SELinux servisi etkin ise aşağıdaki izinleri yapılandırıyoruz. Eğer sunucumuzda Firewall ve SELinux servisi kapalıysa bu ayarları atlayabiliriz.
-- Firewall ayarları için aşağıdaki komutları çalıştırıyoruz.
# iptables -A INPUT -p tcp --dport 135 -j ACCEPT
# iptables -A INPUT -p tcp --dport 137 -j ACCEPT
# iptables -A INPUT -p tcp --dport 138 -j ACCEPT
# iptables -A INPUT -p tcp --dport 139 -j ACCEPT
# iptables -A INPUT -p tcp --dport 445 -j ACCEPT
-- Samba hizmeti ile ilişkili SELinux durumu aşağıdaki komutu
kullanılarak görüntülüyoruz.
# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off
-- Sunucumuzda "setsembol" komutu kullanılarak gerekli ayarlamaları
yapıyoruz.
-- Aktif etmek için
# setsebool use_samba_home_dirs on
-- Pasif hale getirmek için
# setsebool use_samba_home_dirs off
-- Sunucumuzda "semanage" ve "restorecon" komutlarını kullanarak
paylaşım dizinimize izinleri veriyoruz.
-- İzin vermek için
# semanage fcontext -a -t samba_share_t "/u01(/.*)?"
-- İzinleri geri almak için
# restorecon -F -R -v /u01
Samba Servisini (Active Directory Servisi Olmadan) Yerel Hesaplarla Yapılandırma
1. Sunucumuza gerekli olan “Samba” paketini kuruyoruz.
-- Öncelikle sistemimizde bulunan eski "samba" paketlerini kaldırıyoruz.
# yum -y remove samba*
-- Sistemimize "samba4" paketini kuruyoruz.
# yum -y install samba4*
-- İstemcimizi etki alanına üye yapmadan önce sistemimizi yeniden başlatıyoruz.
# shutdown -r now
2. Kurulum işlemimiz tamamlandıktan sonra servisimizi başlatıyoruz ve sunucumuz açıldığında otomatik başlaması için gerekli ayarları yapıyoruz.
-- Servisimizi Başlatmak için
# service smb start
-- Sistemimiz başlarken otomatik başlması için
# chkconfig smb on
3. Sunucumuzda “Samba” servisimiz tarafından kullanılacak kullanıcı ve grupları oluşturuyoruz.
-- Grup Oluşturmak için aşağıdaki komutu kullanıyoruz.
# groupadd it_dep_group
-- Kullanıcılarımızı oluşturup yukarıda oluşturduğumuz
"it_dep_group" grubuna üye yapıyoruz.
# useradd ituser1 -G it_dep_group
-- Kullanıcımız için parola belirliyoruz.
# passwd ituser1
Changing password for user ituser1.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
-- Kullanıcımızın oluştuğunu ve grubumuz üye olduğunu kontrol ediyoruz.
# id ituser1
uid=54323(ituser1) gid=54325(ituser1) groups=54325(ituser1),54324(it_dep_group)
4. Oluşturmuş olduğumuz kullanıcımız için samba parolalarını oluşturuyoruz.
# smbpasswd -a ituser1
New SMB password:
Retype new SMB password:
Forcing Primary Group to 'Domain Users' for ituser1
Forcing Primary Group to 'Domain Users' for ituser1
Added user ituser1.
5. Paylaşıma açacağımız dizinimizi oluşturuyoruz ve “g+rwx” (0770) izinlerini veriyoruz.
# mkdir /it_department
# chgrp it_dep_group /it_department
# chmod g+s /it_department
# chmod -R 770 /it_department
6. Sunucumuzdaki Samba yapılandırma dosyası “/etc/samba/smb.conf” içerisinde gerekli ayarlamaları yaparak oluşturduğumuz dizini paylaşıma açıyoruz.
-- Samba yapılandırma dosyamızı açıyoruz.
# vim /etc/samba/smb.conf
-- Dosyasını açıyoruz ve dosyanın sonuna aşağıdaki değişkenleri kendi
sistemimize göre düzenleyerek ekliyoruz. Vi Editöründe sayfa sonuna
gitmek için komut modundayken "shift+g" tuşlarına basabiliriz.
# Samba Server Shared Folder Configuration
[ITDEPARTMENT]
comment = IT Paylasimi
path = /it_department
browseable = yes
read only = no
valid users = @it_dep_group
force group = +it_dep_group
create mask = 770
force create mode = 660
7. Değişikliklerin uygulanabilmesi için Samba servisimizi değişen yapılandırma dosyası ile yeniden başlatıyoruz.
# service smb restart
8. Samba sunucumuzda paylaşımları bir web arayüzü ile yönetebiliriz. Bu arayüzden Active Directory entegre veya Yerel Kimlik Doğrulama yöntemini kullanarak gerekli ayarlamalarımızı yapabiliriz.
-- Öncelikle Swat (Samba Web Administration Tool) aracımızın ayarlarını yapıyoruz. # vim /etc/xinetd.d/swat dosyasını açıyoruz ve aşağıdaki değişkenleri düzenliyoruz. only_from = 127.0.0.1 192.168.2.0/24 disable = no -- Servisimizi başlatıyoruz ve sunucumuz açıldığında otomatik başlaması için ayarlıyoruz. # service xinetd start # chkconfig xinetd on -- Samba Swat yönetim panelimiz hazır kullanabilmek için aşağıdaki gibi örnek linkten bir web tarayıcısı ile bağlanabiliriz. Oturum açabilmek için "root" kullanıcı ve parolasını kullanabiliriz. http://192.168.2.120:901/
9. Sunucumuzda Firewall ve SELinux servisi etkin ise aşağıdaki izinleri yapılandırıyoruz. Eğer sunucumuzda Firewall ve SELinux servisi kapalıysa bu ayarları atlayabiliriz.
-- Firewall ayarları için aşağıdaki komutları çalıştırıyoruz.
# iptables -A INPUT -p tcp --dport 135 -j ACCEPT
# iptables -A INPUT -p tcp --dport 137 -j ACCEPT
# iptables -A INPUT -p tcp --dport 138 -j ACCEPT
# iptables -A INPUT -p tcp --dport 139 -j ACCEPT
# iptables -A INPUT -p tcp --dport 445 -j ACCEPT
-- Samba hizmeti ile ilişkili SELinux durumu aşağıdaki komutu
kullanılarak görüntülüyoruz.
# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off
-- Sunucumuzda "setsembol" komutu kullanılarak gerekli ayarlamaları
yapıyoruz.
-- Aktif etmek için
# setsebool use_samba_home_dirs on
-- Pasif hale getirmek için
# setsebool use_samba_home_dirs off
-- Sunucumuzda "semanage" ve "restorecon" komutlarını kullanarak
paylaşım dizinimize izinleri veriyoruz.
-- İzin vermek için
# semanage fcontext -a -t samba_share_t "/u01(/.*)?"
-- İzinleri geri almak için
# restorecon -F -R -v /u01
Artık sunucumuzda “Samba” kullanılabilir durumda paylaşımlarımıza erişmek için Windows İşletim Sistemli bir bilgisayardan “Başlat>Çalıştır” veya “WindowsLogoTuşu+R” tuşlarına basarak sunucu adresimizi yazıyoruz.
Açılan pencerede bize kullanıcı adı ve parola girmemizi istiyor. Az önce oluşturduğumuz “ituser1” kullanıcı adını ve atamış olduğumuz parolayı giriyoruz. Bilgisayarımız yeniden başladığında bir daha kullanıcı adı parola sormasını istemiyorsak “Kimlik bilgilerimi anımsa” kutucuğunu işaretleyerek “Tamam” düğmesine tıklıyoruz.
Sunucumuzda açılmış olan “itdepartment” paylaşımını görüyoruz.
İstersek üzerinde sağ tıklayıp bilgisayarımız açıldığında otomatik bağlanması için ayarlar yapabiliriz. Bunun için öncelikle sağ tık menüsündeki “Ağ Sürüsücüne Bağlan” seçeneğine tıklıyoruz. Çıkan pencerede bilgisayarım menüsünde bağlanacağı disk sürücü harfini seçiyoruz. Samba olduğu için ben “S” harfini seçtim aşağıdaki “Oturum açıldığında yeniden bağlan” seçeneğini seçerseniz bilgisayarımız yeniden başladığında otomatik olarak bu paylaşıma bağlanmayı deneyecektir. Her bağlandığında bize kullanıcı adı parola sormasını istemiyorsak veya Windows işletim sistemimizi açtığımız kullanıcı adı parola samba paylaşımı için kullandığımız kullanıcı adı paroladan farklı ise alt taraftaki “Farklı kimlik bilgileri kullanarak bağlan” seçeneğinide seçiyoruz ve ardından “Son” düğmesine tıklıyoruz.
Açılan penceredeki Ağ Parolası Girme ekranında bu paylaşıma erişirken kullandığımız “ituser1” kullanıcısını ve parolasını giriyoruz ve bir daha sormamasını istiyorsak “Kimlik bilgilerimi anımsa” kutucuğunu işaretleyip “Tamam” düğmesine tıklıyoruz.
Artık “itdepartment” paylaşımına erişebiliriz istersek dosyalarımızı buraya kopyalayabilir yeni dosyalar oluşturabiliriz.
Masaüstünde “Bilgisayarım” simgesine çift tıkladığımızda sabit disklerimiz arasında ağ paylaşımı olarak “S” harfine atanmış “itdepartment” sürücüsünü görebiliriz.
Linux İşletim Sistemlerinde ”Samba/Cifs Sunucu” yapılandırmamızı tamamladık artık kullanılabilir. Burada uygulanan adımlar Oracle Enterprise Linux 6.4 64 Bit üzerinde denenmiştir. Aynı zamanda diğer Linux sürümleriyle uyumludur.
Başka bir makalede görüşmek üzere…
Yorum yazabilmek için oturum açmalısınız.