系统级漏洞修复处理操作手册
【摘要】 适用对象:Linux VPS / 独立服务器(Debian / Ubuntu / RHEL 系)编写日期:2026-11-04说明:本文是通用处置流程。具体 CVE 的受影响版本与修复版本,请以发行版官方安全公告为准(Debian Security Tracker、Ubuntu USN、RHSA 等),并填入文末的「处置记录表」。 1. 处置总流程获知漏洞 → 评估影响 → 备份/快照 → ...
适用对象:Linux VPS / 独立服务器(Debian / Ubuntu / RHEL 系)
编写日期:2026-11-04
说明:本文是通用处置流程。具体 CVE 的受影响版本与修复版本,请以发行版官方安全公告为准(Debian Security Tracker、Ubuntu USN、RHSA 等),并填入文末的「处置记录表」。
1. 处置总流程
获知漏洞 → 评估影响 → 备份/快照 → 应用补丁或缓解 → 重启/重载 → 验证 → 记录归档
↘ 失败 → 回滚
2. 获知与评估
2.1 信息来源
- 发行版安全公告:Debian DSA / Ubuntu USN / RHSA / AlmaLinux ALSA
- NVD、CVE_org、CISA KEV(已被利用漏洞清单)
- 厂商/商家通告(VPS 母鸡内核、虚拟化层漏洞)
2.2 快速评估清单
| 项目 | 问题 |
|---|---|
| 影响范围 | 本机内核/软件包版本是否在受影响范围内? |
| 攻击面 | 需本地权限还是远程可利用?服务是否对公网开放? |
| 利用状态 | 是否已有公开 PoC / 在野利用(查 CISA KEV)? |
| 缓解手段 | 是否有无需重启的临时缓解(禁用模块、sysctl、防火墙)? |
| 虚拟化类型 | KVM / LXC / OpenVZ?容器类 VPS 内核由宿主机决定,自己无法升级内核 |
2.3 查看当前版本
uname -r # 当前运行内核
cat /etc/os-release # 发行版信息
dpkg -l | grep -E 'linux-image|openssl|openssh|sudo|glibc' # Debian/Ubuntu
rpm -qa | grep -E 'kernel|openssl|openssh|sudo|glibc' # RHEL 系
3. 修复前准备
3.1 备份与快照
# 在商家面板创建快照(首选)
# 或备份关键配置与数据
tar czf /root/backup-$(date +%F).tar.gz /etc /root/.ssh /opt 2>/dev/null
3.2 保留远程救援通道
- 确认 VNC / 面板控制台可用(内核升级后启动失败时用)
- 保持至少两个 SSH 会话,改 SSH/防火墙配置时不要关闭原会话
- 记录当前
iptables -S/nft list ruleset/ufw status
3.3 检查磁盘空间与 /boot
df -h / /boot
/boot 空间不足会导致内核升级失败,可清理旧内核:
sudo apt autoremove --purge # Debian/Ubuntu
sudo dnf remove --oldinstallonly --setopt installonly_limit=2 kernel # RHEL 系
4. 应用修复
4.1 Debian / Ubuntu
sudo apt update
apt list --upgradable # 查看可升级项
sudo apt install --only-upgrade <包名> # 仅升级指定软件包(精确修复)
# 或全量安全更新
sudo apt full-upgrade -y
# 只装安全更新(Ubuntu)
sudo unattended-upgrade -d
4.2 RHEL / AlmaLinux / Rocky
sudo dnf check-update --security
sudo dnf update --security -y
sudo dnf update <包名> -y
4.3 查某个 CVE 是否已修复
# Debian/Ubuntu:查 changelog
apt changelog <包名> | grep -i CVE-XXXX-XXXXX
# RHEL 系
rpm -q --changelog <包名> | grep -i CVE-XXXX-XXXXX
dnf updateinfo info --cve CVE-XXXX-XXXXX
4.4 内核漏洞的特殊处理
内核更新必须重启才生效(除非使用 livepatch)。
# 安装后确认已装新内核
dpkg -l | grep linux-image # 或 rpm -q kernel
sudo reboot
# 重启后确认
uname -r
- Ubuntu Pro / KernelCare / Canonical Livepatch 可热补丁,减少停机
- 容器类 VPS(OpenVZ/LXC)无法自行升级内核,需联系商家
4.5 常见需重启的服务(用户态库漏洞)
升级 openssl、glibc、libc6 等后,旧进程仍在使用旧库:
sudo apt install needrestart && sudo needrestart -r a # Debian/Ubuntu
sudo dnf install dnf-utils && sudo needs-restarting -r # RHEL 系
glibc 级别更新建议直接整机重启。
5. 无补丁时的临时缓解
| 场景 | 缓解措施 |
|---|---|
| 漏洞在某内核模块 | echo "install <模块> /bin/false" > /etc/modprobe.d/disable-<模块>.conf 并 rmmod |
| 漏洞需特定内核参数 | 用 sysctl -w 调整并写入 /etc/sysctl.d/ |
| 远程服务漏洞 | 防火墙限制来源 IP,或临时停用服务 |
| 提权类(需本地登录) | 收紧 SSH 登录、清理无用账户和 sudo 权限 |
| SSH 相关 | 仅密钥登录,PasswordAuthentication no,改 PermitRootLogin prohibit-password |
缓解只是权宜之计,补丁发布后要尽快正式升级,并撤销临时措施。
6. 修复后验证
uname -r # 内核版本是否为新版
systemctl --failed # 是否有失败的服务
ss -tulnp # 监听端口是否与预期一致
journalctl -p err -b --no-pager | tail -50 # 启动后错误日志
- 业务回归:网站、代理节点(Clash/Mihomo 中转/落地)、面板、定时任务是否正常
- 网络:
ping、curl、回国/出海线路测速是否与修复前一致 - 重新扫描:
lynis audit system、trivy rootfs /、debsecan(Debian)
7. 回滚方案
- 能进系统:用 GRUB 选择旧内核启动(
/boot保留旧内核即可) - 软件包问题:
apt install <包>=<旧版本>或dnf downgrade <包> - 无法启动:通过面板 VNC / 救援模式,或直接回滚快照
- 回滚后重新评估:是否改用缓解措施,等待修订补丁
8. 长期加固建议
- 开启自动安全更新
- Debian/Ubuntu:
sudo apt install unattended-upgrades && sudo dpkg-reconfigure -plow unattended-upgrades - RHEL 系:
dnf-automatic
- Debian/Ubuntu:
- 订阅发行版安全邮件列表 / RSS
- 最小化暴露面:只开放必要端口,管理端口限制来源
- SSH 使用密钥 + fail2ban / CrowdSec
- 定期(每周/每月)检查
apt list --upgradable - 重要机器保持定期快照,修复前后各一份
9. 处置记录表(可复制使用)
| 日期 | CVE 编号 | 组件 | 严重程度 | 受影响版本 | 修复版本 | 处置方式 | 是否重启 | 验证结果 | 备注 |
|---|---|---|---|---|---|---|---|---|---|
| 2026-11-04 | CVE-XXXX-XXXXX | linux 内核 | 高/严重 | 升级/缓解 | 是 | 通过 | |||
10. 一键巡检脚本(只读,不改动系统)
#!/usr/bin/env bash
echo "== 系统 =="; cat /etc/os-release | head -3
echo "== 内核 =="; uname -r
echo "== 运行时长 =="; uptime -p
echo "== 待升级软件包 =="
if command -v apt >/dev/null; then apt list --upgradable 2>/dev/null | tail -n +2 | wc -l
elif command -v dnf >/dev/null; then dnf check-update --security -q | wc -l; fi
echo "== 是否需要重启 =="
[ -f /var/run/reboot-required ] && echo "需要重启" || echo "无需重启(或非 Debian 系)"
echo "== 监听端口 =="; ss -tulnp | awk 'NR==1 || /LISTEN|UNCONN/'
echo "== 失败服务 =="; systemctl --failed --no-pager
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)