本教程将向您展示如何在 Ubuntu 上设置自动安全更新,也就是无人值守升级。 如果你不是住在山洞里,那么你可能知道大规模的 Equifax 数据泄露。 2017 年 5 月至 7 月期间,1.43 亿 Equifax 客户的信息被盗,包括姓名、社会安全号码、出生日期、驾照、20 万个信用卡号码。
2017 年 3 月,一个严重的漏洞 Apache 结构被发现并且 Apache 基金会在宣布存在漏洞时发布了修复程序。 然而,Equifax 两个月没有修补漏洞,导致了大规模的数据泄露。 运行复杂应用程序的公司可能需要在安装更新之前进行大量测试,但如果您有一个简单的 Linux 服务器供个人使用,您可以打开自动安全更新以尽快修补漏洞。
在 Ubuntu 服务器上配置自动安全更新(无人值守升级)
首先,安装 unattended-upgrades
包裹。
sudo apt update sudo apt install unattended-upgrades
您需要安装 update-notifier-common
包以设置自动重启。
sudo apt install update-notifier-common
然后编辑 50unattended-upgrades
文件。
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
在此文件中,您可以配置应自动更新哪些包。 默认情况下,只会自动安装安全更新,如以下几行所示。 因此无需更改此部分。
Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}"; "${distro_id}:${distro_codename}-security"; // Extended Security Maintenance; doesn't necessarily exist for // every release and this system may not have it installed, but if // available, the policy for updates is such that unattended-upgrades // should also install from here by default. "${distro_id}ESMApps:${distro_codename}-apps-security"; "${distro_id}ESM:${distro_codename}-infra-security"; // "${distro_id}:${distro_codename}-updates"; // "${distro_id}:${distro_codename}-proposed"; // "${distro_id}:${distro_codename}-backports"; };
- 第一个起源
"${distro_id}:${distro_codename}"
是必要的,因为安全更新可能会从非安全来源引入新的依赖项。 此来源不提供软件更新。 - 第二个来源用于定期安全更新。
- 第三个和第四个起源(ESMApps 和 ESM)用于扩展的安全维护,即那些运行 Ubuntu 版本已终止的用户。 你可以保持原样。
电子邮件通知
有时 Ubuntu 可能无法安装安全更新,因此需要手动更新。 如果您希望在每次安全更新后收到电子邮件通知,请找到以下行并取消注释。 (去掉开头的双斜线。)
Ubuntu 18.04
//Unattended-Upgrade::Mail "root";
Ubuntu 20.04
//Unattended-Upgrade::Mail "";
您可以指定一个电子邮件地址来接收如下通知。
Unattended-Upgrade::Mail "[email protected]";
如果您希望仅在安全更新期间出现错误时接收电子邮件通知,请取消注释以下行。
Ubuntu 18.04
//Unattended-Upgrade::MailOnlyOnError "true";
在 Ubuntu 20.04 上,您需要找到以下行
//Unattended-Upgrade::MailReport "on-change";
取消注释并更改为
Unattended-Upgrade::MailReport "only-on-error";
自动删除未使用的依赖项
你可能需要做 sudo apt autoremove
每次更新后,找到以下行:
//Unattended-Upgrade::Remove-Unused-Dependencies "false";
取消注释此行并更改 false
到 true
.
Unattended-Upgrade::Remove-Unused-Dependencies "true";
自动重启
安装 Linux 内核的安全更新后,您需要重新启动 Ubuntu 服务器才能应用内核更新。 如果服务器只供您或少数人使用,那么启用自动重启会很方便。 找到以下行。
//Unattended-Upgrade::Automatic-Reboot "false";
取消注释并更改 false
到 true
启用自动重启
Unattended-Upgrade::Automatic-Reboot "true";
您还可以指定执行重启的时间。 默认情况下,在安装内核更新后立即重新启动。 我将其设置为凌晨 4 点重新启动。 确保为服务器设置正确的时区。
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Save 和 close 文件。
如果服务器被很多用户使用或需要很长的正常运行时间(比如这个博客),那么你不应该启用自动重启。 相反,您可以使用 Canonical livepatch 来修补 Linux 内核而无需重新启动。
- Canonical LivePatch 服务:无需重启即可在 Ubuntu 上修补 Linux 内核
启用自动安全更新
现在配置了自动安全更新,我们需要通过创建 20auto-upgrades
文件。
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
将以下两行复制并粘贴到文件中。
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";