OpenLDAP Kurulumu ve Yapılandırması

Kurulum

OpenLDAP bir çok Linux dağıtımının deposunda bulunabilir ve kolayca kurulur. Kaynak koddan kurulum yapmak da mümkündür. Buradaki kurulum Debian GNU/Linux 4.0 r1 "Etch" stable sürüm içindir.

apt-get install slapd ldap-utils

Bu komutla debian deposundaki OpenLDAP sunucu programını kurulumunu yapıyoruz ve istemci için gerekli programları (ldapsearch, ldapadd, vb.) kurmuş oluyoruz. Admin parolasını girdikten sonra kurulum tamamlanıyor.

OpenLDAP paketi krulduktan sonra ilk olarak /etc/ldap/slapd.conf dosyasını düzenlemek ve bir kök girdi (base entry) oluşturmak gerekir.

#vi /etc/ldap/slapd.conf
# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
database bdb
suffix "dc=comu,dc=edu,dc=tr"
rootdn "cn=manager,dc=comu,dc=edu,dc=tr"
rootpw {SSHA}XyZmHH1RlnSVXTj87UvxOAOCZA8oxNCT
directory /usr/local/var/openldap-data

Burada sırasıyla veritabanı türünü, kuruluşumuza uygun sonek yapısını, yetkili kullanıcının ismini ve parolasını, son olarak da verilerin tutulacağı yolu belirtiyoruz. Parolayı düz metin olarak tutabileceğimiz gibi slappasswd komutuyla şifrelenmiş olarak üretebiliriz. Eğer gerekiyorsa şemayı da buraya ekliyoruz.

Sırada kök girdi oluşturulması var.

# vi base.ldif
dn: dc=nodomain
objectclass: dcObject
objectclass: organization
o: COMU
dc: comu.edu.tr
	
dn: cn=admin,dc=comu,dc=edu,dc=tr
objectclass: organizationalRole
cn: admin
#ldapadd -x -D "cn=admin,dc=comu,dc=edu,dc=tr" -W -f base.ldif

Burada önce içinde kök girdi bilgileri olan bir ldif dosyası yaratıyoruz. Sonra ldapadd komutuyla bunu sunucumuza ekliyoruz. -D parametresi ile bir kullanı ile (burada admin, yani en yetkili kullanıcı) işlemi yapacağımızı, -W ile parola gireceğimizi, -x ile parola şifrelemesini (burayı düzeltelim) belirtmiş oluyoruz. İşlemler sonucunda herhangi bir hata almadıysak temel kurulum tamamlanmış demektir. ldif dosyasında fazladan bırakılacak boşluklar ve ldapadd parametrelerinin yanlış girilmesi hataya sebep olacaktır. Eğer hata alındıysa http://www.openldap.org/doc/admin24/appendix-common-errors.html adresinden hatanın sebebini öğrenmek faydalı olacaktır.

Kurulumu ldapsearch komutuyla test edebiliriz:

ldapsearch -x -b 'dc=comu,dc=edu,dc=tr' '(objectclass=*)'

# extended LDIF
#
# LDAPv3
# base with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# nodomain
dn: dc=comu,dc=edu,dc=tr
objectClass: top
objectClass: dcObject
objectClass: organization
o: COMU
dc: nodomain

# admin, nodomain
dn: cn=manager,dc=comu,dc=edu,dc=tr
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2

LDAP erişim yetkilerinin yapılandırılması

access to attrs=userPassword,shadowLastChange
by dn="manager,dc=comu,dc=edu,dc=tr" write // bu kullanıcı herkesin userPassword,shadowLastChange'e yazma hakkına sahiptir.
by anonymous auth	//anonim kullanıcı sadece kanıtlama yapabilir
by self write		//herkes kendi userPassword,shadowLastChange değiştirme hakkına sahiptir.
by * none		// ve bunlar dışındaki herkes hiçbirşey yapamaz (geriye kim kaldı bende bilmiyorum.)
Burada kullanıcı izinlerini düzenleyebiliriz. Yapılandırma işimiz bitti.