首先,在文字终端中,一个用户连续n次错误登录,然后将用户锁定x分钟(pam_tally2)。

运行Vim /etc

#%PAM-1.0 #%下面的新行,添加

auth required deny=3 unlock _ time=5 even _ deny _ root root _ unlock _ time=10

如果不限制root用户,则可以按如下方式写入

auth required deny=3 unlock _ time=5

Even_deny_root也限制超级用户。

Deny设置最终用户和root用户超过最大次数时,用户将被锁定的最大连续错误登录次数。

Unlock_time设置最终用户锁定后的解锁时间(秒)。

设置Root_unlock_time根用户锁定后解除锁定的秒数。

注意:

1、此处可以使用pam_tally2模块,如果不支持pam_tally2模块,则可以使用pam_tally模块。

另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。

2、也可以直接在 system-auth 文件中直接添加这些命令,修改完成后,凡是调用 system-auth 文件的服务,都会生效。因为有自动解锁时间,所以,不用担心全部限制后,会出现永远无法登陆的”尴尬”情况。

3、可以使用 pam_tally2 -r -u username 命令,手动清除某用户记录次数。

二、设置Linux用户连续N次登陆失败时,自动锁定X分钟(pam_tally)

1、如果想在所有登陆方式上,限制所有用户,可以在 /etc 中增加2行

auth required onerr=fail no_magic_root

account required deny=3 no_magic_root even_deny_root_account per_user reset

deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;

no_magic_root 连root用户也在限制范围,不给root特殊权限。

详细参数的含义,参见 /usr/share/doc/pam-xxxx/tx

如果不想限制root用户,可以将 even_deny_root_account 取消掉。

2、针对不同服务来限制不同登陆方式

#只在本地文本终端上做限制,可以编辑如下文件,添加的内容和上方一样。

vim /etc

#只在远程telnet、ssh登陆上做限制,可以编辑如下文件,添加的内容和上方也一样。

vim /etc

vim /etc

3、手动解除锁定:

#查看某一用户错误登陆次数:

pam_tally –user username

#例如,查看work用户的错误登陆次数:

pam_tally –user work

#清空某一用户错误登陆次数:

pam_tally –user username –reset

#例如,清空 work 用户的错误登陆次数,

pam_tally –user work –reset

faillog -r 命令亦可。

4、pam_tally没有自动解锁功能

因为pam_tally没有自动解锁的功能,所以,在设置限制时,要多加注意,万一全做了限制,而 root用户又被锁定了,就只能够进单用户模式解锁了,当然,也可以添加crontab任务,达到定时自动解锁的功能,但需要注意的是,如果在/etc 文件中添加了pam_tally的话,当root被锁定后,crontab任务会失效,所以,最好不要在system-auth 文件中添加pam_tally。

相关推荐