Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:open_ldap_server [03.08.2011 20:06. ] – [Clienttest] djangocentos:open_ldap_server [20.04.2018 10:25. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== OpenLDAP installieren und einrichten ======
 +Zur zentralen Nutzerdatenpflege bedienen wir uns eines LDAP (( Lightweight Directory Access Protocols ))-Verzeichnisdienstes, genauer gesagt dem [[http://www.openldap.org/|OpenLDAP]]. 
 +LDAP ist ein Netzwerkprotokoll, dient zur Bereitstellung von Verzeichnisdiensten und vermittelt dabei die Kommunikation zwischen dem LDAP-Clients mit dem Directory Server.
 +===== Installation =====
 +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
 +===== Konfiguration =====
 +==== Master-Passwort erstellen ====
 +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
 +==== Berechtigungen der Konfigurationsdatei kontrollieren ====
 +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
 +===== Systemanpassungen =====
 +==== Syslog anpassen ====
 +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.
 +===== Administration =====
 +Zur Administration unseres LDAP-Servers bedienen wir uns des PHP-Projektes [[http://phpldapadmin.sourceforge.net/|phpldapadmin]]. Installation und Konfiguration ist im Kapitel "**[[centos:phpldapadmin_installieren|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.
 +===== Paketinstallation =====
 +Auf der Clientseite benötigen wir das Pakete **openldap**, **openldap-clients**, und **nss_ldap**, bei Bedarf installieren wir diese via YUM.
 +<code>yum install openldap openldap-clients nss_ldap</code>
 +===== Konfiguration =====
 +==== Anonymous Bind - Variante ====
 +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.
 +<code># 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
 +</code>
 +<code># egrep -v '(^#|^$)' /etc/openldap/ldap.conf 
 +BASE dc=domain,dc=de
 +URI ldap://ldap.domain.de/
 +TLS_CACERTDIR /etc/openldap/cacerts
 +</code>
 +Am einfachsten geht dies mit dem dem //Authentication Configuration Tool// **system-config-authentication** und das Auswählen von LDAP verwenden in der Tab Benutzerinformationen.
 +
 +{{ :centos:bildschirmfoto-konfiguration_der_authentifizierung.png?300 |Bildschirmphoto Authentifizierungskonfiguration}}
 +
 +{{ :centos:bildschirmfoto-ldap-einstellungen.png?300 |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.
 +
 +{{ :centos:bildschirmfoto-konfiguration_der_authentifizierung.png?300 |Bildschirmphoto Authentifizierungskonfiguration}}
 +
 +{{ :centos:bildschirmfoto-ldap-einstellungen.png?300 |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**
 +
 +{{ :centos:bildschirmfoto-konfiguration_der_authentifizierung-1.png?250 |Bildschirmphoto der Authentifizierungskonfiguration}} 
 +
 +Voila, das war's schon.
 +==== Bind-Variante mit technischem User ====
 +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
 +<code>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</code>
 +
 +===== Clienttest =====
 +Die erfolgreiche Konfiguration unseres Rechners überprüfen wir so:
 +  - 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. <code># getent passwd | grep django
 +django:x:555:555:Django:/home/django:/bin/bash
 +django:x:555:555:Django:/home/django:/bin/bash</code> 
 +  - 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.
 +