SSL OpenLDAP beibringen

Damit unser OpenLDAP-Server auch via ldaps (SSL) erreichbar ist, werden wir hier die Erstellung und Integration eines Server-Zertifikates sowie die nötigen Konfigurationsschritte näher betrachten.

Zuerst erstellen wir das Verzeichnis SSL in /etc/ldap. Anschließend generieren wir uns ein selbstsigniertes Zertifikat für unseren LDAP-Server und setzten die richtigen Rechte für den Server Schlüssel und Server Zertifikat.

mkdir -p /etc/ldap/ssl
cd /etc/ldap/ssl
openssl req -new -x509 -nodes -out server.crt -keyout server.key -days 9999
chown -R openldap:openldap /etc/ldap/ssl
chmod 0640 /etc/ldap/ssl/server.crt
chmod 0600 /etc/ldap/ssl/server.key

Als nächstes erstellen wir eine mod_certs.ldif, um LDAP so zu konfigurieren, dass OpenLDAP eine sichere Kommunikation über ein selbstsigniertes Zertifikat ermöglicht.

vim mod_certs.ldif

Folgendes LDIF Skript verwenden und eventuell die Pfade anpassen.

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ldap/ssl/server.key

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ldap/ssl/server.crt

Importieren der Konfigurationen auf den LDAP-Server. Sollte der Befehl den Fehler „Other (e.g., implementation specific) error (80)“ ausgeben, wird es vermutlich ein Berechtigungsfehler sein. Gehe sicher das der User openldap zugriff auf die Zertifikate hat (Bspw. mit sudo -u openldap ls /etc/ldap/ssl/).

ldapmodify -Y EXTERNAL  -H ldapi:/// -f mod_certs.ldif

Konfiguration testen.

slaptest -u

Bei erfolgreicher Verifizierung sollte folgende Meldung erscheinen.

config file testing succeeded

OpenLDAP LDAPS (SSL) beibringen

Die Datei /etc/default/slapd bearbeiten und OpenLDAP konfigurieren, dass es auch auf SSL hört.

vim /etc/default/slapd

Folgende Zeile ersetzten.

SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"

Anschließend slapd neustarten.

service slapd restart

Um sicher zu gehen, dass LDAP auch den Port für SSL geöffnet hat, kann man mit folgenden Befehl überprüfen.

netstat -tulpen | grep 636
root@server:~# netstat -tulpen | grep 636
tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN      0          438118593  41836/slapd
tcp6       0      0 :::636                  :::*                    LISTEN      0          438118594  41836/slapd

LDAP-Linux-Client selbstsignierte Zertifikate erlauben

Wer über LDAP auf einen Server mit einem selbstsignierten Zertifikat zugreifen möchte, wird vermutlich scheitern. Dies gilt auch bei php-ldap.
Um dies zu akzeptieren muss unter Debian die Datei /etc/ldap/ldap.conf bearbeitet werden.

vim /etc/ldap/ldap.conf

Hier ans Ende der Datei folgende Umgebungsvariable hinzufügen.

TLS_REQCERT    ALLOW

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert