4

Я пытаюсь настроить Ubuntu 10.04, чтобы я мог войти в систему, используя учетные данные ldap.

Я следовал этим общим шагам настройки, изложенным в нескольких учебных пособиях, которые я нашел:

1) Установите библиотеки:

sudo apt-get install libpam-ldap libnss-ldap nss-updatedb libnss-db nscd

2) вводится в сведения о соединении по запросу libnss_ldap

3) настроил nsswitch.conf для использования ldap:

...
passwd: files ldap
group: files ldap
shadow: files ldap
...

4) настроенные файлы pam.d common- *

Вот содержимое "common-auth":

auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_ldap.so use_first_pass
# here's the fallback if no module succeeds
auth    requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth    required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
# end of pam-auth-update config

Я пробовал это на 2 серверах Linux. Кажется, ни один из них не распознает пользователей ldap. Например, getent passwd <ldap username> ничего не возвращает. id <ldap username> возвращает no such user .

Если я пытаюсь использовать ssh, используя свои учетные данные ldap, я вижу это в auth.log:

Jun  2 14:16:50 hostnameXX sshd[1527]: pam_unix(sshd:auth): check pass; user unknown
Jun  2 14:16:50 hostnameXX sshd[1527]: pam_unix(sshd:auth): authentication failure; logname=uid=0 euid=0 tty=ssh ruser= rhost=xx.xx.xx.xx

ОБНОВИТЬ

Я раскомментировал следующее в ldap.conf:

nss_base_passwd ou=xxx,dc=xxx,dc=xxx
nss_base_shadow ou=xxx,dc=xxx,dc=xxx
nss_base_group  ou=xxx,dc=xxx,dc=xxx

и теперь делает небольшой прогресс - теперь я вижу это в auth.log:

Jun  2 16:15:03 <hostname> sshd[1566]: pam_ldap: error trying to bind as user cn=xxxx,ou=xxx,dc=xxx,dc=xx" (Invalid credentials)
Jun  2 16:15:05 <hostname> sshd[1566]: Failed password for invalid user xxxx from xx.xx.xx.xx port xxxx ssh2

Если я выполняю ldapsearch используя тот же хост и базовый dn, как указано в ldap.conf, я могу запросить и успешно найти свою учетную запись ldap.

Что мне не хватает? Может быть, какой-то сервис нужно запустить? Большое спасибо за любую помощь.

3 ответа3

3

Я запустил nslcd в режиме отладки: nslcd -d и увидел в утверждениях, что он ищет объектный класс posixAccount. Все записи в моем LDAP были типа inetOrgPerson. Мне пришлось включить nis.schema в файл slapd.conf, а затем добавить posixAccount в качестве вспомогательного объектного класса для каждой записи. Затем я наконец смог использовать getent для просмотра учетных записей внутри LDAP.

Крест размещен здесь:

https://serverfault.com/questions/282349/is-it-necessary-to-synchronize-users-between-ubuntu-client-and-ldap

1

У вас есть pam_ldap в модулях pam? Отсутствие этого объясняет поведение.

1

Наши (Centos) системы используют LDAP (против Active Directory). Вы установили свой /etc/ldap.conf? Наши отображают теги nss_ * на DN в LDAP. Если вы этого не сделали, это вряд ли сработает. Посмотрите это учебное пособие по openldap.

Существует служба, которая может помочь, nscd , демон кэширования службы имен. Как следует из названия, он просто кеширует, поэтому вряд ли это будет вашей проблемой, хотя может помочь, как только вы выясните свою проблему. Иногда он «застревает», и нам приходится отскакивать, когда он не обновляет свой кэш должным образом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .