Amamisd-new是开源中最流行的反垃圾和反病毒软件,一般配置Spamassassin和Clamav这两个软件一起使用,在Amavisd-new中配置反病毒和反垃圾,Amavisd-new选项比较多,能实现多种不同的需求.
amavisd-new 是一个介于 MTA 和内容过滤软件之间的桥梁,其角色就像是两者之间的沟通者。 amavisd-new 本身也是个简单的 MTA,也可以用来架设一个独立的 Mail Gateway,提供多台 Mail Server 做邮件过滤。除此之外,amavisd -new 还可以结合十多种杀毒软件来做病毒防护。
当然amavisd-new可以结合SpamAssassin来进行反垃圾,也可以结合多种反病毒软件进行病毒检测.
下面进入正题.打开amavisd.conf文件,一般位于/etc/amavisd.conf
第一个功能实现:Amavisd-new
跳过反病毒检查
反病毒方面,假设我们启用clamav进行查毒
如果我们需要跳过反病毒检查,有以下方法:
# @bypass_virus_checks_maps = (1); # controls running of anti-virus code
上面这个参数控制amavisd-new是否进行反病毒检查.去掉注释表示不检查
但是启用这个参数会导致一个问题.
正常情况下amavisd-new中每一封检查的邮件头中会加入以下字段:
X-Virus-Scanned: amavisd-new at example.com
其中"example.com"是在amavisd.conf中定义的$mydomain标量.
如果启用"@bypass_virus_checks_maps = (1);",那么在邮件头中将不会再出现:
X-Virus-Scanned: amavisd-new at example.com
那么不启用这个参数的话,同时也不配置任何反病毒软件,将导致邮件不法发送,在邮件日志中出现以下信息:
Aug 18 10:07:26 mail amavis[8142]: (08142-01) (!!)TROUBLE in check_mail: virus_scan FAILED: AV: NO VIRUS SCANNERS AVAILABLE
Aug 18 10:07:26 mail amavis[8142]: (08142-01) (!)PRESERVING EVIDENCE in /var/amavis/tmp/amavis-20110818T100726-08142
Aug 18 10:07:26 mail postfix/smtp[8099]: 19AE042ACA1: to=<
[email protected]>, orig_to=<root>, relay=127.0.0.1[127.0.0.1]:10028, delay=445, delays=445/0/0.02/0.07, dsn=4.5.0, status=deferred (host 127.0.0.1[127.0.0.1] said: 451 4.5.0 Error in processing, id=08142-01, virus_scan FAILED: AV: NO VIRUS SCANNERS AVAILABLE (in reply to end of DATA command))
如何在不使用反病的同时,又保留邮件头信息,因为邮件头中的信息表示进行了amavisd检查,可能包含反垃圾检查.
有以下方法,不修改以下行:
# @bypass_virus_checks_maps = (1); # controls running of anti-virus code
将av_scanners和av_scanners_backup两段内容删除,这样就保留了邮件头中的信息,又会跳过反病毒检查.
第二个功能实现:
邮件头X-Virus-Scanned
信息
前面说过,正常情况下amavisd-new中每一封检查的邮件头中会加入以下字段:
X-Virus-Scanned: amavisd-new at example.com
其中"example.com"是在amavisd.conf中定义的$mydomain标量.
与这个邮件头信息相关的参数有:
# $$sa_spam_modifies_subj表示在邮件头中加入以上所说字段,默认为1
$sa_spam_modifies_subj = 1;
# x_scanned_headers表示"X-Virus-Scanned",下面这个参数表示如果邮件头中已包含上述字段,则删除
# 并加上自己检查后的字段值
$remove_existing_x_scanned_headers = 1;
# spam_headers表示邮件评分信息,如果之前存在,则会删除
$remove_existing_spam_headers = 1;
# 修改"X-Virus-Scanned"信息为'Spam-Scanned'
$X_HEADER_TAG = 'Spam-Scanned';
# 修改"amavisd-new at example.com"信息为"by amavisd-new at $myhostname""
$X_HEADER_LINE = "by amavisd-new at $myhostname";
第三个功能实现:
邮件头评分信息
我配置了半天,但是邮件头就是没有评分信息,非常郁闷,现在终于弄懂
在什么时候会在邮件头加入邮件信息?必须满足以下两个条件:
1.本地域中的邮件,也就是在@local_domains_maps中定义的域,默认包含了mydomain
2.邮件评分高于$sa_tag_level_deflt所定义的值
满足了这两个条件,评分信息就会有,否则不会出现.
第四个功能实现:邮件主题修改
在amavisd.conf中有个参数$sa_spam_subject_tag,用于定义在邮件主题中对垃圾邮件加入的信息
在/etc/mail/spamassassin/local.cf中同样有定义,不过amavisd.conf定义的优先级高
其实这个功能有个前提,也就是必须在邮件头评分信息出现的时候才会工作.