LDAP - allgemeine Infos zum LDAP-Protokoll
Inhaltsverzeichnis |
LDAP-Server
OpenLDAP unter Linux besteht aus dem Server slapd und den Client-Utilities (unter Debian im Paket ldap-utils). Der LDAP-Server benötigt für die Verwaltung der Einträge verschiedene Attribute die in Objektklassen zusammengefaßt werden. Diese werden in Schema-Dateien definiert, die global für alle Datenbanken gelten. Da Attribute in verschiedenen Klassen verwendet, aber nur einmal definiert werden können, ist auf die Reihenfolge zu achten, in der die Dateien eingebunden werden. Gelegentlich verursachen gleichnamige Attribute in verschiedenen Dateien für Konflikte, sodaß diese nicht ohne Anpassung gemeinsam verwendet werden können.
Zur einfachen Verwaltung der LDAP-Datenbanken ist der phpldapadmin zu empfehlen.
Für die Integration der Linux-Benutzerverwaltung in LDAP wird nss-ldap für die Informations-Beschaffung und pam-ldap für die Authentifikation benötigt. Weiterhin sind die Pakete ldapscripts für die Benutzerverwaltung und die migrationtools für die Übertragung der vorhandenen Informationen ins LDAP-Verzeichnis notwendig.
Konfiguration slapd
olcConfig unter Debian Squeeze
Bei einem Update von Lenny auf Squeeze wird eine statische Konfiguration auf olc umgestellt. Ebenso wie bei einer Neuinstallation unter Squeeze wird dabei aber kein RootPW vergeben.
Am schnellsten läßt sich das wie folgt ändern:
~# echo "olcRootPW: `slappasswd -s PASSWORT`" >> /etc/ldap/slapd.d/cn=config/{0}config.ldif
Danach muß der slapd neu gestartet werden (nslcd ggf. vorher beenden):
~# invoke-rc.d nslcd stop && invoke-rc.d slapd restart && invoke-rc.d nslcd start
Alternativ ist es als root (uid=0,gid=0) auf der Konsole möglich, sich am LDAP-Server anzumelden:
~# ldapvi -Y EXTERNAL -h ldapi:/// -b cn=config
Auf diesem Weg ist es auch möglich, die Konfiguration mit
~# ldapmodify -Y EXTERNAL -H ldapi:/// -f $FILE
dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov
Schema-Dateien
Schemadateien liegen in den meisten Fällen leider nur in der statischen Variante vor. Für den Import müssen sie daher noch konvertiert werden. In schema-convert.conf werden die zu konvertierenden Dateien wie in einer statischen slapd.conf als include angegeben. ldapconvert.sh wandelt diese entsprechend um, damit sie zum Schluß mit ldapadd hinzugefügt werden können.
schema-convert.conf:
include /etc/ldap/schema/dhcp.schema include /etc/ldap/schema/samba.schema
ldapconvert.sh:
#!/bin/bash ldifschema=/etc/ldap/schema.convert ldif=ldif ldifpath=/etc/ldap/ldif etc=/etc/ldap/schema cn=cn\=config/cn\=schema mkdir -p $schema mkdir -p $ldifpath /usr/sbin/slapcat -f schema_convert.conf -F $ldifpath -n0 || exit cd $ldifpath/$cn mkdir $ldif mkdir 1 for file in *.ldif; do sed -n -e :a -e '1,7!{P;N;D;};N;ba' $file | sed -e '1s/{.*}//;1s/$/,cn=schema,cn=config/;3s/{.*}/cn=/' > $ldif/$file neu=`echo $file | sed -e 's/^.*}//g'` mv $ldif/$file $ldifschema/$neu done
zum laufenden LDAP-Server hinzufügen:
~# ldapadd -xWD cn=admin,cn=config -f dhcp.ldif