Ubuntu:仅安装经过签名和验证的 deb 包

Ubuntu:仅安装经过签名和验证的 deb 包

最终目标是:为一系列服务器安全地安装给定的包。

我们的服务器在不同的云数据中心运行。我们将应用程序以deb文件形式安装在这些服务器上。目前,我们通过 ansible 脚本将更新以deb文件形式上传。这很慢,因为“主”节点需要更新所有机器。

sudo apt update <package>我们认为如果我们能够为每个节点发布信息的话会更好。

但安全性如何? repo 服务器需要连接到互联网。

因此,我们需要确保软件包安装安全。 deb文件可以签名,但据我所知,它只dpkg-verify验证签名是否正确。因此,恶意但正确签名的软件包将通过验证检查。

我们也可以

  • 从 https repo 服务器安装
  • 仅安装签名的软件包仅使用特定密钥签名deb仅适用于我们的应用程序)

只要不损害安全性,其他方法也是可以接受的。

答案1

如果您使用apt install或 ansibleapt模块安装软件包,则存储库元数据必须由系统已知的密钥签名,例如 Ubuntu 发行版签名密钥,或您使用apt_keyansible 模块明确添加的任何密钥。任何由未知密钥签名或未签名的内容都将被拒绝。

因此,您只需创建一个 apt 存储库来保存您的软件包,使用您自己的 GPG 密钥签署其 Release 文件,然后将该公钥分发到您的服务器。

相关内容