Ubuntu 12.04 проблема клиента LDAP

Я следовал описанному здесь руководству по настройке LDAP, но продолжаю получать следующую ошибку при запуске "getent passwd", есть ли причина для этого?

Ошибка:

Jul 16 15:58:33 wso2-VirtualBox getent: nss_ldap: could not search LDAP server - Server is unavailable
^[[AJul 16 15:59:34 wso2-VirtualBox getent: nss_ldap: failed to bind to LDAP server ldapi:///192.168.4.152/: Invalid credentials
Jul 16 15:59:34 wso2-VirtualBox getent: nss_ldap: could not search LDAP server - Server is unavailable

Конфигурационные файлы:

vi /etc/ldap.conf

base dc=example,dc=com

uri  ldapi:///192.168.4.152/

ldap_version 3

timelimit 4

bind_timelimit 4

bind_policy soft

pam_password md5

nss_initgroups_ignoreusers avahi,avahi-
autoipd,backup,bin,colord,daemon,games,gnats,hplip,irc,kernoops,libuuid,lightdm,list,lp,mail,man,messagebus,news,nslcd,openldap,proxy,pulse,root,rtkit,saned,speech-dispatcher,sshd,sync,sys,syslog,usbmux,uucp,whoopsie,www-data

4 ответа

Я думаю, что проблема в том, что:

uri  ldapi:///192.168.4.152/

должно быть:

uri  ldap://192.168.4.152/

Использовать ldapsearch инструмент командной строки для проверки правильности работы сервера и правильности учетных данных:

ldapsearch -D the-dn-you-use -w -the-password-you-use \
    -H 192.168.4.152:389 -s base -b dc=example,dc=com '(&)' 1.1

Если ldapsearch успешно, сервер прослушивает, у клиента LDAP достаточно прав для выполнения этого поиска, и аутентификация прошла правильно.

Я использовал официальную документацию и в итоге получил похожие сообщения, хотя getent passwd показывал записи LDAP в выводе. Даже bash завершение имен пользователей работало со значениями LDAP. Когда я пытался id username с именем пользователя LDAP произошел сбой и вошли те же сообщения об ошибках, что и у вас.

Через несколько минут я вспомнил, что данные LDAP содержат имя администратора cn=admin,dn=... пока в /etc/ldap.conf rootbinddn был установлен на cn=mananger,dn=...
Я изменился /etc/ldap.conf чтобы соответствовать данным LDAP, и проблема прояснилась. Позже я нашел блог, который вы упомянули, и там написано:

Закомментируйте строку "rootbinddn" [не знаю, зачем нам это нужно]

Это, наверное, то же самое.

Я предполагаю, что вам нужно сначала определить, принимает ли ваш LDAP-сервер соединения вообще... Установите ldap-utils на свой клиент, чтобы у вас был инструмент ldapsearch. Тогда попробуй ldapsearch -x, При этом используется простая аутентификация, и если вы получите результаты, вы можете быть уверены, что ваш ldap-сервер может быть запрошен с клиента.

Далее взгляните на ваш файл slapd.conf. Внимательно посмотрите на поля binddn и bindpw. Вы можете изменить bindpw, если вы его не помните. Команда для генерации закодированного bindpw будет использовать slappasswd на ваш простой текстовый пароль. После этого вы можете использовать команду, упомянутую Терри Гарднером выше. Если это связано, то вы можете быть уверены, что аутентификация ldap работает нормально. Если это не сработает, то опубликуйте сообщения об ошибках, опишите проблемы, с которыми вы столкнулись, а также опубликуйте ваш slapd.conf и, надеюсь, мы сможем предоставить вам решение.:)

Другие вопросы по тегам