8 Ağustos 2011 Pazartesi

AIX 6.1 için LDAP Entegrasyonu - II

Yazının 2. kısmında ise AIX üzerinden LDAP entegrasyonu için AIX üzerinde yapılacaklara değineceğim. Bundan önceki bölümde LDAP sunucusu olarak Microsoft Active Directory seçmiş ve gerekli konfigürasyonları tamamlamıştık.

Uygulamanın çalışabilmesi için hangi tür paketlerinde kurulacağı konusuna bir önceki yazıda değinmiştik. Bu paketleri kontrol ettikten sonra LDAP bağlantısının çalışıp çalışmadığını kontrol etmek için ufak bir test yapabilirsiniz. Bunun için ldapsearch komutundan faydalanacağız. Komut dizilimi bir hayli uzun olduğu için kolaylık olması açısından dizilimin sabit kısmını bir shell değişkenine aktaracağız. Başlamadan önce şunu da belirtelim ldap komutları "/opt/IBM/ldap/V6.1/bin" klasörü altında yer alır. Eğer "/usr/bin" altına link oluşturulmamışsa "PATH" değişkeninizi güncellemeniz gerekmektedir.

export LDAP="ldapsearch -h Domain1 -D CN=unixldap,CN=Users,DC=ornek,DC=local -w 123456 –b”

Burada yer alan parametreler çok önemli. Bu nedenle ayrıntılı ele almakta fayda var. İlk olarak "-h" parametresi ile Microsoft Active Directory sunucusunun DNS name'ini belirtiyoruz. Burada IP bilgiside girilebilir ancak her zaman isimden gitmekte fayda var." -D" parametresi ise Active Directory'e bağlanarak kullanıcılara ait bilgileri sorgulayan Active Directory kullanıcısına ait bilgileri tanımlıyoruz. Görüldüğü gibi LDAP bilgilerini sorgulayacak kullanıcı "unixuser" adında "ornek.local" domain'inde "Users" container"inin altında yar almaktadır. Bu kullanıcı herhangi bir şekilde admin yetkisi olmayan bir kullanıcı olabilir. Çünkü yapacağı tek şey LDAP ile bir bağlantı kurup kullanıcılara ait bilgileri read-only olarak çekmektir. Kullancııyla ilgili iki husus önemlidir. Yaptığım denemelerde edindiğim bilgiye göre eğer yukarıdaki komut diziliminde görüldüğü gibi "Container" bilgileri girilerek sorgulama yapılacaksa Active Directory'de bu kullanıcı oluşturulurken Name, Surname alanları doldurulmamalı yada sadece Name alanına kullanıcı ismiyle aynı ad girilmeldir. Aksi taktirde "authentication" adımında hata alıyoruz. Bahsettiğim tanımlama aşağıdaki gibi olmalıdır.





Kullanıcı tanımı yaparken kendi kurum politikalarından dolayı "generic" bir kullanıcı oluşturamıyorsanız tanımalamarı var olan bir kullanıcıyı da kullanabilirsiniz. Ancak bu sefer komut setinde kullanıcıyla ilgili "Container "bilgileri yerine tanımlama aşağıdaki gibi yapılmalıdır.

export LDAP="ldapsearch -h Domain1 -D "unixuser@ornek.local" -w 123456 –b”

Bu komutta kullanıcıya ait active directory bilgilerinin yerine kullanıcı_adi@domain_adi formatı kullanılmıştır. Bu formatda herhangi bir kullanıcı rahatlıkla LDAP sorgularını çekebilir. Shell değişkenini tanımladıktan sonra LDAP sunucuyla bağlantımızı test edebiliriz. Bunun için aşağıdaki komutu kullanın.

$LDAP "DC=ornek,DC=local" "(CN=unixuser)"

İlginç bir durum olarak bu komutu yazdıktan sonra eğer "ldap_simple_bind: Invalid credentials" hatası alıyorsanız kullandığınız şifredeki noktalama işaretlerini kaldırınız. Sorun düzelecektir. Komut sonrasında kullanıcıyla ilgili Active Directory veri tabanındaki bilgiler ekrana getirilecektir.


CN=unixuser,CN=Users,DC=ornek,DC=local
objectClass=top
objectClass=person
objectClass=organizationalPerson
objectClass=user
cn=unixuser
givenName=unixuser
distinguishedName=CN=unixuser,CN=Users,DC=ornek,DC=local
instanceType=4
whenCreated=20110727153254.0Z
whenChanged=20110815093056.0Z
displayName=unixuser
uSNCreated=24589
uSNChanged=36886
name=unixuser
objectGUID=NOT ASCII
userAccountControl=66048
badPwdCount=0
codePage=0
countryCode=0
badPasswordTime=129578741603052500
lastLogoff=0
lastLogon=129578741701021250
pwdLastSet=129578742566490000
primaryGroupID=513
objectSid=NOT ASCII
accountExpires=9223372036854775807
logonCount=0
sAMAccountName=unixuser
sAMAccountType=805306368
userPrincipalName=unixuser@ornek.local
objectCategory=CN=Person,CN=Schema,CN=Configuration,DC=ornek,DC=local
msSFU30Name=unixuser
msSFU30UidNumber=10002
msSFU30GidNumber=10001
msSFU30LoginShell=/bin/sh
msSFU30Password=NZZqOBMJtp0Fg
msSFU30NisDomain=ornek
msSFU30HomeDirectory=/home/unixuser


Bu çıktıyı aldıktan sonra artık sunucu için geçerli olan LDAP konfigürasyonunu oluşturacağız. bunun için iki yöntem var. İlki "/etc/security/ldap/ldap.cfg" dosyasını düzenledikten sonra start-secldapclntd komutunu çalıştırmaktır. Bununla beraber sunucu restart olduğunda daemonun tekrar çalışabilmesi için "/etc/inittab"ıda konfigüre etmeniz gerekir. Bunun yerine kullanışlı bir komut olan "mksecldap" komutunuda kullanabilirsiniz. Bu komutla beraber verdiğimiz parametrelere göre tüm konfigürasyon dosyaları düzenlenecek ve deamon çalıştırılacaktır. Komut dizilimi aşağıdaki şekilde olmaldır.

mksecldap -c -h Domain1 -a unixuser@ornek.local -p 123456 -d cn=users,dc=ornek,dc=local -A ldap_auth

Komutu yazdıktan sonra herhangi bir hata üretmemişse işlem başarılı demektir. Bundan sonra "login" işlemleri için LDAP kullanılacağını belirtmemiz gerekir. Şunuda aklımızda tutalım aynı anda hemde hem "local" hem de LDAP kullanıcıları sisteme login olabilirler. İlk olarak genel kullanıcıların sisteme LDAP ile login olabilmesi için "/etc/security/user" dosyasında "default:" tabında yer alan SYSTEM = "compat" alanını SYSTEM = "LDAP" şeklinde düzenledikten sonra hemen alt satırına "registry = LDAP" girdisini eklemeniz gerekmektedir. Bununla beraber root gibi local kullanıcıların "local authentication" metodunu kullanmasını istiyorsak bunun için her kullanıcı tabında yer alan SYSTEM alanlarını SYSTEM = "compat" ve registry = files olarak düzenlemeniz yeterli.

Son olarak da authentication için tanımlanan metodun sistemde geçerli olabilmesi için "/usr/lib/security/methods.cfg" dosyasına aşağıdaki satırları eklemeniz gerekmektedir.

LDAP:
program = /usr/lib/security/LDAP
program_64 = /usr/lib/security/LDAP64


Böylece sistem LDAP authentication'u seçen user'lar için hangi programı kullanacağını da öğrenmiş oldu. Bundan sonra yapmanız gereken bir önceki yazıda nasıl oluşturulduğu anlatılan kullanıcı ile sisteme login olmak.


Tabi unutmadan AD üzerinde oluşturulan kullanıcı için AIX üzerinde birde home directory oluşturmak gerekmektedir. Bu ayrıntıyı da hallettikten sonra artık yapacağınız herşey sizin yaratıcılığınıza ve isteğinize kalmış.

Başka bir makalede görüşmek dileğiyle...

























Hiç yorum yok:

Yorum Gönder