利用灰名单(greylisting)阻止垃圾邮件
防止垃圾邮件是一件复杂的事情,而且可能比大多数用户所理解的更复杂。尽管在这场战争中有几件武器可用,但它们都有其局限性。了解一个被称为灰名单(greylisting)的新方法可以帮助在垃圾邮件到达smtp服务器之前阻止它。
如果你问十个人他们在Internet上遇到的最令人沮丧的事情是什么,我敢打赌其中九个人会提到电子邮件。尽管Internet上确实还有其他安全问题,但是有好几个Internet安全问题都涉及到了电子邮件。
并不意外的是通常许多危及Windows系统安全的病毒和木马程序都具有能够将自己假扮成电子邮件代理的特性。垃圾邮件就是重要的一类,而且不幸的是它在Internet中横行的现状很有可能继续下去。
类似许多Internet应用协议,简单邮件传输协议(SMTP)的设计初衷并没有考虑到安全。作为补充,开发者只是在这些年简单地扩展了smtp的安全特性。
然而,保护电子邮件系统的自身安全和防止垃圾邮件是两个不同的问题。需要记住的是Internet上的大部分电子邮件通信都是危及宽带网络中Windows PC安全的垃圾邮件,而不会危及公司的邮件服务器的安全。
尽管广告邮件的发送者从肆无忌惮的广告中赚取了数百万,但是垃圾邮件对所有使用Internet的人来说都是占用时间,耗费带宽,因此也就浪费金钱。作为证明,只需考察商业垃圾邮件过滤服务的市场,就足以明白有多少用户认为垃圾邮件是Internet上最令人头疼的问题。
但是阻止垃圾邮件是一件复杂的事情,可能比大多数用户所认为的都要复杂。而且即使是模式匹配和基于统计的邮件内容过滤都有其自身的缺陷。除此之外,根据我曾经多次使用实时黑名单(relay block lists ,RBL)和过滤器的经验,某个人的垃圾邮件对另一个人却成了合法邮件。这主要归结于确实没有能够阻止垃圾邮件的单独自动有效的解决方案。
当然,这并不是说目前的方法没有效果;只是它们的效果不是非常理想,或者说没有达到我们的预期。和Internet的任何其他安全领域一样,电子邮件安全(或者是本文中的垃圾邮件预防)当分层应用的时候效果最好。安全分层越细,整体的安全保护就变得越有效。
每种方法都有其局限性。例如,“黑名单”和“白名单”实施起来冗长乏味。他们需要用户的大量操作,但是如果你的列表是准确的,他们相当有效。
尽管我们付出了大量的努力,但是垃圾邮件好像总是能找到某个方法进入我们的收件箱,而有时甚至合法的邮件都进不来。但是放弃希望还为时尚早:一个对付垃圾邮件的新方法,也就是所谓的“灰名单”被证明是一个预防垃圾邮件的有效方法,它可以在垃圾邮件到达目的smtp服务器之前阻止它们。
除了有助于预防垃圾邮件,灰名单还可以弥补另一个smtp的缺陷:该协议无法区分邮件服务器和邮件客户端。
灰名单尝试在SMTP服务器和邮件客户端之间建立这种特殊差别。通过这样做,它可以有效地阻止垃圾邮件代理。虽然邮件服务器和邮件客户端都利用SMTP,但是合法的专用smtp系统能够识别特定的返回代码。
SMTP是典型的“存储转发”系统,排列电子邮件直到发送出去。一个启用了灰名单的smtp服务器记录它收到连接的信息,并且返回一个状态代码告诉一个连接中的计算机,它暂时无法接受电子邮件。
一个合法的电子邮件系统“对话”SMTP-例如,微软Outlook或某个运行微软Exchange的电子邮件服务器,Sendmail,或其他SMTP服务器软件-将再次尝试传送邮件。也就是说,启用了灰名单的smtp服务器将通过该消息。
当有效的SMTP连接再次尝试发送电子邮件,由于启用了灰名单的服务器将从前一次的尝试中匹配IP地址,以及MAIL FROM和RCPT TO smtp头字段中的信息,服务器就不会阻挡有效的消息。如果它们是匹配的,服务器就接受该邮件。灰名单通常灰直接拒绝垃圾邮件代理,因为这些代理不保存邮件。
然而,发送广告邮件的人正在适应灰名单,所以这样做将很难一直有效。但是因为灰名单记录发送和接受电子邮件地址的同时,也记录IP地址,所以进一步扩展灰名单以监视这类信息并采用相应策略是可能的。例如,一个应用了灰名单的smtp服务器可以监视不存在的“种子”用户的连接,然后用这些识别垃圾邮件代理和源IP地址。
所以你可以向何处求助以满足你的灰名单需求呢?虽然Postfix SMTP服务器包含了一个简单的灰名单应用,但是称为Postgrey的具有产品级质量的系统对电子邮件系统是一个更好的选择。然而,由于灰名单是一个应用在SMTP服务器级的功能,并且考虑到它是一个新方法,所以你可能不会看到灰名单内嵌在你的smtp服务器中。
在某些情况下,在目前的smtp服务器中用Postfix和电子邮件接收中继“前端化”你现有的电子邮件服务器。这可以使你无需对现有的电子邮件服务器做任何的变动就可以使用灰名单。
实际上,我已经为运行在公司环境中的许多微软Exchange和Lotus Domino服务器应用了Postgrey,这些公司曾经不堪垃圾邮件之苦。在利用多余的空间在常用的PC硬件中安装了Fedora Linux之后,只需15分钟就可以配置好Postfix和Postgrey以使它们和现有的smtp服务器共同工作,只需对现存的基础架构稍做调整就可以提供灰名单的所有特性。