在 RHEL6 中使用 pam_tally2 锁定帐户

Aar*_*ley 7 redhat pam hardening user-accounts rhel6

我正在使用pam_tally2在每个策略 3 次登录失败后锁定帐户,但是,连接用户没有收到指示 pam_tally2 操作的错误。(通过 SSH。)

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

Account locked due to 3 failed logins
Run Code Online (Sandbox Code Playgroud)

文件中的requiredrequisite或 order 的组合似乎没有帮助。这是在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 行的顶部:

auth required pam_tally2.so deny=5 onerr=fail unlock_time=900
Run Code Online (Sandbox Code Playgroud)

其次,添加到帐户行的顶部:

account required pam_tally2.so
Run Code Online (Sandbox Code Playgroud)

编辑:

我通过在其中一次登录尝试期间重置 pam_tally2 来收到错误消息。

user@localhost's password: (bad password)
Permission denied, please try again.
user@localhost's password: (bad password)
Permission denied, please try again.
Run Code Online (Sandbox Code Playgroud)

(从另一个 shell 重置 pam_tally2)

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

Pie*_*ier 6

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

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

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

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

  • 我相信无论如何,sshd 首先会尝试使用空密码登录,这样如果帐户没有密码,客户端就不会看到密码提示。这就是一次失败的尝试。http://www.openssh.org/faq.html#3.1 (2认同)