Linux İşletim Sistemlerinde Dosya Sunucusu Yapılandırması (Samba / Cifs File Server)

SambaInstallBu 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

 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.

SambaInstall_1 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.

SambaInstall_2

Sunucumuzda açılmış olan “itdepartment” paylaşımını görüyoruz.

SambaInstall_3

İ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.

SambaInstall_4

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.

SambaInstall_5

Artık “itdepartment” paylaşımına erişebiliriz istersek dosyalarımızı buraya kopyalayabilir yeni dosyalar oluşturabiliriz.

SambaInstall_6

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.

SambaInstall_7

 

 

 

 

 

 

 

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…

Bu yazı Unix / Linux kategorisine gönderilmiş ve , , , , , , , , , , , , , , , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.