等保测评之服务器未配置登录失败锁定策略及登录连接超时自动退出策略

真是一事未完又来一事哈,昨天收到的等保测评出现了好多的问题,这里将部分问题做一下记录

看看问题

问题如下

在这里插入图片描述

测试服务器

主要是测试服务器是不是存在这种问题,经过测试问题存在,测试过程这里省略了

问题描述

恶意人员可通过暴力破解的方式获取账户口令。且设备易被非授权人员恶意操作,存在非授权访问的风险。

问题解决

  • 一下文件配置完成后不需要重启服务器的哈,直接生效,还有就是在操作时,建议保持一个ssh远程连接到服务器,方便出现错误及时的回滚操作
备份主要涉及的两个重要文件
[root@localhost ~]# cp /etc/pam.d/sshd /etc/pam.d/sshd.bak    #这个是ssh的配置文件
[root@localhost ~]# cp /etc/pam.d/login /etc/pam.d/login.bak
[root@localhost ~]# ll /etc/pam.d/sshd.bak  /etc/pam.d/login.bak   ##这个文件里面记录了所有关于登录的配置文件记录
-rw-r--r--. 1 root root 796 10月 13 10:01 /etc/pam.d/login.bak
-rw-r--r--. 1 root root 904 10月 13 10:00 /etc/pam.d/sshd.bak
检查是否存在的重要pam模块.so文件
[root@localhost ~]# find /* -name "*pam_tally2.so*"
/usr/lib64/security/pam_tally2.so
配置登录失败处理功能策略(服务器终端)
[root@localhost ~]# cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
[root@localhost ~]# vim /etc/pam.d/system-auth
[root@localhost ~]# cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so
auth required pam_tally2.so  onerr=fail  deny=3  unlock_time=40 even_deny_root root_unlock_time=30   ###需要添加的这一行

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

  • deny 指定最大几次认证错误,如果超出此错误,将执行后面的策略。如锁定N秒,如果后面没有其他策略指定时,默认永远锁定,除非手动解锁。
  • lock_time 锁定多长时间,按秒为单位;
  • unlock_time 指定认证被锁后,多长时间自动解锁用户;
  • magic_root 如果用户uid=0(即root账户或相当于root的帐户)在帐户认证时调用该模块发现失败时,不计入统计;
  • no_lock_time 不使用.fail_locktime项在/var/log/faillog 中记录用户 ---按英文直译不太明白,个人理解即不进行用户锁定;
  • even_deny_root root用户在认证出错时,一样被锁定(该功能慎用,搞不好就要单用户时解锁了)
  • root_unlock_time root用户在失败时,锁定多长时间。该选项一般是配合even_deny_root 一起使用的。

终端测试效果如下:
在这里插入图片描述
查看安全日志验证:

[root@localhost ~]# tail -100 /var/log/secure | grep "max"
Oct 13 10:19:17 localhost sshd[2242]: PAM service(sshd) ignoring max retries; 5 > 3

在这里插入图片描述

配置登录失败处理功能策略(ssh远程连接登录)
[root@localhost ~]# vim /etc/pam.d/sshd
[root@localhost ~]# cat  /etc/pam.d/sshd
#%PAM-1.0
auth	   required	pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
auth required pam_tally2.so  onerr=fail  deny=3  unlock_time=40 even_deny_root root_unlock_time=30   ##添加部分
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
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    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

ssh远程测试效果:

经过测试连续登录3此输入错误的密码后,第四次或之后的40秒内,那怕输入正确的密码,也不会正常的登录

查看安全日志验证:
在这里插入图片描述

其他的辅助命令

[root@localhost ~]# pam_tally2 --user root       ###其中root为用户,这个是查看当前root用户登录失败了多少次
Login           Failures Latest failure     From
root                4    10/13/21 10:43:06  192.168.211.1
[root@localhost ~]# pam_tally2 -r -u  root    ##解锁root用户
Login           Failures Latest failure     From
root                8    10/13/21 10:44:54  tty1
[root@localhost ~]# pam_tally2 --user root   #再次查看root用户的饿登录失败次数,此时为0
Login           Failures Latest failure     From
root                0 
Logo

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

更多推荐