在 CentOS 8/RHEL 8 邮件服务器上设置 Amavis 和 ClamAV

这是第 10 部分 CentOS 8/RHEL 8 邮件服务器从零开始 教程系列。 在本文中,我将向您展示如何使用 阿马维斯ClamAV 扫描电子邮件中的病毒。

阿马维斯 (A Mail Virus Scanner) 是邮件传输代理 (MTA) 之间的高性能接口,例如 后缀 和内容过滤器。 内容过滤器是一种扫描电子邮件消息标题和正文的程序,通常会根据发现的内容采取一些措施。 内容过滤器最常见的例子是 ClamAV 病毒扫描程序垃圾邮件杀手.

Amavis 使用标准的 SMTP 协议,也可以使用 Sendmail milter 接口。 它通常用于

  • 通过与 ClamAV (Clam AntiVirus) 集成进行病毒扫描
  • 通过与 SpamAssassin 集成进行垃圾邮件检查
  • DKIM 签名和验证。 (实际上,我更喜欢使用 OpenDKIM 进行 DKIM 签名和验证。)

先决条件

您应该已经从零开始教程系列至少完成了 CentOS 8/RHEL 8 邮件服务器的第 1 部分(Postfix SMTP 服务器)和第 2 部分(Dovecot IMAP 服务器)。 请注意,如果您使用 iRedMail 或 Modoboa 设置邮件服务器,则 Amavis 和 ClamAV 已经安装和配置,因此您无需遵循本教程。

警告:Amavis 和 ClamAV 需要相当数量的 RAM。 在安装 Amavis 和 ClamAV 之前,请确保您的服务器上至少有 1.3 GB 的可用 RAM。 整个邮件服务器堆栈(Postfix、Dovecot、Amavis、ClamAV、SpamAssassin、OpenDKIM、MySQL/MariaDB、PostfixAdmin 和 Roundcube Webmail)至少需要 3 GB RAM运行平稳。 如果您的 RAM 耗尽,您将遇到诸如邮件服务器脱机或无响应等问题。

第一步:在 CentOS 8/RHEL 8 上安装 Amavis

Amavis 是用 Perl 编写的。 我们需要启用 EPEL(企业 Linux 的额外包)和 CodeReady Linux Builder 存储库 RHEL 8 为 Amavis 安装一些 Perl 依赖项。

sudo dnf install epel-release  sudo subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms

CentOS 8, 启用 EPEL (Extra Packages for Enterprise Linux) 和 PowerTools 存储库来为 Amavis 安装 Perl 依赖项。

sudo dnf install epel-release -y sudo dnf config-manager --set-enabled powertools

然后安装 amavis 包裹。

sudo dnf install amavis -y

要检查版本号,请运行

amavisd -V

示例输出:

amavisd-new-2.12.0 (20190725)

病毒通常作为电子邮件的附件进行传播。 为 Amavis 安装以下软件包以提取和扫描电子邮件中的存档文件,例如 .7z, .cab, .doc, .exe, .iso, .jar, 和 .rar 文件。

sudo dnf -y install arj bzip2 cpio file gzip nomarch spax unrar p7zip unzip zip lrzsz lzip lz4 lzop

请注意,如果您的服务器不使用完全限定域名 (FQDN) 作为主机名,Amavis 可能无法启动。 并且操作系统主机名可能会发生变化,因此建议直接在 Amavis 配置文件中设置有效的主机名。

sudo nano /etc/amavisd/amavisd.conf

找到以下行。

$mydomain = 'example.com';   # a convenient default for other settings

还建议将默认的 mydomain 值更改为您自己的域名。

$mydomain = 'linuxbabe.com'; # a convenient default for other settings

然后找到以下行。

# $myhostname="host.example.com";  # must be a fully-qualified domain name!

删除第一个注释字符 (#) 并更改 host.example.com 到您的邮件服务器的主机名,如下所示。

$myhostname="mail.linuxbabe.com"; # must be a fully-qualified domain name!

Save 和 close 文件。 现在我们可以启动 Amavis。

sudo systemctl start amavisd

在启动时启用自动启动。

sudo systemctl enable amavisd

检查其状态:

systemctl status amavisd

示例输出:

 amavisd.service - Amavis mail content checker    Loaded: loaded (/usr/lib/systemd/system/amavisd.service; enabled; vendor preset: disabled)    Active: active (running) since Thu 2020-11-19 01:21:26 EST; 8s ago      Docs: https://www.ijs.si/software/amavisd/#doc  Main PID: 18782 (/usr/sbin/amavi)     Tasks: 3 (limit: 12502)    Memory: 149.5M    CGroup: /system.slice/amavisd.service            ├─18782 /usr/sbin/amavisd (master)                                                                                                                                                                          ├─18806 /usr/sbin/amavisd (virgin child)                                                                                                                                                                    └─18807 /usr/sbin/amavisd (virgin child)

暗示:如果上面的命令没有立即退出,请按Q。

如您所见,Amavis 正在运行。 如果它没有运行,您可以使用 (sudo journalctl -eu amavisd)。

Amavisd 侦听 127.0.0.1:10024,可以看到:

sudo ss -lnpt | grep amavi