我对 pam 缺乏经验,所以如果这是一个明显的问题或者我给出了错误的信息,请原谅我。
我有一台 gentoo 服务器,我没有配置。它通过 kerberos 进行身份验证。问题是,有人可以使用错误的密码登录此服务器,甚至可以执行sudo
。日志如下所示:
500 Jul 01 20:22:25 [sshd] pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=myhost user=roessler
501 Jul 01 20:22:25 [sshd] pam_krb5(sshd:auth): authentication failure; logname=roessler uid=0 euid=0 tty=ssh ruser= rhost=myhost
502 Jul 01 20:22:25 [sshd] Accepted keyboard-interactive/pam for roessler from <my-IP> port <my-Port> ssh2
503 Jul 01 20:22:25 [sshd] pam_unix(sshd:session): session opened for user roessler by (uid=0)
504 Jul 01 20:22:35 [sudo] pam_unix(sudo:auth): authentication failure; logname=roessler uid=0 euid=0 tty=/dev/pts/0 ruser=roessler rhost= user=roessler
505 Jul 01 20:22:35 [sudo] pam_krb5(sudo:auth): authentication failure; logname=roessler uid=0 euid=0 tty=/dev/pts/0 ruser=roessler rhost=
506 Jul 01 20:22:35 [sudo] roessler : TTY=pts/0 ; PWD=/home/roessler ; USER=root ; COMMAND=/bin/su
507 Jul 01 20:22:35 [sudo] pam_unix(sudo:session): session opened for user root by roessler(uid=0)
508 Jul 01 20:22:35 [su] Successful su for root by root
我查看了相应的 pam 配置文件。它们互相指向,但最终归结为:
1 auth required pam_tally2.so onerr=succeed
2 auth required pam_shells.so
3 auth required pam_nologin.so
4 auth include system-auth
和 (系统认证)
1 auth required pam_env.so
2 auth required pam_listfile.so onerr=fail item=group sense=allow file=/etc/login.group.allowed
3 auth sufficient pam_unix.so try_first_pass likeauth nullok
4 auth sufficient pam_krb5.so use_first_pass debug
5 auth optional pam_permit.so
对我来说,该配置的第一行看起来很可疑,但另一台具有相同配置的服务器却运行正常。这甚至让我怀疑我是否在寻找正确的方向……
我很感激任何提示!
答案1
您说有另一台具有相同配置的服务器运行良好……但您的身份验证使得不正确的 unix 和 krb5 密码落入 pam_permit 中,而 pam_permit 总是返回 PAM_SUCCESS。这很糟糕。它应该是 pam_permit,而不是
auth required pam_deny.so