pam_unix(sshd:auth): ошибка аутентификации

Вопрос или проблема

У меня openldap и сервер Debian 8. Я хочу настроить аутентификацию ldap. Я установил ldap-utils libnss-ldapd libpam-ldapd и настроил их.

# getent passwd user.name
user.name:x:1537:3174:User Name:/home/user.name:/bin/bash
# getent shadow user.name
user.name:*:15140:0:99999:7:::0

Когда я вхожу в систему, у меня возникает следующая ошибка:

19 сен 17:49:49 LDAPClient login[475]: pam_unix(login:auth): ошибка аутентификации; logname=LOGIN uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=name.user
19 сен 17:49:49 LDAPClient login[475]: pam_ldap(login:auth): ошибка аутентификации; user=name.user
19 сен 17:49:53 LDAPClient login[475]: НЕУДАЧНЫЙ ВХОД (1) на ‘/dev/tty1’ ДЛЯ ‘name.user’, ошибка аутентификации

Я также настраивал ssh, но ошибка та же:

19 сен 17:46:37 LDAPClient sshd[807]: pam_unix(sshd:auth): ошибка аутентификации; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.60.92 user=name.user
19 сен 17:46:37 LDAPClient sshd[807]: pam_ldap(sshd:auth): ошибка аутентификации; user=name.user
19 сен 17:46:39 LDAPClient sshd[807]: Неверный пароль для name.user с 192.168.60.92 порт 63122 ssh2
19 сен 17:46:43 LDAPClient sshd[807]: pam_ldap(sshd:auth): ошибка аутентификации; user=name.user
19 сен 17:46:45 LDAPClient sshd[807]: Неверный пароль для name.user с 192.168.60.92 порт 63122 ssh2

Как это исправить? У меня нет идеи:

# /etc/nsswitch.conf
#
# Пример конфигурации функции GNU Name Service Switch.
# Если у вас установлены пакеты `glibc-doc-reference` и `info`, попробуйте:
# `info libc "Name Service Switch"` для получения информации об этом файле.

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

Проблема была в acl:

olcAccess: {2}to dn.subtree="ou=People,dc=example,dc=com"
  by peername.ip="192.168.250.78" read
  by peername.ip="xx.xx.xx.xx" read
  by peername.ip="192.168.250.204" read
  by dn="cn=replica,dc=example,dc=com" read
  by group.exact="cn=Directory Administrators,dc=example,dc=com" manage
  by dn.subtree="ou=Special Users,dc=example,dc=com" read
  by dn.subtree="ou=Special Users,dc=example,dc=com" read
  !!!by * none

olcAccess: {5}to *
  by peername.ip="xx.xx.xx.xx" read
  by peername.ip="192.168.250.204" read
  by group.exact="cn=Directory Administrators,dc=example,dc=com" manage
  by dn="cn=admin,dc=example,dc=com" write
  by dn="cn=replica,dc=example,dc=com" read
  by dn.subtree="ou=Special Users,dc=example,dc=com" read
  !!!by * none

Если вы проверите свой shadow, вы не установили пароль для вашей учетной записи.
user.name:*:15140:0:99999:7:::0 —- * означает отсутствие пароля.

Система не позволяет вход без пароля.

ПОПРОБУЙТЕ создать пароль для вашей учетной записи и повторите попытку входа

Ответ или решение

Ошибка pam_unix(sshd:auth): authentication failure указывает на проблему с аутентификацией пользователя при попытке входа в систему через SSH. Чтобы решить эту проблему, необходимо проверить несколько ключевых аспектов конфигурации вашего сервера, который использует OpenLDAP для аутентификации пользователей.

Анализ проблемы

Ваши логи указывают на несколько ошибок аутентификации:

Sep 19 17:49:49 LDAPClient login[475]: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=/dev/tty1 ruser= rhost=  user=name.user
Sep 19 17:49:49 LDAPClient login[475]: pam_ldap(login:auth): Authentication failure; user=name.user

Также вы указали, что у пользователя name.user в разделе shadow в /etc/shadow стоит *:

user.name:*:15140:0:99999:7:::0

Этот символ * указывает на то, что пользователю не установлен пароль, что и является основной причиной ошибки аутентификации. В большинстве систем Unix/Linux аутентификация по умолчанию требует наличие пароля для входа.

Решение проблемы

  1. Установка пароля для пользователя:
    Вам нужно установить пароль для пользователя name.user. Вы можете сделать это с помощью следующей команды:

    sudo passwd name.user

    После выполнения этой команды вам будет предложено ввести новый пароль для данного пользователя. Убедитесь, что вы используете сложный пароль, чтобы соблюсти требования безопасности.

  2. Проверка ACL в OpenLDAP:
    Вы упомянули, что возможные проблемы могут быть связаны с ACL (Access Control List) в OpenLDAP. Убедитесь, что пользователь, которому вы пытаетесь установить пароль, имеет доступ в соответствии с заданными доступами.

    Ваша конфигурация доступа выглядит так:

    olcAccess: {2}to dn.subtree="ou=People,dc=example,dc=com"
     by * none

    Это означает, что все пользователи не имеют доступа к этому поддереву. Возможно, вам потребуется изменить правила доступа, чтобы разрешить аутентификацию. Например, оставив только необходимые базы данных для аутентификации.

  3. Проверка конфигурации PAM:
    Убедитесь, что файлы конфигурации PAM корректно настроены для использования LDAP. Проверьте файл /etc/pam.d/sshd и убедитесь, что в нем включены директивы для LDAP.

    Пример настройки для SSH может выглядеть так:

    auth    required    pam_unix.so nullok
    auth    sufficient  pam_ldap.so
    account required    pam_unix.so
    account sufficient  pam_ldap.so

    Это позволит системе использовать как локальную аутентификацию, так и LDAP.

  4. Перезапустите службы:
    После всех изменений не забудьте перезапустить службу SSH и, если необходимо, OpenLDAP:

    sudo systemctl restart ssh
    sudo systemctl restart slapd
  5. Тестирование:
    Попробуйте заново войти в систему с установленным паролем для пользователя. Если аутентификация пройдет успешно, ошибки в логах должны исчезнуть.

Заключение

Анализируя сообщение об ошибке pam_unix(sshd:auth): authentication failure, становится ясным, что отсутствие пароля является ключевой проблемой. Установка пароля и корректная настройка ACL в OpenLDAP помогут решить ваши проблемы с аутентификацией. Не забывайте поддерживать вашу конфигурацию в актуальном состоянии, чтобы избежать подобных ситуаций в будущем.

Оцените материал
Добавить комментарий

Капча загружается...