Linux安全漏洞修复需分四步:主动筛查(命令查更新、lynis扫描、订阅CVE)、安全生产补丁(测试模拟、低峰操作、备份回滚)、无补丁时临时缓解(配置限制、SELinux加固、手动打补丁)、修复后交叉验证(版本核对、专项复扫、业务检查)。

Linux安全漏洞修复不是“一键升级”就能完事的事。核心在于识别准、操作稳、验证实——尤其在生产环境,跳过任一环节都可能引发服务中断或补丁失效。
怎么快速发现系统有漏洞
别等被攻击才行动,日常要主动筛查:
- 运行命令看更新:Ubuntu/Debian 执行 apt list --upgradable,RHEL/CentOS 执行 dnf list updates 或 yum check-update,重点关注带 security、errata 或 CVE 字样的包;
- 每月用 lynis audit system 做一次轻量基线扫描,能快速暴露配置类和基础服务类风险;
- 订阅发行版安全公告(如 ubuntu-security-announce)和 NVD 官网,对 CVSS ≥7.0 且影响你当前版本的 CVE 编号立即标记跟进。
补丁怎么打才安全
生产环境严禁直接 apt upgrade 或 yum update -y。标准流程必须分三步走:
- 先在测试环境同步配置后模拟执行:apt-get upgrade -s(Debian系)或 dnf update --assumeno(RHEL系),核对将变更的包列表是否合理;
- 生产环境选低峰期操作:内核更新必须重启,执行前用 grubby --default-kernel 记录当前默认内核,更新后用 grub2-set-default 设新内核为默认,并保留至少一个旧内核用于回滚;
- 每步必做备份:关键配置如 /etc/ssh/sshd_config 提前 cp xx xx.bak;重要服务启动参数用 systemctl show --property=ExecStart 记录,方便故障时快速还原。
遇到没补丁的情况怎么办
官方尚未发布补丁,或软件是源码编译安装,不能干等,可采取临时缓解措施:
- 配置层面限制:比如 Shellshock 漏洞未修复时,可禁用 Apache 的 mod_cgi,或在 Web 服务中过滤 HTTP_USER_AGENT 等含 bash 调用特征的请求头;
- 运行时加固:启用 SELinux 或 AppArmor,为高危进程(如 nginx、redis)编写最小权限策略,大幅压缩漏洞利用路径;
- 手动打补丁:从 CVE 对应项目官网下载 patch 文件,用 patch -p1 应用后重新编译安装,务必在测试环境完整回归验证功能与性能。
修复完必须验证是否真生效
更新成功 ≠ 漏洞清除,必须交叉验证:
- 查版本确认:用 dpkg -l | grep package(Debian)或 rpm -q package(RHEL)比对是否达到漏洞公告要求的修复版本;
- 专项复扫:用 OpenVAS 或 lynis 针对具体 CVE-ID(如 CVE-2024-1234)重新扫描,不只看整体风险评分下降;
- 业务级检查:重启相关服务后,用 systemctl status 和 curl -I http://localhost/health 确认服务响应正常,同时翻查 journalctl -u service-name -n 50 排查隐性异常。
不复杂但容易忽略。











