如果你管理自己的服务器,迟早你会遇到这个问题。必须重启操作系统,但提供重要服务的机器不能中断。
但是为什么要重启服务器呢? apt-get upgrade
命令后一切似乎都运行良好。然而,事实并不总是相同的。虽然每次升级后系统会继续运行,并且不需要像 Windows 那样重新启动,但您可能仍然需要这样做。
例如,当检测到内核的内核漏洞时,会对其进行修补并作为新包推送到您的服务器。安装补丁内核后,一些文件会写入驱动器,但它仍然是旧内核,因为它是加载到内存 (RAM) 中的文件。
这意味着您的服务器仍然容易受到先前发现的安全漏洞的攻击。无需重新启动操作系统即可重新加载其他进程、守护进程和服务。但是,内核位于系统的中心,只能在下次启动时重新加载。
Ubuntu Livepatch 通过允许您在不重新启动的情况下关闭内核安全漏洞来解决这个问题。这样,您可以避免或延迟数周或数月的重启,而不会影响安全性。
实时修补功能背后的核心思想很简单:当一个函数容易被“写入”时,重写它,删除漏洞并将新函数加载到内存中的某个位置。当函数被调用时,不是在内核中运行代码,而是重定向它以使用重写的代码。
但是,与大多数事情一样,实现和技术细节并不是那么简单。
如何在 Ubuntu 上设置 Livepatch
转到此页面并创建一个 Ubuntu One 帐户(如果您已经有帐户,则只需登录)。检查您的电子邮件,稍后单击帐户确认链接。接下来,访问 Canonical Livepatch 服务页面。选择表明您是 'Ubuntu 用户' 的选项,然后单击按钮以创建令牌。下一页将显示您必须在服务器上输入的确切命令。在第一个命令之后,输入:
sudo snap install canonical-livepatch
等待几秒钟,直到 snap 包完全安装。完成后,您将获得类似于下图所示的结果。
最后,使用 Canonical 页面中的以下命令 sudo canonical-livepatch enable #PASTE_YOUR_TOKEN_HERE
,服务将工作并自动将安全补丁应用到内核,在必要时,无需从侧面输入。用户。
必要时安装守护进程快照
在极少数情况下,上一节中的第一个命令可能不会成功,并显示以下错误消息:-bash:/usr/bin/snap: No such file或目录
。在这种情况下,这意味着您的服务器提供商具有默认不包含守护程序服务 snap 的 Ubuntu 操作系统映像。使用命令安装它:
sudo apt update && sudo apt install snapd
现在再次运行上一节中的两个命令。
让您的服务器保持最新状态
Livepatch 会将所有必要的安全更新应用到您的内核。但是,您仍应定期使用以下命令升级系统的其余部分:
sudo apt update && sudo apt 升级
你应该每周做一次,如果可以的话,甚至更频繁。重要的系统包可能会提示您需要重新启动它们才能应用最新的安全修复程序。
这些重启操作不会中断进程中的任何服务。例如,在这种情况下,SSH 守护进程在不中断活动 SSH 会话的情况下重新启动。
在其他情况下,您可以自己重新启动服务,以确保重新加载新的修补代码并应用安全修复程序。例如,如果您注意到 nginx 软件包已经升级,您可以运行:systemctl restart nginx.service
将 nginx 守护进程重新加载到内存中。
另一方面,尽管升级了包,它仍然可以使用旧的、容易出现问题的代码运行,这会使您的服务器处于危险之中。一些软件包升级会为您执行此操作,但其他一些升级不会。这就是为什么注意 'apt upgrade' 所做的事情并在必要时重新启动一些服务是一个好习惯的原因。您还可以查看日志以查看是否已自动完成。
如您所见,Canonical 可以轻松避免在服务器上重新启动。关于内核部分,有一部分没有维护。您唯一能做的就是运行命令:canonical-livepatch status
来检查所有内容。
希望你成功。
0 评论