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

Странная проблема с сервером LDAP

У меня производственный сервер 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 вместе, вызвали эту проблему. Другая проблема заключалась в том, что сообщение об ошибке было недостаточно ясным для понимания.