Soru Bazı sistemler ldap ile ldaps üzerinden bağlanamaz, ancak diğerleri joker karakteridir?


Roman eDirectory 8.8 sunucusuna ldaps bağlantıları yapmaya çalışırken bazen TLS_REQCERT never istemci sunucularında ldap.conf dosyası. Açıkçası, bu kötü bir fikir.

Çalıştığım komut, aslında işe yarayan kimlik bilgileriyle ...

ldapsearch -x -H ldaps://ldapserver -b 'ou=active,ou=people,dc=example,dc=org' -D 'cn=admin,dc=example,dc=org' -W "cn=username"

Ubuntu 13.10'da, iyi çalışıyor.

SLES üzerinde iyi çalışıyor.

CentOS 6.5'de şunları döndürür:

ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

Şimdi, ithal ettiğim sertifika DigiCert'den satın alınmış bir joker. İş arkadaşım bazı sistemlerin joker karakterleriyle ilgili sorunları olduğunu gösteren bazı raporlar buldu.

Öyleyse suçlanacak joker kartı mı? Eğer öyleyse, nasıl düzeltebilirim?

Joker kimlik değilse, o zaman nedir?

Andrew Schulman'ın önerisini takiben, ekledim -d1 ldapsearch komutuma. İşte neyle sonuçlandım:

ldap_url_parse_ext(ldaps://ldap.example.org)
ldap_create
ldap_url_parse_ext(ldaps://ldap.example.org:636/??base)
Enter LDAP Password: 
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ldap.example.org:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.225.0.24:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: certdb config: configDir='/etc/openldap' tokenDescription='ldap(0)' certPrefix='cacerts' keyPrefix='cacerts' flags=readOnly
TLS: cannot open certdb '/etc/openldap', error -8018:Unknown PKCS #11 error.
TLS: could not get info about the CA certificate directory /etc/openldap/cacerts - error -5950:File not found.
TLS: certificate [CN=DigiCert High Assurance EV Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US] is not valid - error -8172:Peer's certificate issuer has been marked as not trusted by the user..
TLS: error: connect - force handshake failure: errno 2 - moznss error -8172
TLS: can't connect: TLS error -8172:Peer's certificate issuer has been marked as not trusted by the user..
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

Dediklerine göre, CentOS DigiCert'e güvenmiyor mu? Veya CentOS'un güvenilir yayıncıların bir listesi yok mu?


12
2018-03-01 06:05


Menşei


"LDAP sunucusuyla iletişim kurulamıyor", sunucunun söz konusu istemci makineden erişilemediği gibi geliyor. İlk önce gerçekten ona bağlanabileceğini kontrol ettin mi? Örneğin. telnet ldapserver ldaps veya openssl s_client -connect ldapserver:636. - Richard E. Silverman
Evet, sunucuya bağlanabileceğini doğruladım. Sonuçta, hiç bağlanamadıysa hiç işe yaramazdı. - David R.
Üç farklı istemci ana bilgisayardan bahsettin. Çalışmıyorsa, diğerlerinin yapabildiği bir ağ sorunu nedeniyle bağlantı kurulamadı. - Richard E. Silverman
Yazımın tüm sunucularda ldap.conf dosyasını düzenlediğimi açıkça düşündüm. Çizgiyi dosyaya eklediğimde olduğu gibi işe yaradı, ama çizgisizdi. Böylece bir bağlantı sorunu değil. - David R.
Gönderinizi ilk başta okudumda bu açık değildi, şimdi ne demek istediğimi anladım. Her neyse, eklediğiniz TLS hata ayıklama bilgisi sorunu gösterir; Takip etmek için bir cevap ekledim. - Richard E. Silverman


Cevaplar:


ldapsearch, güvenilir CA sertifikaları için / etc / openldap / cacerts dizininde yer almaktadır ve görünüşe göre kurulmamıştır ve bu nedenle sertifika reddedilmiştir, çünkü bir güvenlik zinciri oluşturamaz. Eğer ldapsearch OpenSSL kullanıyorsa, örnek olarak "hashdir" format koleksiyonuna ihtiyaç duyar. Red Hat "authconfig" programı veya güvenilir sertifikaların düz bir listesini içeren tek bir dosya. Burada "moznss" referansı, bu ldapsearch'in Mozilla NSS'ye karşı oluşturulduğunu gösterir. Bu durumda, cert db'yi (veya daha iyisi, sistem NSS sertifika deposunda işaretleyin, eğer varsa) "certutil" kullanmanız gerekir. .

Çalıştığı sistemlerde ldapsearch'in çalışan bir sertifika deposu olması gerekir, belki de OpenLDAP paketleri OpenSSL'ye karşı oluşturulduğundan (veya belki orada çalışan bir NSS tarzı mağaza var).


8
2018-03-05 02:57



Ah. /etc/openldap/certs cert deposu nerede. Değil. /Etc/openldap/ldap.conf dosyasında değiştirdim TLS_CACERTDIR /etc/openldap/cacerts için TLS_CACERTDIR /etc/openldap/certs ve ldapsearch komutum çalışmaya başladı. Teşekkürler! - David R.
Ubuntu 16.04'te yüklü ldapsearch var ve / etc / openldap dizini yok. - vcardillo


lspsearch, TLS sertifikasını doğrulayamıyorsa "LDAP sunucusuyla iletişim kuramıyor" ifadesini kullanacaktır. Eklemek -d1 ldapsearch komutuna gidin ve TLS bağlantısının başarısız olup olmadığı hakkında daha fazla bilgi almak için "TLS:" ile başlayan çıkış satırlarını kontrol edin.


12
2018-03-01 09:33



Öneriye yanıt olarak sorumu düzenledim. Teşekkürler! - David R.


Çözüm yüklemenize bağlıdır:

  • Eğer sen geçerli olmayan bir sertifika kullanmabunu kabul etmeyi kabul edebilirsin /etc/openldap/ldap.conf ile

    TLS_REQCERT allow
    

    veya

    TLS_REQCERT never
    
  • Eğer sen geçerli bir sertifika kullanmak Muhtemelen ldap instalasyonunuz güvenilir CA sertifikalarının bulunduğu mağazanın nerede olduğunu bilmiyor (muhtemelen OpenSSL kurulumunuza bağlı). Ardından, konumu ayarlamaya ve zorla yapılandırma yapılandırmaya çalışabilirsiniz. /etc/openldap/ldap.conf ile

    TLS_CACERT /etc/openldap/cacert
    TLS_REQCERT demand
    

    /etc/openldap/cacert bu olabilir ya da herhangi bir yoldan bulunabilir. CA'nızın sertifika zincirini içermelidir. Güvenilir sertifikaların düz bir listesiyle tek bir dosya olabilir.

Not yolları ldap sağlayıcısına göre değişir. Olabilir /etc/ldap veya /etc/openldap ya da öylesine


8
2018-01-09 17:29