这是第 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