====== Ldap Client nslcd ====== Hier beschrieben die Installation und Einrichtung von nslcd als Client für Ldap. \\ \\ ==== Vorbereitung ==== Um eine tls gesicherte Verbindung aufzubauen, muss zuvor da CA Zertifikat auf dem Client installiert werden. Ich benutze hier eine selbstsignierte CA. scp SERVER:/etc/ssl/certs/my-CA.crt CLIENT:/etc/ssl/certs/my-CA.crt \\ Der Name des ldap Server sollte auflösbar sein. Entweder durch einen DNS Server oder durch den passenden Eintrag in der /etc/hosts. cat /etc/hosts ... 192.168.0.200 ldap.my-domain.de ldap ... \\ ==== Installation ==== apt install ldap-utils libnss-ldapd libpam-ldapd nslcd \\ Sämtliche abfragen können wir erstmal einfach bestätigen \\ \\ ==== Konfiguration ==== === Ldap Client einrichten === Zunächst richten wir den einfachen ldapclient ein um tools wie ldapsearch oder ldapwhoami nutzen zu können. \\ nano /etc/ldap/ldap.conf ... BASE dc=my-domain,dc=de URI ldap://ldap.my-domain.de TLS_REQCERT demand TLS_CACERT /etc/ssl/certs/my-CA.crt \\ |BASE||Beschreibt die BASE DN auf dem ldap Server| |URI|\\ ldap:// \\ ldaps://|Beschreibt die Serveradresse und welche Verbindung genutzt werden soll. \\ **Ldap** Beschreibt eine ungesicherte oder mit tls abgesicherte Verbindung über Port 389. \\ **Ldaps** Beschreibt eine gesicherte Verbindung mit ssl über den port 636| |TLS_REQCERT|allow \\ demand \\ never \\ try|**Allow** das Serverzertifikat wird angeforder und egal was zurückkommt, die Session läuft weiter. \\ **Demand** Verbindung nur mit einem gültigen Serverzertifikat. \\ **Never** es wird nichts angefordert. \\ **Try** nur bei dem schlechten Zertifikat wird die Session unterbrochen.| |TLS_CACERT||Ist der Pfad zum CA Zertifikat| \\ Test der Konfiguration ldapwhoami -x -ZZ -D "uid=readuser,ou=users,dc=my-domain,dc=de" -x -W Enter LDAP Password: dn:uid=readuser,ou=users,dc=my-domain,dc=de Die Verbindung funktioniert! \\ \\ === nslcd einrichten === Der nslcd Client dient zu automatischen Abfrage der Benutzer und Gruppen vom ldap Server. Mit Hilfe der libpam-nss und libpam-ldap, ermöglicht es uns ldap Benutzer im System zu verwenden. \\ nano /etc/nslcd.conf ... uri ldap://ldap.my-domain.de/ base dc=my-domain,dc=de binddn uid=readuser,ou=users,dc=my-domain,dc=de bindpw 123456789 tls_reqcert demand tls_cacertfile /etc/ssl/certs/my-CA.crt \\ |base||Beschreibt die BASE DN auf dem ldap Server| |uri|\\ ldap:// \\ ldaps://|Beschreibt die Serveradresse und welche Verbindung genutzt werden soll. \\ **Ldap** Beschreibt eine ungesicherte oder mit tls abgesicherte Verbindung über Port 389. \\ **Ldaps** Beschreibt eine gesicherte Verbindung mit ssl über den port 636| |tls_reqcert|allow \\ demand \\ never \\ try|**Allow** das Serverzertifikat wird angeforder und egal was zurückkommt, die Session läuft weiter. \\ **Demand** Verbindung nur mit einem gültigen Serverzertifikat. \\ **Never** es wird nichts angefordert. \\ **Try** nur bei dem schlechten Zertifikat wird die Session unterbrochen.| |tls_cacertfile||Ist der Pfad zum CA Zertifikat| |binddn||Benutzer dem das Lesen im ldap Baum erlaubt ist| |bindpw||Paswort zum bindn Benutzer **!KLARTEXT!**| \\ Jetzt muss dem System bekannt gemacht werden, dass es ldap zur authentifizierung nutzen soll. dpkg-reconfigure libnss-ldapd Hier die drei Werte **passwd, group und shadow** auswählen! \\ Dadurch wird die Datei nsswitch.conf bearbeitet. Es sollten nun ldap Einträge für die drei ausgewählten Optionen vorhanden sein. grep ldap /etc/nsswitch.conf passwd: files ldap group: files ldap shadow: files ldap \\ Mit dem Befehl getent passwd|group werden nun alle Benutzer|Gruppen aufgelistet. getent passwd ... ldapuser1:x:10000:10000:Ldap User1:/home/ldap/ldapuser1:/bin/bash ldapuser2:x:10001:10001:Ldap User2:/home/ldap/ldapuser2:/bin/bash ... \\ getent group ... ldapgroup:*:10010:ldapuser1,ldapuser2 ... \\ Durch den Befehel pam-auth-update werden die PAM Module aktualisiert. Hier muss die Option **Ldap** ausgewählt werden. pam-auth-update