因为一些不可抗力,所以一直没有发博客,对此我也懒得多说。近来利用闲暇时光好好研究下Google的“那些事”,时下斯巴达期间,“网路故障”深入民心,经常遇到的网路故障:DNS劫持,DNS污染,IP封锁,服务器防火墙IP过滤,服务器宕机,基于关键词的TCP连接重置,无状态的TCP连接重置,SSL证书过滤,SSL劫持,HTTP会话劫持等,这里特别感谢月光博客的作者,你的博文让我学到了很多。
1. DNS劫持
现象:很简单,访问一些不存在的域名时自动定位到了特定页面。
检测:使用nslookup解析一个不存在的域名,如果DNS返回了一个地址,表示存在DNS劫持。
解决:使用国外的DNS服务器,比如人Google Public DNS或者OpenDNS。
2. DNS污染
现象:访问正常的域名时自动定位到了特定页面或“该页法无显示”。
原因:当域名请求经过某些“关键节点”时,系统先于目标DNS服务器发送虚假DNS解析结果给请求者,使请求者无法获得正确的地址。(DNS使用UDP协议发送请求,返回的虚假结果通常会先于真实结果到达请求者,而DNS解析只接受第一个返回的解析结果)
检测:使用nslookup向一个不存在的DNS解析一个特定域名。比如:
nslookup twitter.com 144.223.234.234
如果有返回地址,证明域名被DNS污染。
DNS request timed out. timeout was 2 seconds. *** Can't find server name for address 144.223.234.234: Timed out Server: UnKnown Address: 144.223.234.234 Non-authoritative answer: Name: twitter.com Address: 59.24.3.173
解决:使用加密代理、SSH、VPN等。
3. IP封锁
现象:该页无法显示。
原因:将IP地址加入系统黑名单中。
检测:先检测是否遭到了DNS劫持和污染,然后使用tracert命令进行测试。比如:
C:\Documents and Settings\Administrator>tracert -d www.dropbox.com Tracing route to v-www.sjc.dropbox.com [199.47.216.170] over a maximum of 30 hops: 1 10 ms <1 ms 48 ms 10.16.37.3 2 <1 ms <1 ms <1 ms 10.3.25.30 3 <1 ms <1 ms <1 ms 10.3.27.1 4 <1 ms <1 ms <1 ms 10.10.38.22 5 * * * Request timed out. 6 * * * Request timed out. 7 * * * Request timed out.
封锁的很彻底,仅仅在本地网络10.10.38.22上数据包就被丢弃了。如果使用宽带连接,出现超时的hop应该在ISP关键节点的路由上。
解决:使用加密代理、SSH、VPN等。
4. 服务器防火墙IP过滤和服务器宕机
与IP封锁不同,tracert时出现超时的hop应该在目标服务器地址而不是本地地址或者出口网关地址。解决方法就不用说了吧。
5. 基于关键词的TCP连接重置
现象:请求某些“特定”内容时,系统强制断开TCP连接,浏览器显示连接被重置,并且在一定时间内再无法访问该网站。
原因:HTTP连接的不安全性,因为HTTP协议是明文传输的,系统可以通过分析数据包中的内容来选择某些数据包经过路由器。
解决:对于支持HTTPS的网站可以使用HTTPS访问,比如Google,如果不支持就只能使用上面介绍的方法了。
6. 无状态的TCP连接重置
现象:使用HTTPS访问某些特定网站时,长时间无响应或显示连接被重置。
原因:系统拒绝请求某些网站的HTTPS连接443端口,比如Google的加密搜索。(间歇性封锁)
解决:使用加密代理、SSH、VPN等。
7. SSL证书过滤
现象:使用HTTPS访问某些特定网站时连接被重置。
原因:HTTPS中SSL证书使用明文传输,系统可以获取到SSL证书中的域名,检测到是否与特定域名匹配,从而发送TCP重置请求。
解决:使用加密代理、SSH、VPN等。
8. SSL劫持
现象:高度隐蔽,不易察觉。使用HTTPS访问国外网站时发现证书为国内机构颁发(有可能发生了SSL劫持)。
原因:HTTPS的弱点(信任所有证书颁发机构),国内CNNIC、12306申请成为了顶级证书颁发机构,可以通过DNS劫持后向请求者发送假证书进行SSL中间人攻击,这样使用者的账户密码都会发送到虚假服务器。(相关信息请Google)
解决:禁用国内证书颁发机构,如CNNIC,可在一定程度上解决问题,但如果一个不知名的国内证书颁发机构参与了SSL劫持,一般也很难发现,比如12306(铁路客户服务中心)。并且对这种方法挂SSH、VPN是无效的。具体如何禁用不信任的证书请自行Google。
9. HTTP会话劫持
现象:访问正常网站弹出广告推广窗口,给使用者感觉是网站的广告。
原因:由于HTTP协议是明文传输的,因此别有用心者只需要篡改会话内容,在其中加入广告代码或者病毒木马网址链接。目前多数ISP都使用这种方法推广其业务内容。
解决:浏览器广告屏蔽插件,或者使用HTTPS协议,SSH,VPN。