邮件垃圾过滤系统配置与测试指南
立即解锁
发布时间: 2025-09-11 01:35:53 阅读量: 2 订阅数: 22 AIGC 

### 邮件垃圾过滤系统配置与测试指南
在当今数字化时代,垃圾邮件泛滥成灾,严重影响了我们的工作和生活效率。为了有效过滤垃圾邮件,我们可以使用 SpamAssassin 和 MIMEDefang 这两款强大的工具。本文将详细介绍如何在 StudentVM2 服务器上安装、配置和测试这两款工具,以实现高效的邮件垃圾过滤。
#### 1. SpamAssassin 工作原理
SpamAssassin 在扫描邮件时,会检查每一条规则,包括默认规则和系统管理员或邮件管理员创建和维护的本地规则集。对于每一条匹配的规则,该规则定义的分数将被添加到该邮件的总分数中。这不是一种“一劳永逸”的扫描方式,邮件会始终根据每一条规则进行检查。
在某些应用中,SpamAssassin 可以作为独立软件运行。但在本文的环境中,它不是作为守护进程运行,而是由 MIMEDefang 调用。当邮件的垃圾分数返回给 MIMEDefang 后,MIMEDefang 会调用 `/etc/email/mimedefang-filter` 程序,该程序可以对邮件执行多种操作,如添加邮件头、修改主题或直接丢弃邮件。
MIMEDefang 是用 Perl 编写的,因此很容易进行修改。我们可以通过修改 `/etc/mail/mimedefang-filter` 代码,在邮件主题行添加特定文本,以标识该邮件是否为垃圾邮件。
#### 2. 安装准备
在开始之前,我们需要在 StudentVM2 服务器上安装 MIMEDefang 和 SpamAssassin。请以 root 用户身份执行以下命令:
```bash
[root@studentvm2 ~]# dnf -y install mimedefang spamassassin
```
尽管我们的虚拟机已经安装了 Perl,但此命令会安装 MIMEDefang 所需的许多额外 Perl 包。安装完成后,验证 `/etc/mail` 目录下是否有 `mimedefang*` 文件和 `spamassassin` 目录。
#### 3. 配置 Sendmail 使用 MIMEDefang
为了启动垃圾邮件过滤过程,Sendmail 必须调用 MIMEDefang。我们通过在 `sendmail.cf` 配置文件中插入一行代码来启用 MIMEDefang 邮件过滤器(通常简称为“milter”)。
以下是具体的操作步骤:
1. 以 root 用户身份在 StudentVM2 上执行此实验。将当前工作目录设置为 `/etc/mail`。
2. 编辑 `sendmail.mc` 文件,并插入以下代码,建议将其放在 `EXPOSED_USER` 行之后:
```plaintext
dnl ####################################################################
####################dnl
dnl # The following line causes sendmail to use the MIMEdefang
milter.dnl
INPUT_MAIL_FILTER(`mimedefang', `S=unix:/var/spool/MIMEDefang/
mimedefang.sock, T=S:5m;R:5m')dnl
dnl ####################################################################
####################dnl
```
**注意**:确保 `INPUT_MAIL_FILTER` 命令的最后一个字符 “)” 和尾随的 “dnl” 之间没有空格。如果尾随的 “dnl” 之前有空格,Sendmail 将无法重启。
3. 确保 `/etc/mail` 是当前工作目录,并运行 `make` 命令:
```bash
[root@studentvm2 mail]# make
```
4. 重启 Sendmail:
```bash
[root@studentvm2 ~]# systemctl restart sendmail
```
5. 测试配置是否正确。使用 `tail -f` 跟踪 StudentVM2 上的 `maillog` 文件,并从 StudentVM1 上的 `student` 用户向 `[email protected]` 账户和您的外部邮箱账户发送一封测试邮件:
```bash
[student@studentvm1 ~]$ echo "Hello World" | mailx -s "Test from
StudentVM1" [email protected] [email protected]
```
确保 `maillog` 文件中没有错误,并且邮件已成功发送到收件人。如果有问题,请修复并再次尝试。
#### 4. 查看邮件头信息
打开发送到外部邮箱账户的邮件,并显示邮件头。邮件头应该类似于以下内容:
```plaintext
Received: from studentvm2.example.com (_gateway [192.168.0.254])
by yorktown.both.org (8.17.1/8.17.1) with ESMTPS id 363DpNXm186795
(version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
for <[email protected]>; Mon, 3 Jul 2023 09:51:23 -0400
Received: from studentvm1.example.com ([192.168.56.56])
by studentvm2.example.com (8.17.1/8.17.1) with ESMTPS id
363DpL1o002745
(version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT);
Mon, 3 Jul 2023 09:51:21 -0400
Received: from studentvm1.example.com (localhost [127.0.0.1])
by studentvm1.example.com (8.17.1/8.17.1) with ESMTPS id
363DpLmR001661
(version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT);
Mon, 3 Jul 2023 09:51:21 -0400
Received: (from student@localhost)
by studentvm1.example.com (8.17.1/8.17.1/Submit) id 363DpJds001660;
Mon, 3 Jul 2023 09:51:19 -0400
From: Student User <[email protected]>
Message-Id: <[email protected]>
Date: Mon, 03 Jul 2023 09:51:19 -0400
To: [email protected], [email protected]
Subject: Test from StudentVM1
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 3.4.1 on 192.168.0.52
X-Scanned-By: MIMEDefang 3.4.1
X-Spam-Status: No, score=-78.7 required=10.6 tests=BAYES_00,RDNS_
NONE,SPF_HELO_NONE,USER_IN_WELCOMELIST
Hello World
```
我们还可以使用 `mailx` 客户端在 StudentV
0
0
复制全文
相关推荐










