本页内容
- 先决条件
- 安装 Redis
- 若未安装 BIND,则安装 Unbound
- 安装并配置 Rspamd
- 更新 ISPConfig
- 在 ISPConfig 中启用 Rspamd
- 使 Rspamd 仪表盘可从外部访问 Apache Nginx Rspamd GUI
- 禁用 Amavis
- 结论
- Apache
- Nginx
- Rspamd GUI
本教程介绍在 ISPConfig 3.1 服务器上用 Rspamd 替换 amavis(amavisd-new)垃圾邮件扫描软件的步骤。本教程适用于 Debian 和 Ubuntu Linux。
先决条件
- root 权限。
- 必须已安装 ISPConfig 3.1。完成本过程后,ISPConfig 版本将为 3.1.15 或更新版本。
- 服务器需运行在 x86_64 处理器(64 位 Linux)上的 Debian 9 - 10 或 Ubuntu 18.04。较旧的 Debian 和 Ubuntu 版本也可能可用,但我未进行测试。
以下所有命令均以 root 用户身份运行。在以 root 用户继续本指南之前,请登录为 root 用户,或在 Debian 上使用 ' su - ' 或在 Ubuntu 上使用 ' sudo -s ' 切换为 root 用户。
注意:本过程将重新配置所有邮箱和别名,为每个账户写入 Rspamd 配置(类似于执行一次 ISPConfig 工具 > 重新同步),在大型邮件服务器上这可能会耗费相当多的时间和资源。
安装 Redis
ISPConfig 的 Rspamd 配置需要 Redis,因此我们先安装它。
apt-get install redis-server lsb-release
若未安装 BIND,则安装 Unbound
如果服务器未安装本地 DNS 服务器,则应安装像 unbound 这样的本地 DNS 解析器。
首先,使用以下命令检查是否已安装 BIND:
which named
如果命令返回 named 二进制文件的路径:
root@server1:/tmp# which named /usr/sbin/named
那么 BIND 已安装,你必须跳过此步骤。如果未返回 named 的路径,则安装 unbound:
apt-get install unbound
安装并配置 Rspamd
安装 Rspamd 的第一步是添加 Rspamd 的 Debian/Ubuntu 软件包仓库。
CODENAME=`lsb_release -c -s`
wget -O- https://rspamd.com/apt-stable/gpg.key | apt-key add -
echo "deb [arch=amd64] http://rspamd.com/apt-stable/ $CODENAME main" > /etc/apt/sources.list.d/rspamd.list
echo "deb-src [arch=amd64] http://rspamd.com/apt-stable/ $CODENAME main" >> /etc/apt/sources.list.d/rspamd.list
更新软件包列表:
apt-get update
并使用 apt 安装 Rspamd:
apt-get install rspamd
在 Rspamd 配置中启用 Redis。
echo 'servers = "127.0.0.1";' > /etc/rspamd/local.d/redis.conf
增大 Rspamd 历史记录,启用压缩,并且不在历史记录中显示主题。此步骤为可选项。
echo "nrows = 2500;" > /etc/rspamd/local.d/history_redis.conf
echo "compress = true;" >> /etc/rspamd/local.d/history_redis.conf
echo "subject_privacy = true;" >> /etc/rspamd/local.d/history_redis.conf
然后重启 Rspamd。
systemctl restart rspamd
更新 ISPConfig
需要更新 ISPConfig 以启用 Rspamd 配置。当 ISPConfig 更新程序询问是否重新配置服务时,选择 ' yes '(是)。
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xvfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install
php -q update.php
当检测到并配置 Rspamd 时,你会在更新脚本的输出中看到 " Configuring Rspamd "(正在配置 Rspamd)这一行。
在 ISPConfig 中启用 Rspamd
最后一步需要你以 'admin' 用户身份登录 ISPConfig。

在 ISPConfig 中导航到 系统 > 服务器配置 > 邮件 。

在那里,将字段 内容过滤器(Content Filter) 的值从 Amavisd 改为 Rspamd,并点击页面底部的保存按钮。ISPConfig 现在将开始为 Rspamd 重新配置所有邮箱。
当你返回 系统 > 服务器配置 > 邮件 时,你可以看到一些新字段,在其中可以查看和设置 Rspamd 密码。

使 Rspamd 仪表盘可从外部访问
Rspamd 仪表盘位于本地主机的 11334 端口,因此无法从外部访问。在本章中,我们将在 ISPConfig 中创建一个网站并添加代理配置。该配置在 Apache 和 Nginx Web 服务器之间有所不同,请使用与你所安装 Web 服务器软件相符的章节。
Apache
启用代理模块并重启 apache。
a2enmod proxy
systemctl restart apache2
然后登录 ISPConfig 并创建一个用于访问 Rspamd GUI 的网站。域名可任意选择,这里我将使用 rspamd.example.com。你无需在该站点启用任何编程语言或其他选项,保持默认设置即可。不过强烈建议启用 SSL 和 Let's Encrypt。

进入网站的 选项 标签页,将以下配置输入到 Apache 指令 字段中。对于 Apache 2.2,使用:
<Location /rspamd> Order allow,deny Allow from all </Location> RewriteEngine On RewriteRule ^/rspamd$ /rspamd/ [R,L] RewriteRule ^/rspamd/(.*) http://127.0.0.1:11334/$1 [P]
对于 Apache 2.4,改用以下配置:
<Location /rspamd> Require all granted </Location> RewriteEngine On RewriteRule ^/rspamd$ /rspamd/ [R,L] RewriteRule ^/rspamd/(.*) http://127.0.0.1:11334/$1 [P]
现在你可以通过 Web 浏览器访问 Rspamd GUI:https://rspamd.example.com/rspamd 。系统会要求输入密码,请使用你在安装 Rspamd 时生成的密码。
Nginx
登录 ISPConfig 并创建一个用于访问 Rspamd GUI 的网站。域名可任意选择,这里我将使用 rspamd.example.com。你无需在该站点启用任何编程语言或其他选项,保持默认设置即可。不过强烈建议启用 SSL 和 Let's Encrypt。

进入网站的 选项 标签页,将以下配置输入到 Nginx 指令 字段中。
location / {
root /usr/share/rspamd/www/;
try_files $uri @proxy;
}
location @proxy {
proxy_pass http://127.0.0.1:11334;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
现在你可以通过 Web 浏览器访问 Rspamd GUI:https://rspamd.example.com/ 。系统会要求输入密码,请使用你在 ISPConfig 中为 Rspamd 设置的密码。
Rspamd GUI
现在你可以使用浏览器访问 Rspamd GUI,获取关于垃圾邮件过滤率和吞吐量的详细统计信息。

ISPConfig 已重新配置为使用 Rspamd 而非 Amavis 来扫描垃圾邮件。Rspamd 也用于 DKIM 签名。
禁用 Amavis
最后,我们停止并禁用 amavisd 服务:
systemctl stop amavisd-new
systemctl disable amavisd-new
结论
Rspamd 是一款面向 Linux 服务器的现代高性能垃圾邮件扫描软件,可提供非常准确的过滤结果。自 3.1.15 版本起,ISPConfig 支持将 Rspamd 作为垃圾邮件扫描单元。本教程介绍了如何在 ISPConfig 3.1 服务器上用 Rspamd 替换 amavisd-new。