1

Я посмотрел вокруг и нашел в Интернете много о том, как настроить 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 открыты, а также показывает информацию о сертификате (эмитент: 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 работает, но не все остальное.

0