一、用户账户安全加固

1、修改用户密码策略

修改编辑配置文件:vi /etc/login.defs,修改如下配置:
PASS_MAX_DAYS        90   #用户的密码不过期最多的天数, 99999:永久有期;对login.defs文件修只影响后续建立的用户,如果要改变以前建立的用户的有效期等可以使用chage命令
PASS_MIN_DAYS        0   #密码修改之间最小的天数,0可修改,非0多少天后可修改
PASS_MIN_LEN         8   #密码最小长度
PASS_WARN_AGE        7    #密码失效前多少天在用户登录时通知用户修改密码

2、锁定或删除系统中与服务运行运维无关的用户
(1)查看系统中的用户并确定无用的用户
more /etc/passwd
(2)锁定不使用的账户(锁定或删除用户根据自己的需求操作即可)
锁定不使用的账户:
usermod -L username
或删除不使用的账户:
userdel -f username
(3)回退操作
用户锁定后,当使用时可解锁锁定,解除锁定命令为:
usermod -U username

3、锁定或删除系统中不使用的组
(1)查看系统中的组并确定不使用的组
cat /etc/group
(2)锁定或删除不使用的组
锁定不使用的组:
修改组配置文件/etc/group,在不使用的组前加“#”注释掉该组即可
删除不使用的组:
groupdel groupname

4、限制密码的最小长度 参考:
vi /etc/pam.d/system-auth 添加:minlen=8

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    requisite     pam_pwquality.so minlen=8 try_first_pass local_users_only retry=3 authtok_type=

二、用户登录安全设置

1、设置避免SSH连接超时自动断开
(1)、修改前备份ssh配置文件/etc/ssh/sshd_config
cp /etc/ssh/sshd_config /etc
(2)、修改ssh服务配置文件
编辑vi /etc/ssh/sshd_config
“#ClientAliveInterval 0” 修改为“ClientAliveInterval 180” 去掉注释,改数字
“#ClientAliveCountMax 3” 修改为“ClientAliveCountMax 3” 去掉注释
注:这样连接centos7长时间不操作,不会因连接超时中断了;并不是超过这个时间,中断登录。参考:
(3)、修改完成后重启ssh服务
systemctl restart sshd.service
(4)、回退操作
cp /etc/sshd_config /etc/ssh/sshd_config

2、设置当用户连续登录失败三次,锁定用户10分钟 参考:
(1)、锁定通过ssh协议登录的用户
编辑vi /etc/pam.d/sshd文件,在第一行下即#%PAM-1.0的下面添加:

auth required pam_tally2.so deny=3 unlock_time=600 per_user reset

(2)、锁定通过tty终端登录的用户
编辑vi /etc/pam.d/login文件,在第一行下即#%PAM-1.0的下面添加:

auth required pam_tally2.so deny=3 unlock_time=600 per_user reset

3、设置用户不能使用最近五次使用过的密码 参考:https://www.jianshu.com/p/1c7bd44caa38/
vi /etc/pam.d/system-auth, 增加一行

password    requisite     pam_pwhistory.so use_authtok remember=5 retry=3

4、设置登录系统账户超时自动退出登录
(1)、修改系统环境变量配置文件/etc/profile,在文件的末尾加入“TMOUT=1800”,使登录系统的用户三十分钟不操作系统时自动退出登录。
echo TMOUT=1800 >>/etc/profile
(2)、使配置生效
source /etc/profile

5、禁止root用户远程登录(部署最后操作,否则无法远程连接root用户)
(1)、修改ssh服务配置文件不允许root用户远程登录
编辑/etc/ssh/sshd_config找到“#PermitRootLogin yes”去掉注释并修改为“PermitRootLogin no”
vi /etc/ssh/sshd_config
(2)、修改完成后重启ssh服务
systemctl restart sshd.service