2007年3月15日

ISP 劫持域名致 RBL 误判

Author: Hagen.GoO 转载请联系作者
MSN_contact: wantm009@hotmail.com
Keyword:域名劫持,电信,网通,RBL,垃圾邮件,antispma
Quote:


  上海的朋友在 MSN 上向我抱怨,说我推荐的邮件服务器不灵光,启用 RBL 的 AntiSpam 策略以后,全部邮件都被识别为垃圾邮件了。并举证了 Yahoo Mail 到他邮件服务器的发送情况。

SMTPD(10A800C8) [202.165.103.238] MAIL FROM:
SMTPD(10A800C8) [202.165.103.238] RCPT TO:
SMTPD(10A800C8) [202.165.103.238] d:\IMail\spool\Df46810a800c86908.SMD 1534
SMTPD(10A800C8) performing antispam checks
SMTPD(10A800C8) [00003356] BLACKLIST: connecting to service (sorbs.net:*:dnsbl.sorbs.net)
SMTPD(10A800C8) [00003356] BLACKLIST: 202.165.103.238 was found on list (sorbs.net:*:dnsbl.sorbs.net)
SMTPD(10A800C8) [00003356] message failed check which was marked as trusted, deleting

  在上述,他给我的一段 MTA Log 中,可以清楚了解到:
    1、Yahoo Mail 的 SMTP OUT 服务器地址是 202.165.103.238。
    2、本地使用的 RBL 是 dnsbl.sorbs.net。

  首先确认一下 202.165.103.238 这个地址是否真是 Yahoo 的,利用 Ping -a 得到带有 Yahoo Mail 字样相关的主机名,再 Ping 该主机名,得到相同 IP,这完全就能证明这个 IP 确属 Yahoo,从理论上说,Yahoo 的 IP 被加入 RBL 列表的可能性不大。

D:\>ping -a 202.165.103.238
Pinging web15815.mail.cnb.yahoo.com [202.165.103.238] with 32 bytes of data:
Reply from 202.165.103.238: ……

D:\>ping web15815.mail.cnb.yahoo.com
Pinging web15815.mail.cnb.yahoo.com [202.165.103.238] with 32 bytes of data:
Reply from 202.165.103.238: ……


  按照前文 http://hagengoo.blogspot.com/2007/01/rbl.html 的说法,同理使用 nslookup 命令名来查询该地址是否在 RBL 中:

D:\>nslookup -type=a 238.103.165.202.dnsbl.sorbs.net
Server: hzdns48.zjhzptt.net.cn
Address: 202.101.172.48

*** hzdns48.zjhzptt.net.cn can't find 238.103.165.202.dnsbl.sorbs.net: Non-existent domain

  得到 Non-existent domain,表示该域名记录不存在,也就是说这个 IP 地址没有被列在 dnsbl.sorbs.net 这个 RBL 中。为慎重起见,取道 http://www.au.sorbs.net/lookup.shtml 再次查询该 IP,得到的结果也是该 IP 不在 RBL 之列。

  无理论从理论上,还是实际测试:202.165.103.238 的这个 IP 都不在 dnsbl.sorbs.net 的 RBL 之中,但为什么 MTA Log 还是记录 “was found on list ”,误判?难道是 Mail Server 的设计有误?程序错误?于是随手翻阅了软件厂家的技术知识库和支持论坛,官方和其他用户都没有提到有类似问题发生。莫非这个“Bug”第一次让我们发现?

  不管是不是“Bug”,总还是要找出导致误判的原因的。RBL 归根到底还是 DNS 方面的技术运用,难不是他邮件服务器使用的 202.96.209.6 202.96.209.5 两个上海电信的 DNS 有问题?于是让朋友请出 Commview,令其在邮件服务器上抓几个 DNS 的数据包。此附截图,就是 Commview 抓取的 DNS 数据包的 docoder 信息:










  在截图中不难发现,这几个 IP 的 RBL 查询,从上海电信 202.96.209.6 的 DNS 服务器上得到的都是没有 Name Server 信息的畸形回复,且都被指向到 218.83.175.154 这个奇怪的地址,而用杭州电信 202.101.172.48 查询这几个 IP 的 RBL 记录,结果显示的都是不存在的记录。于是访问这个地址 http://218.83.175.154,居然显示是上海电信的广告页面。

  问题顿时明朗,正常情况:在 RBL 查询中,如果 DNS 能返回一个 IP 地址,则查询的目标 IP 就被认为正处在 RBL 中;如果不能返回 IP ,则表示目标 IP 不在 RBL 列表中。而现在上海电信的 DNS 把不存在的域名记录全部畸形的解析成 218.83.175.154,即任意 IP 的 RBL 查询,上海电信的 DNS 不管三七二十一都返回了 IP 地址,以致于朋友的 Mail Server 把所有的邮件都判定为垃圾邮件。

  最后附上一个完整的 Commview 数据包分析截图。存此立据。


没有评论: