6、服务器端使用SpamAssasin防治垃圾邮件
1.SpamAssasin简介
SpamAssasin是一个邮件过滤器,它可以使用一系列的机制来确认垃圾邮件,这些机制包括:文本分析、Bayesian (贝叶斯判决规则)过滤、DNS数据块列表,以及合作性的过滤数据库。SpamAssasin并不能删除垃圾邮件,但它却可以阻止垃圾邮件。究其原因,主要在于它有如下一些特性:
? 适用范围广:SpamAssasin使用大量的本地和网络的测试来确认垃圾邮件特征。这使得垃圾邮件制造者在明确其制造的信息的可工作性时增加了难度。
? 自由软件,应用广泛:与其它流行的开源软件一样,爱好者可以广泛的应用和修改、发布,应用前景很好。
? 易于扩展:SpamAssasin将反垃圾测试和配置信息存储在纯文本中,这使得配置和增加新的规则相当容易。
? 灵活性:SpamAssasin将其逻辑封装在一个设计精良的、抽象化的API中,因此它可被集成到电子邮件数据流中的任何地方。SpamAssasin可被用于多种电子邮件系统中,其中包括:procmail、sendmail、Postfix、qmail等。
? 易于配置:SpamAssasin几乎不需要用户的配置。用户不必用邮件帐户或邮件列表的成员资格详细信息来不断地更新SpamAssasin配置。一旦分类,站点和用户规则就可以被运用于垃圾邮件。而且规则可以适用于邮件服务器,并且在以后又可以使用用户自己的邮件用户代理应用程序。
2.安装SpamAssasin
可以在网站上http://spamassassin.apache.org/downloads.cgi下载SpamAssasin的最新版本进行安装,目前其最新版本为3.2.5,具体的安装步骤如下所示:
(1)解压缩软件包
#tar xzvf Mail-SpamAssassin-3.2.5.tar.gz
(2)进入目录进行安装
#./configure
#make & make install
3.配置与启动SpamAssasin
就像大多数Linux应用程序一样,SpamAssasin需要对配置文件的编辑。这个配置文件的路径是:/etc/mail/spamassassin/local.cf。下面给出了一个配置该文件的示例:
# How many hits before a message is considered spam.
required_score 7.5
# Change the subject of suspected spam
rewrite_header subject [SPAM]
# Encapsulate spam in an attachment (0=no, 1=yes, 2=safe)
report_safe 1
# Enable the Bayes system
use_bayes 1
# Enable Bayes auto-learning
bayes_auto_learn 1
# Enable or disable network checks
skip_rbl_checks 0
use_razor2 1
use_dcc 1
use_pyzor 1
# Mail using languages used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_languages all
# Mail using locales used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_locales all
其中,主要包括如下几个重点项需要进行设置:
required_score(评价阈值):设定该阈值通常情况下需要根据管理员的长期经验。阈值越低,就会有更少的邮件通过,因而将正常邮件误报为垃圾邮件的概率越高;阈值越高,则有可能将更多的垃圾邮件漏报为正常邮件,通常的默认值为5。
Rewrite header Subjects(重写消息主题):通过这个选项,用户可以配置SpamAssassin用你选择的任何对象来编辑电子邮件的主题行。默认值设置为:[SPAM]
bayes_auto_learn(使用自动学习):SpamAssassin可以通过分析具有一定评价的消息,去自动化地整理其Bayes(贝叶斯)数据库,这个评价强烈地显示了消息是垃圾还是非垃圾消息。
Enable or disable network checks(使用网络检查和检验):选择是否使用将消息检查和(Checksum)与已知的垃圾邮件相比较的服务:这些服务有:Vipul's Razor 2.x、 DCC、 Pyzor等,不过只有当每种服务的客户端软件安装时这些服务才能正常工作。(即通过use_razor2, use_dcc, use_pyzor进行)。另外,该选项中还包括了Enable RBL Checks(启用RBL检查),即选择SpamAssassin是否应使用RBLS(DNS黑名单)。这有助于检测难于检测的垃圾信息,但需要消耗一些时间、网络带宽以及一个可用的DNS服务器。
Languages(语言):最后两种配置是关于语言的,第一个是哪些语言应检查,默认选项是检查所有的语言,建议不要修改。
在成功配置好spamassassin后,需要启动spamassassin应用程序。要想运行spamassassin,必须以根用户身份运行如下的命令:
#/etc/rc.d/init.d/spamassassin start 4.与qmail协同工作
你的spamassassin已经启动并正常运行,现在需要设置它与邮件传输代理(Mail Delivery Agent)一起工作。本文介绍它与qmail协同工作的设置,因为qmail是在Linux环境中应用最广泛的邮件传输代理。
用户需要编辑/etc/mail/spamassassin/spamc.cf文件,并增加如图9所示的内容:
现在senmail被设置为使用SpamAssassin来评价和过滤进入的垃圾邮件。