LDAPS (LDAP over TLS/SSL)

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Wo sind wir?

Wir befinden uns auf dem LDAP Server.
Dort kommt KEY und CERT rein.

Wir holen uns ein Zertifkat une ein Schlüssel

Sie liegen unter /etc/ssl/

Das Zertifilat
/etc/ssl/own.crt
Der private Schlüssel
/etc/ssl/own.key

Rechte für den slapd anpassen

Der User openldap muss den privaten Schlüssel lesen können:

  • chown openldap:openldap /etc/ssl/own.crt /etc/ssl/own.key
  • chmod 640 /etc/ssl/own.key

LDIF-Datei für die TLS-Konfiguration erstellen

  • vi /root/tls_config.ldif
dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/own.crt
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/own.key

Konfiguration einspielen

Die Änderung direkt in die cn=config schreiben:

  • ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f /root/tls_config.ldif

Ports in /etc/default/slapd anpassen

Sicherstellen, dass ldaps aktiviert ist:

SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"

Dienst neu starten

  • systemctl restart slapd

Ports prüfen

  • ss -4lntp | grep slapd
LISTEN 0      2048         0.0.0.0:636       0.0.0.0:*    users:(("slapd",pid=788,fd=10))
LISTEN 0      2048         0.0.0.0:389       0.0.0.0:*    users:(("slapd",pid=788,fd=7))

Funktionstest

Prüfen, ob der Server das Zertifikat auf Port 636 ausliefert:

  • openssl s_client -connect ldap.it213.int:636 -showcerts

Nun zu den Clients

Funktionstest

Prüfen, ob der Server das Zertifikat auf Port 636 ausliefert:

  • openssl s_client -connect ldap.it213.int:636 -showcerts

SSSD Konfiguration auf TLS umstellen

Da der Server nun Zertifikate ausliefert, wird die Verschlüsselung auf den Clients in der /etc/sssd/sssd.conf aktiviert:

 ldap_id_use_start_tls = true
 ldap_tls_reqcert = hard

Dienst neu starten

Damit die TLS-Einstellungen geladen werden:

  • systemctl restart sssd

Verbindungstest

Prüfen, ob die Benutzerauflösung über den verschlüsselten Kanal weiterhin funktioniert:

  • getent passwd thomas

Status prüfen

Falls es Probleme gibt, hilft das SSSD-Tool:

  • sssctl domain-status it213.int