Heutzutage muss OpenLDAP mit ldapmodify cn = config konfiguriert werden, wie hier beschrieben . Aber nirgendwo kann ich herausfinden, wie Sie es so konfigurieren, dass es nur TLS-Verkehr akzeptiert. Ich habe gerade bestätigt, dass unser Server unverschlüsselten Datenverkehr akzeptiert (mit ldapsearch und tcpdump).
Normalerweise würde ich nur den Nicht-SSL-Port mit IP-Tabellen schließen, aber die Verwendung des SSL-Ports ist anscheinend veraltet, sodass ich diese Option nicht habe.
Also, mit den SSL-Konfigurationsbefehlen, wie folgt:
dn: cn=config
changetype:modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/bla.key
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/bla.crt
-
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/ca.pem
Gibt es einen Parameter zum Erzwingen von TLS?
Edit: Ich habe die olcTLSCipherSuite ausprobiert, aber sie funktioniert nicht. Debug-Ausgabe:
TLS: could not set cipher list TLSv1+RSA:!NULL.
main: TLS init def ctx failed: -1
slapd destroy: freeing system resources.
slapd stopped.
connections_destroy: nothing to destroy.
Edit2 (fast behoben): Ich konnte es durch Laden beheben:
# cat force-ssl.tx
dn: cn=config
changetype: modify
add: olcSecurity
olcSecurity: tls=1
Aber dann Befehle wie
ldapmodify -v -Y EXTERNAL -H ldapi:/// -f /etc/ssl/tls-required.ldif
Funktioniere nicht mehr ... und ändere es in:
ldapmodify -v -x -D "cn=admin,dc=domain,dc=com" -H ldap://ldap.bla.tld/ -ZZ -W -f force-ssl.txt
gibt mir "ldap_bind: Ungültige Anmeldeinformationen (49)". Obwohl dieses binddn als rootdn angegeben ist, kann ich es anscheinend nicht zum Ändern verwenden cn=config
. Kann das geändert werden?
TLS confidentiality required
Nachricht.Dies wird mit der Option TLSCipherSuite erreicht . Ein Beispiel ist im Kapitel LDAP-Sicherheit des OpenLDAP Zytrax-Buches dokumentiert . Damit können Sie OpenLDAP mitteilen, welche Chiffresuiten Ihr Server akzeptiert. Zum Beispiel können Sie sagen, dass Sie keine
NULL
Chiffresuite möchten (dh: nicht verschlüsselte Sitzung).Beachten Sie jedoch, dass OpenLDAP mit OpenSSL- oder GnuTLS-Bibliotheken verknüpft werden kann. Diese verwenden unterschiedliche Verschlüsselungslisten, um ihre Verschlüsselungsunterstützung zu beschreiben. Die OpenSSL-Verschlüsselungsliste kann mit einem Befehl wie
openssl ciphers -v
und die GnuTLS-Liste mit abgerufen werdengnutls-cli -l
.Die einfachste Möglichkeit, die Verbindung ohne Verschlüsselung zu deaktivieren, ist dann:
Eine spezifischere Einschränkung bei Verwendung der GnuTLS-Syntax :
Ein vollständigeres Beispiel könnte (unter Verwendung der OpenSSL-Syntax ) sein:
Zu einer ähnlichen Frage gibt es eine OpenLDAP-Mailinglisten-Diskussion, die es wert ist, gelesen zu werden .
Beachten Sie auch, dass die OpenLDAP-CLI-Tools
ldapsearch
automatisch auf TLS umstellen, wenn Sie eine Verbindung zu einem Server herstellen, der die unverschlüsselten Verbindungen verbietet. Das bedeutet, dass Sie der Argumentliste nichts hinzufügen müssen-Z
.quelle
ALL:!NULL