首页 > 学技术 > 技术网文 > Mail服务器 > 正文

[保留] [原创]截图分析传说中gfw造成的551 User not local错误


来源 chinaunix.net 酷勤网整理

作者:leconte (http://blog.oolec.com)

今天在调试一个客户邮件服务器postfix的时候遇到了传说中的551错误("551 User not local; please try [forward-path]")
错误现象是这样的,用户采用smtp认证的方式自己给自己的邮箱发信,outlook或者foxmail会报551错误或者直接报未知错误。
而如果给别的信箱发信就不会有问题,在本机采用webmail发信也很正常。
很快就可以排除是postfix邮件系统的问题,因为我登录到服务器上采用telnet手工smtp认证发信没有任何问题。
那么问题一定出现在通往邮件服务器的路由中,只能通过抓包分析了。

我在我的本机采用wireshark抓包
同时邮件服务器采用tcpdump -w packet tcp port 25将数据包保存为文件packet
然后我在本机通过smtp发信,重复错误现象,然后将两边抓到的包用wireshark分析,结果果然不出所料。

先看截图(ip地址和邮箱域名等已经被处理掉)
1。邮件服务器端的截图



图中红色圈中可以看到,mail from指令和rcpt to指令服务器都正确的返回了250 OK
但是在随后蓝色圈中突然不断收到rst中断连接。

2。本地客户端的截图


图中红色圈中可以看到,服务器返回的信息由250 OK被替换成了"551 User not local; please try [forward-path]"。
随后又是一堆的Rst中断连接。
注意,蓝色圈中是服务器的真正返回,但是这时候连接已经中断,没有意义了。

3。很明显,双方的连接在通讯途中被干预了。更能证明这一点的一个例子是ttl值的变化。


正常情况下服务器返回信息Ip包头中的ttl值是48,大约经过了16跳。
而"551 User not local; please try [forward-path]"这条消息的ttl值是50,发生什么事情已经很明显了。。



在google上可以搜索到很多关于551错误的例子,从大家的评论来看,这件事情多半是gfw干的了。
只是我不太明白的是,gfw管这个做什么,出于什么目的?:em12:

补充:根据iceblood的提醒,我检查了一下邮件服务器,果然是放在国外的。
看来邮件服务器放在国外,使用smtp自己给自己发信就会报错。


作者:leconte (http://blog.oolec.com)

[ 本帖最后由 leconte 于 2007-6-28 20:37 编辑 ]



 ronaldogreat910 回复于:2007-06-28 09:15:25

顶,辛苦LZ了


 abel 回复于:2007-06-28 09:19:42

這文章非常好,
不過圖看得較辛苦些,
建議樓主可以讓圖更美觀些,文字再大一些
以造福後進的閱讀

此外,也建議版本可以加精


 chifeng 回复于:2007-06-28 13:03:02

赞。。。分析的不错。


 ffxskffxsk 回复于:2007-06-28 13:13:58

俺公司一个同事的发国外的邮件就这样。郁闷死了,什么时候能好呢,或者怎么做,才能不发过去呀??


 leconte 回复于:2007-06-28 13:31:33

to abel:

晚上回家我改进一下截图效果


 思一克 回复于:2007-06-28 13:32:47

iceblood原来也分析过几乎同样的结果


 abel 回复于:2007-06-28 14:33:32

引用:原帖由 思一克 于 2007-6-28 13:32 发表
iceblood原来也分析过几乎同样的结果 


是的 !
不過 GFW 的個案太多
我認為每個個案都需要證明,這些證明如果都在 CU mail 版
效果及幫助我想對於不了解的朋友用處非常大的


 ffxskffxsk 回复于:2007-06-28 14:40:36

Connection reset by ntvirus.url.com.tw 那这个是不是也是又gfw造成的?


 iceblood 回复于:2007-06-28 17:13:26

这个早在去年的时候我就已经肯定了跨国际出口的邮件,如果服务器在境外,使用 SMTP自己给自己发邮件100%出错。
我当时只能对国内某些部门愕然~
因为实在是太无耻,太下流到极点了。
国内刚出问题的时候,是在2004年11月左右。当时我公司出现拦截问题,我在整个Internet都查不到任何资料。
由于当时找不到原因,被领导对我的能力怀疑了很长时间,当然那个时候到这个公司时间也不长。有些东西还没适应。

[ 本帖最后由 iceblood 于 2007-6-28 17:15 编辑 ]


 abel 回复于:2007-06-28 18:33:15

我從沒有碰過,但是想也知道 reverse "DCG" 搞什麼東西


 ctuyoung 回复于:2007-06-28 20:55:12

兄弟们,我有个好办法穿透GFW,大家有没有兴趣知道啊?不过需要改MTA的投递程序的


 Linux@初学者 回复于:2007-06-29 10:22:48

每年一到重大节日时就出现这样的问题呀,肯定是ZF在干预
为什么用hotmail.yahoo.gmail出现错误的概率小啊?


 ffxskffxsk 回复于:2007-06-29 10:50:50

今天 我也进行了抓包分析,发现同样的现象,另外是不是 自己家的防火墙 电信的路由器,对方国家的防火墙也可能出问题呢?


 ffxskffxsk 回复于:2007-06-29 10:52:49

to ctuyoung:什么办法?公布下吧,我们公司现在生死存亡的关头啊,再不弄好,intel客户要发彪了!!!!


 ctuyoung 回复于:2007-06-29 11:11:48

ffxskffxsk, 把邮件地址给我,我email给你,不想明盘,怕东厂的阉人们看到,这样的话这个办法就无效了


 ctuyoung 回复于:2007-06-29 11:20:50

ffxskffxsk, 我PM你了,查看你的站内短信信箱就可以了


 思一克 回复于:2007-06-29 11:26:15

yahoo, gmail估计是在国内有邮件SERVER,你发直接到这SERVER上了,然后走专线。


 ffxskffxsk 回复于:2007-06-29 15:43:28

to ctuyoung:谢谢已经收到,正在研究
to 思一克:对于你提供的方法,不太了解,你的意思是说,让yahoo或者gmail的服务器做我们的中转服务器吗?
这样的话他们允许relay我们的邮件吗?


 hongfengyue 回复于:2007-06-29 22:38:35

引用:原帖由 ctuyoung 于 2007-6-28 20:55 发表
兄弟们,我有个好办法穿透GFW,大家有没有兴趣知道啊?不过需要改MTA的投递程序的 


能不能给我一份呀,我也遇到这样的问题了。包括最近的aaazzz的文件也是一大堆呀。

谢谢!

hongfengwbw # yahoo.com.cn


 feiwupiaoxue 回复于:2007-07-01 21:57:47

我也碰到了这样的问题,也包括aaazzz的问题,请ctuyoung大哥也发送一封邮件给我,谢谢!unixsir at 163.c.com


 ffxskffxsk 回复于:2007-07-02 13:58:42

另外还有个问题:国外发给我们的邮件也会被弹回,怎么样设置我们的inbound服务器才不会弹回国外的邮件呢?
难道也用那个方法发邮件?


 ctuyoung 回复于:2007-07-02 15:57:16

To: ffxskffxsk
其实彻底解决这个问题的办法是在海外搭建镜像服务器,对outbound的邮件辨别IP网段,如果属于海外的邮件则通过镜像服务器进行转发。对于inbound服务器,设置不同的DNS view,是海外的投递方将邮件投递至镜像服务器然后再转发至原服务器。我提供的方法只是没有镜像服务器的情况下做的一种trick而已 :D


 yj11 回复于:2007-07-02 16:26:21

引用:原帖由 ctuyoung 于 2007-7-2 15:57 发表
To: ffxskffxsk
其实彻底解决这个问题的办法是在海外搭建镜像服务器,对outbound的邮件辨别IP网段,如果属于海外的邮件则通过镜像服务器进行转发。对于inbound服务器,设置不同的DNS view,是海外的投递方将邮件 ... 


给补充一下,别忘记加密.


 ffxskffxsk 回复于:2007-07-03 11:13:54

ai.不管了,看人家怎么处理吧,反正咱又不是做主的!




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=954853
转载请注明作者名及原文出处



收藏本页到: