[Sysadmins] OpenLDAP vs BIND

Dmitry =?iso-8859-1?q?tssb_=CE=C1_mail=2Eru?=
Сб Мар 15 23:46:54 MSK 2008


Здравствуйте.

Имеется ALTS4.0.1 с настроенной авторизацией пользователей через ldap.
Установил на этот сервер bind, и сразу же при загрузке системы
получил задержку ~2 минуты.
В логе обнаружил сообщение следующего содержания:

named[4758]: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: 
Can't contact LDAP server
named[4758]: nss_ldap: could not search LDAP server - Server is unavailable
Т.е. LDAP-сервер недоступен, так как он стартует позже BIND.

Сразу же возник вопрос: как bind связан с ldap?
Ответ: сам named никак не связан с ldap, но он запускается от имени 
пользователя named.named.

Однако, согласно nsswitch.conf...

-------------nsswitch.conf-------------
passwd:     files ldap nisplus nis
group:      files ldap nisplus nis
shadow:     tcb files ldap nisplus nis
---------------------------------------

...до ldap не должно доходить, так как named - локальный пользователь,
принадлежащий локальной группе named.
------------------------------------------------
[root на linux log]# cat /etc/group | grep named
named:x:25:
------------------------------------------------
И действительно, после корректировки строки в nsswitch.conf...

-------------nsswitch.conf-------------
group:      files nisplus nis
-------------nsswitch.conf-------------

...запуск BIND при загрузке произошел без задержек и ошибок логе.

То, что группа named - локальная подтвердила команда id...
--------------------------------------------
uid=25(named) gid=25(named) groups=25(named)
--------------------------------------------
которая успешно отработала.

Но такая конфигурация nsswitch.conf меня не устраивает -
не работает отображение групп в LDAP.
Поэтому пришлось вернуть строку
-------------nsswitch.conf-------------
group:      files ldap nisplus nis
---------------------------------------
Попытка ограничить работу libnss_ldap с помощью модификатора 
[SUCCESS=return] не дала результата...
-------------nsswitch.conf--------------------------
group:      files [SUCCESS=return] ldap nisplus nis
----------------------------------------------------
... при загрузке при запуске BIND вернулись тормоза и жалоба на
недоступность ldap-сервера в логе.

Поиск в google дал ссылку на дискуссию о похожем баге в Debian
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=375077

В bugillа нашел
https://bugzilla.altlinux.org/show_bug.cgi?id=12400
https://bugzilla.altlinux.org/show_bug.cgi?id=8986

Решение, которое здесь предлагается - добавить
bind_policy soft в nss_ldap.conf.
Безусловно, это помогло - тормозов при загрузке не стало,
но осталось сообщение об ошибке в логе, так как обращение
к LDAP-серверу при запуске осталось в libnss_ldap.

Вопрос: почему происходит обращение к LDAP-серверу за именем
группы (лог openldap это подтверждает), когда она присутствует
в файле /etc/group?
Если это ошибка, то это ошибка самого nss-фрейма или libnss_files,
а не ошибка nss_ldap. Как следствие, замена nss_ldap на nss-ldapd
проблему не решает.

Спасибо.

С наилучшими пожеланиями,
			Дмитрий

PS. В PAM сначала pam_tcb, а потом - pam_ldap.













Подробная информация о списке рассылки Sysadmins