Skip to content

Настройка SSL/TLS для OpenLDAP (OpenSSL)

← К списку вопросов

Инструкция основана на OpenLDAP OpenSSL.txt.

  • Базовая процедура описана для Ubuntu 16.04.
  • На Astra Linux шаги 13.3 и 13.4 выполнять не нужно.
  • Для подключения на этапе проверки используйте фактический IP или корректное имя хоста (FQDN).

1) Подготовка сертификатов и ключей

Section titled “1) Подготовка сертификатов и ключей”
  1. Очистите старые каталоги сертификатов:
    • sudo rm -rf /etc/ssl/ldap
    • rm -rf ./demoCA
  2. Создайте структуру demoCA и служебные файлы:
    • mkdir -p demoCA/{private,certs,newcerts}
    • echo "1001" > demoCA/serial
    • touch demoCA/index.txt
  3. Сгенерируйте CA-ключ и удалите парольную фразу:
    • openssl genrsa -aes256 -out demoCA/private/cakey.pem 4096
    • openssl rsa -in demoCA/private/cakey.pem -out demoCA/private/cakey.pem
  4. Создайте CA-сертификат (Common Name должен совпадать с FQDN сервера):
    • openssl req -new -x509 -days 3650 -key demoCA/private/cakey.pem -out demoCA/certs/cacert.pem
  5. Сгенерируйте ключ LDAP-сервера и CSR:
    • openssl genrsa -aes256 -out demoCA/private/ldapserver-key.key 4096
    • openssl rsa -in demoCA/private/ldapserver-key.key -out demoCA/private/ldapserver-key.key
    • openssl req -new -key demoCA/private/ldapserver-key.key -out demoCA/certs/ldapserver-cert.csr
  6. Подпишите серверный сертификат CA-ключом:
    • openssl ca -keyfile demoCA/private/cakey.pem -cert demoCA/certs/cacert.pem -in demoCA/certs/ldapserver-cert.csr -out demoCA/certs/ldapserver-cert.crt -days 3649
  7. Проверьте сертификат и перенесите каталог:
    • openssl verify -CAfile demoCA/certs/cacert.pem demoCA/certs/ldapserver-cert.crt
    • sudo mv demoCA /etc/ssl/ldap

Ожидаемые пути:

  • /etc/ssl/ldap/certs/cacert.pem
  • /etc/ssl/ldap/certs/ldapserver-cert.crt
  • /etc/ssl/ldap/private/ldapserver-key.key

2) Права и применение TLS к OpenLDAP

Section titled “2) Права и применение TLS к OpenLDAP”
  1. Назначьте владельца и права:
    • sudo chown -R openldap: /etc/ssl/ldap/
    • sudo chmod 0400 /etc/ssl/ldap/private/ldapserver-key.key
  2. Создайте openldap-tls.ldif:
dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/ldap/certs/cacert.pem
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/ldap/certs/ldapserver-cert.crt
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/ldap/private/ldapserver-key.key
  1. Примените изменения:
    • sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f openldap-tls.ldif
  2. Проверьте записи:
    • sudo slapcat -b "cn=config" | grep -E "olcTLS"
  3. Проверьте доступ пользователя openldap к файлам и валидность конфига:
    • sudo -u openldap file /etc/ssl/ldap/certs/cacert.pem
    • sudo -u openldap file /etc/ssl/ldap/certs/ldapserver-cert.crt
    • sudo -u openldap file /etc/ssl/ldap/private/ldapserver-key.key
    • sudo slaptest -u

3) Настройка клиента и сервиса slapd

Section titled “3) Настройка клиента и сервиса slapd”
  1. Настройте CA для клиента в /etc/ldap/ldap.conf (или добавьте cacert.pem в системный bundle).
  2. Опционально включите ldaps:// в /etc/default/slapd:
Terminal window
SLAPD_SERVICES="ldap:/// ldaps:/// ldapi:///"
  1. Перезапустите сервис:
    • sudo systemctl restart slapd

4) Проверка подключения

Section titled “4) Проверка подключения”
  • Проверка StartTLS:
    • ldapsearch -x -ZZ -LLL -H ldap://host-100.local -b dc=maxcrc,dc=com
  • Проверка сертификата:
    • gnutls-cli --starttls-proto=ldap --print-cert -p 389 host-100.local
  • Простая проверка bind:
    • ldapwhoami -x -D "cn=admin,dc=maxcrc,dc=com" -W

Используйте FQDN, совпадающий с Common Name сертификата, иначе возможны ошибки ldap_start_tls и mismatch по имени хоста.

5) Проверка из SecurityConfigurator

Section titled “5) Проверка из SecurityConfigurator”

При подключении из SecurityConfigurator с включенными TLS/SSL сертификат должен быть установлен в “Доверенные лица” в Windows.

Пример настройки подключения SecurityConfigurator

6) Усиление безопасности TLS (опционально)

Section titled “6) Усиление безопасности TLS (опционально)”
  1. Создайте openldap-mod-tls.ldif и задайте ограничения:
    • минимальная версия TLS (olcTLSProtocolMin: 3.2), либо
    • предпочтительный вариант: olcTLSCipherSuite с исключением небезопасных наборов.
  2. Примените:
    • sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f openldap-mod-tls.ldif
  3. Перезапустите slapd и проверьте шифры:
    • sudo nmap --script ssl-enum-ciphers -p636 localhost