LDAP-Konfiguration [1]

LDAP steht für Lightweight Directory Access Protocol und kommt bei so genannten Verzeichnisdiensten zum Einsatz. Es erlaubt den Zugriff auf einen Verzeichnisdienst (Directory Service, DS). Über das Protokoll kommuniziert ein LDAP-Client und mit dem Verzeichnis-Dienst-Server.

 

Ein Verzeichnis wird dabei im Prinzip wie ein Telefonbuch betrachtet. Hier können bestimmte Daten (E-Mail, Name, Telefonnummer, etc) mit Werten verknüpft werden.

 

X.500 = ist ein internationaler Standard für Verzeichnisse.

 

Mögliche Informationen im Verzeichnisdienst

Benutzer
Gruppen
IP Dienste
IP Protokolle
RPCs
NIS Netzwerkgruppen
Boot-Informationen
Einhängepunkte für Dateisysteme
IP Hosts und Netzwerke
RFC 822 konforme Mail-Aliase

Aufbau eines LDAP-Verzeichnis

Die Struktur eines LDAP-Verzeichnis ähnelt einer Baumstruktur. Beginnend bei der Wurzel (Root) gliedert sich die Struktur in Objekte, Attribute und Regeln auf.

 

Objekt = Ist ein Eintrag im Verzeichnis
Attribut = Ist die Eigenschaft eines Objekts
Regel = Legt fest, wo ein Objekt liegen und welche Eigenschaften (Attribute) es haben darf

 

Unterschied Container- und Blattobjekt

Containerobjekte können weitere Objekte enthalten, Blattobjekte hingegen nicht. Daher sind Blattobjekte immer an unterster Ebene der Baumstruktur.

 

Containertypen in LDAP

c = Root, Country
ou = Organizational Unit
dc = Domain Component

 

Distinguished Name (dn) ¿ Objekte eindeutig identifizieren

dn=¿uid=fritz, ou=mitglieder, ou=fans, dc=deutschland, dc=de¿

 

Mit dem distinguished name lassen sich alle Objekte eindeutig ansprechen. Das hier genannte Beispiel spiegelt die Baumstruktur wieder, wobei de der oberste Container ist.

 

Weiteres Beispiel:
LDAP://192.168.57.3/cn=George Mallory,ou=Bergsteiger,dc=himlaya,dc=net

slapd - Konfiguration eines OpenLDAP-Servers

Auszug /etc/openldap/slapd.conf

# Schema einbinden. Dieses definiert die Parameter
# welches die Objekte enthalten müssen So legt man fest,
# welche Informationen diese enthalten sollen.
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema


# PID und Argumente von slapd definieren
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args

# ACLs (Access Controll Lists) definieren, um den Zugriff
# auf Objekte zu steuern
default access none

access to attr=password
by dn=¿cn=Admins, dc=ZuHause, dc=local¿ write
by self write
by * auth


# auth = Nutzer darf sich authentifizieren
# none = kein Zugriff, compare = Vergleichen erlaubt
# write, read, delete = schreiben, lesen, löschen

# Suffix ist die Domäne, für die der LDAP-Server zuständig ist
suffix "dc=zuHause, dc=local"

# Der Benutzer rootdn ist sozusagen Root für das LDAP-Verzeichnis.
rootdn "cn=root, dc=zuHause, dc=local"

# Passwort von LDAP-Root-User
rootpw secret

# Hier werden die LDAP-Datenbanken angelegt
directory = /var/lib/ldap

# Database legt den Typ der erzeugenden Datenbank fest
database bdm

# Bestimmt, welche Indizes erzeugt werden sollen.
index objectClass eq

LDAP-Client-Konfiguration

# /etc/ldap.conf

# Der zu verwendende LDAP-Server
LDAP-SRV 192.112.36.10

# Distinguished Name der Search-Base
base dc=zuHause,dc=local

Tools für den Zugriff auf den Directory-Service-Server

LDIF-Datei

LDIF steht für LDAP Data Interchange Format und ist ein ASCII-basierendes Dateiformat zur Darstellung von Informationen aus einem LDAP-Verzeichnis. Damit man nicht mit bestimmten Programmen die wildesten Kommandozeilen tippen muss, trägt man die Werte in eine ldif-Datei.

Beispiel LDIF-Datei

dn: dc=zuHause, dc=local
objectclass: organization
objectclass: top
o: Structure Net
l: Hamburg
postalcode: 21033
streetadress: Billwiese 22

ldapadd -x -D "cn=Admins, dc=zuHause, dc=local" -W -f DATEI.ldif = LDIF-Datei ins Vrz. aufnehmen

Wichtige LDAP-Programme

ldapadd = Objekte hinzufügen
ldapadelete = Objekte löschen
ldapsearch = Nach Objekten suchen
ldapmodify = Objekte ändern
ldappasswd = Passwörter ändern