Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
有目的地构建:Debian 中的 Puppet
#1
在 Tor 项目中,我们一直在寻找机会为我们赖以生存的平台和工具的社区做出贡献。Puppet和Debian就是两个这样的项目,因此我们很高兴地宣布,在 Tor 项目的努力下,即将推出的 Debian 稳定版本(代号bookworm)将提供最新的 Puppet 软件套件!

一年前,TPA(又名 Tor 项目系统管理团队)开始计划将我们的近 100 台 Debian 机器升级到最新的稳定版本bullseye. 值得关注的一个问题是,不仅 Debian 中的 Puppet 软件包bullseye已经接近生命周期(版本 5.5),而且 PuppetDB 软件包现在也完全从发行版中消失了。此时,唯一可行的选择似乎是将我们的整个 Puppet 基础设施迁移到供应商提供的软件包。

分发包的优点

那么为什么不切换到上游 Puppetlabs 软件包并结束呢?本质上,因为直接从供应商部署软件不是我们轻易做出的决定,而且因为 Puppet 是我们基础设施的核心组件,所以这需要仔细考虑。

更喜欢通过分发包交付软件有几个原因。

- 提高安全性和可靠性

近年来软件供应链攻击数量不断增加的报道揭示了安全交付软件的难题。许多流行的解决方案(例如 npm 或 PyPI)都存在不易修复的漏洞,例如拼写错误和开发人员破坏,至少在不破坏它们流行的原因的情况下是这样。

Puppetlabs 不依赖第三方包管理器,而是维护自己的 APT 存储库来将包发送给最终用户。尽管这是一项改进,但在基于 Debian 的系统上配置额外的 APT 存储库可以有效地授予控制该存储库的人以最大权限部署软件和执行代码的能力。这是一个重要的潜在攻击面。

我们了解运行 APT 存储库的挑战,并且我们相信 Debian 项目有能力可靠且安全地维护自己的存储库。

即使假设交付渠道是安全的,对于用于构建二进制包的过程仍然存在担忧。Puppetlabs 不仅采用了一种有点奇特的内部构建系统EZBake,而且我们无法评估构建过程本身的完整性。

另一方面,Debian 软件包是在专门构建的基础设施上从源代码构建的(而不是重新分发上游二进制文件),并且在此过程中生成的日志可供检查。

Debian 项目与reproducible-builds.org合作,甚至为软件包提供了自动化的再现性测试,并鼓励维护人员修复阻碍任何人编译给定软件包并获得逐字节相同二进制文件的能力的问题。我们上传到 Debian 的puppet-agent和 puppetserver软件包目前都是可复制的。

- 以用户为中心的政策

另一个问题是 Puppetlabs 软件包附带了默认情况下启用的Analytics。尽管存在选择退出配置参数,但此类功能必然会与用户的隐私权发生冲突。

这也是 Debian 的亮点之一:该项目的社会契约 保证用户的利益始终放在第一位。这指导 Debian解决包资源和运行时代码中的隐私泄漏问题的既定实践。

因此,Debian 的puppetserver软件包没有实现遥测,并且默认情况下禁用定期“打电话回家”的更新检查。

- 更大的系统集成

Puppetlabs 包将其运行时库和代码部署在该 /opt/puppetlabs目录下。除了 Puppet 应用程序之外,还包括 Ruby、JRuby 和 Clojure 解释器的副本,以及数十个第三方 Clojure 和 Java 库。

这种代码重复是最终由系统管理员承担的负担,因为他们负责确保其基础设施运行最新且不存在安全问题的代码。Debian 在这方面拥有良好的记录,我们相信 Ruby 解释器中的安全问题会得到迅速解决。

此外,Debian 稳定发行版的安全更新以尽可能减少升级足迹的方式进行设计。Puppetlabs 不为其软件包提供此类保证,因此在某些时候,解决安全问题可能需要进行破坏性升级。

- 持续的努力

由于维基媒体基金会的资助,在 Debian 中打包新的 PuppetDB 和 Puppet Server Clojure依赖项的工作已经取得进展。所以感觉完成这项工作是指日可待的。

因此,在过去的 6 个月里,除了我们的常规 TPA 职责之外,我们还一直致力于让 Debian 中的 Puppet 为即将bookworm发布的 Debian 12 稳定版本做好准备。我们从 Puppet 代理包开始,然后转向 PuppetDB,最后是 Puppet Server,一路升级或添加了数十个依赖包,包括许多 Clojure 和 Ruby 库、JRuby 和其他 Puppet组件,例如Facter、Hiera和Trocla。

我们与Debian Puppet Team合作,对 Debian bug 跟踪器中报告的 bug 进行分类和修复,并为Debian CI实施新的或改进的构建和集成测试。我们还与 Puppetlabs 合作,合并了上游的多个补丁,其中包括一个用于 提高 Puppet 代理构建的可重复性的补丁。

展望未来

现在,这项工作已经过去,我们可以期待将我们的 Puppet 基础设施带入一个更加现代化的时代。处理遗留工具和技术债务是 Tor 项目持续面临的挑战,毫无疑问在许多其他组织中也是如此,因此我们非常高兴分享这一成就的消息。还计划将我们的各种 Tor 和 Onion 部署迁移到社区Tor Puppet 模块。

我们还知道,许多注重隐私的个人和机构(例如Tails)也依赖在 Debian 中打包的 Puppet,因此我们很高兴这项工作将直接使他们受益。

Tor上的Puppet 怎么样?

对于那些希望了解如何使用 Puppet over Tor 洋葱服务的人来说,您会喜欢Immerda.ch技术集体的好朋友们提供的 本教程。这不是我们实现的,因为项目管理的机器列表是公开的,但对于任何希望为其 Puppet 服务器节点通信添加隐私层的人来说应该很有用,特别是当这些通信通过互联网传输时。
默认联系方式为telegram,需要微信号请留言。
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  obfs4 网桥设置:debian netflix 0 622 08-04-2023, 02:58 PM
Last Post: netflix
  为什么以及如何在 Debian 中启用 Tor 软件包存储库? netflix 0 366 08-04-2023, 01:43 PM
Last Post: netflix
  Debian 和 Tor 服务可作为洋葱服务使用 netflix 0 438 08-04-2023, 12:57 PM
Last Post: netflix

Forum Jump:


Users browsing this thread: 1 Guest(s)