vlambda博客
学习文章列表

Centos基线问题修复

通过天镜脆弱性扫描系统扫描发现本地的服务器上面有很多安全隐患需要进行修复,那今天就把脚本发出来给大家参考。
下面先来看修复前的数据信息。此次合规率:46%;不合规数:26;安全检查得分:51 中级;

Centos基线问题修复

Centos基线问题修复

下面这个是修复脚本-直接复制粘贴就可以。

我的修复规则是先修复权重值较高的部分,再修复低的。

#!/bin/bash###################  lxy 20210916  ###################
echo "1.修复口令生存期"sed -i '25s#99999#90#' /etc/login.defssed -i '26s#0#10#' /etc/login.defssed -i '27s#5#12#' /etc/login.defsif [ $? -eq 0 ]then echo "1. 修复口令生存期 ok"else echo "1. 修复口令生存期 flase" exit 1fi
# 2. 设置口令复杂度sed -i 's#try_first_pass retry=3 type=#try_first_pass local_users_only retry=3 authtok_type= difok=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1#' /etc/pam.d/system-authif [ $? -eq 0 ]then echo "2. 设置口令复杂度 ok"else echo "2. 设置口令复杂度 flase" exit 1fi
# 3. 认证授权-使用PAM认证模块禁止wheel组之外的用户su为rootsed -i '6s/#auth/auth/' /etc/pam.d/suif [ $? -eq 0 ]then echo "3. 认证授权-使用PAM认证模块禁止wheel组之外的用户su为root ok"else echo "3. 认证授权-使用PAM认证模块禁止wheel组之外的用户su为root flase" exit 1fi
# 4. 文件权限-文件与目录缺省权限控制echo "umask 027" >> /etc/profileif [ $? -eq 0 ]then    echo "4. 文件权限-文件与目录缺省权限控制 ok"else    echo "4. 文件权限-文件与目录缺省权限控制 flase" exit 1fi
# 5. 文件权限-配置用户最小授权chmod -R 600 /etc/securityif [ $? -eq 0 ]then    echo "5. 文件权限-配置用户最小授权 ok"else    echo "5. 文件权限-配置用户最小授权 flase" exit 1fi
# 6. 文件权限-禁止ICMP重定向echo "net.ipv4.conf.all.accept_redirects = 0" >> /etc/sysctl.conf sysctl -p
# 7. 系统漏洞-系统core dump状态echo "* soft core 0" >> /etc/security/limits.confecho "* hard core 0" >> /etc/security/limits.confif [ $? -eq 0 ]then    echo "7. 系统漏洞-系统core dump状态 ok"else    echo "7. 系统漏洞-系统core dump状态 flase" exit 1fi # 8. 其它配置-登录超时时间设置echo "TMOUT=300" >> /etc/profileecho "export TMOUT" >> /etc/profileif [ $? -eq 0 ]then    echo "8. 其它配置-登录超时时间设置 ok"else    echo "8. 其它配置-登录超时时间设置 flase" exit 1fi
# 9. 其它配置-设置关键文件的属性chattr +a /var/log/messagesif [ $? -eq 0 ]then    echo "9. 其它配置-设置关键文件的属性 ok"else    echo "9. 其它配置-设置关键文件的属性 flase" exit 1fi
# 10. 其它配置-历史命令设置echo "HISTFILESIZE=5" >> /etc/profilesed -i 's/HISTSIZE=1000/HISTSIZE=5/g' /etc/profileif [ $? -eq 0 ]then    echo "10. 其它配置-历史命令设置 ok"else    echo "10. 其它配置-历史命令设置 flase" exit 1fi
# 11. 设置登录失败处理功能策略sed -i '/pam_env.so/i auth required pam_tally2.so deny=5 onerr=fail no_magic_root unlock_time=180' /etc/pam.d/system-authif [ $? -eq 0 ]then    echo "11. 设置登录失败处理功能策略 ok"else    echo "11. 设置登录失败处理功能策略 flase" exit 1fi
# 12. 设置口令重复次数限制sed -i 's#use_authtok#use_authtok remember=5#g' /etc/pam.d/system-authif [ $? -eq 0 ]then    echo "12. 设置口令重复次数限制 ok"else    echo "12. 设置口令重复次数限制 flase" exit 1fi
# 13. 修改SSH的Banner信息echo "welcome landz test" > /etc/motdif [ $? -eq 0 ]then    echo "13. 修改SSH的Banner信息 ok"else    echo "13. 修改SSH的Banner信息 flase" exit 1fi
# 14. 修改SSH的Banner警告信息sed -i '/Banner/i Banner /etc/sshbanner' /etc/ssh/sshd_configecho "Authorized users only. All activity may be monitored and reported" > /etc/sshbannerif [ $? -eq 0 ]then    echo "14. 修改SSH的Banner警告信息 ok"else    echo "14. 修改SSH的Banner警告信息 flase" exit 1fi
# 15. 日志文件安全chmod 640 /var/log/boot.logif [ $? -eq 0 ]then    echo "15. 日志文件安全 ok"else    echo "15. 日志文件安全 flase" exit 1fi
# 16. 启用远程日志功能sed -i '/remote-host:514/i *.*     @日志审计服务器IP:514' /etc/rsyslog.confchmod 640 /var/log/boot.logif [ $? -eq 0 ]then    echo "16. 启用远程日志功能 ok"else    echo "16. 启用远程日志功能 flase" exit 1fi
# 17. 记录安全事件日志echo "*.err;kern.debug;daemon.notice /var/adm/messages" >> /etc/rsyslog.confif [ $? -eq 0 ]then    echo "17. 记录安全事件日志 ok"else    echo "17. 记录安全事件日志 flase" exit 1fi
# 18. 口令锁定策略sed -i '/pam_localuser.so/i account required pam_tally2.so' /etc/pam.d/system-authif [ $? -eq 0 ]then    echo "18. 口令锁定策略 ok"else    echo "18. 口令锁定策略 flase" exit 1fi
执行完脚本在通过漏扫进行扫描查看扫描结果
合规率:78% ;不合规数:9;得分:88 安全

Centos基线问题修复

剩下的问题高危的还有 限制root用户ssh远程登陆,需要创建一个普通用户然后给他授权sudo 然后再sshd_config配置文件禁止root用户登录。
以上就是我本次的修复记录,希望对您有所帮助。