У меня производственный сервер LDAP, работающий за последние 1 год без каких-либо проблем, я неожиданно получаю ошибку сбоя пароля при аутентификации через pam_ldap. Поэтому его показывает следующее сообщение об ошибке, я могу аутентифицироваться с помощью клиентских утилит ldap, таких как ldapsearch, также через какое-то приложение на Java,
На стороне клиента я получил следующее сообщение об ошибке в / var / log / secure
Failed password for [username] from xx.xx.xx.xx port 38473 ssh2
fatal: Access denied for user [username] by PAM account configuration
В журналах сервера LDAP.
=> access_allowed: read access denied by auth(=xd)
send_search_entry: conn 1711 access to attribute userPassword, value #0 not allowed
Конфигурация ACL на сервере LDAP
access to attrs=userPassword
by self write
by anonymous auth
by dn.base="cn=Manager,dc=example,dc=com" write
by * none
access to attrs=shadowLastChange
by self write
by * read
access to *
by self write
by dn.base="cn=Manager,dc=example,dc=com" write
by * read
конфигурация pam_ldap (/etc/pam.d/system-auth) - на стороне клиента
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_ldap.so try_first_pass
auth sufficient pam_unix.so nullok use_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 debug minclass=4 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0 minlen=8
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
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=0077
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
Странно то, что я долгое время не вносил никаких изменений на стороне сервера или клиента.
Что ж, я обнаружил проблемы, все учетные записи на нашем сервере LDAP истекали в один и тот же день (shadowExpiry), так как мы используем shadow и ppolicy вместе, вызвали эту проблему. Другая проблема заключалась в том, что сообщение об ошибке было недостаточно ясным для понимания.