centos如何进行安全清理
小樊
35
2026-01-02 06:23:27
CentOS 安全清理与加固清单
一 操作前准备
- 备份关键数据与配置:优先备份业务数据、数据库、/etc、/home、/var/lib、定时任务脚本等,确保可回滚。
- 变更窗口与回退方案:选择低峰时段,准备临时回滚命令与快照/镜像,变更后先灰度验证。
- 最小权限与多用户复核:使用sudo执行,关键操作双人复核,避免单人 root 长时在线。
- 保持系统最新:先执行yum check-update评估更新,再yum update -y应用安全补丁,减少已知漏洞面。
二 账户与权限清理
- 清理多余与共享账号:删除不再使用的账号,禁止账号共享;排查并删除除 root 外 UID=0 的账户(命令:awk -F: ‘($3 == 0) {print $1}’ /etc/passwd)。
- 锁定或禁用长期未用账号:usermod -L/-U、passwd -l/-u;将非登录用途账号的 Shell 设为 /sbin/nologin。
- 限制 su 到 root:仅允许 wheel 组成员使用 su,编辑 /etc/pam.d/su 启用 pam_wheel.so 限制;将运维账号加入 wheel(gpasswd -a 用户名 wheel)。
- 口令策略与空口令检查:在 /etc/login.defs 设置 PASS_MAX_DAYS/PASS_MIN_DAYS/PASS_WARN_AGE/PASS_MIN_LEN;用 pam_cracklib 强化复杂度;排查空口令(awk -F: ‘($2 == “”) {print $1}’ /etc/shadow)。
- 关键账号文件防篡改:对 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 设置不可变属性(chattr +i),变更前务必备份并规划解锁流程(chattr -i)。
三 系统与网络清理
- 卸载无用软件与清理缓存:yum remove 卸载不需要的包;yum autoremove -y 清理残留依赖;yum clean all 清理 YUM 缓存;删除临时文件(/tmp、/var/tmp)。
- 精简自启与关闭高危服务:仅保留必要服务(如 sshd、rsyslog、crond、network、sysstat);用 systemctl disable/stop 关闭不必要服务与端口,降低攻击面。
- 防火墙最小暴露:使用 firewalld 仅放行必需端口/服务(如 http/https/ssh),变更后 firewall-cmd --reload 生效。
- 禁用明文与高风险协议:如非必需,禁用 Telnet、FTP、rsh 等明文协议与相关服务,避免中间人窃取与弱认证风险。
- 加固 SSH:编辑 /etc/ssh/sshd_config,启用 Protocol 2,设置 PermitRootLogin no、PermitEmptyPasswords no,按需开启密钥登录、限制可登录用户/组,修改后 systemctl restart sshd。
四 日志、审计与入侵防护
- 日志轮转与归档:定期执行 journalctl --rotate,清理过旧日志;对 /var/log 设置合理的保留策略,避免磁盘被占满。
- 启用审计与监控:安装并启用 auditd,记录关键系统调用与登录事件,用于事后取证与合规审计。
- 防暴力破解:部署 fail2ban,针对 SSH 等高频暴力登录进行自动封禁,缩短攻击窗口。
- 入侵检测/防御:结合 IDS/IPS 与主机加固基线,持续监测异常行为并及时处置。
五 验证与持续维护
- 基线核查:确认仅必要端口与服务在监听(ss -tulpen),仅 root 拥有 UID=0,空口令与弱口令不存在,关键文件未被篡改(lsattr)。
- 连通性与功能回归:在防火墙收紧后逐项回归业务连通性(应用、数据库、监控、备份),确保清理未引入业务中断。
- 持续更新与演练:制定周期性的补丁更新、配置基线审计与应急演练计划;对关键变更保留变更单与回滚方案,形成闭环。