等保测评之服务器未配置登录失败锁定策略及登录连接超时自动退出策略
真是一事未完又来一事哈,昨天收到的等保测评出现了好多的问题,这里将部分问题做一下记录
看看问题
问题如下
测试服务器
主要是测试服务器是不是存在这种问题,经过测试问题存在,测试过程这里省略了
问题描述
恶意人员可通过暴力破解的方式获取账户口令。且设备易被非授权人员恶意操作,存在非授权访问的风险。
问题解决
- 一下文件配置完成后不需要重启服务器的哈,直接生效,还有就是在操作时,建议保持一个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