一、背景
Linux 内核漏洞相较于其它 Linux 软件漏洞,修复起来较为麻烦,本文章旨在指导运维人员根据 腾讯云主机安全 告警信息,对 Linux 内核漏洞进行修复,鉴于Linux 内核漏洞的危害及其对业务的影响,建议在测试环境经过充分测试后,再对生产环境进行操作,操作前请做好快照备份。
二、CentOS 升级内核方式
2.1.、漏洞重要信息获取
进入 漏洞管理 - Linux 软件漏洞,点击漏洞名称可查看漏洞详情页面,根据页面中展示的信息,可发现以下关键信息:
存在漏洞的软件包名称 存在漏洞的软件包版本 针对当前系统的升级命令
2.2、漏洞修复
以手动修复为例,使用自动修复功能的用户,仅需要在重启后,执行删除旧软件包的操作 重启删除旧的软件包后,重新检测,漏洞状态将变成已修复状态
2.2.1、升级内核
根据漏洞详情页说明字段给出的升级命令,对存在漏洞的软件包进行升级操作
# 根据给出的修复命令,执行升级操作 [root@VM-32-9-centos ~]# yum update kernel ### 省略非关键部分 Is this ok [y/d/N]: y Downloading packages: No Presto metadata available for updates kernel-3.10.0-1160.66.1.el7.x86_64.rpm | 50 MB 00:00:02 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : kernel-3.10.0-1160.66.1.el7.x86_64 1/1 验证中 : kernel-3.10.0-1160.66.1.el7.x86_64 1/1
已安装:
kernel.x86_64 0:3.10.0-1160.66.1.el7
完毕!
2.2.2、查看当前操作系统内核启动顺序
通过查看当前操作系统内核启动顺序,并设置新的内核为第一优先级
# 查看当前系统中的内核启动顺序,通过调整启动顺序,可指定系统重启后使用新的内容
[root@VM-32-9-centos ~]# awk -F' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
0 : CentOS Linux (3.10.0-1160.66.1.el7.x86_64) 7 (Core)
1 : CentOS Linux 7 Rescue c826e431706f4f9c8cf816eb6faebe27 (3.10.0-957.el7.x86_64)根据漏洞详情页给出的软件版本,当前系统启动使用的为该内核
2 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-21acf41b46a64ca4a55e93cb350a7749) 7 (Core)
4 : CentOS Linux (0-rescue-5f7dd4855c7a401c9cdd2c258707993d) 7 (Core)根据上述命令给出的可用内核信息,可通过一下命令指定使用编号为0的内核进行系统启动
[root@VM-32-9-centos ~]# grub2-set-default 0
2.2.3、卸载旧版本内核包
重启后,只有删除旧版本内核包,重新检测,漏洞状态才会置为已修复状态
# 查看当前未重启前系统采用的内核
[root@VM-32-9-centos ~]# uname -r
3.10.0-957.el7.x86_64重启后系统采用的的内核版本
[root@VM-32-9-centos ~]# uname -r
3.10.0-1160.66.1.el7.x86_64通过漏洞详情页给出的漏洞软件名称及版本,卸载对应的软件包(重启后,重新检测漏洞前操作)
漏洞详情页给出的软件名称:kernel
漏洞详情页中给出的软件版本:3.10.0-957.el7
[root@VM-32-9-centos ~]# rpm -qa kernel
kernel-3.10.0-957.el7.x86_64 # 根据名称、版本信息,可确认该版本为旧版本,需要删除
kernel-3.10.0-1160.66.1.el7.x86_64使用 rpm -e xxx --nodeps 卸载旧版本,若漏洞详情页展示多个软件包,则需要卸载多个旧版本软件包
[root@VM-32-9-centos ~]# rpm -e kernel-3.10.0-957.el7.x86_64 --nodeps
再次查看,旧版本软件包已不存在
[root@VM-32-9-centos ~]# rpm -qa kernel
kernel-3.10.0-1160.62.1.el7.x86_64
三、注意事项
1、操作前,请务必做好快照,并在测试环境中充分测试;
2、在升级后,务必删除旧版本软件包(重要);
主机安全在检测漏洞时,会根据软件包版本判断,如果同时存在安全版本和漏洞版本,漏洞版本的软件包会被检测到,仍然会检出漏洞,请务必删除旧版本软件包后再复测。