使用 projectx/os 和 Raspberry Pi 搭建您自己的电子邮件服务器

这个开源项目通过低成本的服务器设置,帮助您保护数据隐私和所有权。
302 位读者喜欢这篇文章。
We don't make software for free, we make it for freedom

Opensource.com

有很多理由不想将存储数据和运行服务的任务交给第三方公司;隐私、所有权以及避免滥用“货币化”是其中一些主要原因。但对于大多数人来说,运行服务器的任务太耗时,并且需要太多的专业知识。相反,我们妥协了。我们把担忧放在一边,只是使用云托管的企业服务,以及随之而来的所有广告、数据挖掘和销售以及其他一切。

这个项目旨在消除这种妥协:projectx/os 使在家托管服务变得廉价,并且几乎像创建 Gmail 帐户一样容易。您只需要一个 35 美元的 Raspberry Pi 3 和一个基于 Debian 的操作系统镜像——以及非常少的技术知识。只有四个步骤

  1. 将 ZIP 文件解压缩到安全数字 (SD) 存储卡上。
  2. 使用您的 WiFi 密码编辑 SD 卡上的文本文件(如果您不使用有线以太网)。
  3. 将 SD 卡放入 Raspberry Pi 3 上的插槽中。
  4. 使用您的智能手机选择一个子域名,并在 Raspberry Pi 3 上安装“电子邮件服务器”应用程序。

服务器应用程序(例如电子邮件服务器)被分解为多个容器,这些容器只能以声明方式指定的方式与外部世界和彼此通信,使用细粒度的隔离来提高安全性。例如,传入的 SMTP、SpamAssassin(反垃圾邮件平台)、Dovecot(安全 IMAP 服务器)和 webmail 都是独立的容器,它们无法看到彼此的数据,因此,即使破坏单个守护程序也不会破坏其他守护程序。

此外,无状态容器(例如 SpamAssassin 和传入的 SMTP)可以在每封传入的电子邮件后被拆除和重建,因此即使有人发现错误并利用它,他们也无法访问之前的电子邮件或后续的电子邮件;他们只能访问他们自己的漏洞利用电子邮件。幸运的是,最容易受到攻击的服务也是最容易隔离和无状态运行的服务。

所有存储都使用 dm-crypt 进行加密。非公共服务(例如 Dovecot (IMAP) 或 webmail)监听由 ZeroTier One 提供的私有加密覆盖网络,因此只有您的设备(手机、笔记本电脑、平板电脑等)才能访问它们。

虽然电子邮件不是端到端加密的(除非您使用 PGP),但未加密的电子邮件永远不会跨越网络,也永远不会存储在磁盘上。它仅以明文形式存在于双方的私人邮件服务器上,这些服务器在他们的家中和客户端(手机、笔记本电脑等)上是安全的。

另一个优点是,使用密码(而不是指纹或其他生物识别技术)保护的个人设备以及您家中的设备,在美国比第三方数据中心(由一家想要避免停机或被视为不合作的公司拥有)的服务器上的数据获得更强大的 美国宪法第四修正案 法律保护。当然,如果您与 Gmail 用户发送电子邮件,例如,Google 仍然会获得一份副本。

展望未来

电子邮件是我使用 projectx/os 打包的第一个应用程序。想象一下一个应用商店,里面充满了服务器软件,为了易于安装和使用而打包起来。想要一个博客?添加一个 WordPress 应用程序!安全的 Dropbox 替代品?添加一个 Seafile 应用程序或一个 Syncthing 后端应用程序。IPFS 节点?Mastodon 实例?GitLab 服务器?各种家庭自动化/物联网后端服务?有大量的优秀开源服务器软件,它们像它们取代的专有云服务一样易于安装和使用。


Nolan Leake 将在 3 月 8 日至 11 日在帕萨迪纳举行的 南加州 Linux 展会 上展示 每个家庭的云:在家中托管服务器,无需任何系统管理员技能。要参加并获得 50% 的门票折扣,请使用促销代码 OSDC 注册

User profile image.
Nolan 从 1995 年开始成为 Linux 用户。Nolan 热爱系统软件、硬件和高功率火箭。在之前的工作中,他共同创立了 Cumulus Networks,该公司构建了一个基于 Debian 的数据中心交换机网络操作系统,为世界上一些最大的云提供支持。

8 条评论

在您的文章中,您提到了一个 ZIP 镜像文件可以下载并放到 SD 卡上。我在哪里可以找到这个文件?我查看了 projectx/os 的链接,但我找到的文件似乎是构建文件。您有这个 ZIP 文件的链接吗?虽然我对 Linux 很熟悉,但如果可以避免重新编译和重建镜像,那就太好了。

谢谢 :-)

我应该说得更清楚一点。我目前将该项目称为 alpha 级别,因此我们尚未构建镜像。

如果您(或任何其他阅读此文的人)愿意,当我们拥有接近 beta 质量并正在构建镜像时,我可以给您发送电子邮件。如果您有兴趣,请发送电子邮件至 prjx@sigbus.net

如果您决定自己构建镜像,请告诉我进展如何,以及我是否可以提供帮助。

- nolan

您好!您能否为第 4 步“使用您的智能手机选择一个子域名”添加更多详细信息?我需要在我的 Windows 手机上安装应用程序吗?我需要购买域名(GoDaddy??)吗?
谢谢,
Tom。

我应该更清楚地说明该项目的当前状态。目前,帐户创建是在源代码树中硬编码的,因为在星期六的 SCALEx16 演示之前,我没有时间为它设置用户界面。

第一个到位用户界面将是一个 Web UI,您可以从移动设备或桌面浏览器访问它。最终我计划构建真正的移动应用程序。

您可以购买域名并使用它,但是为了更便宜/更容易上手,您也可以使用我的某个域名的子域名。

回复 ,作者 Tom W (未验证)

这如何处理或绕过家庭动态 DNS 和 ISP 阻止常见 SMTP/邮件端口的情况?

动态 IP 地址 DNS 通过常用的 Dyn DNS 技术处理。目前我连接到第三方 DynDNS 服务,但我很快将实施我自己的服务,以减少您必须创建/管理的帐户数量。

大多数 ISP 阻止出站端口 25,但阻止入站端口 25 的相对较少,因此接收邮件很少成为问题。

对于出站邮件,目前如果端口被阻止,您就倒霉了,但我正在开发一个代理,它将保留从 SMTP 服务器到 SMTP 服务器的 TLS 加密。代理将看不到明文 SMTP 会话,只能看到 TLS 加密流。

对于少数 ISP 阻止入站端口 25 的用户,我认为我可以做一个类似的代理,它可以通过依赖 TLS 加密开始之前的“EHLO”字符串,为多个 SMTP 服务器使用单个 IP 地址进行多路分解。这也有助于那些被困在 CGNAT 后面的用户。

回复 ,作者 OliverS

Creative Commons 许可协议本作品根据 Creative Commons 署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.