![使用默认的无人值守升级配置运行“apt upgrade”是否多余(出于安全考虑)?](https://linux22.com/image/1198008/%E4%BD%BF%E7%94%A8%E9%BB%98%E8%AE%A4%E7%9A%84%E6%97%A0%E4%BA%BA%E5%80%BC%E5%AE%88%E5%8D%87%E7%BA%A7%E9%85%8D%E7%BD%AE%E8%BF%90%E8%A1%8C%E2%80%9Capt%20upgrade%E2%80%9D%E6%98%AF%E5%90%A6%E5%A4%9A%E4%BD%99%EF%BC%88%E5%87%BA%E4%BA%8E%E5%AE%89%E5%85%A8%E8%80%83%E8%99%91%EF%BC%89%EF%BC%9F.png)
我只是想确认我是否正确理解了-security
与-updates
档案之间的关系的含义(如在security.ubuntu.com 更新最终会合并到正常更新中吗?以及链接的Ubuntu Wiki 安全常见问题解答)。
我运行暴露在互联网上的 Ubuntu Server 实例,并且始终定期重新启动它们以确保所有安全更新生效。在此之前,我还运行sudo apt update
和sudo apt upgrade
。我实际上对错误修复不感兴趣;我一直在运行,只是apt upgrade
因为我认为这也是安全所必需的。
然而,上面的链接似乎表明,从安全角度来看,这实际上是多余的。所以我的主要问题是,我是否正确地使用默认的无人值守升级设置,我实际上并不需要手动运行apt upgrade
,并且定期重新启动进程或重新启动服务器就足以使我的系统软件保持修补?(我知道用户应用程序是另一个关注点,我还需要设置防火墙等;我只询问 Ubuntu 提供的软件安全补丁。)
顺便说一下,按照默认配置,我的意思是我的/etc/apt/apt.conf.d/50unattended-upgrades
顶部有这些行(删除了注释):
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESM:${distro_codename}-infra-security";
};
作为次要问题:关于此声明:
为“-security”构建的任何内容都是建立在“-updates”和“-security”之间最新版本的软件包之上的,因此“-security”中的任何内容都不会引入错误回归。
这是否意味着,即使我从不手动运行sudo apt upgrade
(据我所知,-updates
与默认的无人值守升级设置不同,手动运行是从存档中提取的),我的软件包实际上也会通过-updates
自动安装的-security
补丁程序获得错误修复?这也是我的问题标题的部分来源:对于在-updates
错误修复后收到安全补丁的软件包(诚然,并非所有软件包都是如此),这似乎意味着-updates
在有限的意义上是多余的,因为非安全错误修复仍然会通过安全更新进入系统。
答案1
最初的概念:
<release>
:发布当天所有包中的原始软件包。
<release>-security
:缓解 CVE 的修补软件包 [主要在主包中]。由 Ubuntu 安全团队上传
<release>-updates
:修复所有包中错误的修补软件包。由包括社区在内的各个团队上传机动车。
您可以看到,-security 与 -updates 有几个标准:
- 如果补丁是为了修复错误而不是缓解 CVE
- Ubuntu 存储库中的哪个部分
- 谁上传的
如果您坚持使用原版 Ubuntu 和主软件包,那么 99% 的 CVE 缓解措施将通过 -security 来自 Ubuntu 安全团队。而 99% 的非安全错误修复将通过 -updates 进行。
当您添加 Universe 和 Multiverse 软件包时,您将从不同来源获得 CVE 缓解措施。Universe 或 Multiverse 软件包中的 CVE 缓解措施很有可能由 MOTU 上传到 -updates。
当然,Snaps 通过不进行区分、不使用不同的口袋、不通过不同的团队来避免复杂性。