描述:限制root权限远程登录。先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作,可以提升系统安全性。
修复方案:
1. 修改文件/etc/ssh/sshd_config配置 PermitRootLogin no
2. 重启sshd服务
描述:口令老化(Password aging)是一种增强的系统口令生命期认证机制,能够确保用户的口令定期更换,提高系统安全性。
修复方案:修改文件 /etc/login.defs ,配置
PASS_MAX_DAYS 90
参考:http://man7.org/linux/man-pages/man5/login.defs.5.html
描述:MySQL 采用弱口令容易被黑客猜解从而获取数据权限,导致数据被黑客偷窃、删除等;同时,黑客可能再基于数据库进一步获取系统权限。
修复方案:
1. 改用更复杂的密码,推荐字母、数字、特殊符号组合,长度高于 10 位;
2. 选择使用腾讯云 CDB。
描述:配置帐户超时自动登出,在用户输入空闲一段时间后自动断开。
修复方案:
修改/etc/profile文件,设置定时账户自动登出时间
export TMOUT=180
单位是秒
描述:设置账户登录失败锁定策略,加大用户口令被暴力破解的难度。
修复方案:
设置连续输错5次口令,帐号锁定5分钟。
在进行此项安全加固工作前,请先检查PAM模块版本,搜索pam_tally2是否存在,如果pam_tally2存在,修改配置文件。【注意: 各系统配置不一,请根据当前系统进行适当配置,并仔细评估对系统的影响】
修复方案(仅供参考,请勿直接配置):
centos
修改配置/etc/pam.d/password-auth(将配置添加到合适的位置):
auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=300
account required pam_tally2.so
ubuntu,debian:
修改配置/etc/pam.d/common-auth(将配置添加到合适的位置):
auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=300
修改配置/etc/pam.d/common-account参数(将配置添加到合适的位置):
account required pam_tally2.so
补充说明:
执行 vi /etc/pam.d/login
在#%PAM-1.0 下新起一行,加入
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10
如果不限制root用户,则可以写成
auth required pam_tally2.so deny=3 unlock_time=5
其中大概含义如下:
even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
参考:http://man7.org/linux/man-pages/man8/pam_tally2.8.html
描述:nginx帐户不应该具有登录的能力,防止nginx账户被恶意利用。
修复方案:
修改/etc/passwd配置文件中nginx用户的登录Shell字段,设置为:
/usr/sbin/nologin(debian,ubuntu)
/sbin/nologin(centos)
描述:SSH监听在默认的22端口容易受到暴力破解攻击,修改为非默认端口可以提高系统的安全性
修复方案:
修改/etc/ssh/sshd_config配置文件中的端口字段配置(Port字段),并重启服务。
参考:https://linux.die.net/man/5/sshd_config
描述: 设置口令过期后账号仍能保持有效的最大天数。默认是永久(-1)
修复方案:
编辑/etc/default/useradd文件,配置:
INACTIVE=365
暂时只总结8个,后续会不定期的更新!