Вопрос или проблема
Я пытался подключиться к серверу OpenLDAP, следуя руководству на https://documentation.ubuntu.com/server/how-to/sssd/with-ldap/, выполняя его шаг за шагом, и застрял на следующем этапе:
ken@desktop:~$ sudo ldapwhoami -x -ZZ -H ldap://ldap.waylandeng.com
[sudo] password for ken:
ldap_start_tls: Connect error (-11)
additional info: (unknown error code)
Однако, это работает:
ken@desktop:~$ ldapwhoami -x -H ldap://ldap.waylandeng.com
anonymous
Я использую новейшую сборку TurnkeyLinux OpenLDAP, но я также построил сервер Ubuntu LDAP, следуя пошаговым инструкциям, и получил точно такую же ошибку. Приведённые выше команды работают на сервере OpenLDAP. У меня есть другие серверы, использующие этот сервер OpenLDAP без проблем – например, сервер NextCloud.
Ответ или решение
Для начала, давайте разберем проблему, с которой вы столкнулись при подключении к серверу OpenLDAP с помощью SSSD (System Security Services Daemon). Основная проблема проявляется в ошибке, когда вы пытаетесь выполнить команду с использованием усиленной безопасности через TLS (ldap_start_tls: Connect error (-11)
), тогда как простое подключение работает без проблем и возвращает "anonymous".
Теория
SSSD используется для интеграции Linux-систем с LDAP (Lightweight Directory Access Protocol) сервером для аутентификации пользователей и получения другой информации о пользователях и группах. Он позволяет централизовать управление учетными данными и упростить процесс входа в систему через LDAP.
TLS (Transport Layer Security) — это протокол, который обеспечивает защищенную передачу данных по сети и применяется для защитного шифрования соединений к LDAP-серверу. Ошибка ldap_start_tls: Connect error
указывает на то, что клиент не может установить защищенное соединение с сервером, что может быть вызвано различными причинами, такими как несоответствие версии TLS, проблемы с доверенными сертификатами или неправильные настройки на клиентской или серверной стороне.
Пример
Вы столкнулись с тем, что:
- Анонимное соединение к OpenLDAP-серверу по обычному протоколу LDAP (
ldap://
) работает корректно. - Попытка установить защищенное соединение по TLS (
-ZZ
) завершается ошибкой.
Данная ситуация говорит о том, что базовая конфигурация сервера LDAP работает корректно, но возникают проблемы с настройкой TLS, либо на серверной стороне, либо на клиентской.
Применение
Для исправления данной ситуации следует выполнить последовательную диагностику и конфигурацию обоих компонент системы — как клиентской, так и серверной. Ниже приведены шаги, которые помогут вам устранить проблему:
-
Проверка сертификатов:
- Убедитесь, что на сервере с OpenLDAP установлен действительный и корректный SSL/TLS-сертификат. Это может быть самоподписанный сертификат или выданный доверенным центром сертификации (CA).
- Проверьте, что данный сертификат доверяется клиентской системой. Это можно сделать, добавив сертификат в цепочку доверенных сертификатов на клиентской машине.
-
Конфигурация SSSD и LDAP:
- Убедитесь, что все конфигурационные файлы (например,
/etc/ldap/ldap.conf
для Ubuntu) корректно настроены и содержат необходимые параметры для использования TLS:TLS_CACERT /path/to/ca-certificates.crt
- Проверьте правильность конфигурации SSSD (
/etc/sssd/sssd.conf
) и убедитесь, что указаны правильные параметры для использования TLS:ldap_uri = ldap://ldap.waylandeng.com ldap_start_tls = True ldap_tls_cacert = /path/to/ca-certificates.crt
- Убедитесь, что все конфигурационные файлы (например,
-
Проверка серверных логов:
- Изучите серверные логи на вашем OpenLDAP-сервере. Они могут содержать более детальную информацию о возникших ошибках и подсказать, на каком этапе установки TLS-соединения происходит сбой.
-
Обновление и совместимость:
- Убедитесь, что версии OpenLDAP на вашем сервере и клиенте поддерживают один и тот же набор шифрования и версию протокола TLS. В некоторых случаях обновление программного обеспечения до последних версий может решить проблему совместимости.
-
Тестирование соединения:
- Используйте инструменты для диагностики соединения, такие как
openssl s_client
, чтобы вручную попытаться установить защищенное соединение и посмотреть, какие сообщения об ошибках появляются, например:openssl s_client -connect ldap.waylandeng.com:389 -starttls ldap
- Используйте инструменты для диагностики соединения, такие как
-
Системное окружение и брандмауэр:
- Проверьте настройки брандмауэра как на стороне клиента, так и на стороне сервера. Возможно, порты, необходимые для TLS-соединений, закрыты.
-
Документация:
- Полезно обратиться к документации, которую вы использовали, в случае, если были упущены какие-либо критически важные шаги или параметры настройки.
Следуя вышеуказанным шагам, вы сможете более глубоко понять, в чем заключается проблема, и определить способ её устранения. Важно проводить диагностику и вносить изменения последовательно, сохраняя бэкапы текущих конфигураций для возможности возврата к рабочему состоянию. Надеюсь, что эти рекомендации помогут вам успешно решить проблему соединения с OpenLDAP сервером через SSSD.