Der Directorydienst LDAP bietet die Möglichkeit zahlreiche Benutzerinformationen, wie Passwörter und Zugriffsrechte bis hin zu Telefonnummern, zentral abzulegen und aufzurufen.
Allerdings ist es nicht immer ganz so einfach einen LDAP Server zu verwalten. Im folgenden verwenden wir den LDAP Server um Benutzerdaten für folgende Dienste zentral abzulegen:
Die Hauptkonfigurationsdatei:
/etc/ldap/slapd.conf:
allow bind_v2
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/samba.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel 5
modulepath /usr/lib/ldap
moduleload back_hdb
backend hdb
database hdb
sizelimit 500
tool-threads 1
suffix "dc=firma"
directory "/data/ldap"
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
index objectClass eq
lastmod on
checkpoint 512 30
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=firma" write
by anonymous auth
by self write
by * none
access to dn.base="" by * read
access to *
by dn="cn=admin,dc=primag" write
by * read
Der Datenpfad verschiebe ich in das Datenhauptverzeichnis /data. Seit Hardy spielt hier beim LDAP und bei MySQL auch apparmor eine Rolle. Es reicht nicht mehr den Datenpfad zu ändern. Der slapd Daemon braucht auch via apparmor Zugriffsrecht.
/etc/apparmor.d/usr.sbin.slapd:
... /data/ldap/ r, /data/ldap/* rwk, ...
Das Datenverzeichnis muss Schreibzugriff für den Benutzer ‘openldap’ gewährleisten:
chown -R openldap.openldap /data/ldap chmod -R g+rw /data/ldap
Die gesamten Daten können mit einem einfachen Befehl ausgelesen werden:
slapcat > backup.ldif
Ich beschreibe hier nur die Wiederherstellung aller Daten. Es gibt auch die Möglichkeit nur Teile davon wieder zurück zu spielen. Siehe hierzu man slapadd.
/etc/init.d/slapd stop rm -r /data/ldap/* slapadd -l backup.ldif chown -R openldap.openldap /data/ldap chmod -R g+rw /data/ldap /etc/init.d/slapd start
Für Tests vorher UNBEDINGT! den ganzen Ordner sichern!
Die Dateien /etc/passwd und /etc/shadow werden, mit Ausnahme der Einträge für die Dienste, über LDAP verwaltet.
Ich verwalte den LDAP Server via Web mit phpLDAPadmin