2007年7月12日星期四

中国电信DNS骑劫的严重后果

反垃圾邮件的一个比较通用的做法是使用“实时黑名单”- RBL(Realtime Blackhole List),由一些比较著名的组织提供,列出了全世界主要的垃圾邮件发送地的IP地址,每次当邮件服务器收到一封邮件时,将发送地的IP地址向RBL查询,就知道是否为垃圾邮件了。

其主要原理是基于DNS查询,比如中国反垃圾邮件联盟的一个RBL是cbl.anti-spam.org.cn,邮件服务器如果想判断某个IP,如a.b.c.d是否给他收录,就拿着d.c.b.a.cbl.anti-spam.org.cn做一次域名查询,如果可以返回IP地址(一般是127.0.0.4之类的),就说明是垃圾邮件发源地,如果返回Host Not Found,就说明不是。这在正常情况下是很好的一个方法,既可以是集中式服务,又通过域名服务,把服务分布到各地的DNS服务器上,不会造成主服务器过载。当然,不要忘记,我们有中国电信。

中国电信为了推广告,在什么“极速星空”、骑劫http协议之外,还骑劫了DNS,如果你在浏览器输入了一个不存在的DNS,正常情况本来是会显示无法找到服务器,原因是正常的DNS服务器会返回Host Not Found的信息,但是,电信的不会,它会给你返回一个它的广告服务器的地址,这样就会在浏览器显示出一个充满电信广告的“你访问的页面不存在”的网站。

所以,如果邮件服务器使用的是电信的DNS服务器,“实时黑名单”功能马上就傻眼了,因为所有的IP都不会返回Host Not Found,所有的邮件发送地都是垃圾邮件了。

还好,米国的雷锋给我们提供了OpenDNS 一个非常好的DNS服务,只要把DNS服务器设成:

  • 208.67.222.222
  • 208.67.220.220
就可以摆脱电信的DNS魔爪了。当然,哪天电信把它给和谐了也不一定,或者干脆一不做二不休,直接在网络层改DNS的内容,那我们也没办法了,移民吧。