linux下架设邮箱 进阶篇spamassassin.docx
- 文档编号:7478162
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:27
- 大小:36.23KB
linux下架设邮箱 进阶篇spamassassin.docx
《linux下架设邮箱 进阶篇spamassassin.docx》由会员分享,可在线阅读,更多相关《linux下架设邮箱 进阶篇spamassassin.docx(27页珍藏版)》请在冰豆网上搜索。
linux下架设邮箱进阶篇spamassassin
A、简介
SpamAssassin:
是一种安装在邮件伺服主机上的邮件过滤器,用来辨识垃圾信。
它是使用大量的预设规则检查垃圾信,这些规则会检查寄到网域内所有邮件的标头,内文,以及送信者。
他采取的过滤方式是采用记分制,也就是说会根据我们所设定的标准来给予分数超过标准值的时候即判定为SPAM(垃圾邮件)。
官网:
http:
//spamassassin.apache.org
B、安装
B.1、安装
yuminstallspamassassin
chkconfigspamassassinon
servicespamassassinrestart
B.2、测试
spamassassin-t
lessspamtest.txt
spamassassin-t
lessnospamtest.txt
C、procmail
现在SpamAssassin安装好了,如何告诉sendmail调用SpamAssassin扫描邮件呢?
这里使用procmail来处理(网络上有用spamass-milt或MailScanner启动SpamAssassin的,不过没试过,待考证)。
vi/etc/procmailrc
加入以下内容,提供几种供参考
第一种:
:
0fw
|/usr/bin/spamassassin
第二种:
邮件大于2M就不检查
:
0fw
*<2000000
|/usr/bin/spamassassin
第三种:
邮件大于2M就不检查,使用独立常驻程式spamc,会有更高的效能
:
0fw
|/usr/bin/spamc-s200000
第四种:
比较完整
小于100K的信件要执行检查,超过直接放过他!
如果看到是被打上Spam字样,就送入垃圾信箱,加日志功能。
LOGFILE=/var/log/procmail.log
MAILDIR=/var/mail
VERBOSE=off
PATH=/bin:
/sbin:
/usr/bin:
/usr/sbin/:
/usr/local/bin:
/usr/local/sbin
LOGFILE=/var/log/procmail.log
:
0fw:
spamassassin.lock
*<100000
|/usr/bin/spamc
:
0:
*^X-Spam-Flag:
Yes
$HOME/mail/spam-mail
D、配置文件说明
参考官网:
http:
//svn.apache.org/repos/asf/spamassassin/branches/3.3/README
/usr/share/spamassassin/*.cf
分布式配置文件,所有都是默认的。
不要修改这些,因为当您升级时它们都将被覆盖。
/var/lib/spamassassin/*/*.cf
本地状态目录。
更新规则设置,重写分布式配置文件,使用"sa-update"下载。
不要修改这些,因为您运行"sa-update"它们都将被覆盖。
/etc/mail/spamassassin/*.cf
站点配置文件,系统管理员可以创建,修改,添加本地规则和分数。
修改这里将从上面的目录中加载配置。
/etc/mail/spamassassin/*.pre
插件控制文件,分布安装。
这些都是用于控制加载哪些插件。
修改这里在从上面加载之前加载配置前被加载。
如果你想载入其他插件,或抑制加载一个默认启用的插件,您要改变这些文件。
如果文件已经存在于/etc/mail/spamassassin目录中,他们不会在以后的安装中被覆盖。
/usr/share/spamassassin/user_prefs.template
分布式的默认用户首选项。
不要修改这些,因为当您升级时它们都将被覆盖。
/etc/mail/spamassassin/user_prefs.template
默认用户首选项,系统管理员可以创建,修改和设置用户首选项的默认值。
如果它存在,优先于上述Prefs文件。
不要把系统全局设置设定在这里。
把它放在"/etc/mail/spamassassin"目录下".cf"结尾的文件中。
它只是一个模板,将被复制到用户的home目录中。
$USER_HOME/.spamassassin
用户状态目录。
用来保存SpamAssassin的状态,如每个用户自动白名单,和用户的首选项文件。
$USER_HOME/.spamassassin/user_prefs
用户首选项文件。
如果它不存在,其中一个上面的默认首选项文件将被复制到这里。
用户可以编辑该文件。
除非你使用的spamd的,不然在解释规则文件和首选项文件时没有任何区别,所以用户可以在自己使用的"~/.spamassassin/user_prefs"文件中添加新的规则。
(spamd出于安全和提高速度的目的禁用这么做)。
$USER_HOME/.spamassassin/bayes*
统计数据库用于贝叶斯过滤。
如果不存在的,将由SpamAssassin创建。
spamd的用户可能希望创建一个共享的贝叶斯数据库。
设置"bayes_path"和"bayes_file_mode"配置可实现。
详细说明查看"perldocsa-learn"文档。
E、配置选项详细说明
以下选项能被用于站点级配置(/etc/mail/spamassassin/local.cf)和用户级配置($USER_HOME/.spamassassin/user_prefs)中,通过它们可以定制SpamAssassin处理进入的邮件的方式。
E.1、评分选项
required_score5.0
required_scoren.nn(默认值:
5),设定一个邮件被判定为垃圾邮件的分数线。
n.nn可以是整数或者实数。
默认值为5.0,这是很严厉的设置了,它适用于单个用户使用;但是对于应用于整个服务器,应该设置得更保守一些(更高一些),比如设置为8.0或10.0等等。
通常不推荐设置为自动删除或丢弃那些被判定为垃圾邮件的邮件,否则可能招致用户的强烈抗议;除非评分特别的高,比如15.0或者更高,才可以考虑直接删除。
这个选项以前称之为required_hits,现在虽然还可以用,但是不推荐使用旧的名称。
scoreMAILTO_TO_SPAM_ADDR0.2
score测试规则名n.nn[n.nnn.nnn.nn]。
指定一个测试规则的评分(命中后的评分)。
评分可以是正的或者负的整数或实数。
测试规则名是一个测试规则的名称,如:
FROM_ENDS_IN_NUMS。
如果只列出了一个评分,那么测试后总是返回该评分。
如果列出了4个评分,那么SpamAssassin在不同的使用情况下返回不同的评分。
第一个评分用于贝叶斯测试和网络测试都被取消的情况下(0号评分集);第二个评分用于贝叶斯测试被取消,但使用网络测试的情况下(1号评分集);第三个评分用于使用贝叶斯测试,但网络测试被取消的情况下(2号评分集);第四个评分用于贝叶斯测试和网络测试都使用的情况下(3号评分集)。
设置一个测试规则的评分为0会取消该规则的测试。
如果评分使用括号“()”括起来,那么该行所有其后的评分都被增加同等的比例。
例如,“(3)”表示在所有的评分集中提高该评分3点。
“(3)(0)(3)(0)”表示只提高0号和2号评分集3点评分。
如果一个测试规则没有给定评分,它将会被指定一个默认评分1.0;除非是以“T_”开头的测试规则(用于指出该测试规则还在试验中),它会被指定为评分0.01。
注意,以“__”开头的测试规则名是一个间接规则,它被用于组成元匹配规则和作为其它规则的前置测试,这些规则不会被计算评分也不会列在“命中的测试”报告中。
注意,虽然间接规则的评分不会被计算,但是设置间接规则的评分为0会取消该规则的测试。
E.2、白名单和黑名单选项
whitelist_from*@
whitelist_from邮件地址,
它用于指定通常被误判为发送的垃圾邮件的发信地址。
并不推荐使用这个选项,垃圾邮件或钓鱼邮件的发送者非常简单的就可以制造一些让它盲目信任的邮件。
推荐的解决方法是使用whitelist_auth或其它认证的白名单方式替代,或使用whitelist_from_rcvd。
白名单和黑名单都可以使用通配符。
如friend@、*@或*都是可以的。
需要注意的是只支持*和?
(匹配单个字符),但是不支持其他的元字符匹配。
由于一些安全的原因,这里也不支持正则表达式。
可以在一行中使用空格分隔开写入多个邮件地址,也可以使用多个whitelist_from行来指定。
信头的白名单检查按照如下顺序:
如果信头设置了Resent-From地址,那么就检查它;否则检查来自下列信头的全部地址:
Envelope-Sender
Resent-Sender
X-Envelope-From
From
此外,如果SMTP通讯中的信封信息可用的话,那么“信封发件人(envelopesender)”也会被检查。
参见envelope_sender_header。
范例:
whitelist_fromjoe@fred@
whitelist_from*@
unwhitelist_from*@
unwhitelist_from邮件地址
它用于覆盖一个默认的whitelist_from选项。
举例说,在local.cf中指定了一个站点级通用的白名单地址whitelist_from,用户可以在他的user_prefs中可以使用这个选项来覆盖那个通用的白名单地址选项。
这个选项所匹配的邮件地址也必须同样被前面的whitelist_from选项所匹配。
范例:
unwhitelist_fromjoe@fred@
unwhitelist_from*@
whitelist_from_rcvdjoe@
whitelist_from_rcvd邮件列表地址中继服务器的反向解析名
它是对whitelist_from的补充,用来对“Received”信头进行检查。
第一个参数是一个白名单的地址,第二个参数用于匹配该邮件的中继服务器的反向DNS解析名称。
第二个参数用于在邮件从互联网发送到你的内部网的邮件服务器(MX)时进行的反向DNS查询匹配。
它可以是一个完全限定的主机名或主机名的域部分,换言之,如果连接到你的邮件服务器(MX)的主机的IP可以被反向解析为“sendinghost.spamassassin.org”,那么你可以写为sendinghost.spamassassin.org或spamassassin.org。
注意,这需要你的internal_networks被正确配置。
简言之,除非在一个复杂的网络里,设置这个参数可以得到不错的效果。
同时,也要求你的邮件服务器(MX)可以对连接进来的服务器的IP地址进行反向查询,且将查询结果记录在“Recevied”信头中。
范例:
whitelist_from_rcvdjoe@
whitelist_from_rcvd*@axkit.orgsergeant.org
def_whitelist_from_rcvdjoe@
def_whitelist_from_rcvd邮件列表地址中继服务器的反向解析名
类似于whitelist_from_rcvd,但是它用于在SpamAssassin发行包中指定默认白名单。
这个白名单的评分较低,它常常是垃圾邮件发送者假称的地址。
whitelist_allows_relaysjoe@
whitelist_allows_relays邮件地址
指定whitelist_from_rcvd中的哪些邮件地址可以不使用white_from_rcvd中对应的邮件中继发信,而使用其它的中继服务器发信。
默认情况下,发信地址在white_from_rcvd中,但是中继服务器却不是列出的那个,这种情形会触发一个测试伪造的规则。
将该地址放入到white_allows_relay中防止触发。
白名单和黑名单都可以使用通配符。
如friend@,*@,或*都是可以的。
需要注意的是只支持*和?
(匹配单个字符),不支持其他的元字符匹配。
由于安全的原因,这里不支持正则表达式。
可以在一行中使用空格分隔写入多个邮件地址,也可以使用多个whitelist_allows_relays行来指定。
这里列出的邮件地址不必被前面的whitelist_from_rcvd所完全匹配,它只需要匹配信头中的地址就行。
范例:
whitelist_allows_relaysjoe@fred@
whitelist_allows_relays*@
unwhitelist_allows_relaysjoe@
unwhitelist_from_rcvd邮件地址
它用于覆盖whitelist_from_rcvd选项。
举例说,SpamAssassin发行包中的默认whitelist_from_rcvd能够被local.cf中的这个选项覆盖,或者用户也可以在他的user_prefs中使用这个选项来覆盖whitelist_from_rcvd。
所匹配的地址也必须同样被前面的whitelist_from_rcvd选项所匹配。
范例:
unwhitelist_from_rcvdjoe@fred@
unwhitelist_from_rcvd*@axkit.org
blacklist_fromjoe@
blacklist_from邮件地址
它用于指定那些通常被漏判为正常邮件的垃圾邮件发送地址。
格式与whitelist_from相同。
unblacklist_fromjoe@
unblacklist_from邮件地址
它用于覆盖blacklist_from选项。
举例说,SpamAssassin发行包中的默认blacklist_from能够被local.cf中的这个选项覆盖,或者用户也可以在他的user_prefs中使用这个选项来覆盖blacklist_from。
所匹配的地址也必须同样被前面的blacklist_from选项所匹配。
范例:
unblacklist_fromjoe@fred@
unblacklist_from*@
whitelist_tojoe@
whitelist_to邮件地址
如果给定的地址出现在信头中的收信人那里(Resent-To,To,Cc,明显的信封收件人等),邮件将作为正常邮件处理。
它常用于整个站点使用了SpamAssassin但是某些用户不希望他们的任何邮件被过滤。
与whitelist_from的格式相同。
有三个级别的接收白名单:
whitelist_to、more_spam_to和all_spam_to。
在第一个接收白名单中的用户仍然可能会被过滤一些垃圾邮件,但是在all_spam_to的用户不会被过滤任何垃圾邮件。
白名单信头检查将按照如下顺序,如果设置了Resent-To或Resent-Cc就使用它们;否则检查来自下列信头中的全部地址:
To
Cc
Apparently-To
Delivered-To
Envelope-Recipients
Apparently-Resent-To
X-Envelope-To
Envelope-To
X-Delivered-To
X-Original-To
X-Rcpt-To
X-Real-To
more_spam_to邮件地址
参见上面。
all_spam_to邮件地址
参见上面。
blacklist_to邮件地址
如果给定的地址出现在信头的收件人中(Resent-To,To,Cc,明显的信封收件人等),邮件将被作为垃圾邮件处理。
与blacklist_from的格式相同。
whitelist_auth邮件地址
它用于指定通常被误判为发送的垃圾邮件的发信地址。
与whitelist_from和whitelist_from_rcvd不同的是,在监测白名单前会首先会检查邮件是否是授权的发信人。
授权检查是通过安装的发信人授权检查模块之一进行的:
SPF(使用Mail:
:
SpamAssassin:
:
Plugins:
:
SPF)、DomainKeys(使用Mail:
:
SpamAssassin:
:
Plugins:
:
DomainKeys)或DKIM(使用Mail:
:
SpamAssassin:
:
Plugins:
:
DKIM)。
注意,使用这个选项前这些插件必须激活并可以正常工作。
使用whitelist_auth基本上等同于使用whitelist_from_spf、whitelist_from_dk和whitelist_from_dkim来指定每个发信地址。
范例:
whitelist_authjoe@fred@
whitelist_auth*@
def_whitelist_auth邮件地址
类似于whitelist_auth,但是它用于在SpamAssassin发行包中指定默认白名单。
这个白名单的评分较低,它常常是垃圾邮件发送者假称的地址。
unwhitelist_auth邮件地址
用于覆盖whitelist_auth项。
所匹配的地址也必须同样被前面的whitelist_auth选项所匹配。
范例:
unwhitelist_authjoe@fred@
unwhitelist_auth*@
E.3、基本消息标记选项
rewrite_headerSubject********SPAM********
rewrite_header{subject|from|to}标记字符串
默认情况下,SpamAssassin不会对那些被判定为垃圾邮件的信件主题、发信人和收信人等信息进行修改,以标识其是垃圾邮件。
如果设置了这个选项,信件主题、发信人和收信人会被加上特定的字符串来表明该邮件是垃圾邮件。
对于发信人和收信人的修改是在地址后面增加一个括在括号里面的RFC2822格式的注释;对于信件主题的修改则是在原先的主题前添加。
注意,在report_safe设置为0时,你只能使用_REQD_和_SCORE_标记来重写信件主题,否则你也许不能通过正常的方式去掉SpamAssassin的标记。
关于标记的更多信息可以参见下面的模板标记部分。
在重写发信人和收信人时,字符串不能包含圆括号(会被转换为方括号)。
如果使用rewrite_headersubject,但是被重写的邮件没有包含Subject信头,会自动添加一个Subject信头。
如果标记字符串指定为空,任何已有的重写将从信头里去掉。
add_header{spam|ham|all}信头名字符串
可以对各种类型的信件(垃圾邮件、正常邮件和全部邮件)增加SpamAssassin的定制信头。
所有的定制信头都会以X-Spam-开始(如信头Foo将显示为X-Spam-Foo)。
信头只能使用下列字符:
所有的大小写英文字符、所有的数字和下划线及中划线。
([A-Za-z0-9_-])。
字符串中可以包含下面描述的模板标记。
如果需要的话,还可以使用\n和\t来增加回车符和制表符。
使用\\来表示一个反斜线字符。
其它的转义字符无效,只被简单的去掉反斜线。
如果fold_headers被设置为1,所有的信头会被折叠起来(即通过行首空格进行续行,以避免较长的行)。
但是注意,通过\n手工换行的信头将不会被自动折叠(即可能会出现很长的信头),即使这个信头需要折叠起来。
你能够通过add_header来定制已有的信头(仅指定要修改的信件子集)。
清除全部的定制信头请参见clear_headers。
以下是一些例子(这些是默认增加的,注意Checker-Version不能修改或删除):
add_headerspamFlag_YESNOCAPS_
add_headerallStatus_YESNO_,score=_SCORE_required=_REQD_tests=_TESTS_autolearn=_AUTOLEARN_version=_VERSION_
add_headerallLevel_STARS(*)_
add_headerallChecker-VersionSpamAssassin_VERSION_(_SUBVERSION_)on_HOSTNAME_
remove_header{spam|ham|all}信头名
可以删除各种类型的信件(垃圾邮件、正常邮件和全部邮件)中的SpamAssassin的定制信头,这些信头是以X-Spam-开头的(所以这里指定信头名时应该前缀以X-Spam-)。
清除全部的定制信头请参见clear_headers。
注意,X-Spam-Checker-Version信头是不能删除的,因为邮件管理员和开发人员需要使用它来诊断问题。
如果没有这个信头,甚至都不知道SpamAssassin是否在运行。
clear_headers
清空全部的SpamAssassin定制信头。
你可以在任何的add_header前使用这个,以防止默认的SpamAssassin信头被添加到信头中。
注意,X-Spam-Checker-Version信头是不能被删除的,因为邮件管理员和开发人员需要使用它来诊断问题。
如果没有这个信头,甚至都不知道SpamAssassin是否运行。
report_safe1
report_safe(0|1|2)(默认值:
1)
如果这个选项被设置为1,当收到的信件被判定为垃圾邮件时,不修改原信件,而是创建一个新的报告信件,并且将原信件作为一个RFC822格式的附件附上(确保原信件保持原样,不直接打开,且
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux下架设邮箱 进阶篇spamassassin linux 架设 邮箱 进阶 spamassassin