auth.log 中有错误但可以登录;LDAP/PAM

auth.log 中有错误但可以登录;LDAP/PAM

我有一台运行 OpenLDAP 的服务器。当我启动 ssh 会话时,我可以顺利登录,但日志中会出现错误。只有当我使用 LDAP 帐户登录时才会发生这种情况(因此不会使用 root 等系统帐户)。任何帮助消除这些错误的帮助都将不胜感激。

/var/log/auth.log 中的相关部分

sshd[6235]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=example.com  user=peter
sshd[6235]: Accepted password for peter from 192.168.1.2 port 2441 ssh2
sshd[6235]: pam_unix(sshd:session): session opened for user peter by (uid=0)

pam 公共会话

session [default=1]                     pam_permit.so
session required        pam_unix.so
session optional                        pam_ldap.so
session     required      pam_mkhomedir.so skel=/etc/skel umask=0022
session     required      pam_limits.so
session     required      pam_unix.so
session     optional      pam_ldap.so

pam 通用身份验证

auth    [success=1 default=ignore]      pam_ldap.so
auth    required                        pam_unix.so nullok_secure use_first_pass
auth    required                        pam_permit.so
session     required      pam_mkhomedir.so skel=/etc/skel umask=0022 silent
auth    sufficient      pam_unix.so nullok_secure use_first_pass
auth    requisite       pam_succeed_if.so uid >= 1000 quiet
auth    sufficient      pam_ldap.so use_first_pass
auth    required        pam_deny.so

pam 通用帐户

account [success=2 new_authtok_reqd=done default=ignore]        pam_ldap.so
account [success=1 default=ignore]      pam_unix.so
account     required      pam_unix.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so
account sufficient        pam_ldap.so
account sufficient      pam_unix.so

答案1

出现此错误的原因是pam_unix模块被要求检查 LDAP 用户的密码,但结果当然是失败了。PAM 配置会忽略此失败,但模块还是会记录它(并且无法禁用此功能)。

但是,您的配置对我来说看起来很奇怪。您使用了pam_unixpam_ldap两次,我建议您清理一下。如果您只使用它们的第一次出现,错误消息应该会消失(因为pam_unix对于成功通过身份验证的 LDAP 用户将被跳过)。但是,我不确定您想通过双重检查和该pam_succeed_if行实现什么目的,因此请确保您知道在更改此配置时要做什么。

相关内容