Centos基线问题修复
下面这个是修复脚本-直接复制粘贴就可以。
我的修复规则是先修复权重值较高的部分,再修复低的。
##################
# lxy 20210916 #
##################
echo "1.修复口令生存期"
sed -i '25s#99999#90#' /etc/login.defs
sed -i '26s#0#10#' /etc/login.defs
sed -i '27s#5#12#' /etc/login.defs
if [ $? -eq 0 ]
then
echo "1. 修复口令生存期 ok"
else
echo "1. 修复口令生存期 flase"
exit 1
fi
# 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-auth
if [ $? -eq 0 ]
then
echo "2. 设置口令复杂度 ok"
else
echo "2. 设置口令复杂度 flase"
exit 1
fi
# 3. 认证授权-使用PAM认证模块禁止wheel组之外的用户su为root
sed -i '6s/#auth/auth/' /etc/pam.d/su
if [ $? -eq 0 ]
then
echo "3. 认证授权-使用PAM认证模块禁止wheel组之外的用户su为root ok"
else
echo "3. 认证授权-使用PAM认证模块禁止wheel组之外的用户su为root flase"
exit 1
fi
# 4. 文件权限-文件与目录缺省权限控制
echo "umask 027" >> /etc/profile
if [ $? -eq 0 ]
then
echo "4. 文件权限-文件与目录缺省权限控制 ok"
else
echo "4. 文件权限-文件与目录缺省权限控制 flase"
exit 1
fi
# 5. 文件权限-配置用户最小授权
chmod -R 600 /etc/security
if [ $? -eq 0 ]
then
echo "5. 文件权限-配置用户最小授权 ok"
else
echo "5. 文件权限-配置用户最小授权 flase"
exit 1
fi
# 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.conf
echo "* hard core 0" >> /etc/security/limits.conf
if [ $? -eq 0 ]
then
echo "7. 系统漏洞-系统core dump状态 ok"
else
echo "7. 系统漏洞-系统core dump状态 flase"
exit 1
fi
# 8. 其它配置-登录超时时间设置
echo "TMOUT=300" >> /etc/profile
echo "export TMOUT" >> /etc/profile
if [ $? -eq 0 ]
then
echo "8. 其它配置-登录超时时间设置 ok"
else
echo "8. 其它配置-登录超时时间设置 flase"
exit 1
fi
# 9. 其它配置-设置关键文件的属性
chattr +a /var/log/messages
if [ $? -eq 0 ]
then
echo "9. 其它配置-设置关键文件的属性 ok"
else
echo "9. 其它配置-设置关键文件的属性 flase"
exit 1
fi
# 10. 其它配置-历史命令设置
echo "HISTFILESIZE=5" >> /etc/profile
sed -i 's/HISTSIZE=1000/HISTSIZE=5/g' /etc/profile
if [ $? -eq 0 ]
then
echo "10. 其它配置-历史命令设置 ok"
else
echo "10. 其它配置-历史命令设置 flase"
exit 1
fi
# 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-auth
if [ $? -eq 0 ]
then
echo "11. 设置登录失败处理功能策略 ok"
else
echo "11. 设置登录失败处理功能策略 flase"
exit 1
fi
# 12. 设置口令重复次数限制
sed -i 's#use_authtok#use_authtok remember=5#g' /etc/pam.d/system-auth
if [ $? -eq 0 ]
then
echo "12. 设置口令重复次数限制 ok"
else
echo "12. 设置口令重复次数限制 flase"
exit 1
fi
# 13. 修改SSH的Banner信息
echo "welcome landz test" > /etc/motd
if [ $? -eq 0 ]
then
echo "13. 修改SSH的Banner信息 ok"
else
echo "13. 修改SSH的Banner信息 flase"
exit 1
fi
# 14. 修改SSH的Banner警告信息
sed -i '/Banner/i Banner /etc/sshbanner' /etc/ssh/sshd_config
echo "Authorized users only. All activity may be monitored and reported" > /etc/sshbanner
if [ $? -eq 0 ]
then
echo "14. 修改SSH的Banner警告信息 ok"
else
echo "14. 修改SSH的Banner警告信息 flase"
exit 1
fi
# 15. 日志文件安全
chmod 640 /var/log/boot.log
if [ $? -eq 0 ]
then
echo "15. 日志文件安全 ok"
else
echo "15. 日志文件安全 flase"
exit 1
fi
# 16. 启用远程日志功能
sed -i '/remote-host:514/i *.* @日志审计服务器IP:514' /etc/rsyslog.conf
chmod 640 /var/log/boot.log
if [ $? -eq 0 ]
then
echo "16. 启用远程日志功能 ok"
else
echo "16. 启用远程日志功能 flase"
exit 1
fi
# 17. 记录安全事件日志
echo "*.err;kern.debug;daemon.notice /var/adm/messages" >> /etc/rsyslog.conf
if [ $? -eq 0 ]
then
echo "17. 记录安全事件日志 ok"
else
echo "17. 记录安全事件日志 flase"
exit 1
fi
# 18. 口令锁定策略
sed -i '/pam_localuser.so/i account required pam_tally2.so' /etc/pam.d/system-auth
if [ $? -eq 0 ]
then
echo "18. 口令锁定策略 ok"
else
echo "18. 口令锁定策略 flase"
exit 1
fi