Eine übersicht über das Themengebiet gibt es in http://www.open-news-network.org/LDAP Hier geht es um die Einrichtung eines eigenen LDAP-Servers. Momentan ist nur der manuelle Import der Daten vom LDAP-Master vollständig erklärt. Das Aufsetzen eines automatisch replizierten LDAP-Slave ist noch in Arbeit.
Erste Schritte
Zuerst einmal sollte man sich http://www.openldap.org/doc/admin22/ durchlesen. Langsam. Mit Geduld. Und in Demut. Viele Begriffe in der "Administrator's Guide" bleiben undefiniert. Und einige Beispiele weichen auf subtile Weise von der Wirklichkeit ab ...
Etwas veraltet zwar aber dennoch zur Einführung lesenswert ist: http://www.linuxhaven.de/dlhp/HOWTO/DE-LDAP-HOWTO.html
Debian Sarge
Pakete:
slapd ldap-utils
Init-Skript:
/etc/init.d/slapd
Konfiguration:
/etc/ldap/slapd.conf
Die Installation:
apt-get install slapd ldap-utils
Die Fragen des Konfigurationsskripts beantwortete ich so:
Enter your DNS domain name:
open-news-network.org
Enter the name of your organization:
news.albasani.net
Allow LDAPv2 protocol:
"name of your organization" ist ein Attribut und nach http://www.faqs.org/rfcs/rfc2256.html definiert. Welche Bedeutung das hat, insbesondere für LDAP-Slaves, ist unklar.
Fedora Core
Pakete:
openldap-servers openldap-clients
Init-Skript:
/etc/init.d/ldap
Konfiguration:
/etc/openldap/slapd.conf
Konfiguration
Der Server wird durch die Datei slapd.conf konfiguriert.
Der Eintrag allow bind_v2 gehört auskommentiert das sollte so aussehen (ist bei Debian bereits der Fall):
#allow bind_v2
Der Eintrag schemacheck fehlt bei Fedora Core:
# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck on
Bei Debian wird der erste Eintrag suffix bereits durch den Konfigurationsdialog erstellt, ansonsten gehört das manuell ausgebessert.
suffix "dc=open-news-network,dc=org"
Läuft der Server?
Nach /etc/init.d/slapd start bzw. /etc/init.d/ldap start sollte man überprüfen, ob der Server rein grundsätzlich läuft:
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
Die Ausgabe sieht so aus:
# extended LDIF
#
# LDAPv3
# base <> with scope base
# filter: (objectclass=*)
# requesting: namingContexts
#
#
dn:
namingContexts: dc=open-news-network,dc=org
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Das Administrator-Passwort
Abweichend von Quick-Start Guide findet sich unter Debian Sarge kein Eintrag rootdn oder rootpw in /etc/ldap/slapd.conf. überprüfen lässt sich das bei der Konfiguration angegebene Administrator-Passwort so:
ldapsearch -x -D "cn=admin,dc=open-news-network,dc=org" -W '(objectclass=*)'
Die Fehlermeldung bei falschem Passwort sieht so aus:
ldap_bind: Invalid credentials (49)
Und wie wollen wir in Zukunft die verschiedenen LDAP-Datenbanken syncron halten?
Wenn das noch stimmt:
11.4.4 Copy the master slapd's database to the slave
Copy the master's database(s) to the slave. For an LDBM-based database, you must copy all index files as well as the "NEXTID" file. Index files will have a different suffix depending on the underlying database package used. The current possibilities are
* dbb Berkeley DB B-tree backend
* dbh Berkeley DB hash backend
* gdbm GNU DBM backend
* pag UNIX NBDM backend
* dir UNIX NBDM backend
You should copy all files with such a suffix that are located in the index directory specified in your slapd config file.
http://www.umich.edu/~dirsvcs/ldap/doc/guides/slapd/11.html
Müssten wir innerhalb des OpenNewsNetwork anders vorgehen, damit wir nicht lauter Master-Ldap-Server bekommen, die untereinnander nicht syncronisieren.