网站搜索

使用 Pam_Tally2 锁定和解锁 SSH 失败的登录尝试


pam_tally2 模块用于在系统尝试 ssh 登录失败一定次数后锁定用户帐户。该模块保留尝试访问的计数和失败尝试的次数。

pam_tally2模块分为两部分,一部分是pam_tally2.so,另一部分是pam_tally2。它基于PAM模块,可用于检查和操作计数器文件。它可以显示用户登录尝试计数、单独设置计数、解锁所有用户计数。

pam_faillock 模块取代了 pam_tallypam_tally2 模块,这两个模块已在 RHEL 7 和 RHEL 8 中弃用。它比这两个模块提供了更多的灵活性和选项模块。

默认情况下,pam_tally2 模块已安装在大多数 Linux 发行版上,并且由 PAM 软件包本身控制。本文演示了如何在达到一定的失败登录尝试次数后锁定和解锁 SSH 帐户。

如何锁定和解锁用户帐户

使用“/etc/pam.d/password-auth”配置文件来配置登录尝试访问。打开此文件并在“auth”部分的开头添加以下 AUTH 配置行。

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200

接下来,将以下行添加到“帐户”部分。

account     required      pam_tally2.so
参数
  1. file=/var/log/tallylog – 默认log 文件用于保存登录计数。
  2. deny=3 – 在 3 次尝试后拒绝访问并锁定用户。
  3. even_deny_root – 策略也适用于root 用户。
  4. unlock_time=1200 – 帐户将被锁定至20 分钟。 (如果要永久锁定直到手动解锁,请去掉此参数。)

完成上述配置后,现在尝试使用任何“用户名”对服务器进行 3 次失败的登录尝试。当您尝试超过 3 次后,您将收到以下消息。

[root@tecmint ~]# ssh [email 
[email 's password:
Permission denied, please try again.
[email 's password:
Permission denied, please try again.
[email 's password:
Account locked due to 4 failed logins
Account locked due to 5 failed logins
Last login: Mon Apr 22 21:21:06 2013 from 172.16.16.52

现在,使用以下命令验证或检查用户尝试的计数器。

[root@tecmint ~]# pam_tally2 --user=tecmint
Login           Failures  Latest    failure     From
tecmint              5    04/22/13  21:22:37    172.16.16.52

如何重置或解锁用户帐户以再次启用访问。

[root@tecmint pam.d]# pam_tally2 --user=tecmint --reset
Login           Failures  Latest    failure     From
tecmint             5     04/22/13  17:10:42    172.16.16.52

验证登录尝试是否已重置或解锁

[root@tecmint pam.d]# pam_tally2 --user=tecmint
Login           Failures   Latest   failure     From
tecmint            0

PAM 模块是所有 Linux 发行版的一部分,提供的配置应适用于所有 Linux 发行版。从命令行执行“man pam_tally2”以了解更多信息。

另请阅读:

  1. 确保 SSH 服务器安全的 5 个技巧
  2. 使用 DenyHosts 阻止 SSH 暴力攻击