在现代 Fedora 系统上安装 spamassassin 时,我无法在任何地方找到任何帮助。那里的所有建议都是旧的并且不适用 - 反正我发现。官方文档与 Fedora 无关——它过于笼统并且缺少重要的 Fedora 实现细节。
而且,它是如何完成的还不够直截了当,我知道该怎么做!最重要的缺失环节似乎是我告诉Postfix
如何调用spamassassin
. 但是,在哪里定义配置选项也完全不清楚。
接下来还有很多,但也许这一切都归结为没有人愿意提供有关 Postfixsmtpd_milter
条目应该是什么的适当信息。而且,我尝试过的条目是基于在“/usr/share/doc/spamass-milter-postfix”中找到的数据,这个文件说正确的值是 unix:/run/spamass-milter/postfix/sock 但是目录存在,套接字条目不存在,并返回下面引用的错误消息。
...好吧,更长的故事:
我已经安装了这些版本:
spamass-milter-0.4.0-1.fc21.x86_64
spamass-milter-postfix-0.4.0-1.fc21.noarch
spamassassin-3.4.0-13.fc21.x86_64
同样,这是 Fedora 21。安装的 Postfix 是:
postfix-2.11.3-1.fc21.x86_64
当我运行“man spamassassin”时,它指向我/var/lib/spammassassin/3.004000
,其中包含“updates_spamassassin_org.cf”和一个同名的子目录(减去 .cf),该子目录又包含大量 (65) 个 .cf 文件。手册页还指向我,/usr/share/spamassassin
其中又包含大量 (63) 类似名称的 .cf 文件,这些文件并不完全相同。
我当然希望我不必为了让 spamassassin 工作而学习所有这些知识!值得庆幸的是——但还不够——手册页还指向我,/etc/mail/spamassassin
其中包含一个名为local.cf
. 在那里,我找到了一个关于如何安装 spamassassin 并将其与后缀集成的页面的链接 - 此处 (),但该建议还不够,而且似乎不是那么有头绪。例如,它建议的第一件事是创建一个名为“ spamfilter
”的组和用户帐户,当然,股票yum
安装已经创建了帐户sa-milt
,其条目似乎是正确的:
sa-milt:x:982:477:SpamAssassin Milter:/var/lib/spamass-milter:/sbin/nologin
我想需要在 Postfix 的 main.cf 中创建一个条目来创建或添加一个名为的条目smtpd_milters
,以包含告诉 Postfix 如何调用 spamassassin 所需的任何链接。目前我有一个条目openDKIM
:
# This is for openDKIM - missing are clamav and spamassassin:
smtpd_milters = inet:localhost:8891
因此,在我看来,创建这些用户帐户是错误的。此外,如果需要这些帐户,为什么安装脚本没有创建用户和组?此外,它还谈到了使用“ service
”来启动 spamassassin,但是,正如任何称职的 Fedora 21 系统管理员所知道的那样,您不使用“服务”,而是使用systemctl
!
……无视……
该服务确实开始 - 并保持 - 使用:
systemctl start spamassassin
但是,它不起作用。
特别是,在我看来,显然需要在 postfix 中添加一个钩子,但也很明显,非 Fedora 21 的策略失败了。我们被指示更新 Postfix 的 main.cf smtpd_milters 条目 - 这是他们的建议:
# First entry is for openDKIM
smtpd_milters = inet:localhost:8891, unix:/run/spamass-milter/postfix/sock
但问题是,这行不通。我们在日志文件中得到这个:
postfix/smtpd[18151]: warning: connect to Milter service unix:/run/spamass-milter/postfix/sock: No such file or directory
但是,我似乎找不到smtpd_milters
此版本组合的正确条目!
很明显,某处应该有安装说明,但我发现的所有内容都与这些版本无关。请告诉我应该如何做,或者指出我在哪里可以找到适用的合格文章!特别是,什么是合适的smtpd_milters
条目或者,我如何创建一个有效的配置组合(smtpd_milters / spamassassin 配置)?
您还需要启动垃圾邮件服务。
并验证了它的工作原理
和
默认情况下,spamassassin 仅附带
spamd
二进制spamc
文件。Do daemon 包含在包中。这就是为什么您需要使用bash script、amavisd或 spamass-milter 之类的集成器(例如这种情况)事实证明,在咬牙切齿之后,我注意到我安装了一个包,到目前为止,NOBODY 引用了我所见过的包。它被称为
spamass-milter-root
。所以,在检查了我能想到的一切之后,我想,为什么不呢?...(“#”是系统 root 帐户的 CLI 提示符。)
而且,当我在一个窗口中向上时,当我突然(!!)这一切刚刚开始在我眼前
tail -f /var/log/maillog
处理数百封邮件时,我感到震惊!spamd
耶!现在还有其他问题,例如,对这些消息的分析会产生什么影响......
为了清楚起见,这里有两个命令解决了这个问题......请记住,这是完成所有其他配置工作:
完毕。
使用默认配置,postfix 无法连接到 spamass-milter,因为它无法访问
/run/spamass-milter/spamass-milter.sock
要允许它连接:
SOCKET_OPTIONS='-g mail'
(/etc/sysconfig/spamass-milter
这使得组拥有的套接字mail
)usermod -a -G mail sa-milt
(sa-milt
在邮件组中,可以将组设置为所有者)systemctl restart spamass-milter.service
我不会通过 milter 使用 spamassassin。我觉得 amavisd 是一个更好的选择(例如:它通过 clamav 提供防病毒保护)。
在这里您可以找到 RedHat/CentOS 的一些集成步骤;对于 Fedora,它们应该是比较相似的。