Pam аутентификация, попробуйте сначала локального пользователя, а затем LDAP

Я установил аутентификацию pam для Oracle Unified Directory на RH5, используя nslcd deamon.

Я хотел бы, чтобы аутентификация сначала была проверена для локальных пользователей, а затем, если пользователи не найдены, попытайтесь связаться с LDAP. Итак, я отредактировал /etc/nsswitch.conf следующим образом:

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

Но, похоже, это не работает, поскольку, если сервер LDAP не работает, я не могу войти на сервер.

Я что-то упускаю?

РЕДАКТИРОВАТЬ:

Это мой PAM /etc/pam.d/system-auth (я не использую sssd, только nslcd).

#%PAM-1.0
# This file is auto-generated.
auth      required      pam_env.so
auth      sufficient    pam_unix.so nullok
auth      sufficient    pam_ldap.so  use_first_pass ignore_authinfo_unavail
auth      required      pam_deny.so

account   required      pam_unix.so broken_shadow
account   required      pam_ldap.so ignore_unknown_user ignore_authinfo_unavail
account   required      pam_permit.so

password  requisite     pam_cracklib.so try_first_pass retry=3
password  sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password  required     pam_ldap.so try_first_pass ignore_unknown_user ignore_authinfo_unavail
password  required     pam_deny.so

session   optional      pam_keyinit.so revoke
session   required      pam_limits.so
session   optional      pam_mkhomedir.so skel=/etc/skel umask=077
session   [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session   required      pam_unix.so
session   optional      pam_ldap.so   ignore_authinfo_unavail

Я установил system-auth при отладке, и вот результат:

Dec 20 17:46:38 <hostname> nscd: nss_ldap: failed to bind to LDAP server ldap://<dns_1>:3389: Can't contact LDAP server
Dec 20 17:46:38 <hostname> nscd: nss_ldap: failed to bind to LDAP server ldap://<dns_2>:3389: Can't contact LDAP server
Dec 20 17:46:38 <hostname> nscd: nss_ldap: failed to bind to LDAP server ldap://<ip_1>:3389: Can't contact LDAP server
Dec 20 17:46:38 <hostname> nscd: nss_ldap: failed to bind to LDAP server ldap://<ip_2>:3389: Can't contact LDAP server

person LucaP    schedule 15.12.2017    source источник
comment
Как выглядит ваша конфигурация PAM? У вас тоже настроен SSSD? Возможно, модуль PAM косвенно пытается поразить LDAP, например, PAM- ›SSSD-› LDAP.   -  person Roshith    schedule 19.12.2017
comment
Привет @Roshith, я редактировал с помощью PAM, я не использую SSSD, я просто использую nscd deamon   -  person LucaP    schedule 19.12.2017
comment
На первый взгляд никаких проблем с конфигурацией нет. Возможно, вы захотите включить отладку PAM, чтобы отследить процесс входа в систему до того, что не работает.   -  person Roshith    schedule 20.12.2017
comment
Я вижу только ошибку связи с сервером LDAP в / var / log / messages   -  person LucaP    schedule 21.12.2017


Ответы (3)


Я обнаружил проблему.

Решение состоит в том, чтобы изменить эту строку в /etc/pam.d/systhem-auth-ac:

account   required      pam_unix.so broken_shadow

в это:

account   sufficient      pam_unix.so broken_shadow

Не забудьте изменить ту же директиву в /etc/pam.d/password-auth-ac, если у вас тоже есть этот файл. Теперь белый список через nss_initgroups_ignoreusers должен работать нормально.

person LucaP    schedule 15.01.2018

Я пока не нашел ответа. Он все еще пытается связаться с сервером LDAP, но я добавил директиву nss_initgroups_ignoreusers в /etc/ldap.conf. Итак, для пользователей, указанных в этой директиве, даже если вся СЛУЖБА LDAP не работает, вы можете войти в систему.

Эта директива работает только в том случае, если СЛУЖБА LDAP ВЫКЛЮЧЕНА, но машина работает, потому что она все еще пытается привязать СЕРВЕР LDAP.

Чтобы избежать тайм-аута простоя, вы должны добавить эту директиву idle_timelimit в /etc/ldap.conf, чтобы тайм-аут соединения с LDAP-СЕРВЕРОМ в случае сбоя подтверждения подтверждения.

В любом случае это два обходных пути, а не решение проблемы.

person LucaP    schedule 11.01.2018

Для всех, кто пользуется Debian

diff /etc/pam.d/common-account ...
...
+account        [success=done new_authtok_reqd=done default=ignore]     pam_unix.so 
-account        [success=1 new_authtok_reqd=done default=ignore]        pam_unix.so
person yokto    schedule 22.11.2019