使用 Roundcube 的网页邮件
此功能完全可选。如果您想尽快完成设置,可以跳过此页面,稍后再回来。您仍然可以使用 Thunderbird 等邮件客户端访问您的邮件服务器。高级用户可能仍然希望使用 Thunderbird 等邮件客户端。但如今大多数用户似乎更喜欢在网页浏览器中阅读电子邮件。让我们为此安装一个网络应用程序:Roundcube。
安装
首先安装软件包:sudo apt install -y roundcube roundcube-plugins roundcube-plugins-extra roundcube-mysql
如果您使用的是 PostgreSQL,请将 roundcube-mysql 替换为 roundcube-pgsql。Roundcube 将用户设置存储在数据库中。因此,系统会要求您设置数据库访问权限。选择“是”。
当系统提示输入密码时,只需按 ENTER 键即可。配置 Apache
您还记得在本指南前面我问过您想如何命名您的邮件服务器吗?您是想为所有域使用一个通用名称,例如“webmail.example.org”?还是更喜欢为每个域使用不同的主机名,例如“webmail.domain1.com”和“webmail.domain2.com”?如果您想使用多个主机名,则需要为每个域创建一个虚拟主机配置。以下说明仅针对一个通用主机名。要让 Apache 提供 Roundcube 应用程序,您需要编辑 /etc/apache2/sites-available/webmail.example.org-https.conf 文件。我建议您将 DocumentRoot 行更改为:
DocumentRoot /var/lib/roundcube/public_html
所有 URL 都相对于该目录。因此,如果您访问 https://webmail.example.com/,则会在该目录中查找文件。此外,在同一个 VirtualHost 部分中添加以下行,以添加一些预配置的安全设置:
Include /etc/roundcube/apache.conf
与往常一样,配置更改后需要重启 Apache:sudo systemctl restart apache2
检查 Apache 是否正常运行:systemctl status apache2
如果出现问题,请运行“sudo apache2ctl configtest”查找原因。限制访问仅限本地主机
Roundcube 的主配置文件位于 /etc/roundcube/config.inc.php。您可以随意修改此文件。幸运的是,现在基本设置已经符合我们的需求。但是,您需要更改以下两个设置:$config['imap_host'] = 'tls://mail.example.org:143';
$config['smtp_host'] = 'tls://mail.example.org:587';
$config['default_host'] = ‘’;
$config['smtp_server'] = 'localhost';
例如,我将它们更改为:
$config[‘default_host’] = ‘localhost’;
$config[‘smtp_server’] = “tls://webmail.umd.me.uk”;
重启 apache2 服务器。现在,当您的用户在浏览器中输入 https://webmail.example.org/ 时,应该会看到 Roundcube 登录表单。
请记住,我们使用电子邮件地址作为用户的帐户名。因此,登录时请使用电子邮件地址作为用户名。例如,“john@example.org” 和密码 “summersun”。插件
Roundcube 附带各种插件,您可以提供给用户使用。我建议至少启用以下两个插件:- password: 允许用户更改访问密码。
- managesieve: 允许用户管理应用于收件的规则。例如,他们可以自动将邮件移动到特定文件夹。
$config['plugins'] = array(
'managesieve',
'password'
);
密码插件
插件的配置位于 /etc/roundcube/plugins 目录下的文件中。让我们从密码插件开始。编辑 /etc/roundcube/plugins/password/config.inc.php 文件。哦,这个文件看起来很空。但它引用了位于 /usr/share/roundcube/plugins/password/config.inc.php.dist 的示例文件。有很多不同的方法可以让用户更改密码。由于我们将这些信息存储在 SQL 数据库中,因此我们需要配置这部分内容。
删除 config.inc.php 文件中 $config 的空定义行。让我们逐一查看所需的设置:- $config['password_driver'] = 'sql';
简单。使用 SQL 作为后端。 - $config['password_minimum_length'] = 12;
不允许密码长度小于 12 个字符。我认为长密码比包含特殊字符的短密码更安全。您甚至可以选择更大的最小长度。 - $config['password_force_save'] = true;
即使密码没有更改,此设置也会覆盖数据库中的密码。即使用户选择保留旧密码,它也可以通过使用更好的算法重新编码密码哈希值来帮助我们提高密码强度。 - $config['password_algorithm'] = 'blowfish-crypt';
用于编码密码的加密算法。此算法被认为非常安全,并且 Dovecot 支持它。 - $config['password_algorithm_prefix'] = '{CRYPT}';
在每个密码前添加此字符串,以便 Dovecot 知道我们如何加密密码。 - $config['password_db_dsn'] = 'mysql://mailadmin:E2zhrYD1156RtbPRgWLfU4uC0uCQ0g@localhost/mailserver';
本地数据库的连接信息。如果您使用的是 PostgreSQL,请将 `mysql` 替换为 `pgsql`。请在此处使用您自己的 mailadmin 数据库用户的密码!我们不能使用受限制的 mailserver 用户,因为如果用户更改密码,我们需要写入数据库。 - $config['password_query'] = "UPDATE virtual_users SET password=%P WHERE email=%u";
用于将新密码哈希值写入数据库的 SQL 查询。%P 是新密码哈希值的占位符。%u 是已登录用户,方便匹配电子邮件地址。
sudo chown root:www-data /etc/roundcube/plugins/password/config.inc.php
sudo chmod u=rw,g=r,o= /etc/roundcube/plugins/password/config.inc.php
sieve 插件
Sieve 是一种简单的编程语言,用于编写服务器端规则。Dovecot 会在每次收到新邮件时执行这些规则。存在适用于所有邮件的全局规则。当然,每个用户/邮箱也可以拥有自己的规则。为了管理 Sieve 规则,Dovecot 提供了您之前启用的 managesieve 接口。因此,我们只需要告诉 Roundcube 如何访问它。
Roundcube 的 managesieve 插件的配置文件位于 /etc/roundcube/plugins/managesieve/config.inc.php。这次只需要一个设置即可告诉 Roundcube 要连接哪个服务器:$config['managesieve_host'] = 'localhost';
Sieve 规则以特殊的语法存储在服务器上。这是一个示例,它会将所有主题包含“test”的收件箱邮件移动到 test 文件夹:
require ["fileinto"];
if header :contains "subject" "test"
{
fileinto "INBOX/test";
}
不过,您无需学习这种语法。Roundcube 的 Sieve 规则编辑器更加用户友好。
尝试在 Roundcube 中为 john@example.org 添加一条 Sieve 规则。该功能位于“设置/过滤器”中。您可以在 /var/vmail/example.org/john/sieve/roundcube.sieve 找到机器可读的 Sieve 代码。
规则编辑器界面如下所示:
测试电子邮件投递
到目前为止,您已经花费了大量时间进行理论学习和配置。您是否担心您所做的一切是否真的能够构建一个正常工作的邮件服务器?最后,验证一下您目前所做的一切是否都按预期工作。您可以运行以下命令获取所有文件和目录的列表:
sudo find /var/vmail
您可能会看到类似以下内容:
/var/vmail/umd.me.uk/sjin1239
/var/vmail/umd.me.uk/sjin1239/Maildir
/var/vmail/umd.me.uk/sjin1239/Maildir/cur
/var/vmail/umd.me.uk/sjin1239/Maildir/tmp
/var/vmail/umd.me.uk/sjin1239/Maildir/dovecot.list.index.log
/var/vmail/umd.me.uk/sjin1239/Maildir/dovecot-uidvalidity.6869d39b
/var/vmail/umd.me.uk/sjin1239/Maildir/dovecot.index.log
/var/vmail/umd.me.uk/sjin1239/Maildir/new
/var/vmail/umd.me.uk/sjin1239/Maildir/dovecot-uidlist
/var/vmail/umd.me.uk/sjin1239/Maildir/dovecot-uidvalidity
基本上,您看到的结构是 /var/vmail/DOMAIN/USER/Maildir/…
每个 IMAP 邮件文件夹都有三个子目录:- new – 此处的每个文件都是存储在此邮件文件夹中但尚未读取的电子邮件
- cur – 与上面类似,但用于已读电子邮件
- tmp – 用于邮件服务器的临时文件
发送测试电子邮件
现在是时候向系统中发送一封新的电子邮件了。我最喜欢的邮件测试工具是您之前安装的 swaks。在原始终端中运行以下命令:swaks --to sjin1239@umd.me.uk --server localhost
如果一切正常,Postfix 已接受该电子邮件并将其转发给 Dovecot,Dovecot 随后将该电子邮件写入 sjin1239 的邮件目录。
再看一下:sudo find /var/vmail
Dovecot 现在已经为 sjin1239 创建了目录结构,并创建了一个新文件:/var/vmail/
[…]
/var/vmail/umd.me.uk/sjin1239/Maildir/new/1762718252.M298981P723801.webmail.umd.me.uk,S=731,W=751
[…]
您还可以使用一个更方便的工具来访问 Maildir 目录,这对于邮件服务器管理员来说非常实用: “mutt”。
sudo mutt -f /var/vmail/umd.me.uk/sjin1239/Maildir
现在您看到的是 sjin1239 的邮箱内容:
使用 mutt 是在登录邮件服务器时检查邮箱的一种便捷方式。
再次重申收到电子邮件时的流程:
- Postfix 接收电子邮件(本例中使用“swaks”命令,但通常是通过网络使用 SMTP 协议从其他服务器接收)
- Postfix 通过 LMTP 协议与 Dovecot 通信并传递电子邮件
- Dovecot 将电子邮件文件写入磁盘
通过 IMAP 访问电子邮件(Roundcube)
现在电子邮件已送达,您可以使用 IMAP 协议与 Dovecot 通信再次检索您的电子邮件。如果您仍然通过 Roundcube 界面登录,只需刷新页面即可看到新邮件。
使用 DKIM 防止欺骗
电子邮件发件人欺骗是指假装控制他人的电子邮件地址。这是 网络钓鱼 中常见的问题。诈骗分子经常使用类似 something@paypal.com 这样的发件人地址发送电子邮件,希望收件人上当受骗并信任他们。事实上,SMTP 并不关心你发送邮件的发件人地址。许多邮件服务提供商强制要求你仅使用自己的电子邮件地址发送电子邮件,但也有一些服务提供商没有这项规定。而垃圾邮件发送者和诈骗分子显然对此毫不在意。十多年前,一种新的方法被提出,它在电子邮件的头部添加了加密签名,收件人可以通过检查该签名来验证发件人的身份和邮件的完整性。该签名使用只有发送邮件服务器才拥有的私钥创建。收件人可以通过从发送域的 DNS 区域下载相应的公钥并运行签名检查来验证签名。这与 PGP 或 S/MIME 签名非常相似——只是作用于域级别。您的邮件服务器可以自动对所有外发邮件进行签名。如今使用的方法称为“域密钥识别邮件”(Domain Keys Identified Mail),简称 DKIM。
举个例子。我刚刚从 umd.edu 向我自己的邮件服务器上的个人邮箱发送了一封邮件。UMD 使用 Google DKIM 签名,因此这封邮件从 UMD 的邮件服务器获得了以下额外的邮件头:
DKIM 签名:v=1;a=rsa-sha256;c=relaxed/relaxed;
d=umd.edu; s=google; t=1769009380; x=1769614180; darn=umd.me.uk;
h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
:date:message-id:reply-to;
bh=XRSk1gOjGr6A0Uwo/26eRJlDhIZB0ADlk0G2eiYneK4=;
b=fH633CdWduxnD3BTeYMr161bOUmpgSUa8JyG+PKsRY85GE+…
我需要马里兰大学的 DKIM 公钥来验证该签名。它以 TXT 记录的形式存储在他们的 DNS 区域中,记录名为“google._domainkey.umd.edu”。“google”是密钥选择器,在签名中以“s=google”的形式出现。您可以使用任意数量的密钥,只要您使用匹配的私钥创建签名即可。“_domainkey”部分是 DKIM 密钥的标准子域名。现在让我们获取该 TXT 记录:
dig +short google._domainkey.umd.edu txt
这将返回……k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuc26OdDu/pFkYHU...
这就是我可以用来验证签名的公钥。稍后会介绍如何使用“opendkim-testmsg”工具进行自动检查。我可以运行该工具,并将包括邮件头和正文在内的整封邮件粘贴进去。如果它没有报错,则说明签名正确。
听起来不错?那我们也把它应用到您的电子邮件域名上吧。创建密钥对
如上所述,您需要一个私钥供邮件服务器使用,以及一个公钥添加到您的 DNS 区域。Rspamd 已经可以创建 DKIM 密钥。不过,您可能还需要安装“dig”工具,它允许您查询 DNS 记录。它的工作方式类似于“nslookup”,但功能更强大。
sudo apt install dnsutils
首先,安装 Rspamd。可选步骤:安装 Redis 作为 Rspamd 的存储后端,用于存储其关于垃圾邮件和非垃圾邮件的训练数据。sudo apt install -y rspamd redis-server
Rspamd 的内置 DKIM 签名模块默认启用。
如果您使用特定的命名规则将密钥文件放入 /var/lib/rspamd/dkim/ 目录下,它将自动识别。创建该目录以存储密钥:sudo mkdir /var/lib/rspamd/dkim
sudo chown _rspamd:_rspamd /var/lib/rspamd/dkim
rspamadm dkim_keygen -d example.org -s 20250626
我使用的选择器是 20250626,因为那是我创建它的日期。不过这并不重要——你可以随意命名。“dkim”是默认选择器,如果你不使用映射的话。但你可能将来会需要替换密钥,所以我建议你使用映射,如下文所述。它能提供更大的灵活性,而且操作起来也很简单。
输出结果如下所示:
-----私钥开始-----
MIICdwIBADANBgkqhkiG9w0BAQE…
-----私钥结束-----
20250626._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZ8..." ) ;
第一部分是私钥,包括“…BEGIN…”和“…END…”两行。此密钥必须保密,且仅供您的邮件服务器用于签署外发邮件。
第二部分是需要添加到域名DNS区域的DNS记录。我们先从这部分开始。
添加 DNS 记录
在开始对电子邮件进行签名之前,您必须确保公钥已正确添加到您用于发送电子邮件的域名的 DNS 区域中。否则,收件人将无法验证签名,并可能错误地认为该电子邮件是伪造的。请查看TXT记录。它看起来会像这样:
**20250626**._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxenHupkYLPmFMbJjV9dQI..." ) ;
如果您运行自己的 DNS 服务器,则可以复制整个文件并将其放入您的 DNS 区域中。但是,如果您的互联网服务提供商仅提供网页界面来管理您的域名,则需要在您的域名中创建一个主机名为“20250626._domainkey”的新 TXT 记录,并将双引号内的字符串作为值放入其中。例如:**20250626**._domainkey ➠"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCc7EX3nl1VNCi6......"
请注意,您获取的字符串包含两个字符串“…” + “…”,必须将它们合并为一个才能生效。(带引号的语法适用于 DNS 区域文件,如果您运行自己的名称服务器。)根据您的 ISP,新记录可能需要一段时间才能在互联网上生效。您可以使用 dig 命令进行验证:
dig +trace **20250626**._domainkey.example.org txt
如果您收到如下所示的 TXT 条目,则表示您已准备好在 Rspamd 中为该域启用 DKIM 签名:TXT "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxen..." "" 来自服务器 foo.bar,耗时 24 毫秒。
在 Rspamd 中启用 DKIM 映射
如上所述,建议使用 DKIM映射。这并不复杂,只是一个简单的文件,用于定义您希望为特定域名使用的 DKIM 选择器。除非在映射中另有指定,否则 Rspamd 会默认您的选择器始终为“dkim”。如果您使用了“dkim”,那么当您以后想要更换密钥时,可能会遇到问题。DNS 系统响应速度较慢,传播新的 DKIM 公钥可能需要一天的时间。在 DNS 记录尚未在全球范围内生效期间,使用新密钥签名的电子邮件可能会被拒绝。
使用映射很简单。首先,我们需要修改dkim_signing 模块的selector_map设置。为此,请在 /etc/rspamd/local.d/dkim_signing.conf 中创建一个新文件,并使其仅包含以下两行:
path = "/var/lib/rspamd/dkim/$domain.$selector.key";
selector_map = "/etc/rspamd/dkim_selectors.map";
配置非常简单明了。Rspamd 会在dkim_selectors.map文件中查找域名到密钥的映射关系。创建该文件并使其包含以下行:
example.org 20250626
就是这样。Rspamd 现在知道,每当它看到来自 anyone@example.org 的外发邮件时,它都会从 /var/lib/rspamd/dkim/example.org.20250626.key 获取 DKIM 私钥,并使用它来对邮件进行签名。
重新加载配置:
sudo systemctl restart rspamd
将域密钥添加到 Rspamd
将之前创建的私钥(包含“…BEGIN PRIVATE KEY…”和“…END PRIVATE KEY…”的多行字符串)放入 Rspamd 将要查找的文件中:
/var/lib/rspamd/dkim/example.org.20250626.key
文件名必须像上面那样,格式为 DOMAIN + 点 + 选择器 + “.key”。如果文件名不正确,rspamd.log 文件中会出现类似“lua_dkim_sign_handler: 无法加载 dkim 密钥 /var/lib/rspamd/dkim/example.org.dkim.key”的错误。
确保只有 _rspamd 可以读取它:sudo chown _rspamd /var/lib/rspamd/dkim/umd.me.uk.20250626.key
sudo chmod u=r,go= /var/lib/rspamd/dkim/umd.me.uk.20250626.key
让 Postfix 使用 Rspamd
让我们告诉 Postfix 将所有收到的邮件都通过 Rspamd 处理。在 shell 中运行以下命令:sudo postconf smtpd_milters=inet:127.0.0.1:11332
sudo postconf non_smtpd_milters=inet:127.0.0.1:11332
sudo postconf milter_mail_macros="i {mail_addr} {client_addr} {client_name} {auth_authen}"
发送测试邮件
如果您在其他地方还有另一个电子邮件帐户,那么您可以通过邮件服务器向该帐户发送一封测试邮件。如果您查看收到的邮件,它现在应该会有一个类似这样的 DKIM 标头:
DKIM 签名:v=1;a=rsa-sha256;c=relaxed/relaxed;d=umd.me.uk;s=20260121;
t=1769108454;
h=发件人:发件人:回复到:主题:主题:日期:日期:信息 ID:信息 ID:
收件人:收件人:抄送:MIME 版本:MIME 版本:内容类型:内容类型:
内容传输编码:内容传输编码:
回复:回复:引用:引用;
bh=Cx91GHgjW61hMAScYshCO3hCt4i+N5TQeiR3v/060u8=;
b=mbYVHhxxYDWSHI7bKo5atScvpV7aei7eJ...
要验证签名,请安装 opendkim-tools 软件包,复制整个测试电子邮件(包括标头和正文),在 shell 中运行 opendkim-testmsg 并粘贴电子邮件(以 CTRL-D 结束)。
如果没有输出,则表示签名验证成功。但如果您收到类似“opendkim-testmsg: dkim_eom(): 无法验证”的信息,请仔细检查您的 DNS 记录。
您还可以使用 dkimvalidator.com、isnotspam.com 或 mail-tester.com 等网站服务来验证您的签名是否有效。SPF 和 DMARC
添加 DKIM 签名是很好的第一步。但您还可以更进一步,告知接收邮件服务器,任何来自您域名但未添加有效签名或来自您未运营服务器的邮件都不应被接收。有两种方法可以实现这一点:较早的 SPF 和较新的 DMARC。它们都涉及创建一个预定义格式的机器可读字符串,并将其添加到您的 DNS 区域中。接收邮件服务器可以检查这些记录,并根据您(作为域名所有者)的建议,在邮件不符合要求时采取相应措施。服务器可以选择接受邮件、将其标记为垃圾邮件或直接拒绝。我们来看一个典型的SPF记录:
"v=spf1 ip4:157.97.194.11 mx ~all"
它的含义是:- 这是 SPF 标准版本 1 的记录(目前没有其他版本)。
- 请允许接收来自 IP 地址 157.97.194.11 的电子邮件
- 或者,接受来自我们域名 MX 记录中提到的任何服务器的电子邮件(即接收您域名电子邮件的服务器)。
- 任何其他电子邮件都应视为可疑——它可能是垃圾邮件,甚至更糟。
有些 网站 可以帮助您创建 SPF 字符串并将其添加到您的 DNS 域名中。但请记住:
- 您应该了解哪些邮件服务器会以您的域名发送电子邮件。不要忘记将以您的名义发送邮件的邮件列表或新闻通讯服务也包括在内。
- 首先使用“~all”将不符合标准的邮件标记为垃圾邮件。如果一切顺利,几周后可以根据需要切换到“-all”。
- 请注意,从您的域名转发电子邮件可能会破坏 SPF 记录,因为邮件会突然显示来自未经授权的 IP 地址。这在邮件列表中是一个常见问题,目前正通过从邮件列表服务商的域名重新发送电子邮件来逐步解决。
"v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"
迁移邮件服务器和 Roundcube 数据库
您需要复制包含电子邮件域和帐户控制数据的数据库。以 root 或 sudo 帐户登录到旧的 (Bullseye) 服务器,并备份邮件服务器和 Roundcube 数据库。操作非常简单,只需运行……mysqldump mailserver > mailserver.sql
mysqldump roundcube > roundcube.sql
mysql mailserver < mailserver.sql
mysql roundcube < roundcube.sql
为了避免迁移时出现名称冲突,可以分两步进行。首先,设置一个新服务器,并使用新的名称,例如 mail.example.org。将所有内容复制到新服务器,然后删除旧服务器。接下来,设置另一个服务器,使用原来的名称,例如 webmail.example.org。虽然需要迁移两次,但这种方法很简单。这就像把所有东西从一个房间搬到另一个房间,彻底升级原来的房间,然后再把东西搬回去一样。这种方法的优势在于,在 www.dnsinspect.com 上,MX 记录的评分将达到 100/100。如果在 MX 记录中使用 CNAME,则会收到警告。
警告:MX 记录中发现 CNAME,MX 记录无效:RFC 2181 第 10.3 节规定,主机名必须直接映射到一个或多个地址记录(A 或 AAAA),且不得指向任何 CNAME 记录。RFC 1034 第 3.6.2 节规定,如果某个名称出现在资源记录 (RR) 的右侧,则不应出现在 CNAME RR 的左侧,因此 CNAME 记录不应与 NS 和 MX 记录一起使用。尽管存在这些限制,但仍有许多配置允许将 CNAME 与 NS 和 MX 记录一起使用。
关于 Redis
Rspamd 的许多功能都使用 Redis 来持久化数据。让我简单解释一下 Redis 是什么。Redis 是一种数据库系统。它比传统的 SQL 数据库功能要少得多,因为它只存储键和值。不像 SQL 那样有多个字段/列。但它的运行速度却非常快。在我那台老旧的服务器上,它每秒可以处理大约 5 万个请求。它的速度优势在于其简洁性以及将数据存储在内存中。因此,它无需访问磁盘即可获取信息。(但它会定期将数据复制到磁盘以防止数据丢失。)人们使用 Redis 作为缓存或用于快速查找简单的数据结构。Rspamd 也是 如此。
您之前已选择安装了“redis-server”软件包。这就是您需要做的全部工作。它会自动启动,并在本地主机上的 TCP 端口 6379 监听传入连接。Rspamd 默认启用 Redis 后端。您只需告诉它您的 Redis 服务器的 IP 地址即可。添加一个文件 /etc/rspamd/override.d/redis.conf 并插入以下内容:servers = "127.0.0.1";
重启rspamd服务即可。sudo systemctl restart rspamd
网页界面
Rspamd 附带一个很棒的附加功能:一个网络界面。它允许您检查电子邮件中的垃圾邮件、获取统计数据并微调评分。它默认已安装并启用,并接受本地主机接口上 11334 端口的 HTTP 请求。我建议您在已启用 HTTPS 的网络邮件配置中添加一个简单的代理配置即可访问它。首先,您需要启用 Apache 的 HTTP 代理和重写模块:
a2enmod proxy_http
a2enmod rewrite
<Location /rspamd>
Require all granted
</Location>
RewriteEngine On
RewriteRule ^/rspamd$ /rspamd/ [R,L]
RewriteRule ^/rspamd/(.*) http://localhost:11334/$1 [P,L]
该界面已设置密码保护。让我们生成一个新的访问密码:
pwgen 15 1
这样就得到了一个类似“eiLi1lueTh9mia4”的密码。你可以把这个密码放到rspamd的配置文件里。但是把明文密码放在配置文件里并不优雅。我们来生成这个密码的哈希值:rspamadm pw
输入密码: …
$2$icoahes75e7g9wxapnrbmqnpuzjoq7z…
创建一个新的配置文件 /etc/rspamd/local.d/worker-controller.inc,并将你的哈希密码放入其中:
password = "$2$icoahes75e7g9wxapnrbmqnpuzjoq7z…"
配置部分到此结束。最后,重启 Rspamd 和 Apache 服务以加载更改后的配置:sudo systemctl restart rspamd
sudo systemctl restart apache2