LDAP auf dem Client

LDAP (Lightweight Directory Access Protocol) ist ein weit verbreitetes Protokoll zur Abfrage und Verwaltung von Verzeichnisdiensten. Es wird oft in Unternehmensumgebungen eingesetzt, um Benutzerkonten zentral zu verwalten. Indem man Linux-Clients so konfiguriert, dass sie ihre Authentifizierungsinformationen von einem LDAP-Server beziehen, kann man das Benutzer-Management in Netzwerken effizienter gestalten. In diesem Blog-Beitrag zeige ich dir, wie du einen Linux-Client für die LDAP-Authentifizierung konfigurierst.

Was ist LDAP?

LDAP ermöglicht es, Informationen (wie Benutzerkonten, Gruppen oder Netzwerkinformationen) in einem Verzeichnisdienst zu speichern und abzurufen. Unternehmen nutzen LDAP oft in Verbindung mit Diensten wie OpenLDAP oder Microsoft Active Directory, um Benutzer zentral zu verwalten und die Authentifizierung zu vereinfachen.

Vorteile der LDAP-Authentifizierung

Die Integration von LDAP auf einem Linux-Client bietet mehrere Vorteile:

  • Zentrale Verwaltung von Benutzerkonten: Anstatt Benutzer auf jedem Rechner separat zu erstellen, können Benutzerkonten zentral im LDAP-Verzeichnis verwaltet werden.
  • Single Sign-On (SSO): Benutzer müssen sich nur einmal authentifizieren, um Zugriff auf alle mit LDAP integrierten Dienste zu erhalten.
  • Vereinfachte Benutzerverwaltung: Änderungen an Benutzerkonten werden sofort systemweit angewendet.

Voraussetzungen

Bevor du mit der Konfiguration des LDAP-Clients beginnst, stelle sicher, dass du die folgenden Voraussetzungen erfüllst:

  • Ein funktionierender LDAP-Server (zum Beispiel OpenLDAP oder Active Directory).
  • Der LDAP-Server sollte korrekt konfiguriert und zugänglich sein.
  • Ein Linux-System (Debian, Ubuntu, CentOS, etc.) mit Root-Zugriff oder sudo-Rechten.

Schritt 1: Installation der benötigten Pakete

Zuerst musst du sicherstellen, dass dein System alle erforderlichen Pakete installiert hat, um die LDAP-Authentifizierung zu unterstützen. Die erforderlichen Pakete sind in der Regel:

  • libnss-ldap: Für die Abfrage des LDAP-Verzeichnisses und zur Verwendung von Benutzern und Gruppen.
  • libpam-ldap: Zur Verwendung von LDAP für die Authentifizierung (PAM-Integration).
  • nscd oder sssd: Für Caching von Benutzerdaten (optional, aber empfohlen).

Für Debian/Ubuntu-basierte Systeme:

sudo apt update
sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

Für CentOS/RHEL-basierte Systeme:

sudo yum install authconfig nss-pam-ldapd nscd

Während der Installation auf Debian/Ubuntu wirst du nach der LDAP-Server-Adresse und weiteren Konfigurationsdaten gefragt. Du kannst diese Eingaben vorerst überspringen und später manuell anpassen, da wir die Konfiguration detailliert durchgehen werden.

Schritt 2: Konfiguration des LDAP-Clients

Anpassung der NSS-Konfiguration

Das Name Service Switch (NSS)-System ermöglicht es, Benutzerdaten aus verschiedenen Quellen wie lokalen Dateien oder LDAP abzufragen. Um LDAP als Quelle hinzuzufügen, musst du die Datei /etc/nsswitch.conf anpassen.

Öffne die Datei:

sudo nano /etc/nsswitch.conf

Suche die Zeilen für passwd, group und shadow und füge ldap hinzu. Der Abschnitt sollte am Ende so aussehen:

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

Diese Einstellung stellt sicher, dass Benutzerdaten zuerst lokal (über Dateien) und dann über LDAP abgefragt werden.

Anpassung der LDAP-Konfigurationsdatei

Die LDAP-Konfigurationsdatei /etc/ldap/ldap.conf enthält wichtige Informationen zur Verbindung mit dem LDAP-Server. Öffne diese Datei zur Bearbeitung:

sudo nano /etc/ldap/ldap.conf

Füge die folgenden Einträge hinzu oder passe sie an:

BASE    dc=example,dc=com
URI ldap://ldap.example.com
  • BASE: Dies ist der Basis-DN (Distinguished Name), der angibt, wo im LDAP-Verzeichnis gesucht werden soll.
  • URI: Die Adresse des LDAP-Servers (in diesem Beispiel ldap://ldap.example.com).

Authconfig (für CentOS/RHEL)

Falls du CentOS/RHEL verwendest, kannst du die Konfiguration mit dem Befehl authconfig vereinfachen:

sudo authconfig --enableldap --enableldapauth --ldapserver=ldap://ldap.example.com --ldapbasedn="dc=example,dc=com" --update

Dies richtet LDAP für die Authentifizierung und als Quelle für Benutzer- und Gruppendaten ein.

Schritt 3: PAM-Konfiguration für LDAP-Authentifizierung

PAM (Pluggable Authentication Modules) ist für die Authentifizierungsprozesse zuständig. Um LDAP in den Authentifizierungsprozess einzubinden, musst du PAM entsprechend konfigurieren.

Bearbeitung der Datei /etc/pam.d/common-auth (Debian/Ubuntu)

Öffne die Datei:

sudo nano /etc/pam.d/common-auth

Füge die folgende Zeile ein oder stelle sicher, dass sie vorhanden ist:

auth    sufficient      pam_ldap.so

Dies sorgt dafür, dass PAM die LDAP-Authentifizierung als ausreichend betrachtet, solange sie erfolgreich ist.

Bearbeitung der Datei /etc/pam.d/system-auth (CentOS/RHEL)

Für CentOS/RHEL öffnest du die Datei:

sudo nano /etc/pam.d/system-auth

Füge sicherheitshalber pam_ldap.so in den entsprechenden Abschnitten für auth, account, password und session hinzu:

auth       sufficient   pam_ldap.so
account    sufficient   pam_ldap.so
password   sufficient   pam_ldap.so
session    sufficient   pam_ldap.so

Schritt 4: Start und Konfiguration des nscd-Dienstes

Der nscd (Name Service Cache Daemon) beschleunigt den Zugriff auf Benutzerdaten, indem er häufig genutzte Informationen im Cache speichert. Dies ist besonders nützlich bei der Verwendung von LDAP.

Starte den nscd-Dienst:

sudo systemctl start nscd
sudo systemctl enable nscd

Der nscd-Dienst sollte nach dem Neustart des Systems automatisch gestartet werden.

Schritt 5: Test der LDAP-Authentifizierung

Jetzt ist es an der Zeit, die LDAP-Authentifizierung zu testen. Du kannst dies tun, indem du einen LDAP-Benutzer auf dem Client erstellst und dich mit diesem Benutzer am System anmeldest.

Führe den folgenden Befehl aus, um zu überprüfen, ob LDAP-Benutzer erkannt werden:

getent passwd

Wenn die LDAP-Konfiguration korrekt ist, solltest du in der Ausgabe die Benutzereinträge aus dem LDAP-Verzeichnis sehen. Um die Anmeldung zu testen, kannst du dich entweder lokal oder über SSH mit einem LDAP-Benutzer anmelden.

Schritt 6: Debugging und Fehlerbehebung

Falls die LDAP-Authentifizierung nicht funktioniert, kannst du einige Protokolldateien überprüfen:

  • /var/log/auth.log (Debian/Ubuntu)
  • /var/log/secure (CentOS/RHEL)

Diese Logs geben dir Hinweise darauf, ob es Probleme bei der Authentifizierung gibt.

Stelle außerdem sicher, dass der LDAP-Server erreichbar ist. Du kannst mit dem Befehl ldapsearch prüfen, ob der Client eine Verbindung zum Server herstellen kann:

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

Fazit

Die Konfiguration eines Linux-Clients für die LDAP-Authentifizierung erleichtert die zentrale Verwaltung von Benutzerdaten und die Integration in bestehende LDAP-basierte Netzwerkinfrastrukturen. Durch die Verwendung von PAM und NSS kannst du sicherstellen, dass die Benutzerkonten sicher und effizient verwaltet werden.

LDAP bietet nicht nur eine leistungsstarke Möglichkeit, Benutzerkonten zentral zu verwalten, sondern auch die Möglichkeit, mit anderen Diensten wie SSH oder sudo integriert zu werden. Damit ist es ein unverzichtbares Werkzeug in vielen Unternehmensnetzwerken.

Bei Fragen oder Problemen kannst du die Logs und Tools wie ldapsearch zur Fehlerbehebung nutzen.

Schreibe einen Kommentar

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