27 Temmuz 2011 Çarşamba

AIX 6.1 için LDAP Entegrasyonu - I

Günümüzde Unix sistem yöneticileri için en gereksiz iş yoğunluğu Unix sunucuları üzerindeki kullanıcı hesapları ve şifrelerinin yönetiminde ortaya çıkıyor. Özellikle bankalar gibi regülatör baskısı altında çalışan kurumlarda bu iş fazlasıyla önemli görülüyor. Aslına bakarsanız güvenlik prosedürleri gereğince hiç de küçümsenmeyecek bir kalem olan şifre yönetimi, klasik Unix üzerindeki kimlik doğrulama mekanizmasının hem çok hantal hemde çok güvensiz olması nedeniyle sistem yöneticilerini farklı çözüm arayışlarına itiyor. Bu sorun Unix mimarisi içinde NIM gibi çözümlerle halledilebiliyor ancak yine de yönetilecek yeni bir sunucu yerine var olan yapıya entegre ve yeni bir çözüm herkesin işini kolaylaştıracak gibi görünüyor. Bu bölümde basitçe "AIX 6.1" ile "Microsoft Active Directory" arasında LDAP entegrastonun nasıl sağlanacağını ve AIX kullanıcı yönetiminin "Active Directory " üzerinden nasıl gerçekleştirleceğini anlatacağım.

Öncelikle LDAP'ın ne olduğu konusunu açıklamaya çalışalım. LDAP; "lightweight directory access" olarak adlandırılan bir protokol. Çoğunlukla directory hizmeti veren sunuculardan (Microsoft Active Directory, IBM Tivoli Directory Servers, Sun ONE Directory Server, OpenLDAP gibi ) veri sorgulaması yapmak için bir standart sunuyor. "Directory"'de basit anlamda bir veri tabanı olarak düşünülebilir. LDAP ile bu veri tabanında bulunan verilere uygun formatta düzenlenen sorgular ile istenilen verilere ulaşmaya çalışılıyor.

Standart AIX kurulumunda LDAP "fileset"'leri kurulmuyor. Ancak eğer elinizde bir "Expension CD"'si varsa aşağıdaki paketleri kolaylıkla kurabilirsiniz.

idsldap.clt32bit61.rte 6.1.0.26
idsldap.clt64bit61.rte 6.1.0.26
idsldap.clt_max_crypto32bit61.rte 6.1.0.26
idsldap.clt_max_crypto64bit61.rte 6.1.0.26
idsldap.cltbase61.adt 6.1.0.26
idsldap.cltbase61.rte 6.1.0.26
idsldap.msg61.en_US 6.1.0.26

Burada ilgiç olan nokta işletim sisteminizin 64 bit olmasına karşın uygulamanın çalışması için 32 bit ve 64 bit paketlerin beraber kurulması gerekiyor. (Tecrübe ile sabittir.)

Eksik "fileset"lerin nasıl kurulacağı konusunu başka bir "blog" girdisinde aktaracağım. Paketleri kurduktan sonra aşağıdaki komutla kontrol edebilirsiniz. Ben ilerki fazlarda lazım olabileceği düşüncesiyle fazladan bazı paketler de kurdum.

lslpp -l | grep ldap

idsldap.clt32bit62.rte 6.2.0.10 COMMITTED Directory Server - 32 bit
idsldap.clt64bit62.rte 6.2.0.10 COMMITTED Directory Server - 64 bit
idsldap.cltbase62.adt 6.2.0.10 COMMITTED Directory Server - Base Client
idsldap.cltbase62.rte 6.2.0.10 COMMITTED Directory Server - Base Client
idsldap.cltjava62.rte 6.2.0.10 COMMITTED Directory Server - Java Client
idsldap.ent62.rte 6.2.0.3 COMMITTED Directory Server - Entitlement
idsldap.msg62.en_US 6.2.0.10 COMMITTED Directory Server - Messages -
idsldap.webadmin62.rte 6.2.0.10 COMMITTED Directory Server - Web
idsldap.clt32bit62.rte 6.2.0.10 COMMITTED Directory Server - 32 bit
idsldap.clt64bit62.rte 6.2.0.10 COMMITTED Directory Server - 64 bit
idsldap.cltbase62.rte 6.2.0.10 COMMITTED Directory Server - Base Client

Paketleri kontrol ettikten sonra bazı temel konfigürasyonlarında gerçekleştirilmesi gerekiyor. bunlardan ilki NTP (Network Time Protocol) konfigürasyonu. Aslında LDAP ile NTP arasında birebir ilişki yok. Ancak ilerki safhada kerberos gibi şifrelenmiş veri akışı kullanmak isterseniz NTP kurarak sorunun bir kısmını çözmüş olursunuz.
Çoğu sistemde NTP sunucusu ile "Domain" sunucusu aynı olumaktadır. Eğer değilse Domain ve AIX sistemin aynı NTP sunucusunu kullandığından emin olun. AIX üzerinde NTP'nin nasıl aktif edileceğini

linkinden öğrenebilirsiniz.

NTP konfigürasyonundan sonra UNIX sunucunun DNS ayarlarının da düzgün yapılması gerekmektedir. Bunun için DSN sunucu bilgilerinin AIX üzerinde /etc/resolv.conf dosyasına girilmesi gerekmektedir. Örneğin kullanacağınız "Active Directory" sunucunun ismi DC1 olsun. Domain adınızında ornek.local olduğunu varsayarsak; sunucunun ismi "Domain" yapısında DC1.ornek.local olur. UNIX sunucunun bu ismi doğru bir şekilde DNS çözümlemesi yapabilmesi için /etc/resolv.conf dosyasının içeriği aşağıdaki gibi olmalıdır.

nameserver 192.168.0.2
domain ornek.local
serach ornek.local

Bundan sonra DNS ayarlarınızın testi için "Domain" sunucusuna ping atabiliriz.

ping DC1.ornek.local

Eğer ping' cevap alabiliyorsak bir sonraki adım olan "Active Directory" düzenlemesine geçebiliriz. Standart kurulumlu bir active directory yapısında UNIX LDAP entegrasyonu yalnızca "Kerberos" üzerinden çalışacaktır. Bu metod sürekli dosya transferi gibi bazı ekstra işlemler gerektirdiğinden bizim için çok cazip değildir. Bu durumda diğer seçenek, LDAP üzerinden bu işlemlerin gerçekleşmesidir. Ancak bu durumda da POSIX standartlarında yer alan UID ve GID bilgilerinin Windows dünyasında bir karşılığının olmaması durumu karşımıza çıkar. Bu sorunu aşmak için Microsoft tarafından "Service For Unix" ismiyle yayınlanmış bir yazılım kullanılır. bu yazılım UNIX dünyasıyla Windows dünyası arasındaki farklılıkları uyumlaştırmak için bir dizi hizmetler sunar. Bunların arasında NFS gibi hizmetlerin yanı sıra "authentication" hizmetide yer alır. Bu özelliğin kullanılabilmesi için "Domain Controller"a aşağıdaki adresten Service For Unix 3.5 inidirlerek kurulmalıdır.

http://www.microsoft.com/download/en/details.aspx?id=274

Kurulum standart "Next Next" kurulumudur. Kurulum aşamasında şimdilik işimize yarayacak olan "Server For NFS" servisi kurulmaldır.




Service for Unix kurulumundan sonra "Active Directory Users And Computers" çalıştırılıp grup ve kullanıcı özelliklerini açtığımızda oluşturduğumuzda , özelliklerde "UNIX Attirubutes" ismiyle yeni bir sekme göze çarpacaktır.











Burada LDAP ile AIX sisteme bağlanacak kullanıcılar için UNIX dünyasına özgü özellikler atanmaktadır. Örnek üzerinden gitmek gerekirse unixuser isimli bir "Active Directory" kullanıcısının LDAP entegrasyonu ile AIX sunucuya login olmasını istiyoruz. UNIX standartlarına göre her kullanıcı herzaman en az bir grupa dahil olmak zorundadır. Bu nedenle kullanıcıyla beraber birde gruba ihtiyacımız vardır. İlk olarak "Active Directory" üzerinde bu kullanıcının dahil olacağı grup oluşturulmalıdır. Bunun için "Users"a sağ tıklayıp "New" seçeneğinden "Group" seçilmeldir.



Burada grup adını belirlenir ve oluşturulur. Daha sonra oluşturulan grubun özelliklerinden "Unix Attirubutes" seçeneğinde "NIS Domain" alanı kendi domanimiz seçilir ve gruba bir GID atanır.



Şimdi kullanıcıda oluşturulabilir.



Kullanıcı oluşturulduktan sonra yine özelliklerde UNIX dünyasına ait düzenlemeler gerçekleştirilir.



Burada görüldüğü gibi UID, login shell, home directory ayarları gerçekleştirilebilir. "Active Directory" tarafındaki işlemler basitçe bu şekilde. Yapılan işelmler göz önüne alındığında temel olarak SFU'un getirdiği yeni özellikler kullanılarak "Active Directory" kullanıcılarına UNIX dünyasına has bazı yeni özellikler tanımladık. AIX tarafındaki işlemleri ise bir sonraki girdide aktarmaya çalışacağım.











AIX 6.1 için NTP Konfigurasyonu

Ağ üzerindeki bir NTP sunucusunun durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz.

ntpdate 192.168.0.2

NTP konfigürasyonu için /etc/ntp.conf dosyasına aşağıdaki şekilde NTP server bilgilerini girmeniz gerekiyor.
# Broadcast client, no authentication.
#
broadcastclient
driftfile /etc/ntp.drift
tracefile /etc/ntp.trace
server 192.168.0.2

Bu satırları ntp.conf dosyasına ekledikten sonra sunucu ile iletişime geçrek saat tarih bilgisini güncelleyecek NTP "daemon"unu çalıştırmanız gerekiyor. Bu işlem için aşağıdaki komut kullanılabilir.

startsrc -s xntpd

0513-059 The xntpd Subsystem has been started. Subsystem PID is 10747908.

NTP daemon'u çalıştıktan sonra ntpq programı ile senkronizayon durumu takip edilebilir.

ntpq> peers
remote refid st t when poll reach delay offset disp
==============================================================================
#DC1.ornek DC1.ornek 3 u 55 64 177 0.58 2.474 126.02