LDAP (Lightweight Directory Access Protocol) ist ein Protokoll, das für den Zugriff auf und die Verwaltung von verteilten Verzeichnisdiensten verwendet wird. LDAP kann Benutzerdaten speichern und zentralisierte Authentifizierung bieten, was besonders in großen Netzwerken nützlich ist.
Dieses Tutorial führt dich durch die Konfiguration eines LDAP-Servers auf einem Linux-basierten System (hier Ubuntu 20.04 als Beispiel) und wie du Clients für die Authentifizierung darüber konfigurierst.
Schritte der LDAP-Konfiguration:
- Vorbereitung
- Installation des LDAP-Servers
- LDAP-Konfiguration
- LDAP-Datenbankeinträge anlegen
- Konfiguration eines LDAP-Clients
1. Vorbereitung
Bevor du beginnst, stelle sicher, dass dein System aktualisiert ist:
sudo apt update && sudo apt upgrade -y
Prüfe auch, ob dein Hostname richtig konfiguriert ist, da LDAP diesen verwendet:
hostnamectl set-hostname ldap-server
2. Installation des LDAP-Servers
Für die Installation des OpenLDAP-Servers und zugehöriger Tools verwende:
sudo apt install slapd ldap-utils -y
Während der Installation wirst du nach einem LDAP-Administratorpasswort gefragt. Wähle ein starkes Passwort, da dies für administrative Aufgaben in LDAP benötigt wird.
Um die Installation zu konfigurieren, führe den folgenden Befehl aus:
sudo dpkg-reconfigure slapd
Antworten auf die Fragen:
- DNS-Domänenname: Gib den vollständigen Domainnamen ein (z. B.
example.com
). - Organisation: Gib den Namen deiner Organisation ein.
- Administratorpasswort: Gib das Passwort ein, das du während der Installation festgelegt hast.
- Datenbank löschen: Wähle „Nein“.
- Datenbank mit HDB ersetzen: Wähle „Ja“.
- LDAPS aktivieren: Wähle „Nein“.
- Datenbank initial befüllen: Wähle „Ja“.
3. LDAP-Konfiguration
Die LDAP-Konfiguration wird in einer Datenbank (cn=config
) gespeichert. Standardmäßig werden Dateien unter /etc/ldap/slapd.d/
gespeichert. Falls du Änderungen an der Konfiguration vornehmen musst, kannst du dies mit ldapmodify
oder direkt über diese Konfigurationsdateien tun.
Überprüfen der LDAP-Konfiguration:
Um sicherzustellen, dass der LDAP-Dienst läuft, überprüfe seinen Status:
sudo systemctl status slapd
Du kannst auch überprüfen, ob du über ldapsearch
auf LDAP zugreifen kannst:
ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=com
4. LDAP-Datenbankeinträge anlegen
Jetzt erstellen wir einige LDAP-Einträge. Zunächst wird eine LDIF-Datei (LDAP Data Interchange Format) benötigt, um eine Organisationseinheit (OU) und einen Benutzer hinzuzufügen.
Beispiel LDIF-Datei:
Erstelle eine Datei base.ldif
mit folgendem Inhalt:
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups
dn: uid=johndoe,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
sn: Doe
givenName: John
cn: John Doe
uid: johndoe
userPassword: {SSHA}hashed_password_here
mail: johndoe@example.com
Einfügen der Daten in LDAP:
Füge diese LDIF-Datei in den LDAP-Server ein:
sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f base.ldif
Die Option -D
gibt den LDAP-Admin an, während -W
das Passwort abfragt.
Um die Einträge zu überprüfen, kannst du wieder ldapsearch
verwenden:
ldapsearch -x -LLL -b dc=example,dc=com 'uid=johndoe'
5. Konfiguration eines LDAP-Clients
Sobald der LDAP-Server konfiguriert ist, kannst du Linux-Clients so einrichten, dass sie Benutzerinformationen über LDAP beziehen. Dazu benötigst du die Pakete libnss-ldap
, libpam-ldap
, ldap-utils
, und nslcd
.
Installiere diese Pakete auf dem Client:
sudo apt install libnss-ldap libpam-ldap ldap-utils nslcd -y
Während der Installation wirst du nach der LDAP-Server-URL gefragt (ldap://ldap.example.com/
), sowie nach der Suchbasis (z. B. dc=example,dc=com
).
NSS-Konfiguration
Bearbeite die Datei /etc/nsswitch.conf
und stelle sicher, dass die Zeilen passwd
, group
, und shadow
LDAP enthalten:
passwd: compat ldap
group: compat ldap
shadow: compat ldap
PAM-Konfiguration
Bearbeite /etc/pam.d/common-session
und füge die folgende Zeile hinzu, um die Heimverzeichnisse für LDAP-Benutzer automatisch zu erstellen:
session required pam_mkhomedir.so skel=/etc/skel umask=077
nslcd konfigurieren
Konfiguriere den Dienst nslcd, indem du die Datei /etc/nslcd.conf
anpasst und sicherstellst, dass die LDAP-Server-Adresse und Suchbasis korrekt sind:
uri ldap://ldap.example.com/
base dc=example,dc=com
Starte nslcd dann neu:
sudo systemctl restart nslcd
6. Testen des LDAP-Clients
Du kannst testen, ob ein Benutzer sich mit LDAP authentifizieren kann, indem du dich als dieser Benutzer einloggst:
su - johndoe
Falls alles korrekt konfiguriert ist, solltest du dich als johndoe
anmelden können, obwohl dieser Benutzer nicht lokal auf dem System vorhanden ist.
Fazit
In diesem Tutorial hast du gelernt, wie du einen OpenLDAP-Server auf einem Linux-System installierst, ihn konfigurierst und wie du Clients für die Authentifizierung über LDAP einrichtest. LDAP ist ein leistungsstarkes Werkzeug, das in großen Netzwerken für zentrale Authentifizierung und Verzeichnisdienste genutzt wird.