В Fedora, начиная с версии 13, аутентификация переведена на демон SSS (System Security Services, https://fedorahosted.org/sssd/). Этот демон позволяет производить аутентификацию в том числе и через LDAP, что очень полезно. И вот у вас всё, как обычно, работало-работало и вдруг перестало - пользователи не могут залогиниться. Что делать? В логах следующая гадость: [sssd[be[LDAP]]] [sdap_connect_send] (4): Executing START TLS [sssd[be[LDAP]]] [sdap_connect_done] (3): START TLS result: Success(0), (null)
То есть вроде бы даже работает TLS. Но аутентификация не работает всё равно. Тут надо сделать маленькое лирическое отступление: SSSD не признаёт нешифрованных соединений с ldap-сервером. В чём-то это и правильно, однако TLS подразумевает сертификаты, а сертификаты - геморрой по их сопровождению. В одной из последних версий SSSD (в 1.3 нет, в 1.5 есть) появилась недокументированная опция ldap_auth_disable_tls_never_use_in_production (обсуждение), позволяющая отключить использование TLS. Но, во-первых, never_use_in_production, то есть некомильфово, а, во-вторых, в Fedora 13 SSSD из ветки 1.3, а там этой опции нет. То есть PKI городить таки надо. Ну вот нагородили вы PKI (я делал через OpenSSL), всё работает. А тут перестало. Обновляемся-читаем-маны-читаем-конфиги-думаем-гуглим-пробуем never_use_in_production-снова думаем. В сухом остатке - с TLS не работает, без него - за милую душу (проверено на Fedora 15). Получается, проблема в TLS. С учётом того, что всё работало, предполагается, что рализация TLS в openldap и SSSD корректная (тем более, что опирается на внешние библиотеки :) ), а, значит, практически единственное, на что можно грешить - это сертификаты. В яблочко! У сертификата x509 есть срок годности. Всё банально - серверный сертификат протух. После перевыдачи сертификатов (которая в моём случае сопровождалась генерацией нового сертификата СА, потому что то старого был забыт пароль :) ) всё заработало обратно. Выводы:
|
Блог >