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 [26.10.2011 21:47. ]
django [Syslog anpassen]
centos:open_ldap_server [20.04.2018 10:25. ] (aktuell)
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.
 +
  
  • centos/open_ldap_server.txt
  • Zuletzt geändert: 20.04.2018 10:25.
  • (Externe Bearbeitung)