Benutzer-Werkzeuge

Webseiten-Werkzeuge


ldap-server

LDAP-Server

Der LDAP-Server wird so eingerichtet, daß er zur Namensauflösung verwendet werden kann, als Ersatz/Erweiterung der /etc/hosts.

LDAP-Browser Empfehlungen

Eclipse Directory Studio
Wohl der beste kostenfreie LDAP-Browser (Java wird benötigt): Eclipse Directory Studio (von Apache.org)

JXplorer
Guter kostenfreier LDAP-Browser (Java nötig): JXplorer

Softerra LDAP Administartor
Kostenpflichtig, aber verdammt gut (nur für Windows).

LDAP-Server einrichten

ACHTUNG:
Diese Beispiele beinhalten keine SSL/TLS-verschlüsselung. Mehr zum Thema Verschlüsselung im OpenLDAP Reference Manual.

Benötigte Pakete

> aptitude install slapd ldap-utils

Weitere Schemata

Um Hostnamen über LDAP auflösen zu können, werden folgende zusätzliche Schemata benötigt.

> ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
> ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif

Weiterführendes dazu hier: Ubuntu OpenLDAP Wiki

Administrativer Account für cn=config

Damit man nicht nur als root, sondern auch per LDAP-Browser die Konfigurationen des LDAP-Servers administrieren kann, wird mit folgendem LDIF (admin.ldif) ein entsprechender Account im LDAP angelegt.

Zugangsdaten

Bind DN: cn=admin,cn=config
Passwort: x (kleines x)
Base DN: cn=config

admin.ldif

###########################################################
# REMOTE CONFIGURATION DEFAULTS
###########################################################
# Some defaults need to be added in order to allow remote 
# access by DN cn=admin,cn=config to the LDAP config 
# database. Otherwise only local root will 
# administrative access.

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=admin,cn=config

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}8UADnwyNyz8s+PHr+HCiX98tZC2LzvrS
> ldapadd -Y EXTERNAL -H ldapi:/// -f admin.ldif

Passwort-Hash erzeugen

Den o.g. PW-Hash kann man per slappasswd ändern.

> slappasswd 
New password: 1234              (Bleibt bei der Eingabe verborgen)
Re-enter new password: 1234
{SSHA}+TGx82Jc7Mp5TgWJVnpOSFHaLaEHUBoq

Alternativ kann man Klartext-Passwörter verwenden → unsicher!

Base DN anlegen

Um Daten im LDAP zu speichern muß eine Base DN angelegt werden, unterhalb derer sich die Daten dann befinden.

Dazu weist man den LDAP-Server an das entsprechende Modul für das gewünschte Backend einzubinden und erzeugt innerhalb dieses Backends seine Base DN.

Als Backend soll HDB (Hierarchical Berkeley DB) verwendet werden.

back_hdb.ldif

# increase loglevel
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats

# load hdb module
dn: cn=module,cn=config
objectClass: olcModuleList
objectClass: olcConfig
objectClass: top
cn: module
olcModuleLoad: /usr/lib/ldap/back_hdb.la

# initialize base dn
dn: olcDatabase=hdb,cn=config
objectClass: olcHdbConfig
objectClass: olcDatabaseConfig
objectClass: olcConfig
objectClass: top
olcDatabase: hdb
olcSuffix: dc=domain,dc=de
olcAccess: to * by * write
olcRootDN: cn=admin,dc=domain,dc=de
olcDbDirectory: /var/lib/ldap/
olcDbIndex: objectClass eq
olcDbIndex: cn,sn,uid pres,eq,approx,sub
olcRootPW: {SSHA}8UADnwyNyz8s+PHr+HCiX98tZC2LzvrS
> ldapadd -Y EXTERNAL -H ldapi:/// -f back_hdb.ldif

ACHTUNG:
Die verwerndete ACL olcAccess: to * by * write ist unsicher, da jeder LDAP-Benutzer Schreibrechte auf alles hat und sollte den Gegebenheiten entsprechend modifiziert werden. Eine Abhandlung über ACLs würde den Rahmen dieses Wiki-Eintrags sprengen. Mehr zum Thema ACLs im OpenLDAP Reference Manual.

Zugangsdaten Admin

Bind DN: cn=admin,dc=domain,dc=de
Passwort: x (kleines x)
Base DN: dc=domain,dc=de

Base DN initialisieren

Damit man den LDAP-Server sinnvoll nutzen kann, müssen Daten rein.

init.ldif*

dn: dc=domain,dc=de
objectclass: dcObject
objectclass: organization
o: b2c.de GmbH
dc: domain 

dn: ou=hosts,dc=domain,dc=de
changetype: add
objectclass: organizationalUnit
ou: hosts

dn: cn=mx.domain.de,ou=hosts,dc=domain,dc=de
cn: mx.domain.de
cn: mx1.domain.de
ipHostNumber: 192.168.0.148
objectClass: ipHost
objectClass: device

Die IP 192.168.0.148 ist die IP des Mailservers mx.domain.de.

> ldapadd -Y EXTERNAL -H ldapi:/// -f init.ldif

Die Base DN wird mit einem eintrag versehen (dn: dc=domain,dc=de - Typ dcObject und oragnization). Das ist zwingend nötig, da beim Anlegen der Base DN diese anfangs nur "virtuell" existiert und erst "betankt" werden kann, wenn man sie LDAP-konform (wie oben) anlegt.
Des Weiteren werden ein Knoten für Hosts (ou=hosts), sowie ein exemplarischer Eintrag für eine Host ↔ IP Zuordnung angelegt.

Linux Client einrichten

Benötigte Pakete

> aptitude install libnss-ldap

nsswitch.conf

> vi /etc/nsswitch.conf

Die Zeile für die Namensauflösung wie folgt anpassen.

hosts:          files ldap dns

Man beachte das Wörtchen ldap ;)

ldap.conf

> vi /etc/ldap.conf

Folgende Zeilen anpassen bzw. auskommentieren.

base dc=domain,dc=de
uri ldap://192.168.0.232/
nss_base_hosts          ou=hosts,dc=domain,dc=de?one

Beim URI beachten, daß dort die richtige IP des LDAP-Servers steht. Es können mehrere Server angegeben werden, z.B.

uri ldap://10.0.0.1/ ldap://10.0.0.2/
/home/http/wiki/data/pages/ldap-server.txt · Zuletzt geändert: von 127.0.0.1