垃圾邮件问题已经极大地消耗了网络资源,并给人们带来了极大的不便。据中国互联网协会(ISC)反垃圾邮件状况调查显示,中国邮件用户平均每人每天收到邮件17封,占收到邮件总数的70%以上。
目前,垃圾电子邮件已成为人们最头疼的问题之一。在Linux操作系统平台中,反击和过滤垃圾电子邮件是一件很重要的工作。下面介绍一些在Linux中广泛使用的防垃圾邮件技术。
常见的垃圾邮件防范技术
SMTP用户认证技术
目前常见并十分有效的方法是,在邮件传送代理MTA上对来自本地网络以外的互联网的发信用户进行SMTP认证,仅允许通过认证的用户进行远程转发。这样既能够有效避免邮件传送代理服务器为垃圾邮件发送者所利用,又为出差在外或在家工作的员工提供了便利。如果不采取SMTP认证,那么在不牺牲安全的前提下,设立面向互联网的Web邮件网关也是可行的。此外,如果SMTP服务和POP3服务集成在同一服务器上,在用户试图发信之前对其进行POP3访问验证(POP before SMTP)就是一种更加安全的方法,但在应用的时候要考虑到当前支持这种认证方式的邮件客户端程序还不多。
逆向DNS解析
无论哪一种认证,其目的都是避免邮件传送代理服务器被垃圾邮件发送者所利用,但对于发送到本地的垃圾邮件仍然无可奈何。要解决这个问题,最简单有效的方法是对发送者的IP地址进行逆向名字解析。通过DNS查询来判断发送者的IP与其声称的名字是否一致,例如,其声称的名字为mx.hotmail.com,而其连接地址为20.200.200.200,与其DNS记录不符,则予以拒收。这种方法可以有效过滤掉来自动态IP的垃圾邮件,对于某些使用动态域名的发送者,也可以根据实际情况进行屏蔽。但是上面这种方法对于借助Open Relay的垃圾邮件依然无效。对此,更进一步的技术是假设合法的用户只使用本域具有合法互联网名称的邮件传送代理服务器发送电子邮件。例如,若发件人的邮件地址为someone@yahoo.com,则其使用的邮件传送代理服务器的Internet名字应具有yahoo.com的后缀。这种限制并不符合SMTP协议,但在多数情况下是切实有效的。需要指出的是,逆向名字解析要进行大量的DNS查询。
配置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地址可以到http://openrbl.org/和http://ordb.org。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的修改生效。