LDAP unter Linux
Work in Progress
Achtung: Diese Seite befindet sich noch in der Erstellung. Inhalte sind derzeit noch ohne Gewähr.
- FIXME: Screenshots zu LDAP Browsern
- FIXME: Feature-Vergleich der LDAP Browser
- FIXME: Links zu NIS/LDAP Konvertern
- FIXME: Unterschiede zwischen slapadd/ldapadd
- FIXME: (Un)verschlüsselten LDAP Server (de)aktivieren
Was ist LDAP?
LDAP steht für Lightweight Directory Access Protocol.
Konfiguration des OpenLDAP Servers
Setup:
- Domain: mydomain.de
- LDAP-Server: ldapserver.mydomain.de
- DN: dc=mydomain,dc=de
LDAP Editoren
Oftmals ist das Arbeiten mit Kommandozeilentools beim Umgang mit LDAP sehr aufwändig, deswegen gibt es eine ganze Reihe von LDAP Browsern und Editoren, die den Zugriff auf die LDAP Daten erleichtern.
Durchsuchen des Verzeichnisses
Durchsuchen nach verschiedenen Kriterien:
| Scope | Numerisch | Beschreibung |
| base | Listet nur den BaseDN | |
| one | 1 | Durchsucht nur Einträge 1 Ebene unter BaseDN |
| sub | 2 | Durchsucht den kompletten Teilbaum unter BaseDN |
Sichern und Wiederherstellen des Verzeichnisses
Wichtig ist auch die Sicherung eines Verzeichnis-Baums:
Backup und Restore eines OpenLDAP Servers
Gesicherte Verbindung zum OpenLDAP Server
In den meisten Verzeichnissen werden Daten gespeichert, die nicht von jedem gelesen oder gar modifiziert werden sollen. Deshalb ist es wichtig den Kreis der Benutzer und deren Erlaubnisse einzuschränken.
Verschlüsselung der Verbindung mit SSL
Der Zugriff auf das Verzeichnis sollte möglichst gegen den Zugriff Unbefugter geschützt sein. Mit Hilfe von SSL lassen sich die Netzwerkverbindungen verschlüsseln, so dass das Abhören nahezu unmöglich wird.
SASL - Simple Authentication and Security Layer
Auch mit Hilfe von SASL kann der Zugriff auf den OpenLDAP Server erfolgen.
Erste Daten für den OpenLDAP Server
Bislang haben wir uns nur mit der Konfiguration des OpenLDAP Servers beschäftigt, nicht jedoch mit seinen Inhalten. Zum jetztigen Zeitpunkt sind keinerlei Informationen in den Datenbanken enthalten - lediglich der Verbindungsaufbau funktioniert. Der Versuch LDAP Inhalte abzufragen wird mit einer Fehlermeldung quittiert.
Um das in Zukunft zu vermeiden muss wenigstens der Wurzelknoten existieren. Das
erreicht man mit Hilfe des ldapadd-Kommandos und einer entsprechend
vorbereiteten LDIF-Datei:
# mydomain.de dn: dc=mydomain,dc=de objectClass: dcObject objectClass: organization # this needs to be the first dc= entry dc: mydomain o: RRZE description: Linux Experts
linux ~# ldapadd -x -w Passwort -D "cn=Manager,dc=mydomain,dc=de" -f /tmp/base.ldif
Informationen über den LDAP Server
Manchmal ist es interessant Informationen über den verwendeten LDAP Server zu erhalten. Dazu gehören unterstütze Schemata, Protokolle, Features und Erweiterungen.
Optimierungen
Da der OpenLDAP Server seine Informationen in Datenbanken ablegt, kann es je nach Organisation sehr lange dauern die gewünschten Daten zu erhalten. Zusätzliche Indices der Datenbanken können manche Suche erheblich beschleunigen.
Sollten die Systemlogs Zeilen wie die folgende enthalten, so sollte man darüber nachdenken weitere Indices einzuführen:
conn=53 op=10 SRCH attr=uid <= bdb_equality_candidates: (uid) index_param failed (18)
Um das zu erreichen trägt man in /etc/openldap/slapd.conf bei der
entsprechenden Datenbank Definition einen Index für zusätzliche Attribute
ein (im Beispiel das Attribut uid, welches auf Gleichheit geprüft
werden kann):
index objectClass eq index uid eq index gidNumber eq index uidNumber eq index member eq index memberUid eq
Für verschiedene Suchanfragen gibt es unterschiedliche Indizierungsmethoden:
- pres: Vorhandensein (Presence, objectclass=class)
- eq: Gleichheit (Equality, entry=string)
- sub: (Substring, entry=*string*)
- subinitial: (Initial Substring, entry=string*)
- subfinal: (Initial Substring, entry=*string)
- approx: Klangähnlich (Sounds Alike, entry~=string)
Danach kann man das Erzeugen der Indices durch einen Aufruf des Tools slapindex
neu aufbauen lassen (möglichst ohne laufenden LDAP Server):
linux ~# slapindex
Danach muss man den OpenLDAP Server neu starten - zumindest wird in der Dokumentation keine Möglichkeit erwähnt, wie man die Indices im laufenden Betrieb hinzufügen kann.
In der Standard-Konfiguration liefert OpenLDAP nur maximal 500 Einträge zurück, was
manchmal zu unerwarteten Ergebnissen führen kann. Um diese Limit aufzuheben trägt
man in die /etc/openldap/slapd.conf folgende Zeile ein:
... sizelimit unlimited ...
Replicas
Um Ausfallsicherheit zu erreichen ist es unerlässlich mehrere LDAP Server zur Verfügung zu stellen. Diese sollten aber natürlich auch den aktuellen Datenbestand des Master Servers beinhalten. Wie man das erreichen kann lesen sie hier
Fehlerbehebung
Sollte sich der OpenLDAP Server mit der Fehlermeldung
... slapd[100]: connection_input: conn=1 deferring operation: too many executing ...
beschweren, so kann man die Konsistenz der Datenbank mit Hilfe
von slapcat überprüfen. Dieses Tool hat im
Vergleich zu ldapsearch den Vorteil, dass die Daten
direkt (ohne Netzverbindung) aus den Datenbanken ausgelesen werden.
Sollte auch diese Befehl nicht zu einem erfolgreichen Ende kommen,
so kann eine Reparatur der Datenbanken evtl. Abhilfe schaffen:
linux ~# cd /var/lib/ldap linux ~# db_recover
Natürlich sollte dazu der LDAP Server vorher heruntergefahren werden.



