OpenLDAP'i TLS ile yapılandırın = gerekli


16

Günümüzde, OpenLDAP'ın burada açıklandığı gibi ldapmodify cn = config ile yapılandırılması gerekiyor . Ama hiçbir yerde onu sadece TLS trafiğini kabul edecek şekilde nasıl yapılandırdığınızı bulamıyorum . Sunucumuzun şifrelenmemiş trafiği (ldapsearch ve tcpdump ile) kabul ettiğini doğruladım.

Normalde, SSL olmayan bağlantı noktasını IP tablolarıyla kapatırdım, ancak SSL bağlantı noktasını kullanmak görünüşe göre kaldırıldı, bu yüzden bu seçeneğim yok.

SSL yapılandırma komutlarıyla şöyle:

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

TLS'yi zorlamak için bir param var mı?

Düzenleme: olcTLSCipherSuite denedim, ama çalışmıyor. Hata ayıklama çıktısı:

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 (neredeyse sabit): Yükleyerek düzeltmeyi başardım:

# cat force-ssl.tx 
dn: cn=config
changetype:  modify
add: olcSecurity
olcSecurity: tls=1

Ama sonra komutları

ldapmodify -v -Y EXTERNAL -H ldapi:/// -f /etc/ssl/tls-required.ldif

Artık çalışma ... Ve bunu şu şekilde değiştir:

ldapmodify -v -x -D "cn=admin,dc=domain,dc=com" -H ldap://ldap.bla.tld/ -ZZ -W -f force-ssl.txt

bana "ldap_bind: Geçersiz kimlik bilgileri (49)" veriyor. Görünüşe göre, bu binddn rootdn olarak belirtilmiş olsa da, değiştirmek için kullanamıyorum cn=config. Bu değiştirilebilir mi?

Yanıtlar:


16

Anladım:

Bunu ben yaptım:

dn: olcDatabase={1}hdb,cn=config
changetype:  modify
add: olcSecurity
olcSecurity: tls=1

Ve bu istenen etkiye sahip gibi görünüyor. Hala gibi komutları çalıştırabilirsiniz:

ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config

Ancak ldapsearch -xLLL -b ...SSL olmadan " " ile bağlantı kurmaya çalışmak şöyle diyor: "TLS gizliliği gerekli"


2
+1 harika çalışıyor gibi görünüyor. Ne yazık ki istemci STARTTLS olmadan kimlik doğrulaması yapmaya çalışırsa, parolayı düz metin olarak gönderir ve sunucu TLS confidentiality requirediletiyi yanıtlar .
Carlos Campderrós

1
Bunu OpenLDAP posta listesine olası bir güvenlik sorunu olarak gönderdim. USER'i verir vermez bloke eden FTP örneğini verdim. Ama reddedildim. Bunu gör.
Halfgaar

komik, ben bu cevabı bulmadan önce o konuya baktım :)
Carlos Campderrós

Teşekkürler, tam aradığım şey. Telin üzerinden açık metin üzerinden geçen parola, istemci tarafı yazılımına özel olarak uygulanacaktır. TLS gereksinimi, kullanıcı olarak bağlanmaya çalışmadan önce anonim bağlamayla test edilebilir.
Sunucu Hatası

3

Bu, TLSCipherSuite seçeneğiyle gerçekleştirilir. Bir örnek, OpenLDAP Zytrax kitabının LDAP güvenlik bölümünde belgelenmiştir . Bununla birlikte, OpenLDAP'e sunucunuzun kabul edeceği şifre paketlerini söyleyebilirsiniz. Örneğin, bir NULLşifre takımı istemediğinizi söyleyebilirsiniz (ör. Şifrelenmemiş oturum).

OpenLDAP'ın OpenSSL veya GnuTLS kütüphanelerine bağlanabileceğine dikkat edin. Şifreleme desteklerini tanımlamak için farklı şifre listeleri kullanırlar. OpenSSL şifre listesi gibi bir komut openssl ciphers -vve GnuTLS listesi ile elde edilebilir gnutls-cli -l.

Basit yolu şifreleme olmadan bağlantı devre dışı bırakmak için daha sonra şöyle olacaktır:

dn: cn=config
changetype: modify
replace: olcTLSCipherSuite
olcTLSCipherSuite: ALL:!NULL

GnuTLS sözdizimini kullanarak daha belirgin bir kısıtlama :

dn: cn=config
changetype: modify
replace: olcTLSCipherSuite
olcTLSCipherSuite: TLS_RSA_CAMELLIA_128_CBC_SHA1:TLS_RSA_CAMELLIA_256_CBC_SHA1:!NULL

Daha eksiksiz bir örnek ( OpenSSL sözdizimini kullanarak ) olabilir:

dn: cn=config
changetype: modify
replace: olcTLSCipherSuite
olcTLSCipherSuite: HIGH:+SSLv3:+TLSv1:MEDIUM:+SSLv2:@STRENGTH:+SHA:+MD5:!NULL

Benzer bir soru hakkında okumaya değer bir OpenLDAP posta listesi tartışması var .

Ayrıca, OpenLDAP cli araçlarının, ldapsearchşifrelenmemiş bağlantıları yasaklayan bir sunucuya bağlanırken otomatik olarak TLS kullanmaya geçtiğini belirtmek gerekir. Eğer anlama geliyor That değil eklemem gerekiyor -Zargs listesine.


Denedim. İşe yaramadı. Sorumu yansıtmak için düzenledim.
Halfgaar

Bildirdiğiniz hatanın TLS uygulamanızın bildiği şifrelerle ilgili olduğunu düşünüyorum. OpenLDAP, OpenSSL veya gnuTLS kütüphaneleri ile derlenebilir. Verdiğim örnek OpenSSL sözdizimini kullandı, uygulamanız muhtemelen gnuTLS kullanıyor. Basitleştirilmiş bir CipherSuite denemenizi öneririm, örneğinALL:!NULL
Tonin

"UYARI: Akıllı olmayın ve TLSCipherSuite'i YÜKSEK: ORTA: -SSLv2 gibi akıllı bir şeye dönüştürün - bu bir openssl yönergesidir" - rogermoffatt.com/2011/08/24/ubuntu-openldap-with-ssltls adresini okuyun .
Xdg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.