Назад | Перейти на главную страницу

Ошибка аутентификации LDAP

Я пытаюсь создать каталог LDAP, который позволит мне аутентифицировать пользователей Debian. После завершения настройки сервера LDAP и файлов PAM аутентификация не выполняется. Я думаю, что клиент не находит пользователя ldap в каталоге. Когда я пытаюсь войти в систему с пользователем ldap, он говорит о неправильном входе в систему, а когда я пытаюсь войти в систему с локальными пользователями, он запрашивает у меня пароль, а затем пароль LDAP.

Сервер

1) Сначала я установил ldap-utils libldap-2.4-2 libldap-2.4-2-dbg slapd slapd-dbg

2) В файле /etc/ldap/ldap.conf:

BASE dc=example,dc=com    

URI ldap://192.168.1.254/

3)

dpkg-reconfigure slapd

Проверяю, что информация о домене верна: верна.

4)

ldapsearch -x

Это соответствует тому, что я выбрал раньше.

5) Я создаю файлы .ldif для каталога и пользователей

structure.ldif:

dn: ou=users,dc=example,dc=com
objectClass: organizationalUnit
u: users
description: users

dn: ou=computers,dc=example,dc=com
objectClass: organizationalUnit
ou: computers
description: computers

dn: ou=sale,ou=users,dc=example,dc=com
objectClass: organizationalUnit
ou: sale
description: sale

dn: ou=direction,ou=users,dc=example,dc=com
objectClass: organizationalUnit
ou: direction
description: direction

dn: cn=sale,ou=sale,ou=users,dc=example,dc=com
objectClass: posixGroup
gidNumber: 501
cn: sale
description: Sale group

dn: cn=direction,ou=direction,ou=users,dc=example,dc=com
objectClass: posixGroup
gidNumber: 502
cn: direction
description: Direction group

dn: cn=pauldupont,cn=direction,ou=direction,ou=users,dc=newsoft,dc=ch
cn=pauldupont,cn=direction,ou=direction,ou=users,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
uid: pauldupont
userPassword: pauldupont
cn: pauldupont
uidnumber: 1050
gidnumber: 501
homeDirectory: /home/profils/pauldupont
sn: pauldupont

adduseringroup.ldif:

dc: cn=sale,ou=sale,ou=users,dc=example,dc=com
changetype: modify
add: memberuid
memberuid: uid=pauldupont,cn=direction,ou=direction,ou=users,dc=example,dc=com

6) Отправляю файлы в каталог:

ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f file.ldif

6)

ldapsearch -x

Информация есть.

Клиент

1) Я установил ldap-utils libldap-2.4-2 libldap-2.4-2-dbg slapd slapd-dbg libnss-ldap libpam-ldap libpam-modules libpam-cracklib nscd

2) конфигурация libnss-ldap: ip сервера: 192.168.1.254, dc = example, dc = com

3) конфигурация libpam-ldap: нет, что администратор LDAP похож на локального пользователя, нет, что сервер LDAP запрашивает информацию перед выполнением запросов

4) dpkg-reconfigure libnss-ldap

Информация верна.

5) В файле /etc/ldap/ldap.conf

BASE dc=example,dc=com
URI ldap://192.168.1.254/

6) В файле /etc/nsswitch.conf

passwd: compat ldap
group: compat ldap
shadow: compat ldap

7) В файле /etc/libnss-ldap.conf

base dc=example,dc=com
uri ldap://192.168.1.254/
ldap_version 3
rootbinddn cn=admin,dc=example,dc=com

8) В файле /etc/libnss-ldap.secret

 ldap password

9) В файле /etc/pam_ldap.conf:

base dc=example,dc=com
uri ldap://192.168.1.254/
rootbinddn cn=admin,dc=example,dc=com
port 389
scope sub
bind_timelimit 30
idle_timelimit 3600
pam_filter objectClass=posixAccount
pam_login_attribute uid

10) В файлах /etc/pam.d/common-auth & common-account & common-session я добавил внизу:

auth sufficient pam_ldap.so

11) В файле /etc/pam.d/common-password я добавил внизу:

password sufficient pam_ldap.so use_first_pass

12)

getent passwd && getent group

Показывает только локальных пользователей и группы.

13) Кажется, что клиент обращается к серверу:

ldapsearch -x -H "ldap://192.168.1.254" -b "dc=example,dc=com" dn

возвращает мне записи DNS

14) getent passwd pauldupont

Мне ничего не возвращает, и когда я проверяю /var/log/auth.log:

May 12 10:43:36 CLI1-DIR-DEB nscd: nss_ldap: failed to bind to LDAP server ldap:///192.168.1.254/: Invalid credentials
May 12 10:43:36 CLI1-DIR-DEB nscd: nss_ldap: reconnecting to LDAP server...
May 12 10:43:36 CLI1-DIR-DEB nscd: nss_ldap: failed to bind to LDAP server ldap:///192.168.1.254/: Invalid credentials
May 12 10:43:36 CLI1-DIR-DEB nscd: nss_ldap: reconnecting to LDAP server...
May 12 10:43:37 CLI1-DIR-DEB nscd: nss_ldap: failed to bind to LDAP server ldap:///192.168.1.254/: Invalid credentials
May 12 10:43:37 CLI1-DIR-DEB nscd: nss_ldap: could not search LDAP server - Server is unavailable

Кажется, учетные данные неверны. Я проверил все файлы конфигурации выше и не нашел никаких ошибок.

Кто-нибудь знает, в чем проблема?

Спасибо за помощь.

Я использую Debian Jessie 8.0 AMD64 для клиента и сервера

uname -a: Linux SRV1-DEB 3.16.0-4-amd64 # 1 SMP Debian 3.16.7-ckt9-3 ~ deb8u1 (2015-04-24) x86_64 GNU / Linux

OpenLDAP 2.4

РЕДАКТИРОВАТЬ : Как только я добавил пароль в файл /etc/ldap.secret, и я сделал getent passwd, У меня есть пользователи ldap, но я все еще не могу подключиться.

Как только я попытался подключиться, у меня есть это в файле журнала:

May 18 09:09:53 CLI1-DIR-DEB login[904]: pam_mail(login:session): user unknown
May 18 09:09:53 CLI1-DIR-DEB login[904]: pam_loginuid(login:session): error_ log for user-name'pauldupont' does not exist
May 18 09:09:53 CLI1-DIR-DEB login[904]: pam_unix(login:session): session opened for user pauldupont by LOGIN(uid=0)
May 18 09:09:53 CLI1-DIR-DEB login[904]: pam_systemd(login:session): Failed to get user data
May 18 09:09:53 CLI1-DIR-DEB login[904]: pam_systemd(login:session): Failed to get user data
May 18 09:09:53 CLI1-DIR-DEB login[904]: User not known to the underlying authentication module

Похоже, вы предоставляете binddn, но учетные данные для него плохие. Содержимое /etc/ldap.secret и что вы положили в -W подскажите точно так же?


rootbinddn binddn, используемый пользователем root на клиентской машине. Обычно это не rootdn суффикса, так как это будет означать, что компрометация машины также поставит под угрозу каталог.


Есть несколько ситуаций, в которых использование sssd над pam_ldap и nss-ldap/nss-ldapd не правильный выбор. Это не из тех. (По моему опыту, это было ограничено аутентификацией учетных записей, отличных от posix.)


Здесь есть другие ошибки при работе с группами RFC2307 vs. RFC2307bis, но до этого вы терпите неудачу. Когда это станет вашей реальной проблемой, задайте другой вопрос.