OpenLDAP installieren und einrichten

Zur zentralen Nutzerdatenpflege bedienen wir uns eines LDAP 1)-Verzeichnisdienstes, genauer gesagt dem OpenLDAP. LDAP ist ein Netzwerkprotokoll, dient zur Bereitstellung von Verzeichnisdiensten und vermittelt dabei die Kommunikation zwischen dem LDAP-Clients mit dem Directory Server.

Zu erst installieren wir die benötigten Pakete und Programme.

 # yum install compat-openldap.i386 openldap-clients.i386 openldap-servers.i386 openldap-servers-sql.i386

Zur Generierung des Passwortes für den Eintrag rootpw mit der Verschlüsselungsmethode SSHA - entsprechend einem SHA-1 Algorithmus (FIPS 160-1), nutzen wird das Programm /usr/sbin/slappasswd mit folgendem Befehl aufgerufen:

 # /usr/sbin/slappasswd -h {SSHA}
 New password: 
 Re-enter new password: 
 {SSHA}MT/P3fPtBfI3E2bylGEFxv2/u1KxmVmO

Aus sichertstechnischen Gründen soll die Datei /etc/openldap/slapd.conf nur der Gruppe ldap zur Verfügung stehen.

 # ls -l /etc/openldap/slapd.conf
 -rw-r----- 1 root root 4628  6. Aug 14:09 slapd.conf

Bei Bedarf passen wir die Berechtigungen passend an.

 # chown root:ldap slapd.conf
 # chmod 640 slapd.conf
 # ls -l /etc/openldap/slapd.conf
 -rw-r----- 1 root ldap 4628  6. Aug 14:09 slapd.conf

Damit unser LDAP-Server seine Meldungen auch sichtbar uns zur Verfügung stellt, lassen wir seine Meldungen ganz einfach in ein separates Logfile schreiben. Hierzu passen die Konfigurationsdatei /etc/syslog.conf entsprechend an.

 # Save boot messages also to boot.log
 local4.*                                                /var/log/ldap.log

Anschließend den syslog-daemon neu durchstarten:

 # service syslog restart
 Kernel-Protokollierdienst beenden:                         [  OK  ]
 System-Protokollierdienst beenden:                         [  OK  ]
 System-Protokollierdienst starten:                         [  OK  ]
 Kernel-Protokollierdienst starten:                         [  OK  ]

Das war's.

Zur Administration unseres LDAP-Servers bedienen wir uns des PHP-Projektes phpldapadmin. Installation und Konfiguration ist im Kapitel „phpLDAPadmin installieren und einrichten“ beschrieben.

Client-Konfiguration

Bei den betreffenden Clients wollen wir nun die Authentifizierung der einzelnen User nicht mehr gegen die lokale /etc/shadow laufen lassen, denn dazu müssten wir nun auf jedem Host die User manuell (nach)pflegen. Nicht zuletzt aus diesem Grunde, haben wir uns für openldap entschieden.

Auf der Clientseite benötigen wir das Pakete openldap, openldap-clients, und nss_ldap, bei Bedarf installieren wir diese via YUM.

yum install openldap openldap-clients nss_ldap

In der einfachen Variante konfigurieren wir unseren Klienten so, dass er sich via anonymous bind an unseren LDAP-Server wenden kann.

Auf allen Client-Rechnern müssen sowohl /etc/ldap.conf als auch /etc/openldap/ldap.conf den jeweiligen Server und grundlegende Informationen über unsere Organisation enthalten.

# egrep -v '(^#|^$)' /etc/ldap.conf 
ldap.domain.de
base dc=domain,dc=de
ldap_version 3
timelimit 120
bind_timelimit 120
idle_timelimit 3600
nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman
uri ldap://ldap.doamin.de/
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
# egrep -v '(^#|^$)' /etc/openldap/ldap.conf 
BASE dc=domain,dc=de
URI ldap://ldap.domain.de/
TLS_CACERTDIR /etc/openldap/cacerts

Am einfachsten geht dies mit dem dem Authentication Configuration Tool system-config-authentication und das Auswählen von LDAP verwenden in der Tab Benutzerinformationen.

Bildschirmphoto Authentifizierungskonfiguration

Bildschirmphoto LDAP-Einstellungen

Weiterhin müssen wir auf allen Client-Rechnern, die Datei /etc/nsswitch.conf bearbeitet werden um LDAP zu verwenden.

Entweder wir editieren die Konfigurationsdatei von Hand, oder wir nutzen abermals das Authentication Configuration Tool system-config-authentication. Dort wählen wir LDAP auf dem Tab Benutzerinformationen aus.

Bildschirmphoto Authentifizierungskonfiguration

Bildschirmphoto LDAP-Einstellungen

Wenn die Datei /etc/nsswitch.conf manuell bearbeitet wird, ergänzen wir einfach die Zeilen:

 passwd:     files
 shadow:     files
 group:      files

mit ldap

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

Damit wir nun nicht für jeden unserer User ein Homeverzeichnis manuell auf dem Client-Rechner einrichten müssen, nutzen wir wieder die bequeme Art über system-config-authentication. Auf dem Reiter Optionen wählen wir einfach die Option Create home directories on the first login

Bildschirmphoto der Authentifizierungskonfiguration

Voila, das war's schon.

In abgesicherten Umgebungen wird der Zugriff auf den LDAP-Server nicht von jedermann ohne Passwort, auch anonymous bind genannt unterbunden. Stattdessen muss ich der Klient bei den Anfragen eines technischen Users bedienen, der auch ein Passwort benutzt, welches dem LDAP-Server bekannt ist.

Auf den Klient-Rechnern müssen nun in der /etc/ldap.conf der LDAP-Server und grundlegende Informationen über unsere Organisation enthalten, sowie auch mit dem technischen User und dessen Passwort.

 # egrep -v '(^#|^$)' /etc/ldap.conf
base dc=nausch,dc=org
ldap_version 3
binddn cn=technical_user,dc=domain,dc=de
bindpw Ohne-Hirn-und-Verstand!
timelimit 120
bind_timelimit 120
idle_timelimit 3600
nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman,nscd,gdm
uri ldap://ldap.domain.de
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5

Die erfolgreiche Konfiguration unseres Rechners überprüfen wir so:

  1. Mit getent lassen wir uns die Informationen eines Users anzeigen, der sowohl in der /etc/shadow wie auch im zentralen LDAP-Verzeichnisdienst hinterlegt ist. Wenn alles gut gelaufen ist, werden uns zwei Einträge präsentiert.
    # getent passwd | grep django
    django:x:555:555:Django:/home/django:/bin/bash
    django:x:555:555:Django:/home/django:/bin/bash
  2. Dann loggen wir uns einfach mit einem „neuen“ User an, der nicht in der lokalen /etc/shadow steht, aber dafür im zentralen LDAP-Verzeichnisdienst hinterlegt ist.

1)
Lightweight Directory Access Protocols
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • centos/open_ldap_server.txt
  • Zuletzt geändert: 20.04.2018 10:25.
  • von 127.0.0.1