如何在 Ubuntu 16.04 上保护 Roundcube

介绍

由于电子邮件是当今通信的重要组成部分,所以要记住电子邮件管道的所有部分的安全性很重要。 Roundcube是一个具有强大的安全功能和从其插件存储中广泛的自定义选项的网络邮件客户端。

如果您在 Roundcube 的初始设置中使用 SSL 来配置 IMAPSTMP 设置,那么 Roundcube 与您的电子邮件服务器的连接已经安全。

在本教程中,您将通过:

  • 使用 Let's Encrypt 将 SSL 添加到 Apache.
  • 使用 Roundcube 插件向 Roundcube 帐户添加 两个因素身份验证
  • 使用 GPG 以使用 Roundcube 插件签名和加密电子邮件。

前提条件

要遵循本教程,您将需要:

  • 一个 Ubuntu 16.04 服务器与 Roundcube 安装,通过遵循此 Roundcube on Ubuntu 16.04 教程。完成此前提教程后,您将有一个完全功能的 - 但部分不安全 - 网页电子邮件客户端。
  • 安装了 TOTP 兼容的应用程序的智能手机或平板电脑,如 Google Authenticator (iOS, Android)。

您可以了解更多有关多因素身份验证的信息,请参阅 How To Set Up Multi-Factor Authentication for SSH on Ubuntu 16.04

步骤 1 – 添加 SSL 以安全访问 Roundcube

现在,如果您使用您的浏览器中的服务器域名访问 Roundcube 安装,您将通过 HTTP 连接而不是 HTTPS. 为了完全保护整个通信链从您的浏览器到您的电子邮件服务器,此连接到 Roundcube 应该使用 SSL/TLS。

一个简单的方法是使用免费的SSL证书从Let's Encrypt。Roundcube是设置在LAMP堆栈的顶部,所以你可以遵循 How To Secure Apache with Let's Encrypt on Ubuntu 16.04 有关设置这一点的详细介绍。

首先,安装 Let’s Encrypt 客户端。

1sudo add-apt-repository ppa:certbot/certbot
2sudo apt-get update
3sudo apt-get install python-certbot-apache

然后获得您的SSL证书,并验证自动更新是否有效. 用您的域代替example.com,并为任何子域或副域使用额外的d旗帜。

1sudo certbot --apache -d example.com
2sudo certbot renew --dry-run

在交互式配置过程中(输入sudo certbot -apache -d example.com后),当被问到您是否想要一个基本或安全的设置时,请确保选择 secure

您现在有从您的计算机到您的 Roundcube 安装的安全连接,这反过来会使您的 IMAP/SMTP 电子邮件服务器的安全连接。

下一步使用插件通过添加两因素身份验证来加强Roundcube帐户的安全性。

步骤 2 – 安装两个因素身份验证插件

虽然Roundcube项目正在为插件开发GUI功能,但目前,所有插件都必须通过命令行安装。

  • 手动安装,这是第一个可用的方法。这涉及下载插件(通常是.zip 文件或在 Git 存储库中),然后通过修改 Roundcube 配置文件 /var/www/roundcube/config/config.inc.ph
  • 半自动安装,这是更现代的方法。

一些插件建议一种安装方法而不是另一种 2FA插件与这两种方法一起工作,没有建议,所以在这里,我们会因为其易于使用而使用半自动安装。

Composer 是由存储在 $RC_HOME/composer.json 中存储的 composer.json 文件控制的。 通过创建该配置文件来启用 Composer. Roundcube 附带了一个名为 `composer.json-dist’ 的基本配置文件,所以我们将从一个副本开始。

1cd /var/www/roundcube
2sudo cp composer.json-dist composer.json

有几个核心插件已经在这个默认文件中指定,所以下一步,运行 Composer 来安装这些并完成其初始配置。

1sudo composer install

接下来,要添加2FA插件,我们需要将其添加到composer.json文件中。

一个插件行的语法是组织/plugin_name:version_or_branch。所以对于2FA插件,你要添加的行是alexandregz/twofactor_gauthenticator:dev-master

打开composer.json文件以使用nano或您最喜欢的文本编辑器进行编辑。

1sudo nano /var/www/roundcube/composer.json

寻找需要的区块,该区块的开头是要求: {. 弯曲的支架({}`)之间的每一个行都是一个插件行. 该区块中的所有插件行都应该以一个字符串结束,除了最后一个输入。

将2FA插件行添加到区块的尽头,并确保在前一行中添加一个号。

 1[label /var/www/roundcube/composer.json]
 2. . .
 3"require": {
 4    "php": ">=5.4.0",
 5    "pear/pear-core-minimal": "~1.10.1",
 6    "pear/net_socket": "~1.2.1",
 7    "pear/auth_sasl": "~1.1.0",
 8    "pear/net_idna2": "~0.2.0",
 9    "pear/mail_mime": "~1.10.0",
10    "pear/net_smtp": "~1.7.1",
11    "pear/crypt_gpg": "~1.6.2",
12    "pear/net_sieve": "~1.4.0",
13    "roundcube/plugin-installer": "~0.1.6",
14    "endroid/qr-code": "~1.6.5",
15    "alexandregz/twofactor_gauthenticator": "dev-master"
16},
17. . .

保存并关闭文件,然后运行告诉 Composer更新其包信息以安装新插件。

1sudo composer update

当 Composer 询问您是否要启用插件时,请输入Y以继续。一旦它被录制,请退出 Roundcube 并重新登录以启用插件。

现在插件已安装,我们需要使用它来通过Roundcube的GUI在我们的帐户上设置2FA。

步骤 3 – 在您的帐户中启用 2FA

要开始,请使用浏览器中的服务器 IP 或域名登录 Roundcube. 在右角点击设置按钮,然后在左侧导航中点击2 Factor Authentication

Roundcube 2-Factor Authentication settings page

在 2 个因素身份验证选项部分中,单击 ** 启用** 检查框,然后单击 ** 创建秘密**。

接下来,点击显示恢复代码并将显示的四个恢复代码存储在一个安全的地方,如果你无法生成代币(例如,如果你丢失了手机),你将使用这些代码登录。

最后,点击保存按钮。

这允许2FA,但现在你需要将秘密添加到你的TOTP兼容的应用程序,如Google Authenticator。点击显示QR代码**按钮,在你保存秘密后出现,并用你的应用程序扫描代码。

Roundcube 2-Factor Authentication QR code

最后,一旦您的应用程序生成代码,请确保它通过在 检查代码按钮旁边的字段中输入代码工作,然后点击该按钮。

确保您的数字通信的最后一步是加密您通过电子邮件发送的实际消息,我们将在下一步使用名为Enigma的插件来完成此操作。

步骤 4 – 使用 GPG 启用加密电子邮件

Enigma 插件增加了对签名、加密电子邮件的查看和发送的支持。如果您遵循了 之前的 Roundcube 安装教程,那么在安装时,Enigma 插件已经启用了。

要开始,我们需要启用一些默认加密选项。登录到Roundcube,然后点击右上角的设置按钮。从那里,点击偏好按钮,然后点击加密按下部分列表。

Set Encryption Settings

主要选项列表中有7个加密设置,允许所有7个将提供最大的安全性,但这在可用性方面带来了一些妥协。

以下是 **主要选项 **菜单中的每个选项,以及我们对每个选项的建议(必要、推荐或可选),但您应该选择适合您的使用情况的设置:

  • ** 可用信件加密并签名**: 必要吗? 这允许您签名和加密信件 。
  • ** 可用信件签名验证** 建议。 如果有人给你发了一封签名的电子邮件,这个设置使得圆立方体试图通过他们的电子邮件地址和密钥验证发送者.
  • ** 可用信件解密** : 建议。 如果有人给你发送了加密的电子邮件,这个设置会让 Roundcube 使用您的 GPG 密钥来解密它.
  • ** 默认签名所有信件** : 可选的 标出您发送的每一封邮件, 即使您发送的人没有GPG支持 。 如果他们不这样做,他们会看到一大堆字符 在电子邮件的底部。 您也可以在创建电子邮件时切换此选项 。
  • ** 默认输入所有信件**:可选. 这个加密了您发送的每一封邮件, 假设您有您正在发邮件的人的公用钥匙 。 您也可以在创建电子邮件时切换此选项 。
  • ** 默认情况下将我的公用 PGP 密钥抓取 **:可选. 这将您的 GPG 公用密钥添加为您发送的每封邮件的附件 。 如果收件人有 GPG 支持, 他们的电子邮件客户端将会看到密钥并将其安装到他们的密钥环中, 这样他们就可以发送加密的电子邮件 。
  • ** 为** 保留私人密钥密码,设置了 Roundcube 在加密或解密电子邮件时所输入的密码句,所以你不必每次输入它. (英语)

一旦您选择了设置,请单击 ** 保存.** 然后,在设置列中单击 ** 身份。

Update Identity

默认设置是与您注册的电子邮件地址单个身份。点击电子邮件并填写显示名称**字段. 您可以选择填写其他字段,如组织**

配置的最后一部分是创建一个密钥,在左侧导航中点击 **PGP Keys。

如果您已经拥有一个 GPG 密钥,您可以点击右上角的 ** 导入** 并导入您的秘密密密钥,然后再点击它来导入您的公共密钥。

如果您没有 GPG 密钥,或者想要创建一个新的,请点击 PGP 密钥列底部的 plus (+) 按钮. 从那里,选择您想要创建密钥的身份,并选择密钥强度(密钥大小越大,打破加密越困难,但执行加密越慢)。

<$>[警告] 警告:在使用Chrome时,Roundcube中存在一个阻止创建新密钥的错误。如果您通常使用Chrome,请暂时切换到另一个浏览器来创建新密钥。

当您收到一个经过验证的签名电子邮件时,Roundcube 会显示一张绿色 ** 经过验证的签名从** 通知的顶部:

Signed Email

当您接收和解密加密电子邮件时,Roundcube 会显示一个 消息解密通知:

Decrypted Email

要在邮件中使用 GPG 加密,请点击左上角的 Mail 图标,然后点击 Compose。 点击 Encryption 图标以查看可用的加密选项。 这些取决于您在加密设置中选择了什么。 如果您遵循我们的建议,您应该看到 数字签署此邮件加密此邮件附加我的公共密钥

结论

通过添加SSL、双重身份验证和GPG加密,您的电子邮件管道更安全,从这里开始,您可以通过探索Roundcube Plugin Repository(https://plugins.roundcube.net/explore/)来继续扩展和定制Roundcube。

Published At
Categories with 技术
comments powered by Disqus