在动手修补系统漏洞之前,有几项前期准备工作必须优先完成,否则后续操作可能事倍功半,甚至需要回滚重来。
一、修复前的准备工作
- 确认漏洞信息:先别急着执行命令,务必精准定位“问题根源”。通过 CentOS 官方安全公告(Security Advisories)、CVE 数据库或第三方安全平台(如 NVD)查询漏洞详情,明确该漏洞影响的具体 CentOS 版本、涉及的软件包及其严重程度。例如,若漏洞影响 CentOS 7 上 OpenSSH 8.5p1 至 9.7p1 版本范围,则需针对 OpenSSH 组件进行修复。
- 备份重要数据:修复前务必留好退路,防止意外丢失。系统配置文件(如
/etc/ssh/sshd_config、/etc/sysconfig/iptables)、用户数据(如/home目录)、数据库(如 MySQL 的/var/lib/mysql)均需完整备份。一旦误删文件,将无法恢复。
二、通用修复步骤
- 更新系统及软件包:
这是最直接的修复方式。CentOS 7 使用yum,8 及以上版本使用dnf,一键更新至最新版本,可同时修复已知漏洞:
若针对特定漏洞(如 GNU Wget 缓冲区溢出),只需单独更新对应软件包:# CentOS 7 sudo yum update -y # CentOS 8及以上 sudo dnf update -y
当然,手动更新容易遗漏,最好配置自动安全补丁更新。编辑sudo yum update wget -y/etc/yum/yum-cron.conf,将update_messages、download_updates、apply_updates均设为yes,然后启动并启用服务:
sudo systemctl start yum-cron sudo systemctl enable yum-cron - 应用安全补丁:
若官方针对特定漏洞(如内核漏洞 CVE-2024-1086)发布了独立补丁,需下载并安装对应补丁包。例如通过 ELRepo 源升级内核:
# 添加ELRepo源 sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm # 安装最新内核 sudo yum --enablerepo=elrepo-kernel install kernel-ml -y # 重启系统并选择新内核 sudo reboot - 重启服务与系统:
更新软件包后,需重新加载受影响进程的配置。例如 SSH 和 httpd:
若更新的是内核或系统关键组件,则直接重启整个系统:sudo systemctl restart sshd sudo systemctl restart httpd
sudo reboot - 验证修复效果:
重启后不可掉以轻心。运行yum list updates检查是否仍有待处理的安全更新;或使用漏洞扫描工具(如 OpenVAS、Nessus)重新扫描系统,确认漏洞已被彻底封堵。
三、针对性加固措施
- 强化访问控制:
防火墙firewalld需严格配置,仅开放必要端口。例如 SSH 默认端口为 22:
然后修改 SSH 配置sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --remove-port=22/tcp # 若端口非22,需调整 sudo firewall-cmd --reload/etc/ssh/sshd_config:禁用 root 直接登录、设置强密码(大小写字母+数字+特殊字符组合)、更改默认端口(如 2222):
修改后务必重启 SSH 服务:PermitRootLogin no PasswordAuthentication yes Port 2222
sudo systemctl restart sshd - 系统与服务加固:
关闭不使用的服务(如 Telnet、FTP),减少攻击面:
删除默认的空用户(如sudo systemctl stop telnet sudo systemctl disable telnetgames、ftp)以及闲置账号,防止被他人利用:
强化密码策略,编辑sudo userdel games sudo userdel ftp/etc/login.defs,设置最小密码长度为 8 位,密码过期时间为 90 天:
PASS_MIN_LEN 8 PASS_MAX_DAYS 90 - 部署安全工具:
安装fail2ban,它能自动封禁多次登录失败的 IP,有效抵御暴力破解:
别忘了 SELinux,若尚未启用,请立即开启,它能提供额外一层访问控制:sudo yum install fail2ban -y sudo systemctl start fail2ban sudo systemctl enable fail2ban
sudo setenforce 1 sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config
四、后续维护建议
- 定期扫描:每周使用漏洞扫描工具(如 OpenVAS)对系统进行扫描,新漏洞层出不穷,需持续关注。
- 监控日志:利用
journalctl或logwatch密切监控系统日志,特别留意异常登录行为(如大量失败尝试)和服务异常(如 SSH 服务无故停止)。 - 订阅安全公告:关注 CentOS 官方邮件列表、Red Hat 安全博客,第一时间获取补丁信息,避免事后补救。
