在 RHEL6 中使用 pam_tally2 锁定帐户

在 RHEL6 中使用 pam_tally2 锁定帐户

我在用pam_tally2按照策略登录失败 3 次后锁定帐户,但是,连接用户不会收到指示 pam_tally2 操作的错误。(通过 SSH。)

我希望在第四次尝试时看到:

Account locked due to 3 failed logins

没有组合必需的或者必需品或者文件中的顺序似乎有帮助。这是红帽 6,我正在使用/etc/pam.d/password-auth。锁定确实按预期工作但用户并没有收到上述错误。这导致了很多困惑和沮丧,因为他们无法知道为什么验证失败,即使他们确定他们使用的是正确的密码。

实施遵循 NSARed Hat Enterprise Linux 5 安全配置指南(第 45 页)据我所知,唯一的事情PAM 中的更改是 /etc/pam.d/sshd 现在包含 /etc/pam.d/password-auth 而不是 system-auth

如果您的安全策略要求在多次错误登录尝试后锁定帐户,请使用 pam_tally2.so。

要强制密码锁定,请将以下内容添加到 /etc/pam.d/system-auth。首先,添加到 auth 行的顶部:

auth required pam_tally2.so deny=5 onerr=fail unlock_time=900

第二,在帐号顶部添加以下几行:

account required pam_tally2.so

编辑:

我在一次登录尝试中重置 pam_tally2 时收到错误消息。

user@localhost's password: (bad password)
Permission denied, please try again.
user@localhost's password: (bad password)
Permission denied, please try again.

(从另一个 shell 重置 pam_tally2)

user@localhost's password: (good password)
Account locked due to ...
Account locked due to ...
Last login: ...
[user@localhost ~]$

答案1

您还ChallengeResponseAuthentication yes需要/etc/ssh/sshd_config

要显示错误,pam需要对话功能。

该选项告诉 ssh 提供更完整的 PAM 对话功能,其中包括提供输出和要求任意输入(而不是仅仅通过 提供密码sshd)。

编辑:您将要PasswordAuthentication no确保密码输入始终经过此 PAM 对话。

答案2

不幸的是,你想要的不可用。OpenSSH 只会允许或拒绝身份验证。它不会让攻击者或笨拙的用户知道任何进一步的信息,这是标准行为。PAM 不知道 OpenSSH 的网络通信或它正在使用的任何其他特定于应用程序的行为它只是一堆用于身份验证的模块。

此外,pam_tally2 不提供任何类型的用户定义的错误消息指令,因此您只能依赖系统日志中的内容。

您可以研究的一种方法是修改 OpenSSH 代码库(不太难),但这超出了本问题的范围。

相关内容