OpenLDAP stellt das Anwendungsprotokoll LDAP für Linux zur Verfügung. Man verwendet es meist für eine zentrale Benutzerverwaltung oder als Adressbuch. Der LDAP-Verzeichnisdienst ist eine hierarchische Datenbank, in der strukturierte Objekte abgelegt werden. Jedes Objekt wird mit einer Menge von Attributen ausgestattet, die in einer Objektklasse festgelegt sind. Ein Objekt kann dazu mehreren Objektklassen angehören, um unterschiedliche Eigenschaften auszudrücken.
Alle Anleitungen beziehen sich auf Ubuntu. Bei anderen Distributionen wie Suse, RedHat, Fedora etc. können andere Pakete benötigt werden.
Client anbinden
Hat man einen funktionierenden openLDAP-Server mit eingetragenen Useraccounts, kann man seine Clients relativ einfach über LDAP authentifizieren lassen.
Es werden folgende Pakete zusätzlich benötigt:
- libnss-ldapd
- libpam-ldapd
- auth-client-config
- ldap-auth-client
- ldap-auth-config
- nslcd
- nscd
|
|
Das Paket libpam-ldapd steht erst ab Ubuntu 10.04 zur Verfügung. Für frühere Ubuntu-Versionen muss stattdessen die veraltete libpam-ldap-Bibliothek installiert werden.
Benötigte Pakete installieren und konfigurieren
Man startet mit libnss-ldapd, das ein Name-Service-Switch-Modul (NSS) zur Verfügung stellt, mit dem der LDAP-Server seine Clients mit Benutzer-Accounts, Gruppen, Host-Namen, Aliases und weiteren Informationen, die üblicherweise in Konfigurationsdateien im Verzeichnis /etc abgelegt sind, versorgen kann.
Es öffnet sich ein Konfigurationsdialog, mit dem festgelegt wird, welche Services mittels LDAP-Lookup zugänglich sein sollen. Zumindest die folgenden Services werden benötigt:
- group
- passwd
- shadow
Danach werden die Pakete nslcd und nscd installiert. Die beiden Pakete stellen Dämonen bereit, mittels derer lokale Applikationen (z.B. PAM-Module) die über libnss-ldapd aus dem LDAP-Verzeichnis geholten Informationen entweder direkt oder aus einem Cache abfragen können.
Ohne nslcd ist kein LDAP-authentifizierter Benutzer-Login möglich. PAM bricht ab mit der Fehlermeldung „User not known to the underlying authentication module“ auf der Konsole und „login: pam_env(login:session): No such user!?“ sowie „login: User not known to the underlying authentication module“ im Logfile.
Nach Installation von nslcd öffnet sich wiederum ein Konfigurationsdialog, mit welchem die zu verwendende LDAP-Server-URI (z. B. ldap://127.0.0.1/ oder besser DNS-Namen) und das LDAP-Suffix (also dc=kirkanos,dc=net) festgelegt werden.
Danach müssen noch die Pakete libpam-ldapd und ldap-auth-config installiert werden.
Letzteres installiert automatisch noch die Pakete auth-client-config und ldap-auth-client mit, sofern diese nicht schon auf dem System vorhanden sind. Anschließend müssen die ldap-auth-Pakete noch konfiguriert werden mittels:
|
|
In dem sich öffnenden Dialog legt man die Konfigurationsoptionen fest, die dann in den Dateien /etc/ldap.conf und /etc/ldap.secret abgelegt werden:
LDAP server Uniform Resource Identifier: ldap://xxxx – hier die LDAP-URI des LDAP-Servers eingeben (z. B. 127.0.0.1 oder besser DNS-Namen)
|
|
Spätere Änderungen an der Konfiguration sollten wenn möglich ebenfalls nur mit Hilfe von dpkg-reconfigure ldap-auth-config durchgeführt werden.
Nun müssen noch die Konfigurationsdateien für die mit der Authentifizierung betrauten Systemdatenbanken (vorwiegend von PAM verwaltet) und das Name-Service-Switch-Modul (NSS) angepasst werden. Dafür stehen zwei Tools zur Verfügung:
|
|
Dies passt die Datei /etc/nsswitch.conf auf Basis eines in der Profildatenbank im Verzeichnis /etc/auth-client-config/profile.d/ enthaltenen LDAP-Schemas (lac_ldap) an.
|
|
Dies konfiguriert die PAM-Konfiguration im Verzeichnis /etc/pam.d/. Nach Eingabe des Kommandos erscheint ein Dialog, in dem die zu aktivierenden PAM-Profile ausgewählt werden müssen. Zunächst sollten die Profile
- Unix authentication
- LDAP Authentication
ausgewählt werden.
Nun sollte das System für die LDAP-Authentifizierung eingerichtet sein.