Linux内核漏洞紧急修补步骤
当Linux内核曝出高危漏洞(如脏牛、Dirty Pipe等)时,第一时间修补是防止服务器被入侵的关键。
即使你刚接触服务器运维,只要按下面的步骤操作,也能安全快速地完成紧急修补。
紧急修补前必须做的两件事
在升级内核之前,先确认两点:当前内核版本和系统发行版。
打开终端(SSH或直接登录),运行以下命令查看:
uname -r
输出类似 5.4.0-144-generic 就是当前内核版本。
再确认发行版:
cat /etc/os-release | grep ^ID
例如 ID=ubuntu 或 ID=centos。
这一步是为了后面用对包管理器。
另外,强烈建议先备份重要数据,尤其数据库和配置文件。
虽然升级内核一般不会影响数据,但紧急修补时系统可能不稳定,有备份心里更有底。
用包管理器快速升级内核
不同发行版命令不同,但思路一样:先更新软件源,再安装最新内核。
Ubuntu / Debian 系统
sudo apt update
sudo apt upgrade -y
upgrade 会升级所有可升级的包,包括内核。
如果你只想单独升级内核,可以执行:
sudo apt install linux-image-generic -y
安装完成后重启。
CentOS / RHEL 7/8/9 系统
sudo yum update kernel -y # CentOS 7
sudo dnf update kernel -y # CentOS 8/9
如果系统开启了ELRepo仓库,还可以安装主线最新版:
sudo dnf install elrepo-release -y
sudo dnf --enablerepo=elrepo-kernel install kernel-ml -y
安装后重启。
重启后自动使用新内核。 重启命令:
sudo reboot
升级后如何确认漏洞已修复
重启完成后重新登录,先确认内核版本是否已更新:
uname -r
对比升级前的版本,应该能看到数字变大了。
接着,检查漏洞是否已被官方修复。
大部分高危漏洞会在安全公告中注明受影响范围,比如搜索“CVE-2022-0847 Dirty Pipe affected kernels”得到列表。
你可以用 grep 查看当前内核版本是否在修复版本之后。
更直接的方法是用漏洞检测脚本。
例如针对Dirty Pipe,可以运行:
gcc -o dirtypipe dirtypipe.c 2>/dev/null || echo "脚本不存在或编译失败"
./dirtypipe 2>/dev/null && echo "漏洞仍存在" || echo "漏洞已修复,脚本执行失败说明内核补丁已生效"
如果脚本无法利用,基本断定漏洞已堵上。
其他漏洞也有对应的公开检测工具,建议从官方安全公告获取。
常见问题与补救措施
Q:升级后系统无法正常启动?
A:重启时按住 Shift(或 Esc)进入GRUB菜单,选择旧内核(Advanced options)启动,然后卸载新内核并检查日志。
Q:升级后某些软件(如显卡驱动、VirtualBox)报错?
A:因为这些是内核模块,升级后需要重新编译。运行 sudo dkms autoinstall 或重新安装对应软件即可。
Q:不想重启,有没有在线补丁?
A:部分厂商提供热补丁,如Oracle Ksplice、Red Hat kpatch,但需要订阅。普通用户建议重启最稳妥。
避坑说明:这三件事千万别做
- 不要跳过备份 – 紧急修补不等于冒险,数据无价。
- 不要在业务高峰期直接重启 – 可以设置重启时间窗口,或先通知用户维护。
- 不要使用第三方不明内核 – 只从官方仓库或可信源(如ELRepo)安装,避免引入后门。
如果你正在处理Linux内核漏洞紧急修补步骤,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。