cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
cp /etc/pam.d/login /etc/pam.d/login.bak
使用下面命令,查看系统是否含有pam_tally2.so模块,如果没有就需要使用pam_tally.so模块,两个模块的使用方法不太一样,需要区分开来。
# find / -name pam_tally2.so
/usr/lib64/security/pam_tally2.so
编辑系统/etc/pam.d/system-auth 文件,一定要在pam_env.so后面添加如下策略参数:
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
#限制su 多次切换失败后锁定用户
auth required pam_tally2.so onerr=fAIl deny=3 unlock_time=40 even_deny_root root_unlock_time=40
............................
注意:
添加的位置顺序不要错,在#%PAM-1.0的下面,一定要在pam_env.so(auth required pam_env.so)后面
onerr=fail 表示定义了当出现错误时的缺省返回值;
even_deny_root 表示也限制root用户;
deny 表示设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
unlock_time 表示设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 表示设定root用户锁定后,多少时间后自动解锁否则手动,单位是秒;
su错误示例:
---------------------------------------------------
[test1@localhost ~]$ su - root
密码:
su: 鉴定故障
[test1@localhost ~]$ su - root
密码:
su: 鉴定故障
[test1@localhost ~]$ su - root
密码:
su: 鉴定故障
[test1@localhost ~]$ su - root
因为 4 失败登录而锁定帐户
su用户切换锁定后查看:
# pam_tally2 --user test2
Login Failures Latest failure From
test2 4 06/06/20 02:14:21 pts/0
上面只是限制了从终端su登陆,如果想限制ssh远程的话,要改的是/etc/pam.d/sshd这个文件,添加的内容跟上面一样!
编辑系统/etc/pam.d/sshd文件,注意添加地点在#%PAM-1.0下一行,即第二行添加内容
#%PAM-1.0
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 even_deny_root root_unlock_time=600
......................
ssh锁定用户后查看:
# pam_tally2 --user test1
Login Failures Latest failure From
test1 6 06/06/20 02:18:46 192.168.2.2
编辑系统 /etc/pam.d/login 文件,注意添加地点在#%PAM-1.0的下面,即第二行,添加内容
#%PAM-1.0
auth required pam_tally2.so onerr=fail deny=5 unlock_time=600 even_deny_root root_unlock_time=600
......................
tty登录锁定后查看:
# pam_tally2 --user root
Login Failures Latest failure From
root 17 06/06/20 02:10:14 tty1
编辑 /etc/pam.d/remote文件,注意添加地点在pam_env.so后面,参数和ssh一致
auth required pam_tally2.so onerr=fail deny=5 unlock_time=600 even_deny_root root_unlock_time=600
# pam_tally2 #查看所有用户登录失败次数(有会显示,没有锁定用户无信息)
# pam_tally2 --user root #查看指定登录失败的用户次数
# pam_tally2 -r -u root #清除失败登录记录,且后面可以输入正确的账户密码登录