Einen OpenLDAP-Server konfigurieren

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.

  1. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert