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)