====== 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