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

Dav*_*d W 7 spamassassin amavis

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

我们正在运行 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
Run Code Online (Sandbox Code Playgroud)

.... 使用 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
Run Code Online (Sandbox Code Playgroud)

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

此目录中的 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/
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

即使贝叶斯还没有完全训练好并准备好“使用”,我难道不应该在 X-Spam-Status 部分看到一个标签,表明它是否正在使用贝叶斯过滤器?

(就其价值而言,我在上面发布了部分邮件标题的电子邮件是垃圾邮件,显然没有被标记为这样)

有什么我想念的吗?

Dav*_*d W 4

我最近将邮件服务器升级到了新的 CentOS 7 服务器(从 CentOS 6 开始),该服务器除了电子邮件和 DNS 之外什么也不做。之前的 CentOS 6 服务器也在 Apache 上运行多个网站。

我不确定我所做的不同操作导致贝叶斯作为已运行的测试显示在邮件标头中,但看来我已完全配置贝叶斯。我是这样做的:

和以前一样,我运行 Postfixamavisd-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
Run Code Online (Sandbox Code Playgroud)

现在,我的邮件标头确实表明正在运行贝叶斯测试:

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
Run Code Online (Sandbox Code Playgroud)

不幸的是,我仍在尝试处理垃圾邮件,因为大多数邮件仍处于雷达之下(得分为 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,
Run Code Online (Sandbox Code Playgroud)

希望这对某人有帮助。