找回密码
 注册
快捷导航
查看: 757|回复: 6

【转帖】G.F.W 疯了吗?

 关闭 [复制链接] |自动提醒
阅读字号:

9245

回帖

83

积分

1万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2003-9-18
铜牌荣誉勋章(注册8年以上会员)
发表于 2007-7-22 16:36:52| 字数 1,236| - 中国–北京–北京–海淀区 联通 | 显示全部楼层 |阅读模式
http://www.lqqm.net/Lqqm.NetBQfAAACCRPROSLIMNIFPCMYZNLRCIRWABCGGW_A/bbsnt?B=496&start=4556&th=1185084083

发信人: btcomet (在水一方), 信区: HitTopic
标  题: G.F.W 疯了吗?
发信站: 两全其美网 (Sun Jul 22 14:01:23 2007), 本站(lqqm.net)

或者我准备疯了。
  
  这两天,我的企业用户纷纷向我求救,他们往来境外(包括港澳台)的邮件总是失败,我帮他们检查了所有邮件服务器,甚至和他们的国外客户连线双方做测试,在排除了反垃圾邮件黑名单问题之后,故障依然存在。故障主要集中在以下两个方面。
  
  1. 发往境外的邮件失败,返回 551 错误,错误消息如下:
   551 User not local;please try <forward-path>
  
  2. 收到的国外客户的邮件信文中没有真正内容,只有 aaazzzaaazzz 之类垃圾字符。
  
  我查了 RFC 的 551 错误代码定义,发现和这些故障之间并没有联系,使用 Telnet 直接和对方的邮件服务器连接,随便打几个单词做测试信文,正常发送,也没有退信,而在 Outlook 中回复客户的邮件,发送后不到两秒便收到退信,经过反复测试,我怀疑退信与信件内容有关。我当然知道,在中国和世界之间是存在一个叫做的 G.F.W 的东西的,这个伟大的机器 7x24x365 地为人民服务,保卫我们的信息安全,但我随即检查了用户的邮件,都是些老老实实的业务来往,实在看不到任何敏感或违禁的内容。没有办法,问 Google 吧。
  
  一查才知道,原来快要疯掉的大有人在,5Dmail 上的相关讨论已经滚到第10页,同样困惑的还有那些邮件服务器供应商的工程师,据说微软的 Exchange 服务专家都直接连线大客户提供即时 Trouble Shooting 服务了,最后的结论当然是他们的产品没有发现问题。当所有的故障都集中起来,并稍作总结后,他们发现问题都发生在中国和境外的邮件通讯上,因为 G.F.W 是这样著名,人们一下就想到了它。
  
  但做技术的人最讲究证据,凭空猜测是不行的,于是有好事者做了抓包测试,并在 cnbeta 上公布抓包结果(http://www.cnbeta.com/articles/16491.htm),懂点 TCP/IP 知识的看两眼就大概明白怎么回事了。
  
  关于 G.F.W,我不便说什么,G.W.F 的设备来自世界顶尖的网络设备商 CISCO,使用这些设备的估计至少也要海归,我只想说,大家出来混,好歹专业一点可以吧,你泼脏水我没意见,连孩子一起倒掉就不应该了,中国的企业本来就不容易,在电子邮件一天不可或缺的今天,这样卤莽地连正常业务邮件都过滤掉,大到对中国的形象,小到对企业的经营,都是极大的伤害,将邮件内容掐掉,插入 aaazzzaaazzz 一类垃圾字符,只有顽劣小儿才会这样低级,看看国外的技术论坛上那些人是怎么说的,是谁令我们蒙羞。我们大家一起哭吧。
X61_T9300/X61_T8100/X61S_L7500/T60_T2400

9245

回帖

83

积分

1万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2003-9-18
铜牌荣誉勋章(注册8年以上会员)
 楼主| 发表于 2007-7-22 16:38:07| 字数 8,459| - 中国–北京–北京–海淀区 联通 | 显示全部楼层

知识文章:找出GFW在Internet中的位置

ugmbbc发布于 2006-10-10 07:02:35|6925 次阅读 字体:大 小 打印预览


找出GFW在Internet的位置
作者:刘宏光
邮件:iceblood_at_163.com
网址:http://www.nettf.net
日期:2006-9-26



看到这篇文章的标题,可能有人要问GFW到底是什么?虽然GFW在一部分人的眼睛里并不陌生了,但相对与大部分人来说还是非常陌生的,引用我在Google里找到的一段话:

The Great Fire Wall of China的简写,意指“中国网络防火墙”(字面意为“中国防火长城”),这是对“国家公共网络监控系统”的俗称,国内简称“防火长城”.

GFW是“金盾工程”的一个子功能.“金盾工程”是以GA信息网络为先导,以各项GA工作信息化为主要内容,建立统一指挥、快速反应、协同作战机制,在全国范围内开展GA信息化的工程,主要包括建设GA综合业务通信网、GA综合信息系统、全国GA指挥调度系统以及全国公共网络监控中心等.该项目2003年开始生效.一般所说的GFW,主要指公共网络监控系统,尤其是指对境外涉及敏感内容的网站、IP地址、关键词、网址等的过滤.

GFW的效果通常为,国内网络用户无法访问某些国外网站或者网页;或者国外网络用户无法访问国内的某些网站或者网页.这里的无法访问,有永久性的无法访问(比如色情网站),也有因为URL中含有敏感关键词或者网页上有敏感内容而暂时性的无法访问.

国家防火墙并非中国的专利.实际上,美国也有国家网络监控系统,对进出美国的每一封电子邮件进行内容扫描.不同的是,中国的国家防火墙会直接切断敏感连接,而美国的国家防火墙(考虑更名)则只是做数据监控记录.伊朗、巴基斯坦、乌兹别克斯坦、北非共和国、叙利亚、缅甸、马尔代夫、古巴、北韩、南韩、沙特阿拉伯、阿拉伯联合酋长国、也门使用与金盾类似的国家防火墙.

看了以上这段话相信大家都比较清楚GFW到底是什么了,但是一直有人说有GFW,但具体的位置在哪里呢?我们如何查出GFW到底在哪里呢?好象并没多少文章有介绍,所以我这里针对这点特别写了这篇文章.

GFW这个东西很早我就已经知道,并且为防止GFW的“骚扰”我已经想过了很多办法来避免了,但由于收到外界机制的影响,仍然不可能完全避过GFW,而最近我所在的公司发到国外的邮件总是受阻,严重影响了公司的正常业务,所以我必须给他们一个非常圆满的答复,才有了找到GFW的位置的想法.

最近我们公司总是有人反应发到日本的邮件会被退回来,我查看了一下退信内容,发现主要有如下内容:

:
xxx.xxx.xxx.xxx does not like recipient.
Remote host said: 551 User not local; please try
Giving up on xxx.xxx.xxx.xxx.
或者:
:
xxx.xxx.xxx.xxx does not like recipient.
Remote host said: 500 error
Giving up on xxx.xxx.xxx.xxx.

而在邮件服务器的日志上发现如下内容:

Sep 26 14:46:23 livedoor qmail: 1159253183.972578 delivery 118310: failure: xxx.xxx.xxx.xxx_does_not_like_recipient./Remote_host_said:_500_error/Giving_up_on_xxx.xxx.xxx.xxx./
由于总报这样的问题,所以我在公司的网关服务器上安装上snort这个入侵检测软件,当然我并没发挥入侵检测的功能,因为我只想要里面的sniff功能探测数据包,然后等待这种现象的再次来到.当邮件日志里再次出现上面的日志内容的时候,我进入网关服务器查找所有相关这个IP的记录,并且根据时间找到了:

-rw------- 1 root wheel 6941 Sep 26 14:44 TCP:60661-25

现在就请大家跟着我来分析这个文件:
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
09/26-14:44:52.643691 0:E0:FC:34:C0:86 -> 0:14:22:1F:4A:49 type:0x800 len:0x4E
10.4.1.4:60661 -> 203.131.198.80:25 TCP TTL:127 TOS:0x0 ID:32988 IpLen:20 DgmLen:64 DF
******S* Seq: 0x2E68FF24 Ack: 0x0 Win: 0xFFFF TcpLen: 44
TCP Options (8) => MSS: 1460 NOP WS: 1 NOP NOP TS: 121485349 0
TCP Options => SackOK EOL
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

这是我们公司的邮件服务器10.4.1.4向对方发送SYN的请求包,TTL为127,虽然我们的邮件服务器是FreeBSD,但我还是把TTL修改为128了,而邮件服务器和网关服务器之间有一个路由,所以TTL会减1,就成为了127.

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

09/26-14:44:52.744474 0:14:22:1F:4A:49 -> 0:11:43:58:71:FF type:0x800 len:0x4A
203.131.198.80:25 -> 10.4.1.4:60661 TCP TTL:49 TOS:0x0 ID:0 IpLen:20 DgmLen:60 DF
***A**S* Seq: 0x1527A9A1 Ack: 0x2E68FF25 Win: 0x16A0 TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 9713757 121485349 NOP
TCP Options => WS: 0
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

这里为对方服务器向我们公司的服务器回复SYN+ACK包.可以看到TTL为49,由于对方也是FreeBSD系统,而FreeBSD的默认TTL值为 64,这样我们可以计算出我们的服务器到对方的服务器经过的路由数,64减49等于15,所以网关服务器到对方服务器经过了15个路由,使用 traceroute命令追踪了一下结果,如下:

gw2# traceroute -n 203.131.198.80
traceroute to 203.131.198.80 (203.131.198.80), 64 hops max, 40 byte packets
1 210.83.214.161 0.722 ms 0.699 ms 0.612 ms
2 210.83.193.49 0.595 ms 0.486 ms 0.615 ms
3 210.52.131.6 16.979 ms 16.978 ms 16.975 ms
4 210.52.130.10 46.711 ms 45.836 ms 45.838 ms
5 210.52.132.230 50.208 ms 49.957 ms 50.085 ms
6 210.53.126.2 50.083 ms 49.955 ms 50.334 ms
7 202.147.16.125 50.583 ms 50.207 ms 50.587 ms
8 202.147.16.205 51.204 ms 50.081 ms 50.209 ms
9 202.147.16.214 103.055 ms 103.050 ms 103.179 ms
10 202.147.0.206 99.803 ms 99.677 ms 99.806 ms
11 203.192.131.250 103.802 ms 103.549 ms 103.430 ms
12 203.174.64.13 99.804 ms 100.053 ms 100.681 ms
13 203.174.64.146 100.056 ms 100.799 ms 102.075 ms
14 203.174.64.214 101.012 ms 99.676 ms 100.179 ms
15 203.131.198.80 100.805 ms 99.926 ms 99.929 ms
gw2#

这里可以很清楚的看到为15跳,充分证明了TTL没有任何问题,而对方的服务器也没有使用防火墙以及NAT来映射25号端口.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

09/26-14:44:52.744633 0:E0:FC:34:C0:86 -> 0:14:22:1F:4A:49 type:0x800 len:0x42
10.4.1.4:60661 -> 203.131.198.80:25 TCP TTL:127 TOS:0x0 ID:33011 IpLen:20 DgmLen:52 DF
***A**** Seq: 0x2E68FF25 Ack: 0x1527A9A2 Win: 0x8218 TcpLen: 32
TCP Options (3) => NOP NOP TS: 121485450 9713757
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
这里是我们公司返回一个ACK包,这样整个TCP连接的握手成功,接下来就要开始传输数据了.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
09/26-14:44:52.845542 0:14:22:1F:4A:49 -> 0:11:43:58:71:FF type:0x800 len:0x93
203.131.198.80:25 -> 10.4.1.4:60661 TCP TTL:49 TOS:0x0 ID:37317 IpLen:20 DgmLen:133 DF
***AP*** Seq: 0x1527A9A2 Ack: 0x2E68FF25 Win: 0x16A0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 9713767 121485450
32 32 30 20 35 61 2D 70 30 37 2D 62 33 2E 64 61 220 5a-p07-b3.da
74 61 2D 68 6F 74 65 6C 2E 6E 65 74 20 46 2D 53 ta-hotel.net F-S
65 63 75 72 65 2F 76 69 72 75 73 67 77 5F 73 6D ecure/virusgw_sm
74 70 2F 32 32 30 2F 35 61 2D 70 30 37 2D 62 33 tp/220/5a-p07-b3
2E 64 61 74 61 2D 68 6F 74 65 6C 2E 6E 65 74 0D .data-hotel.net.
0A .
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
首先是对方服务器给了我们一个220的服务器信息.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
09/26-14:44:52.845826 0:E0:FC:34:C0:86 -> 0:14:22:1F:4A:49 type:0x800 len:0x54
10.4.1.4:60661 -> 203.131.198.80:25 TCP TTL:127 TOS:0x0 ID:33066 IpLen:20 DgmLen:70 DF
***AP*** Seq: 0x2E68FF25 Ack: 0x1527A9F3 Win: 0x8218 TcpLen: 32
TCP Options (3) => NOP NOP TS: 121485551 9713767
48 45 4C 4F 20 6C 69 76 65 64 6F 6F 72 2E 63 6E HELO livedoor.cn
0D 0A ..
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
我们的服务器给对方发送了一个SMTP协议所需要的HELO信息.由于内容太多中间SMTP协议的握手我就不再详细介绍了,所以我这里直接跳到出问题的地方.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
09/26-14:44:53.049710 0:E0:FC:34:C0:86 -> 0:14:22:1F:4A:49 type:0x800 len:0x6B
10.4.1.4:60661 -> 203.131.198.80:25 TCP TTL:127 TOS:0x0 ID:33110 IpLen:20 DgmLen:93 DF
***AP*** Seq: 0x2E68FF56 Ack: 0x1527AA19 Win: 0x8218 TcpLen: 32
TCP Options (3) => NOP NOP TS: 121485755 9713787
52 43 50 54 20 54 4F 3A 3C 6A 69 6D 67 72 65 65 RCPT TO:6E 40 6E 65 70 74 75 6E 65 2E 6C 69 76 65 64 6F x_at_neptune.livedo
6F 72 2E 63 6F 6D 3E 0D 0A or.com>..
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
在这里,当我们的服务器发送RCPT To的信息到对方服务器以后,按照SMTP协议的原理,对方在有这个用户的情况下应该返回250 ok这个信息,但是这个时候问题出现了,我们的服务器马上收到一个如下的信息:
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
09/26-14:44:53.103763 0:14:22:1F:4A:49 -> 0:11:43:58:71:FF type:0x800 len:0x41
203.131.198.80:25 -> 10.4.1.4:60661 TCP TTL:57 TOS:0x0 ID:64 IpLen:20 DgmLen:51
***AP*** Seq: 0x1527AA19 Ack: 0x2E68FF7F Win: 0x0 TcpLen: 20
35 30 30 20 65 72 72 6F 72 0D 0A 500 error..
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
500 error的信息,再看看TTL的值,57?对端服务器的TTL由49突然变成了57?理论上来说说不过去,再接着看后面的信息:
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
09/26-14:44:53.154738 0:14:22:1F:4A:49 -> 0:11:43:58:71:FF type:0x800 len:0x4A
203.131.198.80:25 -> 10.4.1.4:60661 TCP TTL:49 TOS:0x0 ID:37321 IpLen:20 DgmLen:60 DF
***AP*** Seq: 0x1527AA19 Ack: 0x2E68FF7F Win: 0x16A0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 9713798 121485755
32 35 30 20 4F 6B 0D 0A 250 Ok..
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
这才是真是服务器发送过来的信息,而由于500 error的错误信息比250 Ok的正确信息先到达我们的服务器,所以我们的服务器这个时候就已经认为对方服务器错误,所以按照SMTP协议必须终止邮件的发送,所以这个时候我们的服务器发送:
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
09/26-14:44:53.155026 0:E0:FC:34:C0:86 -> 0:14:22:1F:4A:49 type:0x800 len:0x48
10.4.1.4:60661 -> 203.131.198.80:25 TCP TTL:127 TOS:0x0 ID:33131 IpLen:20 DgmLen:58 DF
***AP**F Seq: 0x2E68FF7F Ack: 0x1527AA24 Win: 0x8218 TcpLen: 32
TCP Options (3) => NOP NOP TS: 121485860 9713787
51 55 49 54 0D 0A QUIT..
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
QUIT退出……,就这样一封正常的邮件被活生生的截断了.
现在我们来开始看那个TTL为57的信息,根据我的经验对方的TTL默认值应该是64,所以64减57等于7,也就是说这个阻断我们信息的信号来自和第7个路由同网断或者就是第7个路由.现在再看看我最上面的traceroute的结果:
gw2# traceroute -n 203.131.198.80
traceroute to 203.131.198.80 (203.131.198.80), 64 hops max, 40 byte packets
1 210.83.214.161 0.722 ms 0.699 ms 0.612 ms
2 210.83.193.49 0.595 ms 0.486 ms 0.615 ms
3 210.52.131.6 16.979 ms 16.978 ms 16.975 ms
4 210.52.130.10 46.711 ms 45.836 ms 45.838 ms
5 210.52.132.230 50.208 ms 49.957 ms 50.085 ms
6 210.53.126.2 50.083 ms 49.955 ms 50.334 ms
7 202.147.16.125 50.583 ms 50.207 ms 50.587 ms <——可能发送错误信息的IP
8 202.147.16.205 51.204 ms 50.081 ms 50.209 ms
9 202.147.16.214 103.055 ms 103.050 ms 103.179 ms
10 202.147.0.206 99.803 ms 99.677 ms 99.806 ms
11 203.192.131.250 103.802 ms 103.549 ms 103.430 ms
12 203.174.64.13 99.804 ms 100.053 ms 100.681 ms
13 203.174.64.146 100.056 ms 100.799 ms 102.075 ms
14 203.174.64.214 101.012 ms 99.676 ms 100.179 ms
15 203.131.198.80 100.805 ms 99.926 ms 99.929 ms <——真实服务器的IP
gw2#
使用 http://www.linkwan.com/gb/broadmeter/VisitorInfo/QureyIP.asp 的IP地址查询查到 202.147.16.125 属于澳大利亚,难道澳大利亚在监视我们的网络,想想虽然有这个可能性,但应该不会明显到这个程度.所以我想应该不是这个IP地址,然后我查了查第6跳的 IP地址 210.53.126.2 ,通过查询显示为“中国网通”很明显6和7之间就是中国网通的出口路由,那么GFW就顺理成章安装在 210.53.126.2 这个IP之后.

从上面的分析我们就可以完全的肯定阻断公司邮件正常来往的就是 210.53.126.2 之后的GFW发送的假信息.还好公司的邮件全都是正常的,GFW并不会完全封死,所以过段时间以后会自动恢复.由于发送的邮件非常多,也不一定是同一个服务器,所以不能用VPN来解决,不太现实.当碰到这样的问题的时候我们目前只怕唯一能做的就是等待,直到 GFW恢复我们的网络.
X61_T9300/X61_T8100/X61S_L7500/T60_T2400
回复 支持 反对

使用道具 举报

1万

回帖

128

积分

2万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2004-6-10
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)金牌荣誉勋章(注册20年以上会员)
发表于 2007-7-22 18:42:37| 字数 51| - 中国–广东–深圳 电信 | 显示全部楼层
上个星期我发给国内一个公司的邮件也是立刻退信;
发给avaya的邮件也是退信;

其实就是一个测试文档而已。
回复 支持 反对

使用道具 举报

6265

回帖

0

积分

424

资产值

入门会员 Rank: 1

注册时间
2007-3-8
发表于 2007-7-22 18:58:10| 字数 25| - 中国–广东–深圳 电信 | 显示全部楼层
hehe lz注意和谐哈。
金盾工程的设计还是很不错的
 小红拖拉机,喷气又喷烟
           屁股决定脑袋
回复 支持 反对

使用道具 举报

2246

回帖

0

积分

1297

资产值

入门会员 Rank: 1

注册时间
2007-4-5
发表于 2007-7-22 19:08:56| 字数 0| - 中国–北京–北京 联通 | 显示全部楼层
回复 支持 反对

使用道具 举报

8548

回帖

2

积分

1万

资产值

初级会员 Rank: 1

注册时间
2004-6-8
发表于 2007-7-22 20:16:13| 字数 6| - 中国–广东–深圳 电信 | 显示全部楼层
挺老的文章吧
现在网上的坏风气,非要把好的说成是垃圾才显得自己有才——老费如是说
回复 支持 反对

使用道具 举报

1159

回帖

0

积分

996

资产值

入门会员 Rank: 1

注册时间
2006-4-25
发表于 2007-7-23 10:26:00| 字数 9| - 中国–上海–上海 联通 | 显示全部楼层
和谐和谐!注意和谐
T40 1.3/512/60
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-11-5 15:27 , Processed in 0.097455 second(s), 36 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部