Dieter Kluenter wrote:
Hallo Joachim,
Joachim Kieferle
writes: Hallo Liste (hallo Dieter Klünter ;-)),
habe die Verschlüsselung in Openldap nach Dieters Buch vorbereitet und in /etc/openldap/slapd.conf auch die drei Zeilen TLSCertificateFile /etc/openldap/ldapcert.pem TLSCertificateKeyFile /etc/openldap/ldapkey.pem TLSCACertificateFile /etc/openldap/cacert.pem eingefügt.
[ ... ]
Seltsamerweise lässt der LDAP-Server aber immer noch über Port 389 unverschlüsselte Verbindungen zu.
Das ist der große Unterschied zwischen SSL und TLS :-) Auf Port 389 muss der Client die Verschlüsselung mit der Funktion ldap_start_tls initiieren, über Port 636 stellt der Server sofort eine verschlüsselte Verbindung her und der Client muss das Zertifikat prüfen oder ungeprüft übernehmen.
Über Port 636 bekomme ich dagegen z.B. mit dem Programm Ldapadmin _keine_ Verbindung.
Wie ist denn ldapadmin konfiguriert?
Hallo Dieter, ldapadmin läuft unter Windows (http://ldapadmin.sourceforge.net/). Wenn ich "Use SSL secured connection" aktiviere, schaltet er automatisch Port 636 an. Beim Verbinden kommt dann aber "LDAP-Fehler: Server heruntergefahren". Ohne SSL verbindet er einwandfrei. Zertifikate kann ich nicht einlesen. ....
openssl s_client -connect localhost:636 -showcerts zeigt auf dem LDAP-Server die Zertifikate und als letzte Zeile "Verify return code: 21 (unable to verify the first certificate)"
Ich nehme aber an, das kommt vom "Self signed certificate".
Das liegt möglicherweise auch daran, dass der Client nicht den Pfad auf das cacert.pem kennt, hast du denn die entsprechenden Einträge in /etc/openldap/ldap.conf gemacht?
... ok, aber dann muss ich mich da erst mal nicht drum kümmern?
Jetzt die Frage: wie kann ich meinen LDAP-Server überreden dass er nur noch sichere Verbindungen zulässt und auch die "SSL secured connection"? (oder liegt's am Client)?
Wenn du slapd nur mit dem Parameter -h ldaps:/// startest, wird ausschließlich über Port 636 eine Verbindung hergestellt. Allerdings musst du dann auch alle Clients entsprechend konfigurieren. Eine andere Möglichkeit besteht in der Konfiguration entsprechender access Regeln, siehe dazu man slapd.access(5), Stichwort Security Strength Factor (ssf).
... würde ich dann "härten", sobald er prinzipiell läuft. Ist das aus Deiner Sicht sinnvoll? Viele Grüsse Joachim