OpenLDAP Server Installation und Konfiguration auf Ubuntu | Enjyn Gruppe
Hallo Welt
→
→
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

330 Dokumentationen verfügbar

Wissensdatenbank

OpenLDAP Server Installation Konfiguration

Zuletzt aktualisiert: 14.07.2026 um 12:29 Uhr

OpenLDAP Server Installation und Konfiguration auf Ubuntu

Was ist LDAP?

LDAP (Lightweight Directory Access Protocol, RFC 4511) ist ein offenes Protokoll für den Zugriff auf Verzeichnis-Services. Es speichert Informationen über Benutzer, Gruppen, Geräte und andere Ressourcen in einer hierarchischen Baumstruktur und ermöglicht zentrale Benutzerverwaltung und Single-Sign-On (SSO). OpenLDAP ist die am weitesten verbreitete Open-Source LDAP-Implementierung.

Anwendungsfälle für LDAP

  • Zentrale Benutzerverwaltung: Ein Directory für alle Systeme, Anwendungen und Services
  • Single-Sign-On (SSO): Einmaliges Anmelden für multiple Services und Anwendungen
  • Active Directory Alternative: Open-Source Lösung als Alternative zu Microsoft Active Directory
  • Linux System Integration: PAM-basierte User Authentifizierung auf Linux-Systemen
  • Email-Server Integration: Outlook, Postfix, Dovecot und andere nutzen LDAP für Adressen
  • VoIP/Telefon-Systeme: Viele IP-PBX-Systeme integrieren mit LDAP für Verzeichnisse
  • WiFi Access Control: RADIUS mit LDAP Backend für WiFi-Authentifizierung

LDAP-Grundkonzepte und Terminologie

LDAP verwendet eine hierarchische Baumstruktur zum Speichern von Daten:

  • DN (Distinguished Name): Eindeutiger vollständiger Name eines Objekts im Baum (z.B. cn=John Doe,ou=People,dc=example,dc=com)
  • DC (Domain Component): Komponente der Domain (dc=example, dc=com - entspricht example.com)
  • OU (Organizational Unit): Abteilung, Kategorie oder Container (ou=People, ou=Groups, ou=Departments)
  • CN (Common Name): Der tatsächliche Name des Objekts (z.B. cn=John Doe oder cn=admin-group)
  • Schema: Definition von erlaubten Attributen und Objektklassen (z.B. inetOrgPerson, groupOfNames)
  • Attributes: Spezifische Daten-Felder (z.B. mail, phoneNumber, loginShell)
  • ObjectClass: Art des Objekts (z.B. person, organizationalUnit, groupOfNames)
💡 Tipp: OpenLDAP mit TLS ist ideal für sichere Authentifizierung. Kombinieren Sie es mit Keycloak oder Kanidm für OAuth2, SAML und moderneSSO-Funktionen.

Installation von slapd und ldap-utils

Aktualisieren Sie die Paketlisten und installieren Sie OpenLDAP Server und Tools:

sudo apt update
sudo apt install -y slapd ldap-utils

Der slapd-Service wird automatisch installiert und gestartet. Die ldap-utils enthalten client-seitige Tools zur Verwaltung.

Initiale Konfiguration mit dpkg-reconfigure

Führen Sie die interaktive Konfiguration aus:

sudo dpkg-reconfigure slapd

Folgende Fragen werden gestellt:

Omit OpenLDAP server configuration? [no] → no
DNS domain name: example.com
Organization name: Example Inc.
Administrator password: [enter password twice]
Database backend to use: [MDB]
Do you want the database to be removed when slapd is purged? [yes] → no (Backups wegen!)
Move old database? [yes] → yes

Nach der Konfiguration wird ein initialer LDAP-Verzeichnis mit Basis-DN "dc=example,dc=com" erstellt.

Überprüfung der Installation

Überprüfen Sie, ob der LDAP-Server läuft:

sudo systemctl status slapd

Überprüfen Sie die aktuellen Verzeichnis-Inhalte:

sudo slapcat

Dies zeigt alle Einträge in LDIF-Format (LDAP Data Interchange Format).

Suche durchführen mit ldapsearch:

ldapsearch -x -b dc=example,dc=com -H ldap:///

Dies zeigt alle LDAP-Einträge in Ihrer Basis-DN.

Schritt 1: Organizational Units (OUs) erstellen

Erstellen Sie eine LDIF-Datei zur Strukturierung des Verzeichnisses:

sudo nano /tmp/create_ous.ldif

Fügen Sie folgende Inhalte hinzu:

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
description: Users

dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups
description: Groups

dn: ou=Services,dc=example,dc=com
objectClass: organizationalUnit
ou: Services
description: Service Accounts

Importieren Sie die OUs in das LDAP-Verzeichnis:

sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f /tmp/create_ous.ldif

Geben Sie das Admin-Passwort ein, das Sie bei der dpkg-reconfigure gesetzt haben.

Schritt 2: Benutzer (Users) anlegen

Erstellen Sie eine LDIF-Datei mit Benutzerinformationen:

sudo nano /tmp/create_users.ldif
dn: uid=jdoe,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: jdoe
cn: John Doe
sn: Doe
givenName: John
mail: jdoe@example.com
loginShell: /bin/bash
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/jdoe
userPassword: {SSHA}HASHED_PASSWORD_HERE

dn: uid=asmith,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: asmith
cn: Alice Smith
sn: Smith
givenName: Alice
mail: asmith@example.com
loginShell: /bin/bash
uidNumber: 10002
gidNumber: 10002
homeDirectory: /home/asmith
userPassword: {SSHA}HASHED_PASSWORD_HERE

Passwörter hashen

Generieren Sie sichere SSHA-Hashes für die Passwörter:

slappasswd -h {SSHA}

Geben Sie das gewünschte Passwort ein und erhalten Sie einen Hash. Ersetzen Sie HASHED_PASSWORD_HERE mit diesem Hash.

Importieren Sie die Benutzer:

sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f /tmp/create_users.ldif

Schritt 3: Gruppen erstellen

Erstellen Sie LDIF-Datei für Gruppen:

sudo nano /tmp/create_groups.ldif
dn: cn=developers,ou=Groups,dc=example,dc=com
objectClass: groupOfNames
cn: developers
description: Development Team
member: uid=jdoe,ou=People,dc=example,dc=com
member: uid=asmith,ou=People,dc=example,dc=com

dn: cn=admin,ou=Groups,dc=example,dc=com
objectClass: groupOfNames
cn: admin
description: System Administrators
member: uid=jdoe,ou=People,dc=example,dc=com

Importieren Sie die Gruppen:

sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f /tmp/create_groups.ldif

Schritt 4: Benutzer verändern und aktualisieren

Um einen Benutzer zu modifizieren, erstellen Sie eine LDIF-Datei mit Änderungen:

sudo nano /tmp/modify_user.ldif
dn: uid=jdoe,ou=People,dc=example,dc=com
changetype: modify
replace: mail
mail: john.doe@newcompany.com

Wenden Sie die Änderungen an:

sudo ldapmodify -x -D cn=admin,dc=example,dc=com -W -f /tmp/modify_user.ldif

Schritt 5: Benutzer löschen

Löschen Sie einen Benutzer aus dem Verzeichnis:

sudo ldapdelete -x -D cn=admin,dc=example,dc=com -W "uid=jdoe,ou=People,dc=example,dc=com"

Schritt 6: Beispiele für LDAP-Suchen

Suchen Sie nach allen Benutzern in der People-OU:

ldapsearch -x -b ou=People,dc=example,dc=com

Suchen Sie nach einem spezifischen Benutzer:

ldapsearch -x -b ou=People,dc=example,dc=com "(uid=jdoe)"

Suchen Sie nach Benutzern mit bestimmtem Namen:

ldapsearch -x -b ou=People,dc=example,dc=com "(cn=John*)"

Suchen Sie nach Gruppen:

ldapsearch -x -b ou=Groups,dc=example,dc=com "(objectClass=groupOfNames)"

Suchen Sie nach Benutzern in einer bestimmten Gruppe:

ldapsearch -x -b ou=People,dc=example,dc=com "memberOf=cn=developers,ou=Groups,dc=example,dc=com"

Schritt 7: TLS/SSL Konfiguration

Für produktive Umgebungen sollten Sie TLS/SSL aktivieren:

SSL-Zertifikat generieren

Verwenden Sie Let's Encrypt oder generieren Sie ein selbstsigniertes Zertifikat:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/ldap/private/ldap-server.key \
  -out /etc/ldap/certs/ldap-server.crt

Setzen Sie korretto Berechtigungen:

sudo chown openldap:openldap /etc/ldap/private/ldap-server.key
sudo chmod 600 /etc/ldap/private/ldap-server.key

LDAP-Konfiguration für TLS anpassen

Bearbeiten Sie /etc/ldap/ldap.conf:

sudo nano /etc/ldap/ldap.conf

Fügen Sie hinzu:

TLS_CACERT /etc/ldap/certs/ldap-server.crt

Modifizieren Sie die slapd-Konfiguration:

sudo nano /etc/ldap/slapd.d/cn=config/olcDatabase=\{1\}mdb.ldif

Oder verwenden Sie ldapmodify:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// <

Konfigurieren Sie slapd für LDAPS (LDAP über TLS) auf Port 636. Bearbeiten Sie /etc/default/slapd:

sudo nano /etc/default/slapd

Ändern Sie SLAPD_SERVICES zu:

SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"

Starten Sie slapd neu:

sudo systemctl restart slapd

Testen Sie LDAPS-Verbindung:

ldapsearch -x -b dc=example,dc=com -H ldaps://localhost:636

Schritt 8: PAM LDAP konfigurieren für Linux-Systeme

Um LDAP-Benutzer auf Linux-Systemen anmelden zu können, installieren Sie PAM-LDAP:

sudo apt install -y libpam-ldapd nslcd

Konfigurieren Sie nslcd:

sudo dpkg-reconfigure nslcd

Beantworten Sie die Fragen: - LDAP server: ldap://ldap.example.com - LDAP base: dc=example,dc=com - Welche Services sollen nslcd verwenden: [Enter für alle]

Aktivieren Sie PAM-LDAP Module:

sudo pam-auth-update

Wählen Sie "LDAP authentication" aus der Liste.

Überprüfen Sie /etc/nsswitch.conf:

sudo nano /etc/nsswitch.conf

Es sollte enthalten:

passwd: files ldap
group: files ldap
shadow: files ldap

Schritt 9: Testen der LDAP-Login

Testen Sie, ob LDAP-Benutzer sich anmelden können:

sudo su - jdoe

Dies sollte den jdoe-Benutzer von LDAP authentifizieren und anmelden. Das Home-Directory wird automatisch erstellt (wenn pam_mkhomedir konfiguriert ist).

Überprüfen Sie /var/log/auth.log auf Login-Versuche:

sudo tail -f /var/log/auth.log | grep ldap

Schritt 10: LDAP-Backup und Wiederherstellung

Backup erstellen

Sicherung des gesamten LDAP-Verzeichnisses:

sudo slapcat -l /backups/ldap-backup.ldif

Oder erstellen Sie ein Backup der Konfiguration:

sudo slapcat -b cn=config -l /backups/ldap-config-backup.ldif

Wiederherstellung aus Backup

Stoppen Sie slapd und löschen Sie die alte Datenbank:

sudo systemctl stop slapd
sudo rm -rf /var/lib/ldap/*

Stellen Sie aus der LDIF-Datei wieder her:

sudo slapadd -l /backups/ldap-backup.ldif

Setzen Sie Berechtigungen:

sudo chown -R openldap:openldap /var/lib/ldap/

Starten Sie slapd:

sudo systemctl start slapd

Schritt 11: LDAP Account Policies (ppolicy)

Implementieren Sie Passwort-Policies mit dem ppolicy-Overlay:

Erstellen Sie eine Policy-LDIF:

sudo nano /tmp/ppolicy.ldif
dn: cn=default,ou=policies,dc=example,dc=com
objectClass: device
objectClass: pwdPolicy
cn: default
pwdMaxAge: 7776000
pwdInHistory: 5
pwdMinLength: 8
pwdExpireWarning: 604800
pwdLockout: TRUE
pwdLockoutDuration: 1800
pwdMaxFailure: 5
pwdMustChange: TRUE
pwdAllowUserChange: TRUE

Importieren Sie die Policy:

sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f /tmp/ppolicy.ldif

Fehlerbehebung

Error 32: No such object

Der Basis-DN existiert nicht. Überprüfen Sie:

sudo slapcat | head -20

Stellen Sie sicher, dass die dc=example,dc=com-Struktur existiert.

Error 49: Invalid credentials

Passwort oder DN ist falsch. Überprüfen Sie: - Korrekte Admin-DN: cn=admin,dc=example,dc=com - Korrektes Passwort - User existiert mit ldapsearch

Error 34: Invalid DN syntax

DN hat falsche Syntax. Überprüfen Sie auf Tippfehler in LDIF-Dateien.

LDAP Server antwortet nicht

sudo systemctl status slapd
sudo tail -f /var/log/syslog | grep slapd

Vergleich: OpenLDAP vs Active Directory vs Kanidm

Feature OpenLDAP Microsoft Active Directory Kanidm
Lizenzskosten Kostenlos (Open Source) Teuer (Pro Benutzer) Kostenlos (Open Source)
OS-Support Linux, Unix, macOS, BSD Windows Server nur Linux, Linux-fokussiert
Komplexität Setup Moderat Komplex Einfach
LDAP Support Native (ist LDAP) LDAP kompatibel LDAP API verfügbar
OAuth2/OIDC Via Keycloak/etc Ja (mit Extra-Config) Native
Scalability Gut Excellent Gut (modern)
Best für Linux/Unix-Umgebungen Windows-dominierte Umgebungen Modern Hybrid-Cloud Umgebungen

Zusammenfassung

Sie haben nun einen vollständigen OpenLDAP Server mit Benutzern, Gruppen und Policies konfiguriert. OpenLDAP ist eine mächtige und flexible Lösung für zentrale Benutzerverwaltung, besonders in Linux/Unix-Umgebungen. Die Kombination mit Keycloak oder anderen SSO-Systemen ermöglicht moderne OAuth2/SAML-Integration mit Legacy-Anwendungen.

Wichtige nächste Schritte: - TLS/SSL aktivieren für Produktionsumgebungen - Regelmäßige Backups durchführen - PAM-LDAP auf allen Clients konfigurieren - Mit Keycloak/FreeIPA für erweiterte SSO-Features integrieren

Texterstellung mit KI-Unterstützung

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
LLMs können Fehler machen. Ihre Nachrichten werden an Google Gemini weitergeleitet.
120