本页内容

  • 先决条件
  • 安装 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 中用 Rspamd 替换 Amavisd 反垃圾邮件

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

在 ISPConfig 中用 Rspamd 替换 Amavisd 反垃圾邮件

在那里,将字段 内容过滤器(Content Filter) 的值从 Amavisd 改为 Rspamd,并点击页面底部的保存按钮。ISPConfig 现在将开始为 Rspamd 重新配置所有邮箱。

当你返回 系统 > 服务器配置 > 邮件 时,你可以看到一些新字段,在其中可以查看和设置 Rspamd 密码。

在 ISPConfig 中用 Rspamd 替换 Amavisd 反垃圾邮件

使 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。

在 ISPConfig 中用 Rspamd 替换 Amavisd 反垃圾邮件

进入网站的 选项 标签页,将以下配置输入到 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。

在 ISPConfig 中用 Rspamd 替换 Amavisd 反垃圾邮件

进入网站的 选项 标签页,将以下配置输入到 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 替换 Amavisd 反垃圾邮件

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。