如何在不重启服务器的情况下实时修补Ubuntu Linux内核

时间:2020-01-09 10:40:30  来源:igfitidea点击:

内核实时补丁可在运行时纠正运行中内核中的关键安全问题,而无需重新启动。
如何在不重新启动包装盒的情况下启用或修补Ubuntu Linux 16.04 LTS服务器?

Ubuntu Linux版本16.04 LTS支持企业和Ubuntu社区成员的实时修补。

Canonical Livepatch Service是经过身份验证,加密,签名的Livepatch内核模块流,适用于Ubuntu服务器,虚拟机和台式机。
请注意,此服务最多可免费使用3台运行64位Intel/AMD Ubuntu 16.04 LTS的服务器。

准备工作

确保在/etc/apt/sources.list中使用以下条目:

$ cat /etc/apt/sources.list

确保使用apt命令或apt-get命令更新系统:

$ sudo apt update
$ sudo apt upgrade

如果在系统上安装了快照(snappy软件平台守护程序):

$ sudo apt install snapd

第1步:生成实时补丁密钥

为了开始登录并从以下URL生成密钥(需要一个免费帐户):

https://ubuntu.com/livepatch

步骤2:启用实时修补

安装canonical-livepatch snap(软件包):

$ sudo snap install canonical-livepatch

确保/snap/bin在您的PATH中,运行:

echo 'export PATH=$PATH:/snap/bin' >> ~/.bashrc
 
# Load the file
source ~/.bashrc
 
#Verify path
echo "$PATH"

现在,使用您的令牌启用该服务。
语法为:

$ sudo canonical-livepatch enable {YOUR-TOKEN-HERE-FROM-STEP-1}

因此,如果令牌是d3b07384d213edec49eaa6238ad5ff00,请执行:

$ sudo canonical-livepatch enable d3b07384d213edec49eaa6238ad5ff00

输出示例:

Successfully enabled device. Using machine-token: d3b07384d213edec49eaa6238ad5ff00

步骤3:查看状态

执行以下命令以查看内核实时修补程序状态:

$ canonical-livepatch status

输出示例:

kernel: 4.4.0-43.63-generic
fully-patched: true
version: ""

我的内核已完全修补。
您可以通过--verbose选项查看更多详细信息:

$ canonical-livepatch status --verbose

已应用和修补的内核将显示以下状态:

$ canonical-livepatch status --verbose

输出示例:

client-version: "5"
machine-id: 727********************
machine-token: 034*************************
architecture: x86_64
cpu-model: Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
last-check: 2015-10-20T17:37:14.088531661-05:00
boot-time: 2015-10-16T12:27:58-05:00
uptime: 102h5m20s
status:
- kernel: 4.4.0-43.63-generic
  running: true
  livepatch:
    state: applied
    version: "13.3"
    fixes: '* CVE-2015-5195 LP: #1633547'

该补丁由canonical-livepatchd守护程序自动应用在Ubuntu服务器上。
您可以使用以下简单命令查看并确认正在运行的服务:

$ ps aux | grep '
- anonical-livepatchd'
`root 28631 0.0 0.0 1390464 23744 ? Ssl Oct19 0:08 /snap/canonical-livepatch/15/canonical-livepatchd`