5 次登录失败后如何锁定用户?

gas*_*ter 13 password pam lock

5 次登录失败后如何锁定用户?

我收集了一些发行版/版本来说明如何去做,但我无法对其进行测试。

RHEL4:通过添加:

auth        required      /lib/security/$ISA/pam_tally.so no_magic_root
account     required      /lib/security/$ISA/pam_tally.so deny=5 reset no_magic_root
Run Code Online (Sandbox Code Playgroud)

到:

/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd
Run Code Online (Sandbox Code Playgroud)

RHEL4:???

SLES9:通过添加:

auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root
Run Code Online (Sandbox Code Playgroud)

到:

/etc/pam.d/login
/etc/pam.d/sshd
Run Code Online (Sandbox Code Playgroud)

SLES11 或 SLES10:通过添加:

auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time
Run Code Online (Sandbox Code Playgroud)

到:

/etc/pam.d/common-auth
Run Code Online (Sandbox Code Playgroud)

并通过添加:

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

到:

/etc/pam.d/common-account
Run Code Online (Sandbox Code Playgroud)

问题:有人可以确认这是在 5 次登录尝试失败后锁定用户的有效/好方法吗?或者怎么做?

附:

/sbin/pam_tally --user USERNAME --reset
Run Code Online (Sandbox Code Playgroud)

在做这件事之前做这件事有用吗?我可以用这些来锁定 root 用户吗?编辑 PAM 是一件非常敏感的事情,因为人们可以将自己锁定在服务器之外(我的意思是例如:root 用户)。这样做时有什么提示吗?

slm*_*slm 18

你可能想看看fail2ban。它可以配置为在一定次数的失败尝试后锁定帐户,然后在一段时间后解锁。

http://www.fail2ban.org/wiki/index.php/Downloads

如果您真的很想使用pam_tally,您可能想pam_tally2改用。应该与任何当前的 PAM 包一起安装。你可以做一个man pam_tally2来看看如何使用它。

这是一个让您入门的示例。将以下内容添加到pam 文件中auth部分的开头/etc/pam.d/password-auth

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200
Run Code Online (Sandbox Code Playgroud)

在同一个文件中,将其添加到帐户部分:

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

上述参数如下:

  • file=/var/log/tallylog – 默认日志文件用于保持登录计数。
  • deny=3 – 3 次尝试后拒绝访问并锁定用户。
  • even_deny_root – 策略也适用于 root 用户。
  • unlock_time=1200 - 20 分钟(60 秒 * 20 分钟 = 1200 秒)

如果您不想锁定 root,请将even_deny_root更改为magic_root

如果您想锁定 root 帐户,这是有问题的。您可能想要做这样的事情,root 帐户可以被锁定,但持续时间比其他帐户短:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200 root_unlock_time=60
Run Code Online (Sandbox Code Playgroud)

这只会锁定 root 帐户一分钟,其他人则是正常的 1200 秒。

示例日志文件如下所示:

$ ssh me@somemachine
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Account locked due to 4 failed logins
Account locked due to 5 failed logins
Last login: Mon Jun 4 21:21:06 2013 from someothermachine
Run Code Online (Sandbox Code Playgroud)

您可以使用命令 pam_tally2 查询锁定的帐户:

$ pam_tally2 --user=me
Login           Failures  Latest    failure     From
me                   5    06/04/13  21:21:06    someothermachine
Run Code Online (Sandbox Code Playgroud)

您可以像这样解锁限制:

pam_tally2 --user=me --reset
Login           Failures  Latest    failure     From
me                  5     06/04/13  21:21:06    someothermachine
Run Code Online (Sandbox Code Playgroud)

现在帐户显示在 pam_tally2 中,如下所示:

$ pam_tally2 --user=me
Login           Failures   Latest   failure     From
me                 0
Run Code Online (Sandbox Code Playgroud)

参考