在现代Fedora系统上安装spamassassin的任何地方我都找不到任何帮助。 所有的build议都是旧的,不适用 – 就我所知而言。 官方文档与Fedora无关 – 它太普通,缺less重要的Fedora实现细节。
而且,如何做到这一点还不够直接,我知道该怎么做! 最重要的缺失链接似乎是我告诉Postfix
如何调用spamassassin
。 但是,在何处定义configuration选项也是完全不清楚的。
还有更多,但可能这一切归结为没有人打扰提供什么Postfix smtpd_milter
条目应适当的信息。 而且,我试过的条目是基于'/ usr / share / doc / spamass-milter-postfix'中find的数据,这个文件说的是正确的值是unix:/ run / spamass-milter / postfix / sock BUT while该目录存在,套接字条目不存在,并返回下面引用的错误消息。
好吧,更长的故事:
我已经安装了这些版本:
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
,后者又包含一个名称相似的.cf文件的大集合(63),它们并不完全相同。
我当然希望我不必学习所有这些,以获得spamassassin工作! 值得庆幸的是 – 但是不够充分 – 手册页也指向/etc/mail/spamassassin
,其中包含一个名为local.cf
的文件。 在那里,我find了一个关于如何安装和整合spamassassin和postfix – here()的页面的链接,但是这个build议还不够,而且看起来也不是那么好用。 例如,build议的第一件事情当然是创build一个名为“ spamfilter
”的组和用户帐户,当然, yum
安装已经创build了帐户sa-milt
,其条目似乎是正确的:
sa-milt:x:982:477:SpamAssassin Milter:/var/lib/spamass-milter:/sbin/nologin
我想,需要在Postfix的main.cf中创build或添加一个名为smtpd_milters
的条目,以包含告诉Postfix如何调用spamassassin所需的任何链接。 目前我有一个openDKIM
的入口:
# This is for openDKIM - missing are clamav and spamassassin: smtpd_milters = inet:localhost:8891
所以,在我看来,创build这些用户帐户是一个错误。 另外,如果需要这些帐户,为什么没有安装脚本已经创build用户和组? 此外,它还谈到了使用“ service
”启动spamassassin,但是,正如任何有能力的Fedora 21系统pipe理员知道,你不使用“服务”,你使用systemctl
!
忽略那个…
该服务开始 – 并保持 – 使用:
systemctl start spamassassin
但是,它不工作。
特别是,对我来说显然需要在postfix中有一个钩子,但是非Fedora 21的策略也是很明显的。 我们的目标是更新Postfix的main.cf smtpd_milters条目 – 这是他们的build议:
# 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
但是,我似乎无法find这个版本组合的smtpd_milters
正确的条目!
CLEARLY应该有安装方向的地方,但没有我发现有关这些版本。 请告诉我应该怎么做,或者指出我在哪里可以find一个合适的写法,适用于! 特别是,什么是适当的smtpd_milters
条目OR,如何创build一个configuration组合(smtpd_milters / spamassassinconfiguration)的工作?
您还需要启动spamass服务。
systemctl start spamass-milter
并validation它的工作
systemctl status spamass-milter
和
netstat -an | grep spamass-milter
默认情况下,spamassassin只附带spamd
和spamc
二进制文件。 包中包含守护进程。 这就是为什么你需要像bash脚本 , amavisd或者spamass-milter这样的集成器(比如这个例子)
事实certificate,在咬牙切齿之后,我注意到有一个我安装的包,NOBODY曾经引用过我所见过的。 这就是所谓的spamass-milter-root
。
所以,在检查了所有我能想到的之后,我想,为什么不呢? …(“#”是系统根帐户的CLI提示符。)
# systemctl enable spamass-milter-root.service Created symlink from /etc/systemd/system/multi-user.target.wants/spamass-milter-root.service to /usr/lib/systemd/system/spamass-milter-root.service. # systemctl status spamass-milter-root.service -; ● spamass-milter-root.service - Mail filter for SpamAssassin Loaded: loaded (/usr/lib/systemd/system/spamass-milter-root.service; disabled) Active: active (running) since Fri 2015-04-17 15:53:41 PDT; 1min 3s ago Process: 2353 ExecStartPre=/bin/chown -R root /run/spamass-milter (code=exited, status=0/SUCCESS) Main PID: 2356 (spamass-milter) CGroup: /system.slice/spamass-milter-root.service ├─2356 /usr/sbin/spamass-milter -g postfix -p /run/spamass-milter/... └─2370 /usr/bin/spamc Apr 17 15:53:41 ms1 spamass-milter[2356]: spamass-milter 0.4.0 starting Apr 17 15:54:00 ms1 spamass-milter[2356]: Could not retrieve sendmail mac...s
而且,当我在窗口里放了一个tail -f /var/log/maillog
时候,突然之间(!!),我才惊呆了,几乎所有的邮件都被垃圾邮件处理了。 好极了!
现在还有其他一些问题,比如这些消息的分析有什么影响。
为了清楚起见,下面是解决问题的两个命令…请记住,这是所有其他configuration工作完成的:
# systemctl enable spamass-milter-root.service # systemctl start spamass-milter-root.service
完成。
我不会用spamassassin。 我觉得amavisd是一个更好的select(例如:它通过clamav的优势来提供防病毒保护)。
在这里您可以findRedHat / CentOS的一些集成步骤; 对于Fedora来说,它们应该是比较相似的。