livepatch-mgr是Alibaba Cloud Linux操作系统提供的内核热补丁管理工具,您可以在Alibaba Cloud Linux操作系统中使用livepatch-mgr查看、安装或卸载内核热补丁。
背景信息
Alibaba Cloud Linux发行版为保障系统的稳定与安全,会紧密跟进Linux业界与社区发现的各种软件问题及安全漏洞(CVE),及时更新包括内核在内的软件包,修复软件缺陷(Bugfix)并修补安全漏洞(CVE)。Alibaba Cloud Linux的安全更新记录,请参见:
您可以基于安全更新记录,选择冷补丁或热补丁的方式更新软件包,本文主要提供内核热补丁管理工具livepatch-mgr的使用说明。
安装并查看livepatch-mgr工具
- 远程连接需要热补丁的Alibaba Cloud Linux实例。具体操作,请参见 连接方式概述 。
- 运行以下命令,安装内核热补丁管理工具livepatch-mgr。
yum install livepatch-mgr -y
- 安装完成后,运行以下命令,查看livepatch-mgr支持的功能。
livepatch-mgr -h
安装并使能热补丁
安装并使能本主机适用的所有热补丁命令如下:
livepatch-mgr update
同时,livepatch-mgr工具提供了--bugfix
、--security
以及-cves <CVEs>
参数,供您在不同的场景下选择使用。具体说明如下:- 安装并使能本主机适用的Bugfix类热补丁。
livepatch-mgr update --bugfix
- 安装并使能本主机适用的CVE类热补丁。
livepatch-mgr update --security
- 安装并使能指定的CVE类热补丁。
变量<CVEs>表示可以指定一个或多个CVE ID,当指定多个CVE ID时,需要使用半角逗号(,)间隔,且严格区分变量值的大小写。例如:livepatch-mgr update --cves <CVEs>
livepatch-mgr update --cves CVE-2021-33909,CVE-2021-22555
以
livepatch-mgr update
命令为例,安装并使能本主机适用的所有热补丁的返回结果如下:已加载插件:fastestmirror, langpacks, releasever-adapter, update-motd
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 kernel-hotfix-4121479-21.al7.x86_64.0.1.0-1.al7 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================
Package 架构 版本 源 大小
================================================================================
正在安装:
kernel-hotfix-4121479-21.al7 x86_64 1.0-1.al7 plus 244 k
事务概要
================================================================================
安装 1 软件包
总下载量:244 k
安装大小:1.0 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : kernel-hotfix-4121479-21.al7-1.0-1.al7.x86_64 1/1
installing /var/khotfix/4.19.91-21.al7.x86_64/4121479/kpatch-4121479.ko (4.19.91-21.al7.x86_64)
loading patch module: /var/khotfix/4.19.91-21.al7.x86_64/4121479/kpatch-4121479.ko
验证中 : kernel-hotfix-4121479-21.al7-1.0-1.al7.x86_64 1/1
已安装:
kernel-hotfix-4121479-21.al7.x86_64 0:1.0-1.al7
完毕!
查询热补丁信息
列出本主机适用的所有热补丁命令如下:
livepatch-mgr list
同时,livepatch-mgr工具提供了--installed
、--bugfix
、--security
、--running
以及--available
参数,供您在不同的场景下选择使用。具体说明如下:- 列出本主机已安装的热补丁。
livepatch-mgr list --installed
- 列出本主机已安装的Bugfix类热补丁。
livepatch-mgr list --installed --bugfix
- 列出本主机已安装的CVE类热补丁。
livepatch-mgr list --installed --security
- 列出本主机正在生效的所有热补丁。
livepatch-mgr list --running
- 列出本主机正在生效的Bugfix类热补丁。
livepatch-mgr list --running --bugfix
- 列出本主机正在生效的CVE类热补丁。
livepatch-mgr list --running --security
- 列出本主机可用的所有热补丁。
livepatch-mgr list --available
- 列出本主机可用的Bugfix类热补丁。
livepatch-mgr list --available --bugfix
- 列出本主机可用的CVE类热补丁。
livepatch-mgr list --available --security
以
livepatch-mgr list
命令为例,列出本主机适用的所有热补丁的返回结果如下。根据返回结果可以将查询到的热补丁分为三类:- Loaded patch modules:已加载(使能)的热补丁
- Installed patch modules:已安装的热补丁
- Available and not installed patch modules:可用且未安装的热补丁
Loaded patch modules:
5692820 fix_trace_buffer_out_bound
CVE-2021-33909 5956925 seq_file: disallow extremely large seq buffer allocations;
4375449 ovl: fix dentry leak in ovl_get_redirect;
5260815 ext4: Avoid freeing inodes on dirty list;
5000697 mm, compaction: make capture control handling safe wrt interrupts;
CVE-2021-22555 5928799 netfilter: x_tables: fix compat match/target pad out-of-bound write;
4121479 fix XDP socket queue descriptor entries overflow;
Installed patch modules:
5692820 fix_trace_buffer_out_bound
CVE-2021-33909 5956925 seq_file: disallow extremely large seq buffer allocations;
4375449 ovl: fix dentry leak in ovl_get_redirect;
5260815 ext4: Avoid freeing inodes on dirty list;
5000697 mm, compaction: make capture control handling safe wrt interrupts;
CVE-2021-22555 5928799 netfilter: x_tables: fix compat match/target pad out-of-bound write;
4121479 fix XDP socket queue descriptor entries overflow;
Available and not installed patch modules:
CVE-2020-14386 kernel-hotfix-3768348-21.al7.x86_64 Using tp_reserve to calculate netoff can overflow as tp_rese...(more)
kernel-hotfix-5902278-21.al7.x86_64 We notice that hung task happens in a conner but practical ...(more)
加载(使能)热补丁
加载本主机中已安装的所有热补丁命令如下:
livepatch-mgr load
同时,livepatch-mgr工具提供了--security
、--bugfix
、load <目标热补丁标识>
参数,供您在不同的场景下选择使用。具体说明如下:- 加载本主机中已安装的CVE类热补丁。
livepatch-mgr load --security
- 加载本主机中已安装的Bugfix类热补丁。
livepatch-mgr load --bugfix
- 加载本主机中某一具体的热补丁。
变量<目标热补丁标识>表示支持通过热补丁中的内核模块(ko文件)绝对路径或模块名称指定要加载的热补丁信息。例如:livepatch-mgr load <目标热补丁标识>
- 通过热补丁中内核模块(ko文件)的绝对路径指定热补丁包,命令使用示例如下:
返回结果示例:livepatch-mgr load /var/khotfix/4.19.91-21.al7.x86_64/5956925/kpatch-5956925.ko
loading kernel-hotfix-5956925 loading patch module: /var/khotfix/4.19.91-23.al7.x86_64/5956925/kpatch-5956925.ko
- 通过热补丁的模块名称(不带.ko后缀)指定热补丁包,命令使用示例如下:
返回结果示例:livepatch-mgr load kpatch-5260815
loading kernel-hotfix-5260815 loading patch module: /var/khotfix/4.19.91-23.al7.x86_64/5260815/kpatch-5260815.ko
- 通过热补丁的模块名称(带.ko后缀)指定热补丁包,命令使用示例如下:
返回结果示例:livepatch-mgr load kpatch-4121479.ko
loading kernel-hotfix-4121479 loading patch module: /var/khotfix/4.19.91-23.al7.x86_64/4121479/kpatch-4121479.ko
- 通过热补丁中内核模块(ko文件)的绝对路径指定热补丁包,命令使用示例如下:
以
livepatch-mgr load
命令为例,加载本主机中已安装的所有热补丁的返回结果如下所示:loading kernel-hotfix-5956925-23.x86_64
loading patch module: /var/khotfix/4.19.91-23.al7.x86_64/5956925/kpatch-5956925.ko
loading kernel-hotfix-5902278-23.x86_64
loading patch module: /var/khotfix/4.19.91-23.al7.x86_64/5902278/kpatch-5902278.ko
loading kernel-hotfix-5260815-23.x86_64
loading patch module: /var/khotfix/4.19.91-23.al7.x86_64/5260815/kpatch-5260815.ko
loading kernel-hotfix-5928799-23.x86_64
loading patch module: /var/khotfix/4.19.91-23.al7.x86_64/5928799/kpatch-5928799.ko
loading kernel-hotfix-5577959-23.x86_64
loading patch module: /var/khotfix/4.19.91-23.al7.x86_64/5577959/kpatch-5577959.ko
卸载热补丁
卸载本主机中已安装的所有热补丁命令如下:
livepatch-mgr unload
同时,livepatch-mgr工具提供了--security
、--bugfix
、unload <目标热补丁标识>
参数,供您在不同的场景下选择使用。具体说明如下:- 卸载本主机中CVE类热补丁。
livepatch-mgr unload --security
- 卸载本主机中Bugfix类热补丁。
livepatch-mgr unload --bugfix
- 卸载本主机中某一具体的热补丁。
变量<目标热补丁标识>表示支持通过热补丁中的内核模块(ko文件)绝对路径或模块名称指定要卸载的热补丁信息。例如:livepatch-mgr unload <目标热补丁标识>
- 通过热补丁中内核模块(ko文件)的绝对路径指定热补丁包,命令使用示例如下:
返回结果示例:livepatch-mgr unload /var/khotfix/4.19.91-21.al7.x86_64/5928799/kpatch-5928799.ko
unloading kernel-hotfix-5928799 disabling patch module: kpatch_5928799 unloading patch module: kpatch_5928799
- 通过热补丁的模块名称(不带.ko后缀)指定热补丁包,命令使用示例如下:
返回结果示例:livepatch-mgr unload kpatch_5692820
unloading kernel-hotfix-5692820 disabling patch module: kpatch_5692820 unloading patch module: kpatch_5692820
- 通过热补丁的模块名称(带.ko后缀)指定热补丁包,命令使用示例如下:
返回结果示例:livepatch-mgr unload kpatch_5000697.ko
unloading kernel-hotfix-5000697 disabling patch module: kpatch_5000697 unloading patch module: kpatch_5000697
- 通过热补丁中内核模块(ko文件)的绝对路径指定热补丁包,命令使用示例如下:
以
livepatch-mgr unload
命令为例,卸载本主机中已安装的所有热补丁的返回结果示例如下:unloading kernel-hotfix-5956925-23.x86_64
disabling patch module: kpatch_5956925
unloading patch module: kpatch_5956925
unloading kernel-hotfix-5902278-23.x86_64
disabling patch module: kpatch_5902278
unloading patch module: kpatch_5902278
unloading kernel-hotfix-5260815-23.x86_64
disabling patch module: kpatch_5260815
unloading patch module: kpatch_5260815
unloading kernel-hotfix-5928799-23.x86_64
disabling patch module: kpatch_5928799
unloading patch module: kpatch_5928799
unloading kernel-hotfix-5577959-23.x86_64
disabling patch module: kpatch_5577959
unloading patch module: kpatch_5577959