Einrichtung von OpenLDAP

von Christopher Korn | 0 | 0 Kommentare | 28091 Aufrufe

Anzeige Hier werben

In diesem Artikel wird die grundsätzliche Einrichtung eines simplen LDAP Servers beschrieben. Die Sicherung von OpenLDAP Servern wird im Artikel "Sichern eines OpenLDAP Servers" behandelt. Grundlagen Informationen zum Lightweight Directory Access Protocol finden sie in unserem Hauptartikel zu LDAP.

Konfiguration

Um die Arbeit mit einem OpenLDAP Server zu vereinfachen, empfiehlt es sich die Datei /etc/openldap/ldap.conf anzupassen. Hier können Basisangaben gespeichert werden, die später Tipparbeit ersparen.

Alternativ können Sie auch eine Date ldaprc bzw. .ldaprc in Ihrem Home-Verzeichnis anlegen.

Beispiel "ldap.conf"

/etc/openldap/ldap.conf  
Text
1
2
3
4
5
6
BASE    dc=webmasterpro, dc=de  # Basis DN. Hier als Beispiel webmasterpro.de
URI     ldap://localhost        # Die URI des Servers

SIZELIMIT       12              # Maximale Ergebnisgröße bei Suchoperationen. "0" erlaubt eine unbegrenzte Größe
TIMELIMIT       15              # Zeitlimit für Suchoperationen. "0" bedeutet kein Zeitlimit.
DEREF           never           # Gibt an wie Alias-Verweise gehandhabt werden sollen.

Eine Vollständige Liste der in ldap.conf verfügbaren Parameter finden sie in der OpenLDAP Man Page (englisch)

Server Konfiguration

Alle Server spezifischen Einstellungen werden in der Datei slapd.conf getroffen. Diese befindet sich ebenfalls im Verzeichnis /etc/openldap/.

Beispiel "slapd.conf"
/etc/openldap/slapd.conf  
Text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Liste der zu verwendenden Schemata
include         /etc/openldap/schema/core.schema

# Datei für die Prozess ID
pidfile     /var/run/slapd.pid
# Laufzeitargumente für den LDAP Server
argsfile    /var/run/slapd.args

# Datenbanktyp
# Möglich sind z.B. die Berkley DB ("bdb"), ldif oder sql)
database    bdb 

# Primäres Suffix
suffix      "dc=webmasterpro,dc=de"

# Die Administratorenkennung
rootdn      "cn=admin,dc=webmasterpro,dc=de"    

# Das Passwort für den Administrator. Hier empfiehlt es sich via "slappasswd" ein 
# verschlüsseltes Passwort zu erstellen. 
# Beispiel: slappasswd -s test
rootpw  {SSHA}wsklMKYs/UOc9SDf3XKqysUqhX4+kOVF      
                    
# Der Pfad für alle LDAP Daten. Hier sollten die Zugriffsrechte "700" gesetzt sein.
directory   /sw/var/openldap-data           

# Welche Daten sollen für schnelleren Zugriff indiziert werden? Fürs erste Tests reichen
# hier sehr rudimentäre Angaben. Genaue Informationen zu OpenLDAP's Indizierungsmöglichkeiten
# sind in der Manpage von slapindex zu finden.
index   objectClass eq
# Für weiter unten angegebene Schemata
# index   cn,sn,mail

Erste Tests

Nun da die Grundkonfiguration des Servers abgeschlossen ist, können erste Tests durchgeführt werden. Hierzu muss der Server über den Befehl slapd oder ein Init Script (z.B: /etc/init.d/openldap start) gestartet werden.

Der Aufruf des Befehls ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts sollte nun erfolgreich eine Suche auf unserem neu eingerichteten Server durchführen. Die Ausgabe könnte in etwa so aus sehen:

dn:
namingContexts: dc=webmasterpro,dc=de

Läuft der Server kann mit der Arbeit an der gewünschten Datenstruktur und dem einpflegen der eigentlichen Datensätze begonnen werden.

Schema Erweiterung

Um eine Unternehmensstruktur allerdings sauber abbilden zu können, muss die Liste der von OpenLDAP verwendeten Schemata erweitert werden, da "core.schema" nur das Nötigste bietet.

  • inetOrgPerson - Dieses Schema enthält zusätzliche Kontaktdaten (z.B. Vorname, E-Mailadresse). Diese werden unter anderem von Adressbüchern wie Apples "Adressbuch" oder Mozillas Thunderbird unterstützt..
  • NIS - Schema für den "Network Information Service". Dieses dient als Basis für die Zuteilung von Benutzernamen, Konfigurationsdateien und Rechnernamen.

Um diese beiden Schemata zu verwenden fügen Sie folgende Zeilen in die Datei slapd.conf ein.

slapd.conf - Erweiterung  
Text
1
2
3
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema

Nach der Erweiterung der Konfiguration muss der Server neu gestartet werden.

Hinweis: Das Verzeichnis schema enhält noch weitere Schemata die Sie verwenden können. Es empfiehlt sich hier die einzelnen Schema näher anzusehen wenn sie noch weitere Informationen hinterlegen möchten. Das erweitern der Schemata ist natürlich ebenfalls möglich.

Erster Import

OpenLDAP unterstützt den Import von Daten über das LDAP Data Interchange Format (LDIF). Jeder neue Datensatz beginnt in diesem Format mit dem distinguished name (dn), also dem Absoluten Pfad innerhalb des LDAP Baumes. Im Anschluss daran können beliebige - im Schema vorhandene - Attribute und Werte importieret werden. Generell gilt bei LDIF Dateien die Schreibweise "attribut:wert" (Beispiel: dc=Webmasterpro,dc=de).

Ein neues Objekt wird durch eine Leerzeile begonnen.

Beispiel LDIF Datei
Beispiel Import (LDIF Format)  
Text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
dn: dc=Webmasterpro,dc=de
objectclass: dcObject
objectclass: organization
o: Webmasterpro.de
dc: Webmasterpro

dn: ou=Administratoren,dc=webmasterpro,dc=de
objectclass: organizationalUnit
ou: Administratoren

dn: cn=David Danier,ou=Administratoren,dc=webmasterpro,dc=de
cn: David Danier
cn: Goliath
objectClass: person
objectClass: uidObject
objectClass: inetOrgPerson
mail: goliath@webmasterpro.de
givenName: David
uid: ddanier 
title: Herr
sn: Danier

dn: ou=Zusätzliche Administratoren,dc=webmasterpro,dc=de
objectclass: organizationalUnit
ou: Zusätzliche Administratoren

dn: cn=Christopher Korn,ou=Zusätzliche Administratoren,dc=webmasterpro,dc=de
cn: Christopher Korn
cn: chkorn
cn: Chris
objectClass: person
objectClass: uidObject
objectClass: inetOrgPerson
mail: chkorn@webmasterpro.de
givenName:Christopher
title: Herr
uid:chkorn 
sn: Korn
homePhone: 089 987 654 321
mobile: 0177 123 456 789

dn: ou=Moderatoren,dc=webmasterpro,dc=de
objectclass: organizationalUnit
ou: Moderatoren

dn: ou=Benutzer,dc=webmasterpro,dc=de
objectclass: organizationalUnit
ou: Benutzer

Die von Ihnen angelegten LDIF Dateien können sie über den Befehl ldapadd -x -D "cn=admin,dc=webmasterpro,dc=de" -W -f import.ldif in Ihren Verzeichnisserver importieren.

Nach einem erfolgreichen Import können sie das Ergebnis erneut mittels ldapsearch überprüfen, oder andere Werkzeuge verwenden.

Bild zu Einrichtung von OpenLDAP
Beispiel von erfolgreich importieren Datensätzen in "JXplorer"

Adressbuch

Der neu installierte LDAP Server kann zum Beispiel auch als Adressbuch verwendet werden, sofern das Schema inetOrgPerson für alle Benutzer-Objekte verwendet wird.

Um dies in Clients wie Mozilla Thunderbird oder Apple's Adressbuch zu ermöglichen ist es notwendig den gewünschten Such-Pfad als DN (z.B. dc=webmasterpro,dc=de), den LDAP Server (z.B. localhost) und den Server Port (z.B. 389) anzugeben.

Je nach Server Konfiguration ist es überdies noch notwendig, einen Benutzernamen im DN (z.B. cn=admin,dc=webmasterpro,dc=de) und ein Passwort zu anzugeben.

Bild zu Einrichtung von OpenLDAP
Apple Adressbuch mit Zugriff auf einen OpenLDAP Server.

Weiteres zum Thema LDAP

Über den Autor: Christopher Korn
Christopher Korn arbeitet seit mehr als 4 Jahren für die Landeshauptstadt München im Bereich Software Administration und IT Service Management.
Profilseite betrachten

Kommentare: Einrichtung von OpenLDAP