19 Ekim 2010 Salı

Samba - Active Directory Entegrasyonu

Samba - AD entegrasyonu için ön koşullar
  • Kullandığınız Samba sürümünün 3.0.20 nin üzerinde olması gerekmektedir.
  • Kerberos
  • ntp (AD sunucusu ile aynı saat ayarına sahip olmayı garantilemek için )

Samba ve Kerberos hizmetlerinin yapılandırılması
1. Sisteminizde ntp istemcisi kurulu değilse kurup ayarlarını yaparak ve AD sunucusu ile Samba sunucusu arasında saat farkı olmamasını sağlayın.
2. kerberos ayarlarının yapılandırılması

Kerberos'un zaman bağımlı bir protokol olduğunu dikkate alarak /etc/ntp.conf dosyası içine AD sunucunuzu eklemeniz gerekmektedir. Kullancağınız /etc/krb5.conf  dosyası aşağıdakine benzer olmalıdır, domain tanımlarını sisteminize uygun olarak değiştirerek /etc/krb5.conf dosyanızı oluşturun.

[libdefaults]
 default_realm = HFF.COM.TR
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 forwardable = yes
[realms]
  HFF.COM.TR = {
  kdc = 192.168.1.221
  admin_server = 192.168.1.221
  default_domain = HFF.COM.TR
 }
[domain_realm]
 .hff.com.tr = HFF.COM.TR
 hff.com.tr = HFF.COM.TR
yukarıda büyük harf kullanılarak yazılmış ifadelerin küçük harf kullanılarak yazılması durumunda kerberos AD'ye bağlanamayacaktır. Kerberos ayarlarınızın doğruluğunu kinit komutunu kullanarak test edebilirsiniz. kinit komutuna parametre olarak verilen domain adının büyük harflerle yazıldığına
dikkat edin. Komutu çalıştırdığınızda belirtilen kullanıcı için parola girmenizi isteyecektir. Girdiğiniz parola ile AD üzerinde oturum açılabilirse komut, herhangi bir mesaj göstermeden sonlanacaktır.
[root@backup ~]# kinit ckalayci@HFF.COM.TR
Password for ckalayci@HFF.COM.TR:
[root@backup ~]#
AD ile Samba sunucusu arasında 5dk daha fazla bir zaman farkı varsa kinit komutunu çalıştırdığınızda aşağıdaki hata mesajı görüntülenecektir.
[root@backup ~]# kinit ckalayci@HFF.COM.TR
Password for ckalayci@HFF.COM.TR:
kinit(v5): Clock skew too great while getting initial credentials
[root@backup ~]#
Sisteminiz üzerine NTP kurup, AD sunucunuzun ntpd tarafından kaynak olarak kullanılmasını sağlayarak AD sunucunuz ile Samba sunucunuz sistem saatlerinin senkronize olmasını ve bu şekilde kalmasını sağlayabilirsiniz.

3. Samba ayarlarının yapılandırılması
 
Samba servis'inin ayarları /etc/samba/smb.conf dosyasi içinde yer alır. Samba - AD entegrasyonu için kullanacağımız parametreleri bu dosya içinde yer alan [global] başlıklı alan altında yapacağız.
[global]
        workgroup=hff
        realm = HFF.COM.TR
        preferred master = no
        server string = Samba Server Version %v
        security = ADS
        encrypt passwords = yes
        log level = 3
        log file = /var/log/samba/log.%m
        max log size = 50
        winbind enum users = yes
        winbind enum groups = yes
        winbind use default domain = Yes
        winbind nested groups = Yes
        winbind separator = +
        idmap uid = 10000-20000
        idmap gid = 10000-20000
        password server = 192.168.1.221
Kullandığımız parametreleri kısaca anlatayım .
 
.winbind use default domain = Yes kullanıcılar oturum açarken DOMAIN\KullanıcıAdı şeklinde oturum açmak yerine sadece KullanıcıAdı kullanarak oturum açılabilmesi için kullanılır.
 
.idmap uid = 10000-20000 ve idmap gid = 10000-20000 AD üzerinde tanımlı kullanıcılar, yerel sunucu üzerindeki kullanıcılara çevrilirken kullanılacak uid ve gid değerlerinin belirlenmesi için kullanılır.
 
Bu değerler belirlenirken verilecek min. değer en son eklenmiş yerel kullanıcı için belirlenmiş uid ve gid değerlerinden büyük olmalıdır. Eğer burada belirtilen değerler yerel değerler ile çakıştığında kullanıcı nssswitch.conf dosyasında belirtilen sıra göz önüne alınarak değerlendirilir.

.winbind enum users = yes ve winbind enum groups = yes   getent komutu kullanılarak kullanıcı ve grup bilgilerinin belirlenmesine izin verir.

Samba üzerinde bir paylaşım oluşturalım, bunun için /etc/samba/smb.conf dosyası içine aşağıdaki satırları ekledim. Sizde kendi sisteminiz üzerinde bir test klasörü oluşturup bunu samba üzerinden paylaşıma açın.

[TEST]
        comment = TEST Paylasimi
        path = /Yedekler
        browseable = yes
        read only = no
        inherit acls = yes
        inherit permissions = yes
        create mask = 700
        directory mask = 700

testparm komutu kullanarak girdiğiniz parametrelerin yazım şeklinin doğru olup olmadığını kontrol edebilirisiniz. Yazılan parametrelerin geçerli olması için smb servisini ve winbind serivisini yeniden başlatalım.
[root@backup Yedekler]# /etc/init.d/smb restart
Shutting down SMB services:                                [  OK  ]
Shutting down NMB services:                                [  OK  ]
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]
[root@backup Yedekler]#
[root@backup Yedekler]# /etc/init.d/winbind restart
Shutting down Winbind services:                            [  OK  ]
Starting Winbind services:                                 [  OK  ]
[root@backup Yedekler]#
Yaptığınız ayarların doğruluğunu test etmek için wbinfo komutunu kullanabilirsiniz.wbinfo -u komutu AD üzerinde tanımlanmış kullanıcıların listesini, wbinfo -g komutu grupların listesini vermelidir. wbinfo komutunu kullanarak yapabileceğiniz diğer testleri görmek için
[root@backup Yedekler]# wbinfo --help

Hiç yorum yok:

Yorum Gönder