spamassassin就不用多介绍了,非常老牌的一款反垃圾邮件工具。
pyzor是一个协作式网络系统,可以使用邮件摘要检测和阻止垃圾邮件,同时它可以做为插件的方式集成到spamassassin来增强SA的反垃圾邮件能力。
在你开始用本文的配置进行尝试的时候务必先按照这篇文章把基础环境搭建好:
这里我选择spamass-milter来和postfix通信,首先安装需要用到的包:
apt -y install spamass-milter pyzor
然后配置postfix:
postconf -e "milter_protocol = 6" postconf -e "milter_default_action = accept" postconf -e "smtpd_milters = unix:/spamass/spamass.sock" postconf -e "non_smtpd_milters = unix:/spamass/spamass.sock"
接着编辑spamass-milter的配置文件:
nano /etc/default/spamass-milter
在OPTIONS后面加上如下配置:
OPTIONS="-u spamass-milter -i 127.0.0.1 -- -s 268435456"
注:–是指把参数传递给spamc,-s是指定最大的邮件扫描大小256MB。
编辑spamassassin的配置文件:
nano /etc/default/spamassassin
启动规则自动更新:
CRON=1
编辑如下配置文件:
nano /etc/spamassassin/local.cf
修改安全报告为0,这样我们可以在邮箱内看到spamassassin标记的原始垃圾邮件而不是只能以附件的方式查看:
report_safe 0
还是在这个配置文件内加入下面的配置来集成pyzor:
use_pyzor 1 pyzor_path /usr/bin/pyzor pyzor_options --homedir /etc/mail/spamassassin
接下来我们可以把spamassassin标记的垃圾邮件自动移动到垃圾箱,这里需要用到dovecot的sieve插件。
首先编辑20-lmtp.conf:
nano /etc/dovecot/conf.d/20-lmtp.conf
lmtp协议启用sieve插件:
protocol lmtp { mail_plugins = $mail_plugins sieve }
然后编辑90-sieve.conf:
nano /etc/dovecot/conf.d/90-sieve.conf
在里面指定一个sieve脚本文件:
sieve_after = /var/lib/dovecot/sieve/spamfilter.sieve
新建目录以及新建一个sieve脚本文件:
mkdir -p /var/lib/dovecot/sieve nano /var/lib/dovecot/sieve/spamfilter.sieve
写入如下配置:
require "fileinto"; if header :contains "X-Spam-Flag" "YES" { fileinto "Junk"; }
然后再用sievec编译一下,提升一下脚本执行速度:
sievec /var/lib/dovecot/sieve/spamfilter.sieve
脚本所在的目录需要更改所有者为vmail:
chown -R vmail:vmail /var/lib/dovecot/sieve
最后重启spamass-milter/spamassassin/postfix/dovecot:
systemctl restart spamass-milter spamassassin postfix dovecot
现在我们可以测试一下spamassassin和pyzor是否能够正常工作,发一封GTUBE邮件到我们的邮箱内,可以看到直接进了垃圾箱:
然后查看原始内容,可以看到有类似如下图的内容则说明一切正常:
参考文献:
https://wiki.debian.org/DebianSpamAssassin
https://linux.die.net/man/1/spamass-milter
装完这个反垃圾邮件 在登陆邮箱提示 找不到服务器啊老大