OpenLDAP Installation und Konfiguration

Befehl zur Erstinstallation von Openldap

Der Username bei dieser Installationsanleitung lautet ldap, bei abweichendem Usernamen Befehle ggf. anpassen
 
cd /usr/local/src && sudo apt-get install git-core autoconf ruby ruby-dev dpkg-dev libssl-dev libdb-dev libltdl-dev && sudo apt-get source openldap && cd openldap-2.4.28/ && sudo ./configure --enable-slapi --enable-dynamic --enable-bdb --enable-ppolicy && sudo make depend && sudo make && sudo make install

Parameter für die Konfiguration von OpenLDAP

–enable-slapi
um Plugins zu verwenden
–enable-dynamic
für die Erstellung von Shared Objects (vom Plugin benötigt)
–enable-bdb
das Backend in dem die Userdaten gespeichert werden
–enable-ppolicy
Password Policy um User zu sperren

Plugin installieren

Folgende Befehle führen zur Installation des Plugins: 
 
cd ~ && mkdir Projects && cd Projects && git clone http://sahannr6@donatello.pri.univie.ac.at/repositories/121/Data slapi-ruby-pre-bind && cd slapi-ruby-pre-bind && autoconf && ./configure && make

Benötigte Einträge in slapd.conf

sudo vi /usr/local/etc/openldap/slapd.conf
 
um das Plugin einsatzbereit zu bekommen muss die slapd.conf folgendermaßen aussehen: 
 
include   /usr/local/etc/openldap/schema/core.schema
include   /usr/local/etc/openldap/schema/cosine.schema
include   /usr/local/etc/openldap/schema/inetorgperson.schema
include   /usr/local/etc/openldap/schema/ppolicy.schema
 
pidfile  /usr/local/var/run/slapd.pid
argsfile  /usr/local/var/run/slapd.args
 
# Load dynamic backend modules:
moduleload ppolicy.la
 
#Plugin:
plugin preoperation /home/ldap/Projects/slapi-ruby-pre-bind/slapi-ruby-pre-bind.so slapi_ruby_pre_bind_init
pluginlog /home/ldap/slapilog
 
#Password Security
password-hash {CLEARTEXT}
 
#######################################################################
# BDB database definitions
#######################################################################
 
database  bdb
suffix    "dc=my-domain,dc=com"
rootdn    "cn=Manager,dc=my-domain,dc=com"
rootpw    secret
directory  /usr/local/var/openldap-data
 
# Indices to maintain
index  objectClass  eq
 
#Password Policies
overlay ppolicy
ppolicy_default "cn=default,ou=pwpolicies,dc=my-domain,dc=com"

Erste LDAP Konfiguration:

#setup.ldif
dn: dc=my-domain,dc=com
objectclass: domain
dc: my-domain
 
dn: ou=pwpolicies,dc=my-domain,dc=com
objectclass: organizationalUnit
ou: pwpolicies
 
dn: cn=default,ou=pwpolicies,dc=my-domain,dc=com
objectClass: pwdPolicy
objectClass: Person
objectClass: top
cn: default
pwdAttribute: userPassword
pwdLockout: TRUE
sn: dummy value
 
Die Datei setup.ldif muss mittels folgendem Befehl zu laufendem LDAP hinzugefügt werden: 
 
ldapadd -D cn=Manager,dc=my-domain,dc=com -w secret -f setup.ldif
 
Diese Datei registriert die Domain, welche LDAP zugeordnet ist, sowie die Objektklasse pwdPolicy, über welche einzelne User gesperrt werden können. 

Befehl um einen User zu sperren/entsperren

#block_user.ldif
dn: uid=12312312,dc=my-domain,dc=com                                
changetype: modify
add: pwdAccountLockedTime
pwdAccountLockedTime: 000001010000Z
 
Man erstellt das lock_user.ldif wie oben und führt es mit folgendem Befehl aus: 
 
ldapmodify -D cn=Manager,dc=my-domain,dc=com -w secret -f lock_user.ldif
 
Um den User wieder zu entsperren benötigt man wieder ein .ldif File: 
 
#unblock_user.ldif
dn: uid=12312312,dc=my-domain,dc=com                                
changetype: modify
delete: pwdAccountLockedTime
 
welches mit selbem Befehl aufgerufen wird: 
 
ldapmodify -D cn=Manager,dc=my-domain,dc=com -w secret -f unlock_user.ldif
 
Was dabei passiert ist, dass ein der Eintrag pwdAccountLockedTime dem User hinzugefügt, bzw wieder entfernt wird. 
Dieser Eintrag regelt eigentlich die Zeit, welche ein User gesperrt ist, zB nachdem das Passwort drei mal falsch eingegeben wird. 
Jedoch der Wert 000001010000Z bedeutet eine vollständige Sperre, welche nur von einem Administrator aufgehoben werden kann. 

Testen am LDAP

Der Befehl um die allgemeine LDAP Funktionalität zu testen lautet:  
 
ldapsearch -x -D cn=Manager,dc=my-domain,dc=com -w secret -b "dc=my-domain,dc=com" '(objectclass=*)'
 
Dieser Befehl zeigt alle derzeit am LDAP vorhandenen Objekte, einschließlich der Superklassen. 
Um die Funktionalität der User-Sperre zu testen verwendetman folgenden Befehl:  
 
ldapsearch -x -D uid=bfree,dc=my-domain,dc=com -w hugo -b "dc=my-domain,dc=com" '(objectclass=*)'
Letzte Änderung: 05.09.2012, 10:46 | 480 Worte