如何在Linux服务器中设置自动无重启内核更新

如何在Linux服务器中设置自动无重启内核更新

在Linux服务器上修补内核似乎很简单。可以使用dpkg,apt-get或kexec等常用工具来完成。但是,如果组织运行成百上千的服务器,这些方法将变得复杂。许多服务器意味着要修补的多个发行版,每个发行版都需要系统管理员或工程师的亲自关注。

这些手动修补方法也存在风险,因为它们需要重新启动。重新引导涉及服务器停机,这通常是有问题的,因此通常在重新引导周期中完成。由于手动修补是在这些周期内完成的,因此它为黑客提供了一个“时间窗口”,使他们可以在其中攻击服务器基础结构。

对于运行多个服务器的组织,实时修补是更好的选择。这是在服务器运行时自动修补Linux内核的一种自动方法,与手动方法相比,它既高效又安全。让我们学习如何设置Canonical,Oracle,Red Hat和CloudLinux中四种最受欢迎​​的实时补丁系统。

什么是实时修补及其工作原理

最终,有两种实时修补内核和库的方法:临时和持久。临时方法无需重新启动即可应用补丁,但实际上确实需要稍后重新启动服务器。永久性实时修补无需重新启动。

临时方法

临时方法(或“堆栈”修补)通过程序包管理软件(例如YUM插件)执行。修补程序将交付到存储库,并根据用户指定的更新工作流程进行应用。

即使您在安装修补程序后可能不需要立即重新启动,“堆栈”修补程序也等于服务器重新启动和停机,但是由于这种实时更新的体系结构,安全修补程序会随着时间的推移相互叠加,可能会降低性能和稳定性。解决此问题的唯一方法是重新引导服务器,以将新内核加载到内存中。

提供临时修补程序的供应商是:

  • 规范Livepatch
  • K线走势图
  • Amazon Linux 2内核实时修补

持久方法

在采用持久方法的情况下,服务器会存储最新的修补程序,这些修补程序包含以前的修补程序,因此称为“整体式”。要更新服务器,代理程序在后台运行,检查补丁程序服务器中的补丁程序。如果补丁服务器上有用于内核的补丁,则代理会调用补丁模块并应用补丁。

持久修补还有其他重要优点:

  • 即使使用通常需要重新启动才能修补的硬件漏洞(例如Spectre,Meltdown和Zombieload),使用持久性方法的服务器仍可以正常运行。
  • 通过完全的修补过程自动化,它减少了管理服务器所需的时间和精力;
  • 它使服务器可以一次运行很多年,并保持运行状态。

永久性修补方法通常涉及供应商费用,大多数供应商都提供免费试用期:

  • Ksplice
  • 补丁
  • 内核维护

在Linux服务器中设置自动无重启内核更新

下面我们将向您展示如何使用Livepatch,Kpatch,Ksplice和KernelCare服务在Linux服务器中设置无重启内核更新。

注意:在开始实施这些说明之前,请确保您的系统是最新的并且已经备份。

1.设置规范Livepatch

可以在安装期间或安装之后设置Canonical Livepatch Service。仅当您运行命令apt-get upgrade(因此为半自动)时,它才会安装内核安全补丁。

优点:简单。半自动。无需重启。

缺点:4个或更多主机的价格昂贵(但如果您是Ubuntu社区的成员,则可为全部主机最多释放3台主机,最多可释放50台计算机)。没有补丁回滚。

每台服务器的费用:每月(不可用),每年(225美元)。

要在Ubuntu 20.04 LTS服务器(在16.04 LTS,14.04 LTS和18.04 LTS版本上也可以使用)上安装Livepatch,请打开一个终端并运行以下两个命令:

sudo snap install canonical-livepatch
sudo canonical-livepatch enable

要注销服务器,请使用以下命令:

sudo canonical-livepatch disable 

要检查服务状态,请使用以下命令:Advertisements.banner-1 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}

sudo canonical-livepatch status --verbose

2.设置Oracle Ksplice

除非您在Oracle Cloud中运行Ksplice实例,否则将需要访问密钥来安装它。可以通过登录Unbreakable Linux网络并按照说明为Ksplice注册系统来获得。

要安装Ksplice,您的系统必须可以访问Internet。如果您使用的是代理,请在您的Shell中设置代理:

# export http_proxy=http://proxy.example.com:port
# export https_proxy=http://proxy.example.com:port

代理必须支持建立HTTPS连接,并且代理字符串应采用以下格式:

[protocol://][username:[email protected]][:port]
  • protocol是连接到代理(http或https)的协议
  • 用户名和密码是使用代理(如果有)所需的身份验证信息。
  • host和port是用于连接到代理的主机名/ ip地址和端口号

以root用户身份运行以下说明,将YOUR_ACCESS_KEY替换为您在上一步中收到的访问密钥。

在Oracle云内部

要将Ksplice安装在Oracle Cloud中以便自动安装内核更新,请运行以下命令:Advertisements.large-leaderboard-2 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc --autoinstall

要将可用更新应用于自动安装内核更新的应用程序Uptrack,请运行以下命令:

# uptrack-upgrade -y

如果已经安装了Uptrack,则可以在安装Ksplice之后通过在/etc/uptrack/uptrack.conf中设置autoinstall = yes来打开它。

要安装Ksplice以便手动应用更新,请运行以下命令:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc

在Oracle云之外

要在Oracle Cloud外部安装Ksplice以便自动安装内核更新,请运行以下命令:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY --autoinstall

要安装Ksplice以便手动应用更新,请运行以下命令:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY

注意:如果要在Debian或Ubuntu服务器上安装Ksplice,则可能首先需要使用apt-get install ca-certificates安装ca-certificates软件包。没有此软件包,您将看到“证书验证错误”。

4.设置Red Hat Kpatch

Kpatch安装简单明了:

运行update命令以更新软件包存储库并获取最新的软件包信息:

sudo apt-get update -y

运行带有-y标志的install命令以快速安装软件包和依赖项:

sudo apt-get install -y patch

5.设置CloudLinux KernelCare

要查看KernelCare是否支持正在运行的内核,请运行以下命令之一:Advertisements.leader-1 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px实心#dfdfdf}

curl -s -L https://kernelcare.com/checker | python

要么

wget -qq -O – https://kernelcare.com/checker | python

要安装KernelCare,请运行以下命令之一:

curl -s -L https://kernelcare.com/installer | bash

要么:

wget -qq -O - https://kernelcare.com/installer | bash

如果您使用的是基于IP的许可证,则不需要任何其他操作。如果您使用的是基于密钥的许可证,请运行以下命令:

$/usr/bin/kcarectl --register KEY

KEY是您购买KernelCare或注册免费试用版时收到的注册密钥代码字符串。您可以在此处获取密钥。

要注销服务器,请运行:

sudo kcarectl --unregister

要检查服务的状态,请运行:

sudo kcarectl --info

KernelCare每4小时自动检查一次新补丁。要手动而不是自动执行更新,请运行:

/usr/bin/kcarectl –update

结论

这些针对几种实时修补解决方案的安装说明列出了在您的环境中安装一个所需的所有步骤。完成此操作后,您将享受实时修补技术的好处:无需停止服务器即可更新内核,而且无需花费数月甚至数年的时间即可重新启动。

资讯来源:由0x资讯编译自HOWTOFORGE,版权归作者所有,未经许可,不得转载
你可能还喜欢