配置 Sendmail 防范垃圾邮件
Sendmail 是 Red Hat Linux 以及大多数类 UNIX 操作系统的邮件传送代理,因此它是目前配置最广泛的邮件服务器。下面以 Red Hat Enterprise Linux 6 使用的 Sendmail 为例,介绍应对垃圾邮件的几种具体方法。其他开源邮件服务器防范垃圾邮件的配置,也可以参考本节的介绍进行配置。
关闭 Sendmail 的 Relay 功能
所谓 Relay 就是指别人能使用提供该功能的 SMTP 邮件服务器给任何人发信,这样别有用心的垃圾发送者就可以使用这台邮件服务器大量发送垃圾邮件,而最后别人投诉的不是垃圾发送者,而是这台服务器,因此必 须关闭 Relay 这项功能。其方法就是,到 Linux 服务器的 /etc/mail 目录编辑 access 文件,去掉“*relay”之类的设置,只留“localhost relay”和“127.0.0.1 relay”两条即可。最后特别注意,修改 access 文件后还要使用命令使修改生效:
#makemap hash access.db < access
在 Sendmail 中添加 RBL 功能
RBL(Realtime Blackhole List)是实时黑名单。国外有一些机构提供 RBL 服务,常用的 RBL 服务器地址有 relays.ordb.org、dnsbl.njabl.org、bl.spamcop.net、sbl.spamhaus.org、 dun.dnsrbl. net 和 dnsbl.sorbs.net。查询和删除 RBL 中的 IP 地址可以到 和 。RBL 将收集到的专发垃圾邮件的 IP 地址加入他们的黑名单,只要在 Sendmail 中加入 RBL 认证功能,就会使邮件服务器在每次收信时都自动到 RBL 服务器上去查实,如果信件来源于黑名单,则 Sendmail 会拒收邮件,从而使用户少受垃圾邮件之苦。在 Sendmail 中添加 RBL 认证,需要对 sendmail.mc 添加以下内容:
FEATURE(`dnsbl',`relays.ordb.org',` ″ Email blocked using ORDB.org - see ″')
最后执行“m4 sendmail.mc>sendmail.cf”和“service sendmail restart”两条命令,使有关 Sendmail 的修改生效。
服务器使用 SpamAssasin 防治垃圾邮件
SpamAssasin 是一个邮件过滤器,它部署在邮件服务器端,可以使用一系列的机制来确认垃圾邮件,这些机制包括:文本分析、Bayesian (贝叶斯判决规则)过滤、DNS 数据块列表,以及合作性的过滤数据库。SpamAssasin 并不能删除垃圾邮件,但它却可以阻止垃圾邮件。究其原因,主要在于它有如下一些特性:
适用范围广:SpamAssasin 使用大量的本地和网络的测试来确认垃圾邮件特征。这使得垃圾邮件制造者在明确其制造的信息的可工作性时增加了难度。
自由软件,应用广泛:与其它流行的开源软件一样,爱好者可以广泛的应用和修改、发布,应用前景很好。
易于扩展:SpamAssasin 将反垃圾测试和配置信息存储在纯文本中,这使得配置和增加新的规则相当容易。
灵活性:SpamAssasin 将其逻辑封装在一个设计精良的、抽象化的 API 中,因此它可被集成到电子邮件数据流中的任何地方。SpamAssasin 可被用于多种电子邮件系统中,其中包括:Procmail、Sendmail、Postfix、Qmail 等。
易于配置:SpamAssasin 几乎不需要用户的配置。用户不必用邮件帐户或邮件列表的成员资格详细信息来不断地更新 SpamAssasin 配置。一旦分类,站点和用户规则就可以被运用于垃圾邮件。而且规则可以适用于邮件服务器,并且在以后又可以使用用户自己的邮件用户代理应用程序。
SpamAssasin 包括 spamd 守护进程和 spamc 客户端。虽然它包括 SpamAssasin 实用工具,但 SpamAssasin 文档建议使用 spamc 而非 SpamAssasin 来过滤邮件,因为 spamc 比 SpamAssasin 加载得更快。当 SpamAssasin 单独工作时,spamc 调用 spamd。spamd 守护进程派生子进程 ; 当 spamd 运行时,ps 除了显示 spamd 父进程外还显示几个 spamd 子进程:
# ps -ef | grep spam
root 4254 1 0 14:17 ? 00:00:02 /usr/bin/spamd -d -c -m5 -H -r ...
root 4256 4254 0 14:17 ? 00:00:00 spamd child
root 4257 4254 0 14:17 ? 00:00:00 spamd child
root 4689 4662 0 16:48 pts/1 00:00:00 grep --color=auto spam
spamc 实用工具是一个过滤器:它从标准输入读取每个电子邮件,发送电子邮件到 spamd 进行处理,并把修改后的电子邮件写入到标准输出。spamd 守护进程使用多种技术来识别垃圾邮件:
Headeranalysis(标题分析):检查疑似垃圾邮件的标题,有些垃圾邮件被人采用某种技巧处理后,可能会被误认为是合法的电子邮件。
Text analysis(文本分析):检查电子邮件正文中的垃圾邮件特征。
Blacklists(黑名单):检查名单,看看发件人是否在现有垃圾邮件发送者列表中。
Database(数据库):检查针对 Vipul ’ s Razor(razor.sourceforge.net)的邮件签名,它是一个垃圾邮件跟踪数据库。
可以设置邮件服务器上的 SpamAssassin,以使它处理传递到本地系统的所有电子邮件,然后再发送到用户。另外,每个用户可以从他们的邮件客户端运行 SpamAssassin。无论哪种方式,本地系统必须运行 spamd,并且必须通过这个守护进程使用 spamc 过滤每封电子邮件。