斩断Linux邮件服务器的垃圾邮件魔掌
通过SpamAssasin遏止垃圾邮件
当今世界,垃圾邮件继续横行,而且日益成为一个严重的问题,因为垃圾邮件制造者也变得越来越聪明了,所以防止垃圾邮件对任何运行邮件服务器的人来说都是一件非常必要的事情。对于使用Linux的单位来说,现在就有一个杰出的防止垃圾邮件的工具:SpamAssasin 。现在我们就看一下如何通过SpamAssasin遏止垃圾邮件。
认识SpamAssassin
SpamAssasin是一个邮件过虑器,它可以使用一系列的机制来确认垃圾邮件,这些机制包括:文本分析、Bayesian (贝叶斯判决规则)过虑、DNS数据块列表,以及合作性的过虑数据库。SpamAssasin并不能删除垃圾邮件,但它却可以阻止垃圾邮件。究其原因,主要在于它有如下一些特性:
活动范围宽:SpamAssasin使用大量的本地和网络的测试来确认垃圾邮件特征。这使得垃圾邮件制造者在明确其制造的信息的可工作性时增加了难度。
自由软件:与其它流行的开源软件(如Apache Web Server)一样,在相同的条件下发行。
易于扩展:反垃圾测试和配置信息存储在纯文本中,这使得配置和增加新的规则相当容易。
灵活性:SpamAssasin将其逻辑封装在一个设计精良的、抽象化的API中,因此它可被集成到电子邮件数据流中的任何地方。SpamAssasin可被用于多种电子邮件系统中,其中包括:procmail,sendmail,Postfix, qmail等。
易于配置:SpamAssasin几乎不需要用户的配置。你不必用邮件帐户或邮件列表的成员资格详细信息来不断地更新SpamAssasin配置。一旦分类,站点和用户规则就可以被运用于垃圾邮件。而且规则可以适用于邮件服务器,并且在以后又可以使用用户自己的邮件用户代理应用程序。
SpamAssasin通常被认为是最好的垃圾邮件过滤器之一。本文将引导您安装、配置和使用这个强大的工具。
获取并安装SpamAssasin
作为一个Linux应用程序,有各种各样的方法安装SpamAssasin。下面是一个安装方法的简单列表:
Debian unstable:apt-get install spamassassin
Gentoo: emerge mail-filter/spamassassin
Fedora: yum install spamassassin
用户可从SpamAssasin(?update=200702131100)下载相关文档。文件准备好后,在控制台提示符下输入如下的命令: untar/unzip the file
cd into the newly created directory
perl Makefile.PL
OPTION: Add -DSPAMC_SSL to to build an SSL-enabled spamc]
make
make install [as root]
在INSTALL文件内有相当多的特定发布规则和从属规则。因此要在安装之前完整地阅读此文件。
为在系统范围内的使用进行安装
为在系统范围内的使用进行安装的一个最好理由是你不必更改用户的procmailrc文件。这可能会成为一个令人头痛的问题,这依赖于你所拥有的用户的数量。由于这个过程会从理论上破坏用户的电子邮件,把它放在一个试验性的环境中运行测试是很明智的。
编辑配置文件
配置
就像大多数Linux应用程序一样,SpamAssasin需要对配置文件的编辑。这个配置文件位于/etc/mail/spamassassin/ ,名为local.cf。在你手动编辑配置文件之前,可注意一下,Michael Moncur 已经编写的一个出色的工具SpamAssassin Configuration Generator,它可以帮助用户创建local.cf文件。不过,这个工具目前只能在SpamAssasin 3.x中工作。
这个工具提供基于web的选项套件,可以帮助用户创建自己的配置文件。在选取了Mr. Moncur 创建的简单选项后,按下“Generate”: # Generated by (version 1.50)
# 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
下面对我们逐一分析:
Score Threshold(评价界限 ): threshold的值越低,就会有更少的邮件通过。默认值为6。不过你要注意:如果你将此项设置过低,一些合法的电子邮件也会被当作垃圾邮件加以阻止。
Rewrite Message Subjects(重写消息主题):通过这个选项,你可以配置SpamAssassin用你选择的任何对象来编辑电子邮件的主题行。默认值设置为:*****SPAM*****
Use Auto Learning(使用自动学习): SpamAssassin可以通过分析具有一定评价的消息,去自动化地整理其Bayes(贝叶斯)数据库,这个评价强烈地显示了消息是垃圾还是非垃圾消息。
Enable RBL Checks(启用RBL检查):选择SpamAssassin是否应使用RBLS(DNS黑名单)。这有助于检测难于检测的垃圾信息,但需要消耗一些时间、网络带宽以及一个可用的DNS服务器。
Use Network Checksum Tests(使用网络检查和检验):选择是否使用将消息检查和(Checksum)与已知的垃圾邮件相比较的服务:这些服务有:Vipul's Razor 2.x、 DCC、 Pyzor等,不过只有当每种服务的客户端软件安装时这些服务才能正常工作。(即通过use_razor2, use_dcc, use_pyzor进行)。
Languages(语言):最后两种配置是关于语言的,第一个是哪些语言应检查。默认选项是所有的语言。笔者建议您不要修改。
如果你使用Mr.Moncur的应用程序创建你的.cf文件,请将其存放在/etc/mail/spamassassin/ ,然后启动spamassassin应用程序。要想运行spamassassin,必须以根用户身份运行如下的命令:
/etc/rc.d/init.d/spamassassin start