在本文中,您将了解什么是 Linux 内核实时补丁,它如何确保正常运行时间,有哪些 5 种工具可帮助您在不重新启动的情况下运行服务器多年,以及每种工具的优缺点。
介绍
在 IT 组织中,有一些流程和实践非常常规,以至于它们是不可见的。 这些流程和实践是否有缺陷,或者是否存在更好的方法并不重要:如果某件事已经奏效了几年,人们就会停止寻找替代方案。 这完美地描述了当前的方法 内核补丁.
目前,大多数组织通过计划重启周期来修补服务器。 因为重新启动服务器队列是一件令人头疼的事情,会导致停机,所以人们尽可能地推迟它。 这意味着不会尽早应用补丁。 补丁问题与其应用之间的这种差距意味着风险、不当行为并可能导致不合规。
这种内核修补的标准方法使服务器暴露于多个攻击媒介的威胁参与者的恶意意图,使 IT 组织面临重大安全问题的风险。 任何负责保护其组织免受网络攻击的人都应该寻求一种更好的方式来运行 Linux 服务器而无需重新启动(理想情况下,多年)。
为什么存在实时补丁
2009 年,一名管理 Web 服务器的麻省理工学院学生推迟了为服务器的 Linux 内核打补丁,因为应用补丁会导致重新启动,给他的用户带来不便。 在延迟期间,服务器被黑客入侵。 这启发了学生, 杰夫·阿诺德,尝试开发一种无需重新启动服务器即可修补 Linux 内核的方法。
他与其他三名学生合作开发 拼接,第一个用于修补 Linux 内核的“无需重启”的软件工具。 他们成立了一家公司来推广他们的新产品,该产品被甲骨文收购。 当 Oracle 将 Ksplice 与他们自己的发行版 Oracle Linux 集成时,其他 Linux 供应商开始开发他们自己的实时修补系统。
这是因为实时修补——在服务器运行时将安全补丁应用于服务器,无需重新启动——为管理多台服务器的组织提供了宝贵的功能:
- 服务器持续运行,无需重新启动。 这意味着很少或没有停机时间。
- 修补相关任务的自动化。 这可以让支持人员腾出时间去做其他工作。
- 立即应用新补丁。 这大大减少了服务器漏洞。
Linux 内核实时修补的工作原理
有两种实时修补 Linux 内核的基本方法: 暂时的 和 执着的. 临时方法在不重新启动的情况下应用补丁,但实际上确实需要稍后重新启动服务器。 持久的实时修补根本不需要重新启动。
临时方法
这 临时方法 实时补丁需要在服务器上安装包管理软件(例如 YUM 插件)。 当补丁交付到存储库时,它们会根据用户指定的更新工作流程应用。
此方法包含在某些 Linux 操作系统发行版中,并且包含在某些供应商的支持合同中。 然而,它不应该被认为是免费或廉价的,因为它涉及到时间成本和预先不明显的麻烦。
临时方法,也称为“堆栈”修补,涉及服务器重启和停机。 这是因为临时补丁会随着时间的推移而相互叠加,从而降低性能和稳定性。 此问题的唯一解决方案是重新启动服务器以将新内核加载到内存中。
持久方法
随着 持久方法 对于实时补丁,专用补丁服务器存储最新补丁。 这些补丁是“整体的”,而不是临时的,因为它们包含以前的补丁。 在要修补的 Web 服务器上,代理程序在后台运行,定期检查补丁服务器是否有补丁。 当代理指示时,内核模块执行补丁。
这种方法涉及供应商许可费用,但这些费用可能非常低。 此外,在用自动化流程代替手动工作时,持久方法减少了管理服务器所需的时间和精力。 最重要的是,因为它根本不涉及重新启动,它使服务器能够保持正常运行,有时一次运行数年。
持久的实时修补也提供了其他重要的优势。 即使存在通常需要重新启动才能解决的硬件漏洞,例如 幽灵, 崩溃, 和 僵尸负荷,使用持久化方法的服务器保持正常运行。 此外,它还可以与漏洞扫描程序一起使用,这对于遵守 SOC2 等安全标准非常重要。
建议阅读:
- 如何在 Linux 中检查 Meltdown 和 Spectre 漏洞并修补它们
5 个 Linux 内核实时修补系统,有助于在不重新启动的情况下运行 Linux 服务器
不同供应商提供了几种不同的内核实时修补系统,其中大部分用于特定的 Linux 发行版:
Oracle Ksplice
Ksplice 是最初的“无需重新启动”的 Linux 内核修补系统,创建于 2009 年,并于 2011 年被 Oracle 收购。它现在仅适用于 Oracle Linux,以及具有 Oracle 许可证的 RHEL。 它缺少调度功能,但可以执行自动补丁更新,无需重新启动。
红帽 Kpatch
Kpatch 由 Red Hat 创建,用于在其自己的 Linux 发行版上工作,尽管它可以移植到 Fedora、CentOS 和基于 Debian 的系统,例如 Ubuntu 和 Gentoo。 它不是自动化的:使用 Kpatch,管理员必须手动检查和应用补丁。
SUSE Kgraft
Kgraft 是 SUSE 的实时修补系统,仅适用于 SUSE 自己的 Linux Enterprise Server。 与其他系统不同,Kgraft 在应用补丁时不会停止内核功能。 相反,它监视功能,以便它可以在单个系统调用中应用所有补丁。
Ubuntu Livepatch
Livepatch 由开发 Ubuntu 的公司 Canonical 创建。 它在实时补丁系统中是独一无二的,因为它允许管理员创建他们自己的自定义内核补丁。 当然,它适用于 Ubuntu,但也适用于 Red Hat Enterprise Linux。
内核关怀
KernelCare 由 CloudLinux 开发,适用于大多数流行的发行版,例如 CentOS、RHEL、Oracle Linux、Amazon Linux、Debian 和 Ubuntu。 它是自动化的、易于安装、处理复杂的补丁,并提供自定义和固定日期的补丁以满足特定需求。
功能和价格比较
修补能力
内核关怀 | Oracle Ksplice | 红帽 Kpatch | SUSE Kgraft | Ubuntu Livepatch | |
补丁集分发 | 所有补丁的单个补丁集 | 每个都是独立的模块 | 每个都是独立的模块 | 每个都是独立的模块 | 所有补丁的单个补丁集 |
发布时间 | 在基本发行版之前或之后不久 | 在基础发行版中打补丁后 | 没有提供 | 匹配 SUSE 发布周期 | 匹配 UBUNTU 发布周期 |
Glibc 补丁 | 是的 | 是的 | 不 | 不 | 不 |
OpenSSL 修补 | 是的 | 是的 | 不 | 不 | 不 |
自定义补丁 | 是的 | 不 | 是的 | 是的 | 不 |
兼容性与实施
内核关怀 | Oracle Ksplice | 红帽 Kpatch | SUSE Kgraft | Ubuntu Livepatch | |
支持旧内核? | 是的 | 是的 | 不 | 不 | 不 |
32位支持? | 风俗 | 是的 | 不 | 不 | 不 |
API 可用吗? | 是的 | 是的 | 不 | 是的 | 是的 |
回滚功能? | 是的 | 是的 | 不 | 不 | 不 |
在防火墙后面工作? | 是的 | 是的 | 是的 | 是的 | 是的 |
支持的发行版
Oracle Ksplice | 甲骨文Linux, Fedora 25-27,Ubuntu 桌面 14.04-17.10 |
红帽 Kpatch | 红帽企业 Linux、Ubuntu、Debian、Gentoo |
SUSE Kgraft | 苏塞 |
Ubuntu Livepatch | Ubuntu |
内核关怀 | 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 |
每台服务器定价
Oracle Ksplice | 每台服务器每年 2299 美元(1399 美元):Oracle Linux Premier 或(有限)支持订阅的成本 |
红帽 Kpatch | 每台服务器每年 1299 美元:RHEL 高级支持订阅的成本 |
SUSE Kgraft | 每台服务器每年 2198 美元:实时修补服务 (699 美元) 和优先服务器订阅 (1499 美元) 的总成本 |
Ubuntu Livepatch | 每台服务器每年 225 美元,虚拟机每年 75 美元:Ubuntu Advantage 支持订阅的成本 |
内核关怀 | 每台服务器每年 27 美元,用于 500 多台服务器许可证。 |
相关阅读
- 使用 Uchecker 检测内存中过时的共享库
哪个 Linux 内核实时修补系统最适合您?
对于在内部运行 Web 服务器、拥有大量系统管理员、标准化系统以及与 Oracle、Red Hat 或 SUSE 的现有支持合同的公司而言,使用随附的修补系统的好处可能超过成本。 定期与这些供应商的支持业务互动可能有助于简化其自身的业务。
对于在 Ubuntu 上运行标准化 Web 服务器的组织,其支持订阅中包含的 Livepatch 系统是一个不错的选择。 与上述支持合同相比,系统完善,成本低。
对于拥有大型服务器机群(包括不同 Linux 发行版)的公司,KernelCare 系统是唯一可行的选择。 对于关注成本和效率的公司来说,它也是一个不错的选择,它以低成本提供自动化、灵活的补丁。
对于作为“物联网”一部分运行支持互联网的设备的企业,KernelCare 是唯一的选择。 这些设备中的大多数使用 Linux 容器,当它们被黑客入侵时,可能会产生致命的后果,因此保持内核修补至关重要。 KernelCare 系统中补丁的快速发布时间使其非常适合物联网应用程序。
相关阅读:
- 为 Ubuntu 更新 Linux 内核的不同方法
您目前是否使用上述任何一种实时修补系统? 请在下面的评论部分分享您的想法。