当前知名的RBL除了STM内嵌的Spamhaus等,在中国,还有由中国反垃圾邮件联盟收集的CBL、CBL+ 等,这些列表可供用户免费进行查询。
以下简单介绍一下RBL的工作原理。
RBL组织将开放的SMTP中继(邮件服务器)的公网IP地址作为一个开放的域名,冠在RBL组织的域名前作为二级 / 三级子域名,以供用户进行查询。不过SMTP中继的公网IP被以反写的方式进行重写,如58.62.221.130的SMTP服务器,在RBL的域名中则会被反写为130.221.62.58。(这与域名的读取顺序有关,在此不做详细解释。)
当用户查询RBL时,则会向RBL服务器发送DNS解析请求包,目的地址为包括了查询IP地址在内的完整的域名。举个例子,假设有RBL服务器域名为RBL.com。当用户要查询58.62.221.130的SMTP服务器地址是否存在于RBL.com中时,用户会向130.221.62.58.rbl.com发送DNS请求。若RBL.com中存在相关的条目,则会以127.0.0.X的回环地址向用户回复相应的DNS请求。若IP地址不存在RBL.com中,则RBL会向用户返回unknown host的提示(表示DNS请求失败,无法解析)。通过这种低带宽高效率的查询方式,用户可以在短时间内向RBL查询大量的数据,从而达到阻止垃圾邮件的目的。
STM的RBL功能设置
在STM上开启RBL功能、增加RBL提供商都相当方便,如下图所示:

STM的RBL功能没有太多的设置,只需要点击相应的Enable按钮即可完成。
RBL工作质量检查
STM RBL功能在工作中可能需要我们对其工作质量进行判断,既然RBL是通过DNS查询来进行工作的,那么我们也可以通过nslookup或者ping命令来判断RBL的工作状态。个人比较推荐用ping来检查,结果直观易懂。以下几个RBL的工作状态图供参考:

图A:被RBL判断为垃圾邮件的IP地址
注意其中的返回地址是127.0.0.4这种回环地址。

图B:被RBL判断为正常邮件的IP地址
值得注意的是,当某些DNS或者路由被重定向时,有可能出现某些设备代替了RBL站点(如spamhaus.org)进行应答。这时STM会因为从INTERNET上返回正常的ICMP应答而误认为此IP地址出现在RBL中而出现误判。所以这就需要我们在设置STM系统的时候配置上一个比较稳定的DNS服务器地址(如美国的208.67.222.222 / 208.67.220.220等)。也需要我们在判断RBL时及时发现其中的异常。如下图中的红色字体!

图C:当DNS或者路由被重定向而导致返回值出现异常的现象
在上图中,我们可以很清晰地看到,虽然返回值是正常应答,但是应答的IP地址并非来自spamhaus.org,而是另外的IP地址!
总结
RBL作为传统的垃圾邮件过滤技术,是大量的防垃圾邮件组织的心血结晶,对防御垃圾邮件起到了一定的作用。但是由于其技术本身的局限性,误杀漏杀均不是十分理想。在我们的STM内容安全网关平台上,我们建议以NETGEAR的垃圾邮件云分布技术为主导,将RBL作为一种辅助技术而进行配合使用。
