我使用pam_tally2在每个策略 3 次登录失败后锁定帐户,但是,连接用户没有收到指示 pam_tally2 操作的错误。(通过 SSH。)
我希望在第 4 次尝试时看到:
Account locked due to 3 failed logins
required或requisite的组合或文件中的顺序似乎没有帮助。这是在Red Hat 6下,我正在使用/etc/pam.d/password-auth
. 锁定确实按预期工作,但用户没有收到上述错误。这会导致很多混乱和沮丧,因为当他们确定使用正确的密码时,他们无法知道身份验证失败的原因。
实施遵循 NSA 的Red Hat Enterprise Linux 5 安全配置指南。(pg.45) 据我了解,PAM 中唯一改变的是 /etc/pam.d/sshd 现在包括 /etc/pam.d/password-auth 而不是 system-auth。
如果您的安全策略要求在多次错误登录尝试后锁定帐户,请实施 pam_tally2.so。
要强制密码锁定,请将以下内容添加到 /etc/pam.d/system-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 ~]$
您还需要
ChallengeResponseAuthentication yes
在/etc/ssh/sshd_config
.要显示错误,
pam
需要一个会话功能。此选项告诉 ssh 提供更完整的 PAM 对话功能,其中涵盖提供输出和要求任意输入(而不是仅仅由 传递密码
sshd
)的其他内容。编辑:您需要
PasswordAuthentication no
确保密码输入始终通过此 PAM 对话。不幸的是,您所追求的是不可用的。OpenSSH 将只允许或拒绝身份验证。它不会让攻击者或笨拙的用户知道任何进一步的信息,这是标准行为。PAM 不知道 OpenSSH 或它正在使用的任何其他特定于应用程序的行为的网络通信。它只是一堆用于身份验证的模块。
此外,pam_tally2 不提供任何类型的用户定义错误消息指令,因此无论如何您只能依赖系统日志中的内容。
您可以研究的一种方法是修改 OpenSSH 代码库(不太难),但这超出了本问题的范围。