退信SMTP error, RCPT TO: 551 User not local; please try <forward-path>原因分析---GFW过滤导致
???

备注: 此文章来自于:http://www.chinaunix.net/jh/14/954853.html

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


http://www.chinaunix.net 作者:leconte??发表于:2007-07-03 11:13:54

发表评论】【查看原文】【Mail服务器讨论区】【关闭


作者: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
转载请注明作者名及原文出处

?


? ?
[返回首页]