home-harmening:sicherheit:ldap:ldapclient_nslcd

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
home-harmening:sicherheit:ldap:ldapclient_nslcd [2024/10/09 11:01] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1home-harmening:sicherheit:ldap:ldapclient_nslcd [2024/10/09 11:01] (aktuell) – ↷ Seite von sicherheit:ldap:ldapclient_nslcd nach home-harmening:sicherheit:ldap:ldapclient_nslcd verschoben charmening
Zeile 1: Zeile 1:
 +====== 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.
 +<code>scp SERVER:/etc/ssl/certs/my-CA.crt CLIENT:/etc/ssl/certs/my-CA.crt</code>
 +\\
 +Der Name des ldap Server sollte auflösbar sein. Entweder durch einen DNS Server oder durch den passenden Eintrag in der /etc/hosts.
 +<code>
 +cat /etc/hosts
 +...
 +192.168.0.200    ldap.my-domain.de ldap
 +...
 +</code>
 +\\
 +==== Installation ====
 +<code>apt install ldap-utils libnss-ldapd libpam-ldapd nslcd</code>
 +\\
 +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.
 +\\
 +<code>nano /etc/ldap/ldap.conf</code>
 +<code>
 +...
 +BASE        dc=my-domain,dc=de
 +URI         ldap://ldap.my-domain.de
 +
 +TLS_REQCERT demand
 +TLS_CACERT  /etc/ssl/certs/my-CA.crt
 +</code>
 +\\
 +|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
 +<code>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
 +</code>
 +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.
 +\\
 +<code>nano /etc/nslcd.conf</code>
 +<code>
 +...
 +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
 +</code>
 +\\
 +|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.
 +<code>dpkg-reconfigure libnss-ldapd</code>
 +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.
 +<code>grep ldap /etc/nsswitch.conf</code>
 +<code>
 +passwd:                files ldap
 +group:                 files ldap
 +shadow:                files ldap
 +</code>
 +\\
 +Mit dem Befehl getent passwd|group werden nun alle Benutzer|Gruppen aufgelistet.
 +<code>getent passwd</code>
 +<code>
 +...
 +ldapuser1:x:10000:10000:Ldap User1:/home/ldap/ldapuser1:/bin/bash
 +ldapuser2:x:10001:10001:Ldap User2:/home/ldap/ldapuser2:/bin/bash
 +...
 +</code>
 +\\
 +<code>getent group</code>
 +<code>
 +...
 +ldapgroup:*:10010:ldapuser1,ldapuser2
 +...
 +</code>
 +\\
 +Durch den Befehel pam-auth-update werden die PAM Module aktualisiert. Hier muss die Option **Ldap** ausgewählt werden.
 +<code>pam-auth-update</code>