LDAP (Lightweight Directory Access Protocol) ist ein Protokoll, das es ermöglicht, Verzeichnisinformationen über ein Netzwerk abzurufen und zu verwalten. OpenLDAP ist eine beliebte Open-Source-Implementierung dieses Protokolls und wird häufig zur zentralisierten Verwaltung von Benutzerdaten in Netzwerken verwendet. In diesem Blog-Beitrag erfährst du, wie du einen OpenLDAP-Server auf einem Linux-System installierst und konfigurierst.
Was ist LDAP?
LDAP wird häufig verwendet, um Benutzerdaten, Passwörter, Gruppen, Geräte und andere Verzeichnisinformationen in einem zentralen Verzeichnis zu speichern. Dieses Verzeichnis kann dann von verschiedenen Clients wie E-Mail-Servern, File-Servern oder Authentifizierungsdiensten abgefragt werden.
Vorteile von LDAP
- Zentralisierte Benutzerverwaltung: Benutzerkonten und Berechtigungen können auf einem einzigen Server verwaltet werden, anstatt auf mehreren Systemen.
- Skalierbarkeit: LDAP kann große Datenmengen effizient verarbeiten, wodurch es sich gut für Unternehmensumgebungen eignet.
- Interoperabilität: OpenLDAP kann mit vielen verschiedenen Plattformen und Diensten wie Microsoft Active Directory, E-Mail-Servern oder Datei-Servern verwendet werden.
Voraussetzungen
Bevor du beginnst, stelle sicher, dass dein System die folgenden Anforderungen erfüllt:
- Ein Linux-Server mit Root-Zugriff oder
sudo
-Rechten (z. B. Ubuntu, Debian, CentOS). - Eine stabile Netzwerkverbindung.
- Grundkenntnisse in der Linux-Kommandozeile.
Schritt 1: Installation von OpenLDAP
Zunächst musst du die benötigten OpenLDAP-Pakete installieren.
Für Debian/Ubuntu:
sudo apt update
sudo apt install slapd ldap-utils
Für CentOS/RHEL:
sudo yum install openldap-servers openldap-clients
Während der Installation wirst du aufgefordert, das Admin-Passwort für den LDAP-Server zu konfigurieren. Notiere dieses Passwort, da es später benötigt wird.
Start und Aktivierung des OpenLDAP-Dienstes
Nach der Installation kannst du den LDAP-Dienst starten und so konfigurieren, dass er beim Booten automatisch startet:
Für Debian/Ubuntu:
sudo systemctl start slapd
sudo systemctl enable slapd
Für CentOS/RHEL:
sudo systemctl start slapd
sudo systemctl enable slapd
Schritt 2: Grundkonfiguration von OpenLDAP
Nach der Installation kannst du die OpenLDAP-Datenbank und die grundlegende Konfiguration festlegen. Dazu gehören der Domänenname, der Basis-DN (Distinguished Name) und die LDAP-Administrationsdetails.
Reconfiguration (Ubuntu/Debian)
Auf Debian/Ubuntu kannst du die LDAP-Konfiguration jederzeit neu konfigurieren, indem du folgendes ausführst:
sudo dpkg-reconfigure slapd
Du wirst durch die folgenden Schritte geleitet:
- Ohne Konfigurationsdatei neu konfigurieren: Wähle „Nein“.
- DNS-Domänenname: Gib den Namen deiner Organisation oder deiner Domäne ein, z. B.
example.com
. - Organisation: Wähle den Namen deiner Organisation, z. B.
Example Corp
. - Administrator-Passwort: Setze ein Passwort für den LDAP-Administrator.
- Datenbank löschen und neu anlegen: Wähle „Nein“, wenn du die aktuelle Datenbank beibehalten möchtest.
- Datenbank-Backend: Wähle
MDB
, da es das Standard-Backend ist.
Nach Abschluss dieses Prozesses ist dein LDAP-Server grundlegend eingerichtet.
Schritt 3: Konfiguration von LDAP-Datenbanken und Schemata
Basisverzeichnis erstellen
LDAP-Daten werden in einer hierarchischen Struktur gespeichert, die oft als Directory Information Tree (DIT) bezeichnet wird. Zunächst musst du die Basis-DN festlegen, was üblicherweise dem Domänennamen deines Unternehmens entspricht.
Um eine Organisationseinheit (OU) für Benutzer und Gruppen zu erstellen, kannst du LDIF-Dateien (LDAP Data Interchange Format) verwenden. Diese Dateien beschreiben die Änderungen und Ergänzungen, die du an der LDAP-Datenbank vornehmen möchtest.
Erstelle eine LDIF-Datei, um die Basis-DN und die ersten Organisationseinheiten zu definieren:
sudo nano base.ldif
Inhalt der Datei base.ldif
:
dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Corp
dc: example
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups
In diesem Beispiel haben wir die Basis-DN auf dc=example,dc=com
gesetzt und die Organisationseinheiten People und Groups erstellt.
Nun kannst du diese Informationen in die LDAP-Datenbank importieren:
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f base.ldif
- -x: Verwendet eine einfache Authentifizierung.
- -D: Bindet den Benutzer als LDAP-Administrator (
cn=admin,dc=example,dc=com
). - -W: Fordert zur Eingabe des Passworts auf.
- -f: Liest die LDIF-Datei ein.
Du wirst nach dem LDAP-Admin-Passwort gefragt, das du bei der Installation festgelegt hast.
Schritt 4: Hinzufügen von Benutzern und Gruppen
Nun kannst du Benutzer und Gruppen in dein LDAP-Verzeichnis hinzufügen. Beginnen wir mit der Erstellung einer Benutzergruppe und eines Benutzers.
Erstellen einer Gruppe
Erstelle eine neue LDIF-Datei für die Gruppe:
sudo nano group.ldif
Inhalt der Datei group.ldif
:
dn: cn=admins,ou=Groups,dc=example,dc=com
objectClass: posixGroup
cn: admins
gidNumber: 5000
Führe den Befehl aus, um die Gruppe zu erstellen:
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f group.ldif
Erstellen eines Benutzers
Erstelle eine neue LDIF-Datei für den Benutzer:
sudo nano user.ldif
Inhalt der Datei user.ldif
:
dn: uid=jdoe,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
cn: John Doe
sn: Doe
uid: jdoe
uidNumber: 10000
gidNumber: 5000
homeDirectory: /home/jdoe
loginShell: /bin/bash
userPassword: {SSHA}5en6G6MezRroT3XKqkdPOmY/BfQ=
gecos: John Doe
In diesem Beispiel erstellen wir den Benutzer jdoe
mit der Gruppe admins
(durch gidNumber: 5000
referenziert).
Führe den Befehl aus, um den Benutzer hinzuzufügen:
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f user.ldif
Der Benutzer ist jetzt im LDAP-Verzeichnis gespeichert.
Schritt 5: LDAP-Suchabfragen ausführen
Um sicherzustellen, dass die Benutzer- und Gruppeneinträge korrekt erstellt wurden, kannst du mit dem Tool ldapsearch
Suchabfragen durchführen:
ldapsearch -x -LLL -b "dc=example,dc=com" "uid=jdoe"
Dies gibt Informationen über den Benutzer jdoe
im LDAP-Verzeichnis zurück.
Schritt 6: Integration von TLS/SSL (optional)
Für eine sichere LDAP-Kommunikation ist es empfehlenswert, TLS/SSL zu verwenden. Dafür musst du Zertifikate generieren und den LDAP-Server entsprechend konfigurieren.
- Erstelle ein selbstsigniertes SSL-Zertifikat (oder verwende ein offizielles Zertifikat):
sudo openssl req -new -x509 -days 365 -nodes -out /etc/ldap/ssl/ldap.pem -keyout /etc/ldap/ssl/ldap-key.pem
2. Bearbeite die Datei /etc/ldap/slapd.d/cn=config.ldif
und füge die Pfade zu den Zertifikaten hinzu:
olcTLSCertificateFile: /etc/ldap/ssl/ldap.pem
olcTLSCertificateKeyFile: /etc/ldap/ssl/ldap-key.pem
3. Starte den LDAP-Dienst neu:
sudo systemctl restart slapd
Fazit
Die Konfiguration eines OpenLDAP-Servers ermöglicht die zentrale Verwaltung von Benutzern und Gruppen in einem Netzwerk. Mit der richtigen Einrichtung kannst du die Verwaltung von Benutzerkonten vereinfachen und zentralisieren, was in Unternehmensumgebungen besonders nützlich ist. Dieser Leitfaden gibt dir einen soliden Einstieg in die Einrichtung und Konfiguration eines OpenLDAP-Servers.