使用 amavisd-new + Spamassassin 启用贝叶斯过滤器

使用 amavisd-new + Spamassassin 启用贝叶斯过滤器

我在 CentOS 上运行 Postfix 邮件服务器,并尝试启用 Spamassassin 的贝叶斯过滤器,但似乎遗漏了一些东西。

我们正在运行 amavisd-new 2.9.1:

Name        : amavisd-new
Arch        : noarch
Version     : 2.9.1
Release     : 2.el6
Size        : 3.0 M
Repo        : installed
From repo   : epel

.... 使用Spamassassin 3.3.1:

Installed Packages
Name        : spamassassin
Arch        : x86_64
Version     : 3.3.1
Release     : 3.el6
Size        : 3.1 M
Repo        : installed
From repo   : updates

据我所知,我唯一的 spamassassin 配置文件位于 /etc/mail/spamassassin。

该目录中的local.cf文件包含以下内容:

# These values can be overridden by editing ~/.spamassassin/user_prefs.cf
# (see spamassassin(1) for details)

# These should be safe assumptions and allow for simple visual sifting
# without risking lost emails.

required_hits 5
report_safe 0
rewrite_header Subject [SPAM]
use_bayes 1
bayes_auto_learn 1
bayes_auto_expire 0
bayes_path /var/amavis/var/.spamassassin/

amavisd.conf 位于 /etc/amavisd/,我思考我已经包含了打开 spamassassin 所需的所有配置,但我并不确定。

我读过的一些网站指出,贝叶斯过滤器需要使用 100 条消息(包括垃圾邮件和非垃圾邮件)进行训练sa-learn,但我看到至少 1 个网站指出过滤器需要使用 200 条消息进行训练。也就是说,我可以确认我已经使用至少 100 条垃圾邮件对过滤器进行了训练。

所以现在,每当我收到电子邮件时,在对这 100 封垃圾邮件进行过滤器训练之后,我仍然没有在邮件头中看到正在使用贝叶斯过滤器的迹象:

X-Virus-Scanned: amavisd-new at developcents.com
X-Spam-Flag: NO
X-Spam-Score: -0.525
X-Spam-Level:
X-Spam-Status: No, score=-0.525 tagged_above=-999 required=4
    tests=[HK_RANDOM_FROM=1, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-2.499,
    SPF_SOFTFAIL=0.972, URIBL_BLOCKED=0.001] autolearn=unavailable

即使贝叶斯尚未经过全面训练并准备好“使用”,我是否应该在 X-Spam-Status 部分看到一个标签来表明它是否正在使用贝叶斯过滤器?

(不管怎样,我在上面发布了部分邮件头,但这封邮件是垃圾邮件,而且显然没有被标记为垃圾邮件)

我是否遗漏了什么?

答案1

我最近将邮件服务器从 CentOS 6 升级到新的 CentOS 7 服务器,该服务器只负责电子邮件和 DNS。之前的 CentOS 6 服务器也在 Apache 上运行多个网站。

我不确定我做了什么不同的事情导致贝叶斯在邮件标题中显示为已运行的测试,但看来我已经完全配置了贝叶斯。以下是我的做法:

和以前一样,我运行 Postfix 并将amavisd-new其用作主要的病毒和垃圾邮件扫描程序。amavisd-new然后交给 spamassassin。

Postfix 是来自 CentOS Plus 存储库的 2.10.1 版本,amavisd-new 是来自 EPEL 存储库的 2.10.1 版本,spamassassin 是来自基础存储库的 3.4.0 版本。

spamassassin的配置文件如下:

[root@mail ~]# cat /etc/mail/spamassassin/local.cf 

    required_hits       5
    report_safe         0
    rewrite_header Subject [SPAM]
    razor_config /etc/mail/spamassassin/.razor/razor-agent.conf
    use_bayes       1
    bayes_path /var/spamassassin/bayes
    bayes_file_mode     077
    auto_learn      0
    use_razor2      1

现在,我的邮件标题确实表明贝叶斯检验正在运行:

X-Virus-Scanned: amavisd-new at developcents.com
X-Spam-Flag: NO
X-Spam-Score: 5.129
X-Spam-Level: *****
X-Spam-Status: No, score=5.129 tagged_above=-999 required=6.2
    tests=[BAYES_99=3.5, BAYES_999=0.2, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
    DKIM_VALID_AU=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001,
    MIME_HTML_ONLY=0.723, MIME_QP_LONG_LINE=0.001, RDNS_NONE=0.793,
    SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01, URIBL_BLOCKED=0.001]
    autolearn=no autolearn_force=no

不幸的是,我仍在尝试处理垃圾邮件,因为大多数消息仍然没有被发现(分数为 6.1 或更低),但我已经取得了很大进展。

不管怎样,这稍微偏离了主题,但我建议在 Postfix main.cf 中使用以下 RBL 作为定义的一部分smtpd_recipient_restrictions(请注意,在使用其中几个列表之前,您需要先注册):

reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client b.barracudacentral.org,
reject_rbl_client dnsbl.sorbs.net,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client dnsbl-1.uceprotect.net,
reject_rbl_client dnsbl-3.uceprotect.net,

希望这对某人有帮助。

相关内容