LDAP (kurz für Lightweight Directory Access Protocol) ist ein Industriestandard und ein weit verbreiteter Satz von Protokollen für den Zugriff auf Verzeichnisdienste.
Ein Verzeichnisdienst ist, einfach ausgedrückt, eine zentralisierte, netzwerkbasierte Datenbank, die für den Lesezugriff optimiert ist. Er speichert und bietet Zugriff auf Informationen, die entweder von Anwendungen gemeinsam genutzt werden müssen oder stark verteilt sind.
Verzeichnisdienste spielen eine wichtige Rolle bei der Entwicklung von Intranet- und Internetanwendungen, da sie die gemeinsame Nutzung von Informationen über Benutzer, Systeme, Netzwerke, Anwendungen und Dienste im gesamten Netzwerk ermöglichen.
Ein typischer Anwendungsfall für LDAP ist die zentrale Speicherung von Benutzernamen und Kennwörtern. Dies ermöglicht es verschiedenen Anwendungen (oder Diensten), sich mit dem LDAP-Server zu verbinden, um Benutzer zu überprüfen.
Nach der Einrichtung eines funktionierenden LDAP-Servers müssen Sie Bibliotheken auf dem Client installieren, um eine Verbindung zu ihm herzustellen. In diesem Artikel zeigen wir, wie man einen LDAP-Client konfiguriert, um eine Verbindung zu einer externen Authentifizierungsquelle herzustellen.
Ich hoffe, dass Sie bereits eine funktionierende LDAP-Serverumgebung haben, falls nicht, richten Sie einen LDAP-Server für LDAP-basierte Authentifizierung ein.
Wie man einen LDAP-Client in Ubuntu und CentOS installiert und konfiguriert
Auf den Client-Systemen müssen Sie ein paar notwendige Pakete installieren, damit der Authentifizierungsmechanismus mit einem LDAP-Server korrekt funktioniert.
Konfigurieren Sie den LDAP-Client unter Ubuntu 16.04 und 18.04
Zunächst müssen Sie die notwendigen Pakete installieren, indem Sie den folgenden Befehl ausführen.
$ sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
Während der Installation werden Sie nach den Details Ihres LDAP-Servers gefragt (geben Sie die Werte entsprechend Ihrer Umgebung an). Beachten Sie, dass das Paket ldap-auth-config, das automatisch installiert wird, die meisten Konfigurationen auf der Grundlage der von Ihnen eingegebenen Daten vornimmt.
Next, enter the name of the LDAP search base, you can use the components of their domain names for this purpose as shown in the screenshot.
Also choose the LDAP version to use and click Ok.
Now configure the option to allow you to make password utilities that use pam to behave like you would be changing local passwords and click Yes to continue..
Next, disable login requirement to the LDAP database using the next option.
Also define LDAP account for root and click Ok.
Next, enter the password to use when ldap-auth-config tries to login to the LDAP directory using the LDAP account for root.
The results of the dialog will be stored in the file /etc/ldap.conf. Wenn Sie Änderungen vornehmen möchten, öffnen Sie diese Datei und bearbeiten Sie sie mit Ihrem bevorzugten Befehlszeileneditor.
Als Nächstes konfigurieren Sie das LDAP-Profil für NSS, indem Sie es ausführen.
$ sudo auth-client-config -t nss -p lac_ldap
Dann konfigurieren Sie das System für die Verwendung von LDAP zur Authentifizierung, indem Sie die PAM-Konfigurationen aktualisieren. Wählen Sie im Menü LDAP und alle anderen benötigten Authentifizierungsmechanismen aus. Sie sollten nun in der Lage sein, sich mit LDAP-basierten Anmeldedaten anzumelden.
$ sudo pam-auth-update
Wenn Sie möchten, dass das Heimatverzeichnis des Benutzers automatisch erstellt wird, dann müssen Sie eine weitere Konfiguration in der common-session PAM-Datei vornehmen.
$ sudo vim /etc/pam.d/common-session
Fügen Sie diese Zeile ein.
session required pam_mkhomedir.so skel=/etc/skel umask=077
Speichern Sie die Änderungen und schließen Sie die Datei. Starten Sie dann den NCSD-Dienst (Name Service Cache Daemon) mit folgendem Befehl neu.
$ sudo systemctl restart nscd$ sudo systemctl enable nscd
Hinweis: Wenn Sie Replikation verwenden, müssen LDAP-Clients auf mehrere in /etc/ldap.conf angegebene Server verweisen. Sie können alle Server in dieser Form angeben:
uri ldap://ldap1.example.com ldap://ldap2.example.com
Dies impliziert, dass die Anfrage eine Zeitüberschreitung erfährt, und wenn der Provider (ldap1.example.com) nicht mehr reagiert, versucht der Consumer (ldap2.example.com) erreicht zu werden, um die Anfrage zu bearbeiten.
Um die LDAP-Einträge für einen bestimmten Benutzer auf dem Server zu überprüfen, führen Sie z.B. den Befehl getent aus.
$ getent passwd tecmint
Wenn der obige Befehl Details des angegebenen Benutzers aus der Datei /etc/passwd anzeigt, ist Ihr Client-Rechner nun für die Authentifizierung beim LDAP-Server konfiguriert, Sie sollten sich mit LDAP-basierten Anmeldeinformationen anmelden können.
LDAP-Client in CentOS 7 konfigurieren
Um die erforderlichen Pakete zu installieren, führen Sie den folgenden Befehl aus. Beachten Sie, dass Sie in diesem Abschnitt, wenn Sie das System als nicht-root administrativer Benutzer betreiben, den sudo-Befehl verwenden, um alle Befehle auszuführen.
# yum update && yum install openldap openldap-clients nss-pam-ldapd
Als nächstes aktivieren Sie das Client-System für die Authentifizierung mit LDAP. Sie können das Dienstprogramm authconfig verwenden, das eine Schnittstelle für die Konfiguration von Systemauthentifizierungsressourcen darstellt.
Führen Sie den folgenden Befehl aus und ersetzen Sie example.com durch Ihre Domäne und dc=example,dc=com durch Ihren LDAP-Domänencontroller.
# authconfig --enableldap --enableldapauth --ldapserver=ldap.example.com --ldapbasedn="dc=example,dc=com" --enablemkhomedir --update
Im obigen Befehl wird mit der Option --enablemkhomedir
bei der ersten Verbindung ein lokales Benutzer-Home-Verzeichnis angelegt, falls keines existiert.
Nachfolgend testen Sie, ob die LDAP-Einträge für einen bestimmten Benutzer vom Server stammen, zum Beispiel für den Benutzer tecmint.
$ getent passwd tecmint
Der obige Befehl sollte Details des angegebenen Benutzers aus der Datei /etc/passwd anzeigen, was bedeutet, dass der Client-Rechner nun für die Authentifizierung mit dem LDAP-Server konfiguriert ist.
Wichtig: Wenn SELinux auf Ihrem System aktiviert ist, müssen Sie eine Regel hinzufügen, um das automatische Erstellen von Home-Verzeichnissen durch mkhomedir zu erlauben.
Weitere Informationen finden Sie in der entsprechenden Dokumentation im OpenLDAP Software Dokumentenkatalog.