使用内核实时修补工具无需重新启动即可运行 Linux 服务器
在本文中,您将了解什么是 Linux 内核实时修补、它如何确保正常运行时间、有哪 5 种工具可以帮助您运行服务器多年 - 无需重新启动,以及每种工具的优缺点是什么工具。
介绍
在 IT 组织内,有一些流程和实践非常常规,以至于它们是不可见的。这些流程和实践是否有缺陷,或者是否存在更好的方法,都无关紧要:如果某件事已经有效了几年,人们就会停止寻找替代品。这完美地描述了当前内核修补的方法。
目前,大多数组织通过规划重新启动周期来修补服务器。由于重新启动服务器群是一件令人头疼的事情,会导致停机,因此人们会尽可能地推迟。这意味着补丁不会尽早应用。补丁问题与其应用之间的这种差距意味着风险、不当行为,并可能导致不合规。
这种标准的内核修补方法使服务器暴露在多个攻击媒介上的威胁行为者的恶意之下,使 IT 组织面临重大安全问题的风险。任何负责保护组织免受网络攻击的人都应该寻求一种更好的方法来运行 Linux 服务器而无需重新启动(理想情况下,可以持续多年)。
为什么存在实时补丁
2009 年,一名管理 Web 服务器的 MIT 学生推迟了对服务器的 Linux 内核进行修补,因为应用修补程序需要重新启动,这会给用户带来不便。在延迟期间,服务器遭到黑客攻击。这启发了学生 Jeff Arnold,尝试开发一种无需重新启动服务器即可修补 Linux 内核的方法。
他与其他三名学生合作开发了Ksplice,这是第一个用于修补 Linux 内核的“无需重新启动”的软件工具。他们成立了一家公司来推广他们的新产品,该产品被甲骨文收购。当 Oracle 将 Ksplice 与其自己的发行版 Oracle Linux 集成时,其他 Linux 供应商开始开发自己的实时补丁系统。
这是因为实时修补(在服务器运行时将安全补丁应用于服务器,无需重新启动)为管理多个服务器的组织提供了宝贵的功能:
- 服务器持续运行,无需重新启动。这意味着很少或根本没有停机时间。
- 修补相关任务的自动化。这使得支持人员能够腾出时间来做其他工作。
- 立即应用新补丁。这大大减少了服务器漏洞。
Linux 内核实时修补的工作原理
实时修补 Linux 内核有两种基本方法:临时和持久。临时方法无需重新启动即可应用补丁,但实际上需要稍后重新启动服务器。持久的实时修补根本不需要重新启动。
临时方法
实时修补的临时方法需要在服务器上安装包管理软件(例如YUM插件)。当补丁交付到存储库时,它们将根据用户指定的更新工作流程进行应用。
某些 Linux 操作系统发行版以及某些供应商的支持合同中包含此方法。然而,它不应该被认为是免费或便宜的,因为它涉及预先不明显的时间成本和麻烦。
临时方法也称为“堆栈”修补,涉及服务器重新启动和停机。这是因为随着时间的推移,临时补丁会相互堆积,从而降低性能和稳定性。解决此问题的唯一方法是重新启动服务器以将新内核加载到内存中。
持久方法
通过实时修补的持久方法,专用的补丁服务器存储最新的补丁。这些补丁是“整体的”,而不是临时的,因为它们包含了以前的补丁。在要打补丁的Web服务器上,代理程序在后台运行,定期检查补丁服务器是否有补丁。当代理指示时,内核模块会执行补丁。
这种方法涉及供应商许可费,但这些费用可能低得惊人。此外,在用自动化流程代替手动工作时,持久方法减少了管理服务器所需的时间和精力。最重要的是,因为它根本不需要重新启动,所以它使服务器能够保持正常运行,有时一次可以运行数年。
持久的实时修补还提供了其他重要的优势。即使存在通常需要重新启动才能解决的硬件漏洞,例如 Spectre、Meltdown 和 Zombieload,使用持久方法的服务器仍保持正常运行。此外,它还可以与漏洞扫描器配合使用,这对于遵守 SOC2 等安全标准非常重要。
建议阅读:
- 如何在 Linux 中检查 Meltdown 和 Spectre 漏洞并修补它们
5 个 Linux 内核实时修补系统将有助于无需重新启动即可运行 Linux 服务器
不同供应商提供了几种不同的内核实时修补系统,其中大多数适用于特定的 Linux 发行版:
Oracle Ksplice
Ksplice 是最初的“无需重新启动”Linux 内核修补系统,创建于 2009 年,并于 2011 年被 Oracle 收购。它现在仅适用于 Oracle Linux 和具有 Oracle 许可证的 RHEL。它缺乏计划功能,但可以执行自动补丁更新,无需重新启动。
红帽补丁
Kpatch 是由 Red Hat 创建的,用于在其自己的 Linux 发行版上工作,尽管它可以移植到 Fedora、CentOS 和基于 Debian 的系统(例如 Ubuntu 和 Gentoo)。它不是自动化的:使用 Kpatch,管理员必须手动检查并应用补丁。
SUSE Kgraft
Kgraft 是 SUSE 的实时补丁系统,仅适用于 SUSE 自己的 Linux Enterprise Server。与其他系统不同,Kgraft 在应用补丁时不会停止内核功能。相反,它监视函数,以便可以在单个系统调用中应用所有补丁。
Ubuntu 实时补丁
Livepatch 由开发 Ubuntu 的 Canonical 公司创建。它在实时补丁系统中是独一无二的,因为它允许管理员创建自己的自定义内核补丁。当然,它可以在 Ubuntu 上运行,但也可以在 Red Hat Enterprise Linux 上运行。
内核维护
KernelCare 由 CloudLinux 开发,适用于最流行的发行版,例如 CentOS、RHEL、Oracle Linux、Amazon Linux、Debian 和 Ubuntu。它是自动化的,易于安装,可处理复杂的补丁,并提供自定义和固定日期的补丁以满足特定需求。
功能和价格比较
修补能力
KernelCare | Oracle Ksplice | Red Hat Kpatch | SUSE Kgraft | Ubuntu Livepatch | |
Patchset distribution | Single patchset for all patches | Each is separate module | Each is separate module | Each is separate module | Single patchset for all patches |
Release timing | Before or shortly after base distro | After patch in base distro | None provided | Matches SUSE release cycles | Matches UBUNTU release cycles |
Glibc patching | Yes | Yes | No | No | No |
OpenSSL patching | Yes | Yes | No | No | No |
Custom patches | Yes | No | Yes | Yes | No |
兼容性与实施
KernelCare | Oracle Ksplice | Red Hat Kpatch | SUSE Kgraft | Ubuntu Livepatch | |
Supports older kernels? | Yes | Yes | No | No | No |
32-bit support? | Custom | Yes | No | No | No |
API available? | Yes | Yes | No | Yes | Yes |
Roll-back functionality? | Yes | Yes | No | No | No |
Works behind a firewall? | Yes | Yes | Yes | Yes | Yes |
支持的发行版
Oracle Ksplice
Oracle Linux、Fedora 25-27、Ubuntu 桌面 14.04-17.10 Red Hat Kpatch
红帽企业 Linux、Ubuntu、Debian、Gentoo SUSE Kgraft
SUSE Ubuntu Livepatch
Ubuntu KernelCare
CloudLinux 操作系统、Amazon Linux 1 和 2、CentOS、Debian、OpenVZ、Oracle Enterprise Linux、Oracle UEK、Proxmox VE、Red Hat Enterprise Linux、Ubuntu、Ubuntu Core、Virtuozzo、Xen4 CentOS、Yokto< /p>
每服务器定价
Oracle Ksplice
-
每年每台服务器 2299 美元 (1399 美元):Oracle Linux Premier 或(有限)支持订阅的费用 Red Hat Kpatch
每台服务器每年 1299 美元:RHEL Premium 支持订阅费用 SUSE Kgraft
每台服务器每年 2198 美元:实时补丁服务(699 美元)和优先服务器订阅(1499 美元)的总成本 Ubuntu Livepatch
每台服务器每年 225 美元,虚拟机每年 75 美元:Ubuntu Advantage 支持订阅的费用 KernelCare
500 多个服务器许可证,每台服务器每年 27 美元。
相关阅读
- 使用 Uchecker 检测内存中过时的共享库
哪种 Linux 内核实时补丁系统最适合您?
对于在内部运行 Web 服务器、拥有大量系统管理员、标准化系统以及与 Oracle、Red Hat 或 SUSE 签订的现有支持合同的公司来说,使用附带的修补系统的好处可能会超过成本。定期与这些供应商的支持运营部门进行互动可能有助于简化其自身的运营。
对于运行在 Ubuntu 上标准化的 Web 服务器的组织来说,其支持订阅中包含的 Livepatch 系统是一个不错的选择。与上述支持合同相比,该系统健全且成本较低。
对于拥有大量服务器且包含不同 Linux 发行版的公司来说,KernelCare 系统是唯一可行的选择。对于关注成本和效率的企业来说,它也是一个不错的选择,以低成本提供自动化、灵活的修补。
对于运行互联网设备作为“物联网”一部分的企业来说,KernelCare 是唯一的选择。这些设备大多数都使用 Linux 容器,当它们被黑客攻击时可能会造成致命的后果,因此保持内核补丁至关重要。 KernelCare系统中补丁的快速发布时间使其非常适合物联网应用。
相关阅读:
- 为 Ubuntu 更新 Linux 内核的不同方法
您当前是否正在使用上述任何一种实时修补系统?请在下面的评论部分分享您的想法。