GFW翻墙手册(电子书):《100个免费翻墙工具-中文.pdf》--翻墙花园

  翻墙花园在网上找到了一本不错的翻墙入门手册,原出处应该是精品博客吧,介绍了一些简便、有效、常用、好用的翻墙方法,包括在线代理、自由门/无界/花园等老牌稳定的翻墙软件、VPN、SSH,还有介绍了一些被墙的网站,等等。

Dropbox下载地址:
https://www.dropbox.com/s/53dy1md9krbn0qb/100个免费翻墙工具-中文.zip

《100个免费翻墙工具-中文.pdf》

  目录
前言:我的互联网自由宣言
第一章:100个免费在线代理
第二章:7大免费客户端代理
第三章:免费VPN
第四章:免费SSH代理
第五章:Proxy、SSH和VPN的区别
第六章:如何通过Google Reader翻墙
第七章:如何通过Hosts文件翻墙
第八章:如何通过gogoCLIENT翻墙
第九章:如何检测某个网站是否被墙
第十章:附录
  1.10 大被墙的国外网站
  2.哪些国家墙了 Facebook?
  3.信息是封锁不住的
  4.我国 Twitter 上的第一个文字狱
  5.中国茉莉花革命
后记:大家翻墙GFW倒
  前言:我的互联网自由宣言
  至于什么叫做互联网自由,目前尚没有一个流行的定义,不过却有人列出了互联网自由的 5 个基本原则,即自由表达、快速上网、不用翻墙、保护
创新以及保障隐私。
  作为一个生活在有中国特色的社会主义国家的网民,我 100% 赞成这 5 个原则并且觉得互联网自由是 100% 重要的,因为如果互联网没有自由,
  那么你就可能因为在网上说了一句话而被劳教,所在地区霎时间长时间断网,不翻墙就无法访问 Facebook、Twitter、YouTube 以及其他多个资本主义的网站,自己的网站会因为某篇文章而导致服务器被封号,甚至连下载 A 片都会被警察破门而入,类似的荒唐事不胜枚举。
100个免费翻墙工具-中文-前言-我的互联网自由宣言.jpg

  听起来很恐怖,是吧?但是上面提到的事都曾活生生地出现在中国互联网上, 而如果中国互联网没有改善,类似的事情将会发生在你我身上 ——而且已经发生在我的身上。2009 年,精品博客发表了一篇叫做《操 GFW 10 大简易招式》的文章,几个月之后,网站的服务器因为这篇文章被封号;后来,我把博客的服务器搬到国外,继续介绍翻墙工具和方法,结果导致整个博客被墙,至今没有解封。
  如果没有墙,那我也就没有必要翻墙,更没有必要去折腾翻墙工具,可惜没有如果,所以我就只好翻墙,不断地尝试各种翻墙工具,并且用中文分享到精品博客以及用英文分享到 Free Nuts 博客。
  到目前为止,我已经测试并介绍了 100 个免费翻墙工具,其中包括 VPN、Proxy、SSH、等等,当然,随着时间的推移,这些工具里面有些已经不能翻墙了,不过值得庆幸的是,一直都会有新的翻墙工具出现,而我也将继续测试并介绍它们,直到互联网不再有墙。




本文地址:http://fanqianghuayuan.blogspot.com/2013/05/gfw-bannedbook-100-free-fanqiang-tools.html
相关文章:

亚马逊EC2云计算平台搭建VPN/SSH翻墙服务器-免费一年-可当VPS用-有视频教程--翻墙花园


  亚马逊Amazon的EC2(Amazon Elastic Compute Cloud,亚马逊弹性云计算平台)平台通过信用卡验证后可以免费使用一年,EC2不像GAE(Google App Engine)那样只是一些程序语言的子集,而是类似于VPS(虚拟专用服务器),可以装操作系统,比如ubuntu,那么我们就可以用EC2来搭建VPN/SSH翻墙服务器。当然了EC2是有配额的,好像每月15G上行流量+15G下行流量,对于想看Youtube的朋友来说是少了点,但作为其它翻墙用途来说不失为一个好的翻墙方案。经过翻墙花园的初步测试,实现这点方案有两个要点,一个是要支持VISA/MasterCard/American Express/Dinners Club/Discover/JCB/Amazon.com Visa的信用卡,中国单纯的银联(UnionPay)是不行的。第二个就是帐号通过验证后的设置了,这个我想配合图片、文字解说和视频应该也不难解决。另外,Amazon的账户注册过程是英文的,所以需要一定的英文基础,当然了遇到不会的可以到谷歌翻译。视频教程已经打包到Dropbox,请参考后面的说明。

  具体的方案出自美博园小方博客,你可以直接去他们网站上看,本文的内容是对Amazon EC2方案的思路和注意事项的收集、整理。

相关链接:
美博园-利用Amazon的EC2 + SSH自建安全翻墙代理 
http://allinfa.com/amazon-ec2-ssh-proxy.html

http://www.xiaofang.me/2013/03/24/视频:小方重磅钜现基于amazon-ec2的傻瓜化翻墙服务器安/

  

注意事项:
1.关于信用卡的注意事项:
   注册中需要提供信用卡信息。Amazon会从卡上扣一美元,再即时退回,以验证信用卡。所以你会收到消费提示,但实际账单上并不会有支出。
   注册中要提供可直接联系到你的电话或手机信息,国家代码+86最好一并写上。Amazon会即刻电话通知你验证码,需要填写到申请表格中。

2.来自小方博客的介绍:
  方滨兴和他的GFW团队已经成为邪恶阻挠中国与世界交流和成长的军团,为了尽力推进 “人人都能翻墙”的宏伟目标实现进程,小方特撰写此文,重磅钜现基于Amazon EC2的傻瓜化翻墙服务器安装解决方案,让全民翻墙的洪水来得更猛烈些吧——当然,希望几年以后即不需要再翻墙(国家大环境改变):
功能介绍:
  1. 视频指导购买Amazon EC2服务器
  2. 建立服务器过程采用一键安装方式,绝对傻瓜
  3. 服务器同时具有SSH和VPN双重功能,SSH账号陷一个人登录,并限制单人下载带宽。
  4. 提供对抗方滨兴团队之IP屏蔽之——无敌傻瓜闪电解决方案
  5. 提供成熟的销售和维护方案
3.小方博客上的视频翻墙花园已经打包到了Dropbox,方便大家下载。 
  视频格式为.wrf,需要安装WebEx WRF文件视频播放器,如果你的系统是Windows的,那么压缩包里面已经有了安装程序(.msi),如果你是Mac系统,请到http://www.xiaofang.me/wp-content/uploads/2013/03/webexplayer_intel.zip下载。如果你是其它系统的,那么到WebEx官方网站http://www.webex.com/play-webex-recording.html去看看下载哪个版本。
  Dropbox下载地址:https://www.dropbox.com/s/dssu9br2hfsfkvp/amazon-ec2-vpn-build.zip
  文件名:amazon-ec2-vpn-build.zip
  大小:41.71MB
  SHA1校验码:A5E17E7CD8973ACB709CF2D29AA76826B10AC440
  里面包含的文件:
  1-购买Amazon EC2服务器.wrf
  3-基于EC2的SSH+VPN翻墙服务器安装教程.wrf
  4-为翻墙服务器打开Amazon EC2全局防火墙.wrf
  5-维护翻墙服务器:创建用户和续费用户.wrf
  6-设置客户的电脑,以使用翻墙服务器的服务.wrf
  7-关于VPN账户的特别声明.wrf
  8-销售和推广账户.wrf
  a-升级On-Demand Instance为Reserved Instance.wrf
  atrecply.msi


4.Amazon官网上的EC2免费额度(每月)
请到:http://aws.amazon.com/cn/free

 (更多内容正在整理中……)






本文地址:http://fanqianghuayuan.blogspot.com/2013/05/amazon-ec2-built-vpn-ssh-fanqiang.html
相关文章:

GFW相关的段子--翻墙花园

转载自:http://x.zetng.com/duanzi_tag_GFW.htm?page=1

    【信息科技】
    还是 GFW 有先见之明,几年前就帮 Google 把大部分产品都关闭了。

    【信息科技】
    科学家最新研究发现:从任意一个网页,最多只需经过最多19次点击,即可抵达互联网上任意另一个网页。这不科学,19次点击还没碰到中国的GFW?

    【笑而不语】
    【码农大起义】秦末,gfw大升级,码农李伟不能完成工作,劳累而亡;其妻孟江女来到长城前,三哭而气绝,长城塌一角。码农遂峰起。

    【信息科技】
    程序员:“不是说好了只封闹事的github pages么,怎么连ssl的github也封了?” gfw:“呵呵”

    【笑谈古今】
    别说那个身份证能在十米之外被扫描的谣言了,我还见过一个公司禁止使用无线鼠标,问何故,答曰无线鼠标的信号被别有用心的人监测可能会泄密…这需要比gfw更智能的行为分析技术和更大运算量吧…”

    【信息科技】
    杭州程序员小张被路上狂奔的快递电动车撞成植物人。好基友们想尽一切办法帮他恢复。后来听说,跟他说话就能让他唤醒。于是基友每天在他耳边说话,直到有一天,基友想起来他以前总骂 GFW 的事情来,就跟他说「快起来吧,GFW 永久解封了」小张立刻睁开了眼睛问:「Twitter能访问了么?」

    【笑而不语】
    以后GFW彻底无敌的时候,会不会有推友在北京机场送好友出国,递给他一张纸条,上边一段段文字,下属一个帐号一个密码,说:去了美国,帮我把这些发推上,谢谢了。。。

    【笑而不语】
    电面了个人,技术貌似还凑合,但是不知道 GFW 是啥,肿么办呢?” // 刚做了个电面,那人问我GFW是啥,这风口浪尖的我才不会范傻呢,话说他是傻逼吗?这都还要问…

    【笑而不语】
    据说修建gfw或者维护gfw的人最终会死于直肠癌,因为这类人让网民网络便秘,受到了诅咒自己便秘。

    【信息科技】
    被鞋砸中后,方滨兴怒斥主办方:“听说他们在讲座之前就在Twitter上讨论这个事情了,你们怎么没有一点应对措施?”主办方一脸无辜地说:“那个网站(Twitter)我们打不开,被GFW屏蔽了,不知道他们说了什么。”

    【笑而不语】
    地震局专家表示,因为GFW的缘故,美国地震局的网站不能直接访问,他们现在正在寻找翻墙工具。所以暂时无法接受采访。请各大报社记者少安毋躁。

    【笑而不语】
    爷爷年轻的时候半夜收听敌台,爸爸年轻的时候偷看禁书,儿子从小就学会了翻越 GFW,这就是一批中国人生生不息的故事。 爷爷带红卫兵砸过孔庙,爸爸在初夏的广场上当过军队指挥,儿子从学生会主席顺利考上公务员最后参加了金盾工程二期项目,这是另一批中国人生生不息的故事。

    【笑而不语】
    人家在玩儿推倒呢,你还在玩儿推特;人家正和gf战斗呢,你还在草gfw~~~

    【笑而不语】
    3G时代的“三个代表”包括:GDP(国内生产总值)代表先进生产力的发展要求;GFW(防火长城)代表先进文化的前进方向;Government(政府)代表 最广大人民的“根本利益”

    【笑而不语】
    翻墙不忘筑墙人,每天问候方滨兴,FUCK GFW, FUCK FBX!

    【笑而不语】
    据说 Linkedin 被 GFW 是为了 IPO 的公关行为。因为近年硅谷流行下面的段子: 没有被山寨的网站就不曾存在过。 没有被GFW的网站就不曾成功过。

    【信息科技】
    微博,微信,微云,微创新。
    G+,GR,Gcom,GFW。

本文地址:http://fanqianghuayuan.blogspot.com/2013/05/gfw-duanzi.html
相关文章:

站长必备-在线检测网页错误工具--翻墙花园

文章来源于网上,转载自:http://www.zhukun.net/archives/1554

网页代码测试工具


  没有站长可以保证自己的网页代码完全正确没有任何错误,特别是是否符合W3C标准,你可以通过以下测试来检查网站代码是否正确,无论你是asp的还是php的都可以哟。

  1 . http://www.htmlhelp.com/tools/validator 一个很好的工具,能找出网站语法错误的地方,并标注出来,也可选择对网站上单独的每一页进行单页分析。( 强烈推荐 )

  2 . http://validator.w3.org 对 HTML 和 XHTML 都能进行代码测试,自称是互联网络上第一个(也是使用者最多的)的 HTML 验证工具。

  3 . http://jigsaw.w3.org/css-validator 用于验证 css 源代码,能够标注出不好的 css 代码设计。例如:“Same colors for color and background-color in two contexts”。

  4 . http://www.xml.com/pub/a/tools/ruwf/check.html 用于查找 XML 文件的错误。

  5 . http://validator.w3.org/feed 用于查找 Atom 和 RSS feed 中的错误语法。( 这个我经常用到 )

  6 . http://validator.w3.org/checklink 用于搜寻查明你网站内的所有链接里是否有断链。( 强烈推荐 )

  7 . http://juicystudio.com/services/linktest.php 测试网站内的链接的 URL 是否存在死链,与 W3C Link Checker 很类似。

网页设计的兼容性测试


  我们常常看到网站设计者把重点放在怎网站的吸引力上,而完全不考虑会不会影响来访者的使用,一个浏览难度很大的网页是注定要失败,要让你的来访者方便的得到他要的信息(从而成为重复访客),你的网站应当遵循 WCAG section 508 易用性规则。

  8 . http://webxact.watchfire.com 所有严谨的设计师和开发者都必须使用的工具,它会生成一个非常详尽的报告书,包括:网站质量,易用性和隐私等。( 强烈推荐 )

  9 . http://checker.atrc.utoronto.ca/index.html 测试网站的 WCAG 2.0 Level2 兼容性,它会生成一份报告,提出一系列建议,如:如何提升页头,链接,数据,图表和文字的访问速度。

  10 . http://www.wave.webaim.org/wave/index.jsp 高度可定制的工具,它采用了图形化模型展示网站兼容性问题( WCAG 1.0 and section 508 )。( 强烈推荐 ) 美

  11 . http://www.tawdis.net/taw3/cms/en 测试网页是否存在冲突( WCAG 1.0 兼容性 ),通过图形模式生成一份依据 wcag 优先模式为基础的网站修改建议。

  12 . http://www.cynthiasays.com 采用了非常严格的规则来测试网页( 根据 section 508 和 WCAG 1.0 规则 ),生成的报告也极为详细( 详细到很难看懂 )。

  13 . http://www.sidar.org/hera/index.php.en 使用一种极为复杂但容易理解方式指出网页的 wcag1.0 兼容性问题。

  14 . http://juicystudio.com/services/csstest.php 进行了色彩对比测试,以确保你的网站的色调会符合 WCAG 1.0 的要求。

  15 . http://juicystudio.com/services/readability.php 分析你网站上的文字是否有语法错误或拼写错误等问题,容易让人理解不( 根据 the Flesch Reading Ease 和 Flesch-Kincaid grade level algorithms 规则 )。( 适合英文网站使用 )

网站速度测试工具


  对于站长来说,在选择服务器地点的时候,一般都是根据自己访问时的速度决定的,那么你知道全国乃至全世界其它地区访问你网站时的速度如何吗?如果你是电信的,你知道网通的速度或者铁通的速度吗?要知道对于网站访问者来说,如果你的网站打开速度慢,那就会立即失去了继续访问的兴趣。但是如何测试网站速度呢?下面提供了几个网络测速网站,可以检测全球其它地区连接你的网站时的时间哦。

  16 . http://www.websiteoptimization.com/services/analyze 一个很好的工具,它在分析完一个网页后,会为减少加载时间提出优化建议,着重优化物体的数目,图片和网站的总体大小。(强烈推荐 )

  17 . http://www.websitepulse.com/help/tools.php 有一系列的工具来确定网站的加载速度和主机信息。

  18 . http://internetsupervision.com/scripts/urlcheck/check.aspx 从世界各地不同的服务器来测试你的网站的加载时间,用于确定是不是各地的来访者都能顺利快速的打开你得网站。

浏览器模拟工具


  是一个普遍的问题,因为现在有着很多的操作系统和浏览器,你得网站必须得兼容它们,但这绝不是一件容易的事。通过下列工具,你可以了解你得网站在各种浏览器上的显示效果。

  19 . http://browsershots.org 能给出你的网站在不同浏览器下显示效果的截图,包括:Firefox 和 Internet Explorer ( Windows )、Firefox 和 Safari ( Mac OS X )、Iceweasal 和 Konqueror ( Linux ),但是结果要在 1 – 3 小时后才能出来。

  20 . http://ipinfo.info/netrenderer 实时生成你的网站在 Internet Explorer 5.5 、6.0 和 7.0 下的截图。

  21 . http://ready.mobi/launch.jsp?locale=en_EN 分析使用手机访问网页的兼容性问题,会生成一份详细的报告,并提供了在两种不同类型的手机浏览器上你得网站可能显示的样子。

搜索引擎优化 (SEO) 方面


  一个网站,如果对搜索引擎有着比较好的友好度,一定会比较有竞争力。

  22 . http://www.urltrends.com 会显示网站的访客是如何通过搜索引擎来到你的网站,还有各个流量是多少。这些数据是包括 Google, Yahoo, MSN, Alexa, AlltheWeb, AltaVista 和其他一些网站。( 强烈推荐 )

  23 . http://www.iwebtool.com/backlink_checker 一个很好的工具,它能找出有什么站点链接到你的站点,那些站点是什么类型的站点。

  24 . http://www.iwebtool.com/multirank 显示你网站的 Alexa 和 Google PageRank 数值。

  25 . http://adlab.microsoft.com/default.aspx 一个极好的工具,用于分析和预测你网站的来访者和市场。( 强烈推荐 )

  26 . http://whois.domaintools.com 一个 WHOIS 网络工具。

  27 . http://www.seo-browser.com 可以让你看到在搜索引擎眼里一样的网站( 去掉所有的”美丽”配件 )。

  28 . http://www.seoworkers.com/tool/analyzer.html 非常有用的工具,分析了网站上的各种分类特征,包括 meta 标签、关键字密度及加载时间。( 强烈推荐 )

  29 . http://www.seekport.co.uk/seekbot 可以分析网站的数据和内容,以得出搜索引擎会如何有效的解释分析的网站。

  30 . http://www.seochat.com/seo-tools 用以分析网站 Google adsense 盈利潜力,关键字密度,Meta tag 等等……

  31 . http://www.marketleap.com/publinkpop 用来分析网页,让你知道你的网站检索、设定的关键字好不好

本文地址:http://fanqianghuayuan.blogspot.com/2013/05/web-master-tools-online.html
相关文章:

介绍陈奕伦的《无道德社会的启示》(萧强)--翻墙花园

转载自RFA,原文地址:http://www.rfa.org/mandarin/pinglun/xiaoqiang/xq-08242011153854.html


  我的工作是对中国的互联网媒体的观察,在我的网站《中国数字时代》每天都会通过自动聚合技术,收集很多在网上被网民热传和推荐的时政的信息。今天在写这篇评论的时候,我注意到这样一篇文章,是从香港的一个网站叫《公识网》上取来的,作者的名字叫陈奕伦,他文章的题目叫《无道德社会的启示》。

  这篇文章的一开始其实是作者的一段读书笔记,他是这么写的:“1958年,美国政治学家爱德华•班菲尔德(Edward C. Banfield)出版了一本名为《落后社会的道德根据(The Moral Basis of a Backward Society)》的书,记载了他在意大利南部为期九个月的社会调查。在这九个月中,班菲尔德携妻子和两个孩子生活在一个被他在书中化名为蒙特格拉诺 (Montegrano)的小村中,每天通过学生的翻译与当地农民进行访谈、了解当地的情况。最后,他总结出了一个被他称为叫做‘无道德家庭主义’(Amoral Familism)的社会形态,也就是一种只顾及自己小家庭的利益而完全置社会其他成员的利益于不顾的社会信条。”

  在这篇文章的下面,陈奕伦摘录了一系列无道德家庭主义社会常见的现象,我在这儿简单的选几条:第一条,在一个无道德家庭主义者所组成的社会中,没有人会在对自己无益的情况下促进群体或社区的利益;第二条,只有官员会参与公共事务,因为这是他们的职责。任何普通公民参与公共事务都会被视为不正当或不正常;第三条,对政府官员的监督少之又少,因为这只是其他官员的责任;第七条,一个具有政府职位的无道德家庭主义者只要不受到惩罚就一定会接受贿赂,而且无论他接受与否,这个社会都会直接假定他有接受贿赂;第八条,在这样一个社会中,弱势群体会更想要一个可以通过强权维持秩序的政权;第九条,任何声称为公共利益而非个人利益而努力的个人或组织都会被看成是骗人的,等等、等等。

  在引用了美国政治学家的研究之后,陈奕伦写道:“在看到这一系列文字的时候,我突然产生了一种似曾相识的感觉——这幅场景与中国是何等的相似啊!如何治愈这个无道德社会是一个我们一直在探索的问题。”

  当我读这篇文章读到这儿,不禁想看一下这篇文章的作者究竟是谁,就在网上搜索了一下,发现这位叫陈奕伦的作者还是一位23岁的青年,从北京来到美国哈佛大学读书的学生。他不仅仅在读书、思考,也已经亲身组织和参与了一些留学生去中国贫困地区支教的活动。为什么他组织这样的活动、读这样的书、写这样的文章呢?
我从他写的其它文章中,再摘几句,陈奕伦说:“我们应该何去何从?或许我们手中最大的优势就是当今这个高度信息化和社会网络化的世界。”“哪怕只是些小小的行动,对于我们来说,都太重要了,因为只有行动才能改变我们的社会。随着时间的流逝,我们这一代年轻人将不可避免地成为这个社会的主体。如果我们希望在这个社会中看到变革,那仅仅希望是不够的。这个社会、这个世界将不仅仅是前人遗留给我们的,更是由我们自己用行动、付出去塑造的。现在,我们已经有了意见领袖,接下来,则是行动领袖。”

  读完他的这篇文章,我不仅从作者的思考和分享中受益良多,也衷心地祝愿这位思考和行动并重的青年人,能够在他的生活道路上,继续勇敢地前进。

  (文章只代表特约评论员个人的立场和观点)
  (根据录音整理,未经作者审校)

本文地址:http://fanqianghuayuan.blogspot.com/2013/05/xiaoqiang-chenyilun-shehui-qishi.html
相关文章:

关于GFW翻墙的一篇技术文章:如何忽略GFW防火长城--翻墙花园

本文转载自美博园,对于想研究GFW翻墙、GFW工作原理与GFW突破技术的技术人员和爱好者来说应该值得一读,原文地址:http://allinfa.com/ignore-gfw.html


美博园注:这篇文章发表已久,本站觉得作为重要资料收集还是很有价值,故收录于此。原文:如何忽略防火长城。 摘要:所谓“防火长城”之部分工作原理即是检测传输控制协议(TCP)报文中需要封锁的关键词。如果出现关键词,TCP复位报文(即RST标志置位的报 文)即向连接两端发送,连接随之关闭。而原报文完好通过防火墙,如果双方完全忽略防火墙的复位,那么连接仍可顺畅进行而防火墙失效。一旦连接被封锁,防火 墙还会进而尝试封锁双方的继发连接。后种特性可能被利用来对第三方进行拒绝服务攻击。
1 引言
中华人民共和国运行的互联网过滤系统,普遍认为是世界上最复杂的系统之一。[1]其部分工作原理即是检测网络(HTTP)流量判断是否出项特定关键词。[2]这些关键词涉及一些中国政府封杀的组织、不可接受的政治意识形态、不愿讨论的历史事件。[3]
直观判断,关键词封锁发生在连接中国与外界网络的路由器组内部。[4]这些路由器利用基于入侵检测系统(IDS)技术的设备来判断报文内容是否匹配 中国政府制订的过滤规则。[5]如果客户端与服务器的一个连接需要封锁,路由器则会在数据流中注入伪TCP复位报文,于是双方便会断开连接。[6]这种封 锁一旦触发,便会持续数分钟,相同方向上的继发连接都会被伪复位直接打断。
在本文第2节我们将讨论国家阻止其公民访问特定网络内容的方法,以及以往调查者认定的优点和缺点。在第3节我们提供了从中国防火墙系统封锁的连接两 端获取的一组报文。第4节我们提出了这个防火墙的一个模型,来解释我们获得的结果。然后第5节我们将展示,通过忽略防火墙发出的TCP复位我们成功传输了 本来应该被封锁的内容,并讨论为什么这种手段防火墙难以应付。第6节我们展示了防火墙的封锁行为如何可以被利用来对第三方进行拒绝服务攻击。最后在第7 节,我们讨论了这种规避审查的方法的优缺点,并思考了中国以外的网站如何免于封锁降低访问难度,还提出公共政策能怎样鼓励人们规避审查的问题。
2 内容封锁系统
有三种显著的内容封锁手段:报文丢弃、DNS污染、内容检测。研究北威州封锁右翼纳粹内容的Dornseif的论文[7],和研究英国电信混合封锁系统封锁恋童癖网站的Clayton[8]的论文,一起确定了以上手段。
2.1 报文丢弃方案
在一种报文丢弃方案中,往特定IP地址的所有流量被全部丢弃,于是网站便无法访问。这种方案费用低廉,易于实施──标准的防火墙和路由器便已提供这 些必要特性。报文丢弃方案有两个主要问题。首先,IP地址列表必须保持最新,如果内容提供者不想让ISP轻易封锁他们的网站,保持更新的困难便暴露出来。 [9]其次,系统会导致“过度封锁”──共用同一IP的其他网站被全部封锁。Edelman调查了过度封锁的潜在程度,发现69.8% 的.com、.org和.net网站与50以上其他网站共用IP。[10](虽然一部分域名只是“停放”在一个普通网页上)其详细数字显示网站共用IP数 的连续变化图谱,反映出在一台主机上尽量多挂网站这种盛行的商业做法。
2.2 DNS污染方案
在一种DNS污染方案中,当用户查询域名服务系统(DNS)将文字的域名转换为数字的IP地址时,可以返回错误的应答或者不返回应答导致用户不能正 常访问。这类方案没有过度封锁的问题,因为禁止访问特定网站不会影响到其他网站。不过,邮件传递也需要DNS查询,如果只是封锁网站而不封锁邮件服务的 话,此类方案实现起来容易出错。Dornseif展示的样本中所有的ISP都至少有一次在实现DNS污染时出错。[11]
2.3 内容检测方案
多数内容检测方案是让所有流量通过一个代理服务器。 这个代理通过不提供禁止内容来过滤。这种系统可以做得非常精确,程度可以到屏蔽单个网页或者单个图像而让其他内容顺利通过。这类基于代理的系统没有普遍使 用的原因是,可以应付主干网络或者整个国家网络流量的系统过于昂贵。2004年9月美国宾夕法尼亚州,要求封锁包含儿童色情网站的一条州法令以违宪被裁定 无效[12]。当初由于经费原因,宾夕法尼亚的ISP采用的是报文丢弃和DNS污染的混合策略,导致的过度封锁和“前置审核限制”对地区法庭作此裁决起到 了相当的作用。不过,基于代理的系统已被部署到若干国家比如沙特阿拉伯[13]、缅甸[14],以及挪威的一些网络提供商比如Telenor[15]。 Clayton研究的英国电信的系统是一种混合设计,利用廉价缓存代理处理特定目标IP的报文。不幸这导致用户可以逆向工程得到封禁网站的列表,而这些网 站提供儿童的非法图像,这违背了此系统的公共政策目标。
进行内容检测的另一种手段则是入侵检测系统(IDS)。IDS设备可以检测通过的网络流量并判断其内容是否可接受。如果需要封禁则会调度邻近的防火 墙拦截报文,或者就中国的情况而言,发送TCP复位报文导致威胁性连接关闭。基于IDS的系统显然比其他方案更灵活,更难规避。Dornseif和 Clayton都对如何规避各种封锁进行了深入探讨。[16]然而如果通信保持清晰不加密不变形到IDS无法辨别的程度,那么无论采取什么规避手 段,IDS方法都能够将其检测出来。[17]
3 中国防火墙如何封锁连接
我们在实验中从英国剑桥(墙外)的若干机器连接了中国内的一个网站(墙内)。当前中国的防火墙系统的工作方式是完全对称的[18]──在两个方向上 检测内容并进行过滤。[19]通过从剑桥的终端发出所有的指令我们完全避免了违反中国法律的可能性。一开始我们以正常模式访问一个中国网页并记录双方的报 文流。接下来我们又发起一次有意触发封禁的请求,观察连接是如何被复位报文关闭的。我们继续“正常”的(不包含触发性词汇的)请求,却发现接下来的连接都 意外地被封锁了。接下来我们将详细描述观测结果。
3.1 复位封锁
刚开始我们只是访问一个普通网页,如预期得到完全正常的返回。如下面的转储报文所示,起始的TCP三次握手 (SYN[20],SYN/ACK[21],ACK[22])之后客户端(此实例中使用了53382端口)向服务端http端口(tcp/80)发出了超 文本传输协议(HTTP)的GET指令获取顶级页面(/),传输正常。我们使用netcat(nc)发出这个请求,没有使用网页浏览器,从而避免了无关细节。报文用ethereal截取,用一般格式表示出来。
cam(53382) → china(http) [SYN]
china(http) → cam(53382) [SYN, ACK]
cam(53382) → china(http) [ACK]
cam(53382) → china(http) GET / HTTP/1.0
china(http) → cam(53382) HTTP/1.1 200 OK (text/html) ……
china(http) → cam(53382) ……其余页面内容
cam(53382) → china(http) [ACK]
……接下来这个页面就完整了。
我们发出另一个请求,包含了一小段可能触发封禁的文字,当然这也很快发生了:
cam(54190) → china(http) [SYN]
china(http) → cam(54190) [SYN, ACK] TTL=39
cam(54190) → china(http) [ACK]
cam(54190) → china(http) GET /?falun HTTP/1.0
china(http) → cam(54190) [RST] TTL=47, seq=1, ack=1
china(http) → cam(54190) [RST] TTL=47, seq=1461, ack=1
china(http) → cam(54190) [RST] TTL=47, seq=4381, ack=1
china(http) → cam(54190) HTTP/1.1 200 OK (text/html) ……
cam(54190) → china(http) [RST] TTL=64, seq=25, ack zeroed
china(http) → cam(54190) ……其余页面内容
cam(54190) → china(http) [RST] TTL=64, seq=25, ack zeroed
china(http) → cam(54190) [RST] TTL=47, seq=2921, ack=25
开头三个复位报文序列号对应了GET报文的序列号+1460和+4380(3 × 1460)。[23]我们认为防火墙发出三个不同的值是想确保发送者接受复位,即使发送者已经从目的地收到了“全长”(1460字节)ACK报文。复位报 文的序列号需要“正确”设定,因为现在多数TCP/IP实现都会严格检查序列号是否落入预期窗口。[24](这个验证序列号的内在漏洞由Watson在 2004年首先提出。[25])
此结果还显示,在连接被打断后仍然收到了从中国机发来的一部分页面。然后剑桥机响应了那两个意外报文,发送了自己的TCP复位。注意它将确认号置零 而没有使用随机初始值的相关值。收到的所有复位报文的TTL[26]都是47,而中国机来的报文的TTL都是39,说明它们来源不同。如果来源的初始值都 是64,这也许说明复位产生的地方距离服务器有8跳(hop)。 traceroute显示那是通信从Sprint网络(AS1239)进入中国网通集团网络(AS9929)后的第二台路由器。
我们也从中国服务器的视角看这次连接封锁:
cam(54190) → china(http) [SYN] TTL=42
china(http) → cam(54190) [SYN, ACK]
cam(54190) → china(http) [ACK] TTL=42
cam(54190) → china(http) GET /?falun HTTP/1.0
china(http) → cam(54190) HTTP/1.1 200 OK (text/html) ……
china(http) → cam(54190) ……其余页面内容
cam(54190) → china(http) [RST] TTL=61, seq=25, ack=1
cam(54190) → china(http) [RST] TTL=61, seq=1485, ack=1
cam(54190) → china(http) [RST] TTL=61, seq=4405, ack=1
cam(54190) → china(http) [RST] TTL=61, seq=25, ack=1
cam(54190) → china(http) [RST] TTL=61, seq=25, ack=2921
cam(54190) → china(http) [RST] TTL=42, seq=25, ack zeroed
cam(54190) → china(http) [RST] TTL=42, seq=25, ack zeroed
我们可以看到,当检测到“坏”报文,防火墙也向中国机发送复位(“[RST]”)报文,但都在GET报文(以及其响应报文)后面。最后两个复位报文(零确认号)是剑桥机发送的。
其他到中国机的复位(因为有“falun”而生成的)TTL都是61,这意味着它们在3跳以外生成,初始值为64。这跟剑桥观测到的8跳偏移不一 样。不过这说明可能有不止一台设备在生成复位──或者初始值经过调整不是64。我们目前对于观测到的这种不对称性没有确定的解释。
开始三个复位的序列号也设置在一定范围(+25,+1485,+4405)以确保命中,事实上+25报文就已经重置了连接。[27]第四、五个复位报文检查确认号发现,它们可以视作连接重置前中国机成功发送的两个报文的响应。
3.2 直接重置连接
防火墙不仅检测内容,还有其他封锁规则。我们发现,只要进行一次“坏”连接,在短时间内相同两主机之间的所有网络通信在经过检查之前就都被封锁了。前面也是连接被封搜,不过现在开始继发连接也会被封锁了。比如,在上面一例以后立刻继续,我们看到:
cam(54191) → china(http) [SYN]
china(http) → cam(54191) [SYN, ACK] TTL=41
cam(54191) → china(http) [ACK]
china(http) → cam(54191) [RST] TTL=49, seq=1
复位报文从防火墙而来(也往服务器而去)随之客户端便关闭了连接。如果客户端在复位到达前成功发送GET报文,便会接着收到多个防火墙发来的复位 (即使GET报文是完全无毒的)。接下来便是从服务端来的复位──服务器收到复位后便会立刻在GET到达前关闭连接。由于GET发来时不再存在打开的连 接,服务端便按照协议返回一个复位。值得注意的是,防火墙在SYN阶段(三次握手阶段一)没有试图重置连接,而是等到了SYN/ACK(阶段二)。虽然可 以在客户端一发出SYN就给它复位报文,但只有等到SYN/ACK才能构造出对服务端起作用的有效复位。[28]
在实验中我们发现,节点被阻断通信的时间是可变的。有时候是几分钟,有时候可能是一小时。平均时间大概在20分钟,不过由于观测到时间值有在特定值 附近聚集的显著趋势,我们怀疑不同的防火墙组件有不同的时间延迟设定;这就需要深入理解是到底是谁在处理通信,才能较准确地预测封锁周期。
3.3 其他中国网络的情况
我们获取了中国自治系统(AS)的一个列表,并从中生成了在全球路由表中所有中国子网的列表。[29]然后我们利用了一个修改过的 tcptraceroute,判断出通信是通过哪个AS从国际网络进入中国,并从中得知了中国主干边际网络的实体。结果便 是:AS4134,AS4837,AS7497,AS9800,AS9808,AS9929,AS17622,AS24301和AS24489。然后我们 在各个AS中挑选了样例服务器测试,发现所有网络都有都跟前面描述相似的复位行为(除了AS24489:跨欧亚信息网)。以此我们可以推出:我们的结果正 展示了典型的“防火长城”系统。情况在2006年5月下旬是这样的,但并不一定普遍适用。[30]
4 防火长城的设计
基于以上实验结果,以及中国使用的技术设备类型的描述──比如思科的“安全入侵检测系统”[31]──我们提出以下模型来描述中国防火墙中路由器的工作方式(此模型很符合观测,但仍是推论性的,因为中国的网络提供商没有发布关于这些系统的任何技术规格):
当报文到达路由便被立刻放入适当的向前传输队列。此报文也被送到带外IDS设备进行内容检测。如果IDS(关键词匹配)认为此报文“不好”,那么便为连接两端各生成三个TCP复位报文(有三个不同的序列号)交由路由器传输。[32]
IDS在逻辑上是与路由器分离的,很难从路由传输队列中去除或者延迟“坏”报文。然而发出复位关闭连接是相对简单的。如果路由器相对繁忙,而IDS 工作正常,复位报文会在“坏”报文之前发送;这也是我们在实验中观测到的主要情况,虽然有时候复位报文会拖在后面。复位报文的设定值充分显示出,设计者担 心与路由器相比IDS的拥塞导致“坏”报文跑在复位报文前面。这种设计中如果不发送附加的复位,在繁忙情况下防火墙是无法保证封锁的可靠性的。
一旦IDS检测到需要封锁的行为,它也可以向主路由器添加一条简单的丢弃规则而不发出复位。[33]我们相当怀疑这种做法在主干高速路由器上扩展性差,而在IDS内的封锁简单而廉价。
我们还观测封锁的时长得知,提供防火墙功能的设备不止一个。我们进行了进一步实验,发送256个包含威胁性字串的报文通过防火墙,虽然是从一个机器 上发出的,但将它们的源地址设置分别为256个连续的IP地址值,即中国防火墙会认为这是256个不同机器在发送需要封锁的内容。结果是,我们观测到有时 候返回的复位报文是乱序的。然而现代互联网处理报文基本上是用FIFO(先进先出)队列,[34]那么对于这种失序的最简单解释便是,不同的报文给了不同 的IDS,它们各有各的FIFO队列但在发送复位时负载不一样。可惜我们发现这个实验引起了很多的报文丢失(不是所有的连接都返回了应有的复位报文),不 能对报文失序程度有直观感受。这样我们也没法(通过队列建模)确定平行IDS设备的数量下界。我们计划以后再做这个实验。
4.1 防火墙“状态”
没有证据证明带外IDS设备互相通信,并共享网络连接“状态”的记录。实验表明在一个边际网络触发防火墙不影响通过其他边际网络的通信。
而在“状态”本来应该保留的地方(IDS设备中)却没有关于TCP状态的检查。设备孤立地检查报文,于是将?falun分散到相邻两个报文就足以避 免检测。更有甚者,这些设备对于是否有连接存在也不关注,我们的许多测试中甚至没有进行三次握手打开连接就直接发送GET报文。事实上除了初始检测之后的 持续封锁,没有证据证明IDS设备做了其他什么特别的事情,IDS只是一次检查一个报文而已。
5 有意忽略复位
防火墙完全依赖于终端节点以标准兼容方式实现TCP协议[35],在收到复位报文时中断连接。如上所述,虽然有时候防火墙有点超常,复位报文跑在 GET报文前面结果被仔细验证一番以后丢掉了,不过在下一个报文到达防火墙的时候连接就会被防火墙摧毁所以,总得来说还是没有什么区别。
不过现在考虑如果终端节点不遵守标准然后TCP复位被彻底忽略的情况,我们会想到,即使触发了IDS,防火墙也对HTTP传输没有任何影响。于是我 们进行了深入实验两边的终端节点都忽略TCP复位的情况。这有许多方法可以实现,我们选择设置合适的报文过滤防火墙规则。在Linux可以安装 iptables并使用此命令:
iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP
来丢弃传入的RST置位报文。如果是FreeBSD的ipfw那么命令是这样的:
ipfw add 1000 drop tcp from any to me tcpflags rst in
当双方都丢弃TCP复位时我们发现网页传输确实没有被封锁。在剑桥端检测传输的结果:
cam(55817) → china(http) [SYN]
china(http) → cam(55817) [SYN, ACK] TTL=41
cam(55817) → china(http) [ACK]
cam(55817) → china(http) GET /?falun HTTP/1.0
china(http) → cam(55817) [RST] TTL=49, seq=1
china(http) → cam(55817) [RST] TTL=49, seq=1
china(http) → cam(55817) [RST] TTL=49, seq=1
china(http) → cam(55817) HTTP/1.1 200 OK (text/html) ……
china(http) → cam(55817) ……其余页面内容
cam(55817) → china(http) [ACK] seq=25, ack=2921
china(http) → cam(55817) ……其余页面内容
china(http) → cam(55817) [RST] TTL=49, seq=1461
china(http) → cam(55817) [RST] TTL=49, seq=2921
china(http) → cam(55817) [RST] TTL=49, seq=4381
cam(55817) → china(http) [ACK] seq=25, ack=4381
china(http) → cam(55817) [RST] TTL=49, seq=2921
china(http) → cam(55817) ……其余页面内容
china(http) → cam(55817) ……其余页面内容
cam(55817) → china(http) [ACK] seq=25, ack=7301
china(http) → cam(55817) [RST] TTL=49, seq=5841
china(http) → cam(55817) [RST] TTL=49, seq=7301
china(http) → cam(55817) [RST] TTL=49, seq=4381
china(http) → cam(55817) ……其余页面内容
china(http) → cam(55817) [RST] TTL=49, seq=8761
……接下来这个页面就完整了。
网页以正常方式传输,除了中间夹杂一些防火墙的TCP复位报文。由于被完全忽略(一共28个复位),它们对客户端的TCP/IP栈没有任何影响。客户端仍然继续接收网页,正常发送ACK。中国端也能看到类似的正常传输夹杂复位的情形。
这样,只是简单地忽略防火长城发出的报文我们就让它完全失效了!这无疑会让它的实现者大为恼火。
5.1 迷惑封锁
一方面是在连接建立以后通过发出TCP复位来阻断继发连接,另一方面我们也观察到一些防火墙有时还有附加策略。在一些节点(当然是随机的),我们看 见了防火墙发来的伪SYN/ACK报文。显然其序列号是随机而且无效的。如果防火墙的SYN/ACK报文比真报文先到那么连接失效──客户端从伪SYN /ACK中获取了随机的序列号并发给服务端错误的ACK,于是服务端便返回复位报文,导致客户端关闭连接。实际上,如果客户端发送GET比较快,还会收到 一批其他报文,导致防火墙和服务端的进一步复位:
cam(38104) → china(http) [SYN]
china(http) → cam(38104) [SYN, ACK] TTL=105
cam(38104) → china(http) [ACK]
cam(38104) → china(http) GET / HTTP/1.0
china(http) → cam(38104) [RST] TTL=45, seq=1
china(http) → cam(38104) [RST] TTL=45, seq=1
china(http) → cam(38104) [SYN, ACK] TTL=37
cam(38104) → china(http) [RST] TTL=64, seq=1
china(http) → cam(38104) [RST] TTL=49, seq=1
china(http) → cam(38104) [RST] TTL=45, seq=3770952438
china(http) → cam(38104) [RST] TTL=45, seq=1
china(http) → cam(38104) [RST] TTL=45, seq=1
china(http) → cam(38104) [RST] TTL=37, seq=1
china(http) → cam(38104) [RST] TTL=37, seq=1
对付这种防火墙的新策略比处理伪复位报文麻烦许多。因为即使客户端忽略了服务端来的(完全真实的)复位,还是会继续错误理解服务端的序列号,导致不 能与服务端同步以完成三次握手打开连接。当然如果有时候防火墙的伪SYN/ACK跑在真报文后面,就会被客户端忽略不造成任何混淆,不过防火墙仍然会坚持 不懈用复位报文来打断连接但是由于复位报文都被忽略了所以也没有用,网页照样显示。
重要的是确定来的两个SYN/ACK报文谁是真的。在样例中我们觉得它们很好区分,防火墙版的TTL值大不相同,没有DF标志,没有TCP选项。这 些伪SYN/ACK在现在为止还是像伪复位一样很好过滤的,防火长城再次失效。另外,由于只有封锁继发连接时才会使用这种策略,那么客户端可以把服务端的 TTL记下来,而防火墙是搞不清该往伪报文里填什么值的。
不过,防火墙越搞越复杂,说不定就能造出没法区分的SYN/ACK报文来了。那客户端直接把第一个收到的SYN/ACK当成防火墙发出的伪报文即 可。不过要是防火墙又来时不时来延时一下才发送伪SYN/ACK(让思维简单的机器通过,打倒思维复杂的机器!)那么这场复杂的“博弈”会升级成更深奥的 战略对决。要注意打开网页常常会有多个连接,那么防火墙即使只是搞掉其中一部分也会觉得有“胜利感”。
一个高效的客户端策略(先决条件是客户端和服务端都丢弃复位报文)是将所有传入SYN/ACK报文视为有效(防火墙以后也许会发好几个过来),然后 检查全部的序列号和确认号直到从服务端收到一个ACK以确认正确的取值。不过这对于像iptables或者ipfw这种简单的报文过滤系统来说太复杂了, 超出实现能力。
新一轮“博弈”也许是防火墙开始针对所有客户端报文伪造ACK。可能客户端可以通过检测从服务端获得的真正RST来看穿防火墙的整个伪连接,于是防 火墙连这些都要开始伪造了──这样下去策略变得不知道有多复杂。不过终端节点确实有优势来最终判断报文是来自(有状态的)对方还是(无状态的)防火墙。要 是防火墙也开始记录“状态”,那么整个主要架构的变化(虽然一定又是一笔巨大的开支)便会带来许多其他可用策略,优势也会决定性地偏向防火墙这边。
可是必须注意到,防火墙的SYN/ACK报文伪造问题不能通过改变服务端的TCP/IP栈来安全地解决。那样的话服务端需要发现客户端持续地响应的 那个“错误”的ACK值并改变自身状态以响应这个从伪SYN/ACK报文中出来的值。但这样就去掉了一个Bellovin记录的重要安全步骤,进而导致恶 意主机伪造源IP地址访问的漏洞。[36]
另外,在可以“嗅探”并伪造报文的对手面前进行安全连接,这在密钥交换协议邻域已经得到充分研究。未决的问题是,如何利用中国防火墙目前的架构性缺陷,通过对现有TCP/IP栈的简单修改来战胜防火长城。
6 拒绝服务攻击
我们前面提到,单个包含?falun之类内容的TCP报文就足以触发节点间至多长达一个小时的封锁。如果伪造源地址,就可以发起(但也是受限的)拒 绝服务(Denial of Service)攻击,阻断特定节点间的通信。不过不同的人有不同的目标,这对某些攻击者来说已经足够。比如,识别并阻止地区政府机构的主机访问 “Windows自动更新”;或者阻止某个部委访问一个联合国网站;或者阻止中国海外使馆访问家乡网站。
我们计算发现,即使是一个人通过单个拨号连接也可以发起相当有效的DoS攻击。这样一个人每秒可以产生大约100个触发性报文,假设封锁时间大约是 20分钟,那么120000对节点便可被永久封锁。当然,现在的DoS攻击几乎不会通过单个拨号方式实现,而是在快得多的网络上以巨大的数量进行。那么 120000便可以乘到你满意。不过防火墙的IDS组件也许没有资源记录如此大量的封锁连接,所以实际的影响要考虑受到此类资源限制的情况。还要注意当 IDS处理DoS攻击的时候它处理其他连接信息的资源就会变少,于是其效用也就暂时降低。
6.1 DoS攻击的限制
进一步实验显示此防火墙的封锁方式比我们迄今为止解释的还要复杂一些;因此DoS攻击的效果不一定有刚才那样说得那么好。
首先,封锁只应用于相似端口上的继发连接。[37]只有端口值前9最高有效位与触发封锁的端口对应时,防火墙才会封锁这一连接,这样的端口每次有 128个。Windows这类系统会连续分配临时端口,于是平均有64个继发连接会被封锁。(有时比如触发封锁的端口是4095那么就不会有继发封锁)反 之OpenBSD之类的系统会随机分配临时端口,于是继发连接被封锁的可能性只有1/500。
我们对防火墙的这种行为没有确定的解释。不看端口直接封锁所有连接似乎还简单有效许多。[38]这么做也许是为了避免误封NAT后面的其他用户,或 者是用来确定发送某报文的IDS。也许这么做只是有意要显得神秘而愈发有威慑力。然而从DoS攻击者的角度,除非有特殊条件可以预测临时端口,要让所有可 能端口段都被封锁所需的报文发送量便增长了500倍。
图1:中国防火墙对“坏”字符串的封锁情况。
图1:中国防火墙对“坏”字符串的封锁情况。
2006年二月上旬我们进行了一次10天的试验,每小时一次从256个相邻IP地址进行连接。这里是前128的结果;其余部分模式也十分相似。黑点表明连 接被封锁,白点表明没有封锁,灰点是结果不定(完全没有响应)。在110小时前后可见防火墙策略的显著变化(封锁更多的IP地址)。
其次,并非所有IP地址的流量都被检测过。我们每小时进行一次突发连接,发送一组256个IP地址连续的含有“?falun”的报文。起初每组报文 只有约三分之二被封锁掉,封掉的地址每次不同。不过几天之后几乎所有报文被封锁。我们无法通过逆向工程确定地址选择的算法,不过IP地址选择确有鲜明的模 式[39],暗示背后的机制可能相当简单。最直接的解释是资源匮乏──流量的三分之二也许就是整个系统可以处理的极限。显然某些时候如果一部分机器没有进 行报文检测的工作,DoS攻击也就不可能通过它们发起。
最终需要注意的就是,这些实验只是在中国内外的少量节点上进行的,虽然我们得到了足够一致的结果,但像“防火长城”这种复杂的系统我们还是可能忽略了它的某些重要特性。因此虽然我们认为DoS攻击可以在许多情况下成功,我们也不能保证任一节点对上的任一次攻击都能成功。
7 战略考虑
要让流量顺利通过中国防火墙就必须要求双方忽略复位。“世界其他地方”的机器如果想在中国也能正常访问,只需稍作调整。但在中国这边的人就不那么愿 意装一些特殊软件了。主要问题是防火墙可能做的,不仅是封锁,还有记录。随之而来的可能就是侦查,安装的特殊软件便会被查获,有人便会对你安装此种软件的 动机产生某种看法。
中国防火墙的报文检查功能也可以通过加密的方法规避。如果当局通过对内容的统计分析检测出加密通信,那么安装特殊软件遭到侦查的问题还是一样的。由 于加密系统一般会话结束后便废弃密钥,通信内容是色情还是政治演讲这是无法分辨的。如果用丢弃复位的方法穿墙,防火墙可以通过日志的方法记录封锁触发内 容,当局便可以检查日志并对这两种通信采取不同措施。这两种方法相比有人觉得丢弃复位法更有优势。
如果复位丢弃广泛以毫不相关的理由应用,中国政府可能不得不对复位丢弃软件采取更加容忍的态度。
关于软件防火墙的一些研究指出如果例行丢弃TCP复位会产生一些副作用。[40]复位报文主要是用来快速报告不受欢迎的传入连接。如果远端机工作良好,那么忽略报文而不响应复位只会产生稍微多一点的流量。
然而,对于不想丢掉所有的TCP复位的人来说,当然这里也有另一种策略。[41]目前TTL校验就是一种检测复位报文真伪的简单方法。特别地,我们 注意到Watson提出的通过第三方伪复位造成连接关闭的复位攻击[42],通常的防御手段是仔细验证序列号。如果再加上复位报文的TTL校验,就可以更 好地识别伪复位。本文作者之一编写了一段20行的FreeBDS补丁[43],可以丢弃TTL值严重偏离的复位报文。到现在用户体验都很好。其他操作系统 和个人防火墙大概也不会觉得添加这个功能很麻烦。
当然,中国防火墙也可以改进,让前面提及的规避方法难以实现。特别是它可以较容易地构造正确TTL的复位报文发往触发报文的相同方向。不过要想获得 相反方向的正确TTL就不大容易了,因为网络路由基本上是非对称的,防火墙不能透视通信的两个方向。更复杂的方法是将报文从路由队列中移除(或者延迟到内 容检测完成才放行)。除非报文在抵达终点前被阻止,我们的基本策略──无视防火墙发出的噪音──将继续有效。
另一套完全不同的防火墙策略则是当封禁被触发后不向该站点转发任何报文。不过我们前面提到此法扩展性极差,因为完成这个“内联”过程需要路由器间的快速通路──而且,全面的封锁无疑增加了DoS攻击的威力。
7.1 打破“防火长城”的公共政策动力
特别是在美国,有相当的政治利益关心着中国之外的公司如何帮助中国政府压制信息、锁定持不同政见者和异见网志作者。特别地,在2006年2月的一次 国会听证会上,相当数量的美国大型公司由于其政策和行为而受到了严厉谴责。[44]不过对于如何绕开中国的过滤技术现在也有更多的关注。比如由CIA部分 资助的SafeWeb,在2000到2003年运营了一个匿名网络代理,同时它还开发出一种昵称TriangleBoy的反审查技术。[45]2006下 半年发起的加拿大的Psiphon计划旨在让“不受审查国家的公民向在他们防火墙背后的朋友和家人提供自由的网络连接”。[46]
可以预测本文所描述的通过忽略复位报文规避中国防火墙的方法也会引起相当的兴趣。当然也会有“军备竞赛”的危险,所以双方采取的策略可能复杂得多。 让防火墙立刻失效方法也是相当直接的;不过实现这个方案需要中国外的服务器和中国内的浏览器同时丢弃复位。服务器一方显然会有动力去实现复位丢弃,因为这 样就让在中国的人可以访问。不过要是看看中国国内的情形和人们改变浏览器(或者操作系统)配置的动力就会知道事情远比这复杂得多。虽然都是运行在中国的机 器上,这些软件却都是在中国以外开发,特别是大多数软件都安装在微软开发的Windows上。
我们这里提出一个关于公共政策的问题:是否应该鼓励或者强制微软修改程序以帮助规避中国防火墙?显然对于中国的审查有着广泛谴责,那么反审查措施当 然会得到政治意见和公共意见的赞同。[47]在本节前面我们提到,对这种改进的技术性反对意见是很有限的,这种改进可以提升对第三方攻击(防火墙只是第三 方干涉网络通信的特例)的防御安全性。然而微软(以及其他操作系统和浏览器开发商)很可能不愿意冒犯中国政府,那么在被强制之前他们会一直拖下去。
一般的常识便是软件容易修改,硬件不易修改。不过把硬件改动的时间与制订新法规的时间相比就会知道,在强制供应商提供规避防火墙功能的法律生效之 前,中国政府就会采用新的封锁硬件。[48]可以推测,新的硬件会考虑到我们提到的问题并对复位丢弃免疫。因此我们认为通过立法(强制供应商)并不是实用 的办法,除非立法是普遍意义上的、不关注技术细节的。让供应商少去讨好中国政府多关心其他所有人,这才是最现实的道路。
8 结论
本文我们展示了基于报文内容检测的“防火长城”。当过滤规则触发时,伪复位报文便发向TCP连接两方。然而真正的报文亦完好通过防火墙,于是通过忽 略这些复位,通信便不受干扰。相同方向上的继发连接也被封锁(只有在端口相关的情况下),不过通过忽略复位通信仍可以顺畅继续。
以上结果对于中国当局具有相当的意义,他们也许会加强他们的系统、修补防火墙的漏洞。当然我们在前面也说,这并不容易。[49]然而对于希望自由访 问网络的中国居民来说,以上结果意义就小得多,因为他们的活动仍然受到记录和监视。只有当丢弃复位报文成为普遍做法以后,人们的才能说他们是无意中翻墙的。这种想法也不能算离谱,因为验证TCP复位是否为伪造也是TCP/IP栈应该做的。
我们还展示了封锁的副作用:为DoS攻击提供了可能性。当然这种DoS攻击只能用在特定节点之间。利用一套封锁机制来封锁什么东西这本身并没什么新意,但如果防火墙不作足够的状态记录,我们也看不到避免这种攻击的简便方法。
我们展示的结果也关系到其他使用类似复位机制来保护自身利益的国家、机构、企业。他们应该谨慎地认识到这种封锁完全依赖于被封锁者的默许。一些相对中国来说的小国家会经受更大的DoS攻击风险,因为他们的终端节点要少得多,防火墙在攻击效果变得显著之前尚不会过载。
9 补记
2007年春另外一组研究者(Jedidiah R. Crandall和其他人的“ConceptDoppler”项目)[50]的一些实验也揭露了这个防火墙的工作细节,但复位机制是基本不变的。不过他们 的测量表明复位现在开始发生在中国互联网的内部,不仅是边际路由器;且与我们一年前观察到的相比封锁在繁忙时段变得更加断断续续。他们的研究手段也让他们 可以发表一份关于被过滤话题的统计列表。
注释
* [1] OpenNet Initiative, “Internet Filtering in China in 2004–2005: A Country Study,” OpenNet Initiative, http://www.opennetinitiative.net/studies/china/ONI_China_Country_Study.pdf (accessed October 21, 2007).
* [2] OpenNet Initiative, “Probing Chinese Search Engine Filtering,” OpenNet Initiative: Bulletin 005, http://www.opennetinitiative.net/bulletins/005/ (accessed October 15, 2007).
* [3] Ronald J. Deibert and others, eds., Access Denied: The Practice and Policy of Global Internet Filtering (Cambridge: MIT Press, 2007).
* [4] Nart Villeneuve, “Censorship is in the Router,” June 3, 2005, http://ice.citizenlab.org/?p=113 (accessed October 15, 2007).
* [5] OpenNet Initiative, “Probing Chinese Search Engine Filtering.”
* [6] RST标志置位的TCP报文。这种报文表明一方要求立即关闭当前连接不再传输。
* [7] See Maximillian Dornseif, “Government Mandated Blocking of Foreign Web Content,” Security, E-Learning, E-Services: Proceedings of the 17 DFN-Arbeitstagung über Kommunikationsnetze, eds. Jan van Knop, Wilhelm Haverkamp, Eike Jessen, 617–646 (Dusseldorf, Germany: GI, 2004).
* [8] Richard Clayton, “Failures in a Hybrid Content Blocking System,” in Privacy Enhancing Technologies: 5th International Workshop Cavtat, Croatia, May 30-June 1, 2005 (Berlin, Germany: Springer, 2006): 78–92.
* [9] Richard Clayton, “Anonymity and Traceability in Cyberspace,” Technical Report (2005), http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-653.pdf (for details of the complexity, see the extensive discussion in “Anonymity and Traceability in Cyberspace”) (accessed October 15, 2007).
* [10] Benjamin Edelman, “Web Sites Sharing IP Addresses: Prevalence and Significance,” Berkman Center for Internet & Society, http://cyber.law.harvard.edu/people/edelman/ip-sharing (accessed October 15, 2007).
* [11] Dornseif, “Government Mandated Blocking,” 626–27.
* [12] Center for Democracy & Technology v. Pappert, 337 F. Supp. 2d 606 (E.D. Penn. 2004).
* [13] King Abdulaziz City for Science and Technology: Local Content Filtering Procedure. Internet Services Unit (2004), http://www.isu.net.sa/saudi-internet/contenet-filtring/filtring-mechanism.htm (accessed October 15, 2007).
* [14] OpenNet Initiative, “Internet Filtering in Burma in 2005: A Country Study,” OpenNet Initiative, http://www.opennetinitiative.net/burma/ONI_Burma_Country_Study.pdf (accessed October 15, 2007).
* [15] Telenor, “Telenor and KRIPOS Introduce Internet Child Pornography Filter,” press release, September 21, 2004, http://presse.telenor.no/PR/200409/961319_5.html (accessed October 15, 2007).
* [16] Dornseif, “Government Mandated Blocking,” 642-44; Clayton, “Failures in a Hybrid Content Blocking System,” 78–92.
* [17] IDS可以将多种不规则的表现转化为标准形式,然后与封锁列表比对作出正确决策。
* [18] 这种对称必须存在,因为防火墙需要同时封禁网络请求和回应。
* [19] Villeneuve, “Censorship is in the Router.”
* [20] SYN(同步)标志标明了打开TCP连接时的第一个报文。
* [21] 这是对SYN报文的回应,其SYN和ACK(确认)置位,用“SYN/ACK”来表示在TCP连接打开过程中的第二个报文。
* [22] 关于TCP的准确细节,和发起连接时交换SYN、SYN/ACK和ACK置位报文的方法原因,可以查阅很多好的网络通信教材,比如W. Richard Stevens, TCP/IP Illustrated, Volume 1, The Protocols (Reading, MA: Addison-Wesley, 1994)。
* [23] 当我们启用TCP时间戳且报文包含12字节TCP附加选项的时候,这个值变成1448的倍数。
* [24] TCP对所有数据报文用序列号进行标记,指示报文包含数据的顺序。当报文丢失、延迟或重复时,可以靠序列号来重建数据流。“窗口”是指在没有收到确认时最 多可以发送的数据量。现在的互联网中,检查序列号落入窗口(复位报文序列号符合预期)是避免第三方干扰连接的重要安全措施。
* [25] Paul A. Watson, “Slipping in the Window: TCP Reset Attacks,” Open Source Vulnerability Database, http://osvdb.org/reference/SlippingInTheWindow_v1.0.doc (accessed October 15, 2007).
* [26] 存活时间(TTL)初始值由报文发送者确定,通过一个路由就减一。这是为了确保报文不在路由间无穷循环,当TTL为零时报文就被丢弃了。于是通过校验TTL值可以推算报文走过的距离。
* [27] 如果复位在GET报文之前到达,则此复位报文不会被接受。服务器是FreeBSD系统,在连接的这个阶段,TCP栈接受的复位的序列号必须精确匹配上次发 送的确认的值,以防止拒绝服务攻击。在GET报文到达前其值为+1,于是这时所有的复位都是无效的。
* [28] SYN/ACK报文含有连接双方选定的序列号。
* [29] AS指特定ISP拥有的骨干网络。我们采用的是CERNET的“China ASN List”,http://bgpview.6test.edu.cn/bgp-view/cur_ana/ipv4cn /china_asnlist.shtml。互联网路由器保存有优化路径列表,而“全球路由表”表达了特定AS对地址的所有权。
* [30] See Jedidiah R. Crandall and others, “ConceptDoppler: A Weather Tracker for Internet Censorship” (14th ACM Conference on Computer and Communications Security, Alexandria, VA, October 29–November 2, 2007) http://www.cs.unm.edu/~crandall/concept_doppler_ccs07.pdf (accessed October 15, 2007).
* [31] Earl Carter, Secure Intrusion Detection Systems (Indianapolis: Cisco Press, 2001).
* [32] 即,检测报文内容的设备是在实际连接“旁边的”于是只能检测“坏”流量而不能对其有任何直接影响。
* [33] 路由器一般都有根据特定标准进行报文过滤的功能。
* [34] Yi Wang, Guohan Lu, and Xing Li, “A Study of Internet Packet Reordering,” Information Networking (Heidelberg, Germany: Springer-Berlin, 2004): 350–359.
* [35] J. Postel, ed., “Transmission Control Protocol, DARPA Internet Program Protocol Specification” (memo, Network Working Group Request for Comments, September 1981) http://www.ietf.org/rfc/rfc793.txt (accessed October 21, 2007).
* [36] S. Bellovin, memorandum, May 1996, in Network Working Group Request for Comments, “Defending Against Sequence Number Attacks,” http://www.ietf.org/rfc/rfc1948.txt (accessed October 15, 2007).
* [37] ──译注,此节所述似已过时。在翻译完成的时候译者测试发现,继发封锁跟初始端口或者继发端口没有关系,所有端口的继发连接都被屏蔽。
* [38] HTTP通信不仅在80端口(tcp/http)上被封锁,还有其他一些端口也受到影响。不过一个端口被封不影响其他邻近端口,比如80端口被封不影响433端口(tcp/https)。
* [39] 见图1。
* [40] See Clayton, “Anonymity and Traceability,” 81.
* [41] 未来中国的防火墙还可能通过FIN报文来打断连接,然而忽略所有FIN报文则会导致不能正常连接,到那时TTL校验法会更好。
* [42] Watson, “Slipping in the Window.”
* [43] Robert N. M. Watson, “Patches Associated with My Academic Research,” http://www.cl.cam.ac.uk/~rnw24/patches (accessed October 15, 2007).
* [44] Suzanne Goldenberg, “Congress Accuses Google of Collusion,” The Guardian, February 16, 2006, http://www.guardian.co.uk/china/story/0,,1710616,00.html (accessed October 15, 2007).
* [45] SafeWeb, “TriangleBoy Whitepaper,” SafeWeb, 2003, http://web.archive.org/web/20030417171335/http://www.safeweb.com/tboy_whitepaper.html (accessed October 15, 2007).
* [46] Psiphon, http://psiphon.civisec.org (accessed October 15, 2007).
* [47] Stokely Baksh, “US Calls for Fall of Great Firewall,” United Press International, February 15, 2006; Kate Allen, “Today, Our Chance to Fight a New Hi-Tech Tyranny,” Observer, May 28, 2006; Cory Doctorow, “See No Evil?,” Guardian, July 6, 2007.opinion. 47
* [48] “此法案是近年来孕育期最长的。导致此法案产生的斯科特报告是在五年半前的1996年2月发表的。保守党政府接受了此报告的提议并立即发出了资讯文书。工 人党1997年的宣言坚定承诺要采取行动。于是1998年出了那本白皮书。不过之后政府就不闻不问于是,过了三年此法案才推出。”Hansard Parliamentary Debates, Commons, 6th ser., vol. 374 (2001), col. 457.
* [49] 本文中描述的实验都是在2006年春进行的,本文的初始版发表在2006年6月的隐私增强技术研讨会上。
* [50] ──译注:见http://www.conceptdoppler.org/。


本文地址:http://fanqianghuayuan.blogspot.com/2013/05/ignore-gfw.html
相关文章:

推荐几个优秀的免费DNS解析服务--翻墙花园

转载自:http://allinfa.com/several-excellent-free-dns-resolution-services.html

美博园2012年6月26日】手上域名众多,分别用了几家不同的DNS服务。如下是我自己在用的几个免费DNS服务,它们都是基于标准的解析系统,技术规范稳定。不像一些不伦不类的产品,看着方便实际问题多多。
  1. dns.he.net
He.net是非常古老的电信运营商,有自己的机房和BGP网络。它的DNS服务应该是基于IP Anycast的,一直很稳定。有5组NS服务器:ns1-5.he.net 管理面板比较好用,采用了一些Ajax技术。可以编辑NS记录、可以对每个记录设置TTL,后台解析系统是PowerDNS. 每个用户可以免费绑定50个域名。
  2. Zoneedit.com
Zoneedit是老牌的免费DNS服务,现在是域名注册商dotster旗下公司。zoneedit顾名思义,就是能在线编辑zone数据。任何标准 DNS系统不管是BIND还是PowderDNS,都是基于zone的,这定义在DNS RFC里。zoneedit可以对整个zone的数据进行编辑,再一次性提交,不是像其他DNS管理系统那样,一条一条的提交DNS记录。 zoneedit后台解析系统是BIND,看了下其中一台,居然还是BIND 8.4,很老的系统了。没记错的话,zoneedit每个用户可以免费绑定5个域名。在添加域名后,每个域名随机获取到2组NS服务器,会在管理面板里体 现出来。
  3. ClouDNS.net
这是我个人挺喜欢的一家服务,一个保加利亚人搞的。所谓云DNS,其实就是基于VPS搞的DNS集群。它的DNS节点主要分布在欧洲,北美也有部分。免费 DNS节点有4个:ns1-4.cloudns.net 后台解析系统是BIND,管理系统简洁实用。每个用户可免费绑定3个域名。收费用户是独立的服务器,可修改NS、SOA记录,使用DNS Branding功能。
  4. CloudWebDNS.com
国人搞的中文站点,功能跟ClouDNS类似,不过UI做的更漂亮。提供4组NS服务器:ns1-4.cloudwebdns.com NS服务器位于北美、亚太和欧洲。每个用户可以免费绑定5个域名。后台解析系统是BIND9,采用BIND自带的集群技术。跟ClouDNS一样,对收费 用户也提供DNS Branding(DNS品牌)功能。它的主站用的日本服务器,速度飞快,因此最近我把几个常用域名都迁移到这家了。
  5. freedns.ws
之前有几个域名在这家,不过有一阵该网站被封了,就把域名都转移走。它的免费DNS服务器有4组:ns1-4.freedns.ws,后台解析系统是 NLNetlabs的NSD服务器。在DNS服务器软件方面,BIND一家独大,但是也还有PowerDNS、NSD这样优秀的其他DNS软件作为补充。 freedns.ws的UI做的不错,简洁大方,很有WEB 2.0的味道。
  还有一些其他的免费DNS提供商,比如DNSEver、Namecheap等,他们也很优秀,不过我用的不多,不在此描述。最后总结一句,为了你的网站安全稳定,请使用标准的DNS解析系统。慎用非标准的系统,它们可能给你带来意想不到的隐患。

本文转载自:推荐几个优秀的免费DNS解析服务 | 米米地域名