修复加固核心原则:做任何修改前先备份文件!!
已配置白名单策略,建议定期审核规则
检查命令
#servicefirewalldstatus
#firewall-cmd --list-ports
修复加固(范例)
#service firewalld start
# firewall-cmd --zone=public --add-port=30080/tcp --permanent
# firewall-cmd--reload
确认符合要求的只有root用户且无多余账户
检查命令
#awk -F: ‘$3 == 0 {print $1}’ /etc/passwd
修复加固
如查询有除了root之外的用户,建议直接删除或修改所属uid
#userdel -r username
#usermod -uuidusername
禁止存在空密码的账户
检查命令
#awk -F: ‘$2 == “” {print $1}’/etc/passwd
修复加固
如查询后确实存在,建议删除或设置密码
#userdelusername
#passwdusername
禁止ssh使用root登录
检查命令
#more /etc/ssh/ssh_config |grep PermitRootLogin
提示yes 是允许,修改为no则为禁止ssh时使用root登录
修复加固
#修改ssh_config文件,将PermitRootLogin修改为no
如没有,可自行添加。
所有用户口令复杂度符合要求
该要求两个层面考量,一个是当前现有密码的检测,需要字典支持,较为繁琐,不推荐,但需要知晓如何处理;一个是设备默认的口令的规则,强制后续口令符合要求。
检查命令
检查口令有效期和提醒天数
#more /etc/login.defs|grep PASS_MAX_DAYS
不大于90天符合要求;
#more /etc/login.defs |grep PASS_WARN_AGE
7天符合要求;
检查口令复杂度(长度和字符种类)
#more /etc/security/pwqulity.conf | grep minlen
大于等于8符合要求
#more /etc/security/pwquality.conf | grep minclass
大于等于3符合要求
修复加固
口令有效期和提醒天数修复加固
#修改/etc/login.defs文件内相关的参数或通过如下命令修改
#chage -M 90 -W 7 username
口令复杂度(长度和字符种类)修复加固
#修改/etc/security/pwquality.conf文件中关于minlen、minclass的参数后,通过如下命令强制用户下次登录时修改密码
#chage -d 0 username
限制可以使用su切换为root的用户
当然root用户被禁止使用ssh时,那么就需要使用普通用户登录,但有些操作普通用户的权限是无法执行的,此时需要使用su来切换或提升权限。
检查命令
#more /etc/pam.d/su | grep auth required pam_wheel.so

auth required pam_wheel.souser_uid
如上图,此句未必注释则系统启用了su限制,符合要求。
(此句效果启用了安全加固策略,通过 /etc/pam.d/su 文件中的 pam_wheel.so 模块,仅允许属于 wheel 组的用户使用 su 命令切换到 root)
修复加固
知晓逻辑后应对也很简单,有需要的用户添加到wheel组即可。
#usermod -G wheel username
当然注释掉上图中的auth行也可以,不过不合规了,更建议有需要的用户添加到wheel组。
关注非工作时间、非经常使用ip和用户的登录
检查命令
#last -n 20
简单查看最后20次登录信息,保存ip、终端方式、用户、时间。
#more /var/log/message
查看全局日志信息
修复加固
日志就是留痕,核心的就是日志准确性。
#lsattr/var/log/messages

查看日志文件的各种属性,第六位建议添加Append only属性(文件只能被追加内容,不能删除或重写)。
#chattr +a /var/log/messages

=============================
Linux基线加固还可有很多细节,作为运维服务器,上述基本指标可参考。