Zimbra 8.5GA垃圾邮件过滤设置的5种方法 201/09/26更新

邮件系统里,和垃圾邮件的斗争是最激烈,最残酷的。这是一场没有硝烟的持久战。道高一尺,魔高一丈!

spam

 

1.提高特定域名权值

zimbra垃圾邮件过滤的第一步,可以通过提高特定域名权值,避免正规的域名被错误过滤。
修改配置文件:/opt/zimbra/conf/amavisd.conf.in (大约在348行找到{ # a hash-type lookup table (associative array)
首先把自己公司的域名加入,这样就不会把自己公司的邮件认为垃圾邮件了。

例如:’itgeeker.net’    => -10.0,

-10就是无条件信任了,相反+10就是无条件阻挡了。

其次,可把和公司相关的客户之类的域也加入。比如下头这些都是一些招聘网站投递简历的邮箱。省得hr收不到简历。

‘linkedin.com’                    => -9.0,
‘welink.com’                      => -9.0,
‘quickmail.51job.com’             => -9.0,
‘zhaopinmail.com’                 => -9.0,
‘zhaopin.com.cn’                  => -9.0,
’email.cjol.com’                  => -9.0,
’01job.cn’                        => -9.0,
‘job168.com’                      => -9.0,
’01hr.com’                        => -9.0,
‘chinahr.com’                     => -9.0,
‘web.job168.com’                  => -9.0,
切换到Zimbra用户,重新加载对应服务 
su zimbra 
zmamavisdctl reload

2. 白名单,黑名单


如果在amavisd.conf.in中,对某个域名加分后,所有该域名的邮箱权限的分也很高,导致无法很好的过滤垃圾邮件。所以对于特殊邮件采用黑白名单机制。这种方式完全跳过了过滤。可以针对单个邮箱设置即可。

增加黑白名单读取机制

配置文件:/opt/zimbra/conf/amavisd.conf.in
增加以下两行
read_hash(\%whitelist_sender, '/opt/zimbra/conf/whitelist'),
read_hash(\%blacklist_sender, '/opt/zimbra/conf/blacklist'),

然后建立黑白名单文件

touch /opt/zimbra/conf/blacklist
touch /opt/zimbra/conf/whitelist

输入黑白列表邮件。格式是一行一个邮箱名,例如:

abc@itgeeker.net

给两个文件赋予权限给zimbra账户

su root
chown zimbra /opt/zimbra/conf/blacklist
chown zimbra /opt/zimbra/conf/whitelist

最后以 zimbra 身份,执行以下指令重新启动 antispam 模组

su zimbra
zmamavisdctl reload
或
zmamavisdctl stop && zmamavisdctl start && zmamavisdctl status

 

3.关键字过滤


因zimbra对于某些中文关键词的支持并不是很高。所以可以自定义一些权值。
配置目录:/opt/zimbra/data/spamassassin/localrules (ZCS8.5的目录,之前8.0的目录为/opt/zimbra/conf/spamassassin)
创建自定义的邮件过滤规则集,可以直接下载(可能已经失效,需要的话请联系ITGeeker):
wget -N -P /opt/zimbra/conf/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
Chinese_rules.cf是用于业界广泛使用的免费垃圾邮件过滤系统SpamAssassin的中文垃圾邮件过滤规则集。由于以前没有中文的过滤规则集,SpamAssassin对中文邮件过滤的准确性不高。CCERT反垃圾邮件研究小组利用CCERT所掌握的最新和丰富的样本数据,推出了第一个基于SpamAssassin的中文垃圾邮件过滤规则集Chinese_rules.cf。该规则集每周更新一次,时效性非常好。
 
不过ITGeeker发现官网已经很久没有更新了。大家可以去官方关注一下动态。http://www.ccert.edu.cn
ITGeeker目前下载到的Chinese_rules.cf是updated 2005 Aug 14
垃圾邮件过滤规则的格式如下,可以网上找,建议去一些大学的系统来找,或者设定自己痛恨的词。
header CN_SUBJECT_1 Subject =~ /优惠/
describe CN_SUBJECT_1 Subject contains "优惠"
score CN_SUBJECT_1 1.254
header CN_SUBJECT_5 Subject =~ /合作/
describe CN_SUBJECT_5 Subject contains "合作"
score CN_SUBJECT_5 0.233

header CN_SUBJECT_6 Subject =~ /发票/
describe CN_SUBJECT_6 Subject contains "发票"
score CN_SUBJECT_6 0.055

设定好了,重启服务

zmamavisdctl reload

4.使用RBL列表配置


垃圾邮件过滤比较好的方式是用公开的垃圾邮件过滤列表来实现
国内用一下这个比较好
http://anti-spam.org.cn/
其中有4种列表
CBL,CDL,CBL+,CBL-
zimbra具体设置是在,管理全局设定–MTA设定–RBL列表中添加适合自己的即可。
cblless.anti-spam.org.cn
一些国外的RBL列表,也能抵挡很多英文垃圾邮件,但有时候会连接不上,引起Zimbra报错,大家可以都试试。

RBL列表-Zimbra官方推荐的

* zen.spamhaus.org
* psbl.surriel.com
* b.barracudacentral.org
* bl.spamcop.net
非官方推荐的:
* cbl.abuseat.org
* new.spam.dnsbl.sorbs.net
* all.s5h.net
* bl.blocklist.de
* dnsbl.inps.de
* ubl.unsubscore.com (note: Rejects mail from places such as Yahoo!, Facebook, etc.)
* virbl.dnsbl.bit.nl
* mail-abuse.blacklist.jippg.org
* dnsbl.njabl.org

The Client RHSBLs客户端RHSBL列表官方推荐 (updated June 2, 2014)

* dbl.spamhaus.org
* multi.uribl.com
* multi.surbl.org
* rhsbl.sorbs.net

Sender RHSBLs发件人RHSBL列表官方推荐

* multi.uribl.com
* multi.surbl.org
* rhsbl.sorbs.net
* dbl.spamhaus.org

Reverse Client RHSBLs反向客户端RHSBL列表官方推荐

* dbl.spamhaus.org

命令行添加RBL and RHSBLs

For RBLs:

zmprov mcf +zimbraMtaRestriction "reject_rbl_client zen.spamhaus.org"

For RHSBL clients:

zmprov mcf +zimbraMtaRestriction "reject_rhsbl_client dbl.spamhaus.org"

如何检查RBL列表是否添加成功?

查看/opt/zimbra/postfix(版本号)/conf/main.cf文件中的smtpd_recipient_restrictions项有没有 reject_rbl_client cblless.anti-spam.org.cn 这个内容?

如果没有的话说明还没生效,在root用户下执行

/opt/zimbra/postfix/sbin/postfix reload

据说,结合对本域的白名单设定,可以去除90%以上的垃圾邮件。

使用RBL需要注意的是会有部分错误过滤,可以根据情况调整。


5.使用SpamAssassin的local.cf配置黑白名单


SpamAssassin是一种安装在邮件伺服主机上的邮件过滤器,它是使用大量的预设规则检查垃圾信,这些规则会检查寄到网域内所有邮件的标头,内文,以及送信者。就像大多数Linux应用程序一样,SpamAssassin需要对配置文件的编辑。
这个配置文件的路径是:/opt/zimbra/data/spamassassin/localrules/local.cf(和之前的ZCS8.0目录不同,请参看底部说明)
whitelist_from关键字可指定不应该被视为垃圾邮件的地址blacklist_from用于指定应始终标记为垃圾邮件的地址
#Whitelist by ITGeeker
whitelist_from *@itgeeker.net
whitelist_from *@freegeeker.com.cn
#Blacklist by ITGeeker
blacklist_from *@001web.uk
 
可以在whitelist_from和blacklist_from行上指定多个地址,并用空格隔开。每个地址可以包含通配符。可以使用多个whitelist_from和blacklist_from行。

参考Customizing SpamAssassin on Zimbra

 
ZCS 8.5 and later
For ZCS 8.5, Spamassassin layout has been corrected as per the SpamAssassin developers. sauser.cf is migrated to the /opt/zimbra/data/spamassassin/localrules directory. This is the supported location for doing customizations of SpamAssassin for ZCS 8.5 and later.
 
ZCS 8
For ZCS 8.0, SpamAssassin scans for all *.cf files in /opt/zimbra/conf/sa and loads them in alphabetical order. If you create a sauser.cf file, it will be loaded after salocal.cf is loaded. This is the supported method for doing customizations of SpamAssassin for ZCS8.0