pam_tally2或pam_faillock帐户与sshlocking

我正在运行RHEL 6.2。 大多数用户将使用SSHlogin使用密码。 有些人可能有钥匙。 所有账户都是本地的。

N次密码login失败后,我需要将用户locking。

man pam_tally2pam_faillock的示例不会locking使用ssh的用户。 pam_tally2示例可以locking一个telnet(我启用testing)login&随后将locking一个SSH用户。 SSH不能触发它。

/etc/ssh/sshd_config有:

 PasswordAuthentication yes # setting to no doesn't allow login with a password! UsePAM yes UseLogin no # setting to yes doesn't allow putty logins 

手册页的例子应该在一个不变的系统上工作。

如果启用PasswordAuthentication则SSH守护程序自己处理密码,而不使用PAM。 你真的想禁用这个,以强制它使用PAM:

 PasswordAuthentication no UsePAM yes ChallengeResponseAuthentication yes 

这不会抓住用户使用密钥然而(虽然个人,我认为这很好)。 如果你这样做,你可能不得不使用类似fail2ban的东西来查找日志中的authentication失败,并添加iptables规则来阻止未来的尝试。

您需要将以/etc/pam.d/sshd添加到/etc/pam.d/sshd

 auth required pam_tally2.so deny=6 onerr=fail unlock_time=1800 account required pam_tally2.so 

将它们添加到第3行和第6行,如下所示:

 #%PAM-1.0 auth required pam_sepermit.so auth required pam_tally2.so deny=6 onerr=fail unlock_time=1800 auth include password-auth account required pam_nologin.so account required pam_tally2.so account include password-auth password include password-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_loginuid.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open env_params session required pam_namespace.so session optional pam_keyinit.so force revoke session include password-auth 

还要确保在/etc/ssh/sshd_config设置了UsePAM yes

这将在6次失败的authentication尝试之后lockingssh用户30分钟。


如果我们遵循官方的RHEL 6安全指南 ,我们可以在不更改/etc/pam.d/sshd情况下完成此操作。

我们编辑/etc/pam.d/system-auth/etc/pam.d/password-auth ,replace

 auth sufficient pam_unix.so nullok try_first_pass 

 auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600 

而且,在这两个文件中,我们将这一行添加到“帐户”部分的顶部:

 account required pam_faillock.so 

这将为控制台用户,屏保用户等提供帐户lockingfunction。

如果您检查/etc/pam.d/sshd ,则可以看到它使用password-auth ,因此ssh用户将体验相同的lockingfunction。

我不得不编辑'/etc/pam.d/sshd'

Auth需要pam_tally2.so Deny = 5 Unlock_time = 1200 Even_deny_root Root_unlock_time = 10

现在它工作。