FusionDirectory: OpenLDAP с SSL или TLS

729
Richard Żak

Я посмотрел вокруг и нашел в Интернете много о том, как настроить TLS для OpenLDAP. Основная идея заключается в добавлении элементов olcTLS для включения в него cert, key, cacert cn=config.

Тем не менее, с помощью FusionDirectory попытка использования ldapmodifyговорит мне, что cn=configон не существует, и когда я пытаюсь создать cn=config, он говорит мне (вошел в систему как администратор LDAP), что у меня нет прав на его создание. Я следовал этим инструкциям.

Поэтому я прибег к редактированию файла, /etc/ldap/slapd.d/cn=config.ldifчтобы добавить следующие элементы:

olcTLSCACertificate: /etc/ssl/certs/ca.cert olcTLSCertificateFile: /etc/ssl/certs/fd.cert olcTLSCertificateKeyFile: /etc/ssl/private/fd.key olcTLSCipherSuite: SECURE256 olcTLSVerifyClient: try 

Я также отредактировал, /etc/default/slapdчтобы включитьSLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"

  • Я добавил пользователя openldap в группу ssl-cert.
  • Я перезапустил slapd.
  • Использование ldapvi cn=configне может быть найдено.
  • Но slapcat -n0 | grep -i tlsпоказывает записи olcTLS *, которые я принудительно добавил в файл.
  • Используя Wireshark, я вижу, что когда клиент запрашивает START_TLS, сервер говорит «хорошо» и показывает поддерживаемые шифры. Клиент начинает SSL Hello, а сервер отвечает TCP FIN.
  • nmapпоказывает, что порты 389 и 636 открыты, а также показывает информацию о сертификате (Issuer: commonName = MyServer / organizationName = Testing), тип открытого ключа: rsa, биты открытого ключа: 4096 и хэши сертификата MD5 и SHA1. Так что он может прочитать сертификат и ключ, разрешения в порядке.

Однако соединения SSL (636) и TLS (389) не работают. Незашифрованные соединения 389 работают просто отлично, за исключением того, что в Wireshark я вижу слишком много информации, и это доставляет мне неудобства.

Так в чем здесь дело?

  • ОС Debian Jessie 8.7
  • FusionDirectory 1.0.20
  • OpenLDAP 2.4.40
  • Сертификаты, созданные с помощью gnomint с расширениями TLS.

Изменить 15 мая 2017 года:

Я побежал, openssl s_client -connect host.local -showcertsи он показал сертификат, договорились о шифрах и т. Д.

Client Certificate Types: RSA sign, DSA sign, ECDSA sign Requested Signature Algorithms:  RSA+SHA384:ECDSA+SHA384:RSA+SHA512:ECDSA+SHA512 Shared Requested Signature Algorithms:  RSA+SHA384:ECDSA+SHA384:RSA+SHA512:ECDSA+SHA512 Peer signing digest: SHA512 Server Temp Key: ECDH, P-521, 521 bits --- SSL handshake has read 4512 bytes and written 511 bytes --- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 5120 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 Session-ID: 37EAADA00459F296BE972FB57B4A5.... Session-ID-ctx:  Master-Key: 0F865CBEDA755F84E783..... Key-Arg : None PSK identity: None PSK identity hint: None SRP username: None Start Time: 1494883911 Timeout : 300 (sec) Verify return code: 19 (self signed certificate in certificate chain) --- 

Однако ldapsearchне работает:

# ldapsearch -H ldaps://host.local:636 -xLL -v ldap_initialize( ldaps://host.local:636/??base ) ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1) 

Так что часть SSL работает, но не все остальное.

1

0 ответов на вопрос

Похожие вопросы