Saat ini, OpenLDAP perlu dikonfigurasi dengan ldapmodify cn = config, seperti dijelaskan di sini . Tapi tidak ada tempat saya dapat menemukan bagaimana Anda mengkonfigurasinya untuk hanya menerima lalu lintas TLS. Saya baru saja mengkonfirmasi bahwa server kami menerima lalu lintas yang tidak dienkripsi (dengan ldapsearch dan tcpdump).
Biasanya, saya hanya akan menutup port non-SSL dengan tabel IP, tetapi menggunakan port SSL sudah usang, jadi saya tidak punya opsi itu.
Jadi, dengan perintah konfigurasi SSL, seperti ini:
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
Apakah ada param untuk memaksa TLS?
Sunting: Saya mencoba olcTLSCipherSuite, tetapi tidak berhasil. Output debug:
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 (hampir diperbaiki): Saya dapat memperbaikinya dengan memuat:
# cat force-ssl.tx
dn: cn=config
changetype: modify
add: olcSecurity
olcSecurity: tls=1
Tapi kemudian perintah suka
ldapmodify -v -Y EXTERNAL -H ldapi:/// -f /etc/ssl/tls-required.ldif
Jangan bekerja lagi ... Dan mengubahnya menjadi:
ldapmodify -v -x -D "cn=admin,dc=domain,dc=com" -H ldap://ldap.bla.tld/ -ZZ -W -f force-ssl.txt
memberi saya "ldap_bind: kredensial tidak valid (49)". Rupanya, meskipun binddn ini ditentukan sebagai rootdn, saya tidak dapat menggunakannya untuk mengubahnya cn=config
. Bisakah itu diubah?
TLS confidentiality required
pesan tersebut.Ini dicapai dengan opsi TLSCipherSuite . Contoh didokumentasikan di bab keamanan LDAP dari buku OpenLDAP Zytrax . Dengannya Anda bisa memberi tahu OpenLDAP bahwa cipher suites yang akan diterima server Anda. Misalnya, Anda dapat memberi tahu bahwa Anda tidak ingin
NULL
suite sandi (yaitu: sesi yang tidak dienkripsi).Berhati-hatilah meskipun OpenLDAP dapat ditautkan dengan pustaka OpenSSL atau GnuTLS. Mereka menggunakan daftar sandi yang berbeda untuk menggambarkan dukungan enkripsi mereka. Daftar cipher OpenSSL dapat diperoleh dengan perintah seperti
openssl ciphers -v
dan daftar GnuTLS dengangnutls-cli -l
.Cara paling sederhana untuk menonaktifkan koneksi tanpa enkripsi adalah:
Pembatasan yang lebih spesifik menggunakan sintaks GnuTLS :
Contoh yang lebih lengkap mungkin (menggunakan sintaks OpenSSL ):
Ada diskusi milis OpenLDAP yang layak dibaca tentang pertanyaan serupa .
Perlu juga dicatat bahwa alat CLI OpenLDAP, seperti
ldapsearch
, secara otomatis beralih ke menggunakan TLS saat menghubungkan ke server yang melarang koneksi yang tidak dienkripsi. Itu berarti Anda tidak perlu menambahkan-Z
ke daftar args.sumber
ALL:!NULL