内核漏洞紧急补丁升级修复服务器风险
为什么内核漏洞必须紧急修复
内核是操作系统的核心,控制着硬件访问、进程调度和网络安全。
一旦公开的内核漏洞(如脏牛、Dirty Pipe等)被公布,攻击者很快就能编写利用代码。
如果不及时打上补丁,服务器就相当于敞开了大门。
很多新手站长害怕升级内核会导致服务崩溃,但不升级的风险远大于升级本身。
本文会带你一步步完成安全、可回退的内核补丁升级。
准备工作:确认当前内核环境
登录服务器后,先用下面命令查看当前内核版本:
uname -r
输出类似 3.10.0-1160.el7.x86_64,记录这个版本号。
接着确认系统发行版和包管理器:
- CentOS / RHEL 7/8 使用
yum(旧版)或dnf(新版) - Ubuntu / Debian 使用
apt
对于 CentOS 7,建议先更新 yum 源:
sudo yum update -y
对于 Ubuntu:
sudo apt update && sudo apt upgrade -y
如果系统有重要数据,建议先做快照或备份。
云服务器可以在控制台创建磁盘快照;
本地服务器可以用 tar 备份 /boot 和 /etc 目录。
核心操作:安装内核安全更新
方式一:通过系统自带更新(推荐)
大多数发行版会通过常规更新推送内核补丁。
直接执行:
CentOS/RHEL:
sudo yum update kernel -y
Ubuntu/Debian:
sudo apt install linux-image-generic -y
安装完成后,系统会保留旧内核(可回退),重启后新内核才会生效。
方式二:仅安装安全补丁(不升级完整内核)
如果不想升级到全新内核版本,可以使用 yum update --security (CentOS 7+)只安装安全相关更新:
sudo yum update --security -y
但这个命令不一定包含内核本身的补丁,建议直接执行完整内核更新。
方式三:使用第三方仓库(ELRepo)获取最新稳定内核
对于 CentOS 7 等老旧发行版,官方源的内核可能已经停止更新。
可以添加 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
注意:ELRepo 提供的内核是主线最新版,不保证与你的应用完全兼容。
生产环境建议先在测试机验证。
避坑指南:升级前后必须注意的事
- 不要直接删除旧内核:新内核可能不兼容某些驱动(如显卡、网卡),保留旧内核可以手动选择启动。系统默认会保留最近3个内核。
- 检查 grub 默认启动项:安装新内核后,
grub2-mkconfig会自动更新启动菜单。重启前可以确认默认内核版本:
grub2-editenv list | grep saved
或者手动设置默认启动为新内核:
sudo grub2-set-default 0
- 如果使用宝塔面板:升级内核后记得重新安装面板的 PHP、Nginx 等扩展,因为旧内核模块可能被卸载。
- 重启前关闭运行中的关键程序:先
systemctl stop nginx mysql再 reboot,防止文件系统损坏。
效果验证:确认漏洞已修复
重启完成后,再次执行:
uname -r
对比之前记录,确认版本号已更新(例如从 3.10.0-1160 更新到 3.10.0-1160.999)。
然后针对特定漏洞查询内核提交记录(以 CVE-2022-0847 Dirty Pipe 为例):
cat /proc/version
# 或者查看 changelog
dmesg | grep -i 'CVE'
更严谨的方法是使用 cve-check-tool 或参考发行版安全公告。
对于 Ubuntu,可以运行:
apt changelog linux-image-$(uname -r) | grep -i 'CVE-2022-0847'
如果查看到类似“Fixed”字样,说明补丁已生效。
常见问题解答
Q:升级内核后网站无法访问怎么办?
A:重启时在 grub 菜单选择旧内核启动(按住 Shift 键调出菜单),然后删除新内核包重新升级。
Q:可以使用热补丁(Kpatch/Ksplice)避免重启吗?
A:可以,但热补丁仅适用于部分安全漏洞,且需要商业授权或复杂配置。免费方案建议直接升级内核并重启,一次重启通常只需要几十秒。
Q:升级后需要重新编译 PHP 扩展吗?
A:如果使用了 opcache、redis 等带内核模块的扩展,建议重新安装。宝塔面板用户可在软件管理里点击“安装”重新覆盖。
---
如果你正在处理内核漏洞紧急补丁升级修复服务器风险,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
定期执行 yum update --security 可以降低下次紧急升级的概率。