一、centos7设置ssh登录次数限制
1、查看有无 pam_tally2 模块(centos8使用faillock)
命令:whereis pam_tally2
2、修改配置文件
1、服务器终端(tty登录):
vim /etc/pam.d/system-auth 或 vim /etc/pam.d/login都一样,因为login使用了
system-auth。
文件增加:
- auth requisite pam_tally2.so onerr=fail deny=3 unlock_time=600 even_deny_root root_unlock_time=600(加到password-auth之后,如下图)
- account required pam_tally2.so(加到postlogin之后,如下图)
如果是云服务器,可以不用配置这个
2、ssh远程登录:
vim /etc/pam.d/sshd
文件增加:
- auth requisite pam_tally2.so onerr=fail deny=3 unlock_time=600 even_deny_root root_unlock_time=600(加到password-auth之后,如下图)
- account required pam_tally2.so(加到postlogin之后,如下图)
如果没有/etc/pam.d/sshd文件,则新创建一个就好,直接复制下面的内容即可:
#%PAM-1.0
auth substack password-auth
#必须放在password-auth后面,需要先验证密码再执行过滤,否则ssh还没输密码,错误计数器就会+1
auth requisite pam_tally2.so onerr=fail deny=3 unlock_time=60 even_deny_root root_unlock_time=60
auth include postlogin
#必须增加下面这一行,否则计数器不会在登录成功后清零
account required pam_tally2.so
account required pam_sepermit.so
account required pam_nologin.so
account include password-auth
password include password-auth
## pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
## pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session optional pam_motd.so
session include password-auth
session include postlogin
上面新加的代码表示:普通帐户和root的帐户登录连续3次失败,就锁定10分钟。
如果不想限制root帐户,可以把even_deny_root root_unlock_time这两个参数去掉,root_unlock_time表示root帐户的锁定时间,onerr=fail表示连续失败,deny=3,表示超过3次登录失败即锁定。
用户锁定期间,无论在输入正确还是错误的密码,都将视为错误密码,并以最后一次登录为锁定起始时间,若果用户解锁后输入密码的第一次依然为错误密码,则再次重新锁定。
3、检查vim /etc/ssh/sshd_config文件中是否开启了pam验证,重要!!!
3、重启ssh服务
命令:service sshd restart
4、使用pam_tally2命令检查登录情况
命令:pam_tally2 --user=jsw_audit #查看jsw_audit用户的登录失败情况
命令:pam_tally2 --user=jsw_audit --reset #重置jsw_audit用户的登录失败次数为0,否则超过上面配置的次数后就禁止登录了
二、centos8设置ssh登录次数限制
centos8使用faillock模块,centos7使用pam_tally2模块
1、设置password-auth
vim /etc/pam.d/password-auth
写到文件最前面
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=300 even_deny_root root_unlock_time=600
auth sufficient pam_unix.so nullok try_first_pass
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=300 even_deny_root root_unlock_time=600
account required pam_faillock.so
表示连续输入5次错误,锁定5分钟。
2、通过命令查看登陆失败的数据
faillock
faillock --reset 重置所有登陆错误次数为0