升级linux内核版本修复漏洞

时间:2026-10-17 05:12:19来源:力不从心网 作者:热点

升级Linux内核版本修复漏洞

上周五凌晨两点,升级我盯着屏幕上跳动的核版CVE编号,后背发凉。本修CVE-2024-1086,复漏一个影响Linux内核Netfilter模块的升级本地提权漏洞,攻击者拿到普通用户权限后,核版十秒内就能变成root。本修这不是复漏理论风险——PoC代码已经公开,GitHub上星标涨得飞快。升级

手头这台服务器跑着Ubuntu 22.04,核版内核版本5.15.0-91。本修官方修复补丁在5.15.0-92里。复漏问题在于,升级生产环境不能随便重启,核版更不能贸然升级。本修但放任漏洞裸奔,就像把家门钥匙挂在门外垫子下,还得贴张纸条告诉小偷位置。

先看当前内核版本,命令很简单:uname -r。输出结果确认了漏洞影响范围。接着检查发行版仓库里有没有现成的新内核包:apt list --upgradable | grep linux-image。有就直接升,没有就得走Ubuntu HWE(硬件支持栈)或者手动编译。

我这台机器比较麻烦——跑了三个Docker容器,其中一个挂着NFS卷。升级内核意味着重启,重启意味着容器编排要重新拉起来,NFS挂载点要重新连。最怕的是新内核跟现有驱动不兼容,比如那个老旧的Mellanox网卡驱动,内核5.15.0-91用的是第三方编译模块,升级后模块可能加载失败。

保险起见,先备份当前内核的模块目录:cp -a /lib/modules/$(uname -r) /root/kernel-modules-backup。然后执行apt update && apt install linux-image-5.15.0-92-generic。安装过程很安静,没报错,但我知道真正的考验在重启之后。

重启前设置GRUB默认启动项指向新内核。编辑/etc/default/grub,把GRUB_DEFAULT改成"Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-92-generic"。保存后运行update-grub。这一步容易翻车,写错引号或者版本号,系统会卡在GRUB界面进不去。

凌晨四点,我敲下reboot。心跳随着服务器重启的蜂鸣声起伏。SSH重连成功后,第一件事就是uname -r——输出5.15.0-92-generic。接着检查dmesg有没有硬件报错,跑了一遍docker ps确认容器都活着,用mount | grep nfs验证NFS卷正常挂载。一切正常,才长舒一口气。

不过得说句实话,升级内核不是终点。同一时间,Red Hat和Debian也发布了各自的补丁版本。如果你用的是CentOS 7这种老系统,官方仓库早就停止维护内核了,只能靠第三方源比如ELRepo,或者干脆考虑迁移到Rocky Linux/AlmaLinux。别嫌麻烦,内核漏洞不像应用层漏洞那样可以靠防火墙挡一挡,它直接暴露在系统最底层。

还有个小细节容易被忽略:升级后旧内核文件还在/boot里占空间。清理掉旧内核用apt autoremove --purge,但别急着删——至少保留一个已知能启动的旧版本,万一新内核有隐藏问题,还能回滚。我习惯保留最近两个版本。

那次升级之后,我特意写了个脚本,每周检查一次内核更新,自动下载但手动触发重启。漏洞修复这种事,讲究的是快、准、稳。快是别拖延,准是选对版本,稳是留好退路。做到这三点,凌晨的冷汗就能少流几回。

相关内容
推荐内容