一、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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐