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