pam 身份验证失败,但 sudo 和 ssh 工作

roe*_*erj 3 configuration authentication

我对 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
Run Code Online (Sandbox Code Playgroud)

我查看了相应的 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
Run Code Online (Sandbox Code Playgroud)

和(系统认证)

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
Run Code Online (Sandbox Code Playgroud)

对我来说,该配置的第一行看起来很可疑,但是还有另一台具有相同配置的服务器运行良好。这甚至让我怀疑我是否在寻找正确的方向......

我很欣赏任何提示!

Mar*_*ner 6

您说还有另一台具有相同配置的服务器可以正常工作……但是您的身份验证使得不正确的 unix 和 krb5 密码落入 pam_permit,而 pam_permit 总是返回 PAM_SUCCESS。那很糟。而不是 pam_permit 应该是

auth        required      pam_deny.so
Run Code Online (Sandbox Code Playgroud)