我在用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 代码库(不太难),但这超出了本问题的范围。