文章目录
  1. 1. 应对方法
  2. 2. 参考

FfQVNrj.jpg!web.jpg

#简介
防火长城(英语:Great Firewall of China,常用简称:GFW,中文也称中国国家防火墙
,中国大陆民众俗称防火墙
等),是对中国政府在其互联网边界审查系统(包括相关行政审查系统)的统称。此系统起步于1998年
,其英文名称得自于2002年5月17日Charles R. Smith所写的一篇关于中国网络审查的文章《The Great Firewall of China》
,取与Great Wall(长城)相谐的效果,简写为Great Firewall,缩写GFW
。随着使用的拓广,中文“墙”和英文“GFW”有时也被用作动词,网友所说的“被墙”即指被防火长城所屏蔽。

一般情况下,防火长城主要指中国政府监控和过滤互联网国际出口上内容的软硬件系统,由服务器和路由器等设备,加上相关公司的应用程序所构成,构建类似美国的棱镜计划的大机制,因此防火墙不是中国特有的一个专门单位,实际上大多数国家也会创建网络监管,不过其他政府的管理仅止于金融洗钱、国际诈骗等犯罪行为,与中国的审查机制有着相当大的不同。防火长城的作用主要是监控国际网关上的通讯,对认为不匹配中共官方要求的传输内容,进行干扰、阻断、屏蔽。由于中国网络审查广泛,中国国内含有“不合适”内容的网站,会受到政府直接的行政干预,被要求自我审查、自我监管,乃至关闭,故防火长城主要作用在于分析和过滤中国境外网络的信息互相访问。中国工程院院士、北京邮电大学前校长方滨兴是防火长城关键部分的首要设计师。
然而,防火长城对网络内容的审查是否限制和违反了言论自由,一直是受争议的话题,官方说词也相当笼统。有报告认为,防火长城其实是一种圆形监狱式的全面监控.
中共当局一直没有正式对外承认防火长城的存在,如当有记者在外交部新闻发布会上问及互联网封锁等问题的时候,发言人的答案基本都是“中国政府鼓励和支持互联网发展,依法保障公民言论自由,包括网上言论自由。同时,中国对互联网依法进行管理,这匹配国际惯例。”方滨兴曾在访问中被问及防火长城是如何运作的时候,他指这是“国家机密”。不过2015年1月与官方有密切关系的《环球时报》则发布报道曾公开宣扬其存在。

#主要技术

  • 域名解析服务缓存污染
    原理:防火长城对所有经过骨干出口路由的在UDP的53端口上的域名查询进行IDS入侵检测,一经发现与黑名单关键词相匹配的域名查询请求,防火长城会马上伪装成目标域名的解析服务器给查询者返回虚假结果。由于通常的域名查询没有任何认证机制,而且域名查询通常基于的UDP协议是无连接不可靠的协议,查询者只能接受最先到达的格式正确结果,并丢弃之后的结果。用户若改用TCP在53端口上进行DNS查询,虽然不会被防火长城污染,但可能会遭遇连接重置,导致无法获得目标网站的IP地址。
    IPv6协议时代部署应用的DNSSEC技术为DNS解析服务提供了解析数据验证机制,可以有效抵御劫持。
    全球一共有13组根域名服务器(Root Server),2010年中国大陆有F、I、J这3个根域DNS镜像,但曾因为多次DNS污染外国网络,威胁互联网安全和自由,北京的I根域服务器被断开与国际互联网的连接。目前已恢复服务。2015年1月2日起,污染方式升级,不再是解析到固定的无效IP,而是随机地指向境外的有效IP。刚开始只是对YouTube视频域名(*.googlevideo.com)进行处理,之后逐渐扩大到大多数被污染的域名。这导致了境外服务器遭受来自中国的DDoS攻击,部分网站因此屏蔽中国IP。

  • 针对境外的IP地址封锁
    原理:相比起之前使用的访问控制列表(ACL)技术,现在防火长城采用了效率更高的路由扩散技术封锁特定IP地址。正常的情况下,静态路由是由管理员根据网络拓扑或是基于其它目的而给出的一条路由,所以这条路由最起码是要正确的,这样可以引导路由器把数据包转发到正确的目的地。而防火长城的路由扩散技术中使用的静态路由其实是一条错误的路由,而且是有意配置错误的,其目的就是为了把本来是发往某个IP地址的数据包统统引导到一个“黑洞服务器”上,而不是把它们转发到正确目的地。这个黑洞服务器上可以什么也不做,这样数据包就被无声无息地丢掉了。更多地,可以在服务器上对这些数据包进行分析和统计,获取更多的信息,甚至可以做一个虚假的回应。这些错误静态路由信息会把相应的IP数据包引导到黑洞服务器上,通过动态路由协议路由重分发功能,这些错误的路由信息可以发布到整个网络。这样对于路由器来讲现在只是在根据这条路由条目做一个常规数据包转发动作,无需再进行ACL匹配,与以前的老方法相比,大大提高了数据包的转发效率。但也有技术人员指出,从以前匹配ACL表到现在匹配路由表是“换汤不换药”的做法,依然非常耗费路由器的性能。而且中国大陆共有9个国际互联网出口和相当数量的骨干路由,通过这种方法封锁特定IP地址需要修改路由表,故需要各个ISP配合配置,所以其封锁成本也是各种封锁方法里最高的。
    一般情况下,防火长城对于中国大陆境外的“非法”网站会采取独立IP封锁技术,然而部分“非法”网站使用的是由虚拟主机服务提供商提供的多域名、单(同)IP的主机托管服务,这就会造成了封禁某个IP地址,就会造成所有使用该服务提供商服务的其他使用相同IP地址服务器的网站用户一同遭殃,就算是“内容健康、政治无关”的网站,也不能幸免。其中的内容可能并无不当之处,但也不能在中国大陆正常访问。

  • IP地址特定端口封锁
    原理:防火长城配合上文中特定IP地址封锁里路由扩散技术封锁的方法进一步精确到端口,从而使发往特定IP地址上特定端口的数据包全部被丢弃而达到封锁目的,使该IP地址上服务器的部分功能无法在中国大陆境内正常使用。
    经常会被防火长城封锁的端口:

    1. SSH的TCP协议22端口
    2. HTTP的80端口
    3. PPTP类型VPN使用的TCP协议1723端口,L2TP类型VPN使用的UDP协议1701端口,IPSec类型VPN使用的UDP协议500端口和4500端口,OpenVPN默认使用的TCP协议和UDP协议的1194端口
    4. TLS/SSL/HTTPS的TCP协议443端口
    5. Squid Cache的TCP协议3128端口
  • 无状态TCP协议连接重置
    原理:防火长城会监控特定IP地址的所有数据包,若发现匹配的黑名单动作(例如TLS加密连接的握手),其会直接在TCP连接握手的第二步即SYN-ACK之后伪装成对方向连接两端的计算机发送RST数据包(RESET)重置连接,使用户无法正常连接至服务器。
    这种方法和特定IP地址端口封锁时直接丢弃数据包不一样,因为是直接切断双方连接因此封锁成本很低,故对于Google的多项(强制)加密服务例如Google文档Google网上论坛Google+Google个人资料等的TLS加密连接都是采取这种方法予以封锁。
    从2015年初开始,RST重置已被实时动态黑洞路由替换。

  • 对加密连接的干扰
    在连接握手时,因为身份认证证书信息(即服务器的公钥)是明文传输的,防火长城会阻断特定证书的加密连接,方法和无状态TCP连接重置一样,都是先发现匹配的黑名单证书,之后通过伪装成对方向连接两端的计算机发送RST数据包(RESET)干扰两者间正常的TCP连接,进而打断与特定IP地址之间的TLS加密连接(HTTPS的443端口)握手,或者干脆直接将握手的数据包丢弃导致握手失败,从而导致TLS连接失败。但由于TLS加密技术本身的特点,这并不意味着与网站传输的内容可被破译。

  • TCP协议关键字阻断
    TCP重置是TCP协议的一种消息,用于重置连接。一般来说,例如服务器端在没有客户端请求的端口或者其它连接信息不符时,系统的TCP协议栈就会给客户端回复一个RESET通知消息,可见RESET功能本来用于应对例如服务器意外重启等情况。防火长城切断TCP连接的技术实际上就是发送连接重置消息。对于防火长城而言,发送连接重置数据包比直接将数据包丢弃要好,因为如果是直接丢弃数据包的话客户端并不知道具体网络状况,基于TCP协议的重发和超时机制,客户端就会不停地等待和重发,加重防火长城审查的负担,但当客户端收到RESET消息时就可以知道网络被断开不会再等待了。而实际上防火长城通过将TCP连接时服务器发回的SYN/ACK数据包中服务器向用户发送的序列号改为0从而使客户端受骗认为服务器重置了连接而主动放弃向服务器发送请求,故这种封锁方式不会耗费太多防火长城的资源而效果很好,成本也相当的低。

  • 破网软件的反制
  • 间歇性完全封锁
  • 间歇性封锁国际出口
  • 境内骨干路由器间歇性阻断
  • 深度包检测
  • 针对IPv6协议的审查
  • 电子邮件通讯的拦截
  • 网络攻击
    大炮(英语:Great Cannon)是中华人民共和国网络攻击工具的名称,借由拦截大量网络流量,对特定目标网站发动分布式拒绝服务攻击(DDoS)。
    从2015年3月26日至31日的对GitHub发起旁观者攻击(英语:Man-on-the-side attack)可认为是大炮的第一次重要应用。
    第三方研究者指出,此次攻击采用了HTTP劫持,百度JS脚本文件中间人植入了攻击GitHub的代码,其功能是每隔2秒加载一次GreatFire纽约时报中文网的账号主页[59]百度已否认自身产品存在安全问题。这次攻击导致GitHub在全球范围内的访问速度下降。外界普遍相信这是中国政府所为,但中国政府予以否认。

应对方法

  1. 修改hosts文件
    推荐SwitchHosts一个windows上hosts管理软件,很好用
    github有一个获得google相关hosts的项目https://github.com/txthinking/google-hosts

  2. VPN(虚拟专用网(英语:Virtual Private Network,简称VPN))
    是一种常用于连接中、大型企业或团体与团体间的私人网络的通讯方法。虚拟私人网络的讯息透过公用的网络架构(例如:互联网)来传送内联网的网络讯息。它利用已加密的通道协议(Tunneling Protocol)来达到保密、发送端认证、消息准确性等私人消息安全效果。这种技术可以用不安全的网络来发送可靠、安全的消息。
    常用的虚拟专用网协议有:
    L2F
    L2TP
    PPTP
    IPsec (如Cisco IPSec VPN)
    SSL VPN
    AnyConnect(Cisco SSL VPN)
    OpenVPN
    SoftEther
    IKEv2
    IKEv1

由于中国大陆境内对于海外网络的限制及封锁,所以中国大陆兴盛起以采用免费或付费的虚拟专用网(VPN)进行海外网络连接服务的方法进行翻墙,或许多外商公司欲连接回海外网站也多自行架设VPN或采用付费的VPN服务。2015年1月起,中国开始加强对外国VPN服务的封锁。VPN供应商Astrill通知用户,因防火长城升级,使用IPSec、L2TP/IPSec和PPTP协议的设备无法访问它的服务,受影响的主要是iOS设备。
中国工信部曾规定,在中国提供VPN服务的公司必须登记注册,否则将“不受中国法律的保护”。

vpn原理图解.png

  1. sock5代理,http代理
    HTTP代理:能够代理客户机的HTTP访问,主要是代理浏览器访问网页,它的端口一般为80、8080、3128等;
    SOCKS 代理:SOCKS代理与其他类型的代理不同,它只是简单地传递数据包,而并不关心是何种应用协议,既可以是HTTP请求,所以SOCKS代理服务器比其他 类型的代理服务器速度要快得多。SOCKS代理又分为SOCKS4和SOCKS5,二者不同的是SOCKS4代理只支持TCP协议(即传输控制协议),而 SOCKS5代理则既支持TCP协议又支持UDP协议(即用户数据包协议),还支持各种身份验证机制、服务器端域名解析等。SOCK4能做到的 SOCKS5都可得到,但SOCKS5能够做到的SOCK4则不一定能做到,比如我们常用的聊天工具QQ在使用代理时就要求用SOCKS5代理,因为它需 要使用UDP协议来传输数据
    001.jpg

#相关软件

  • 蓝灯(Lantern),免费、开源,支持多平台(Win,Linux,Android)。Lantern 自动检测一个网站是否被封锁。对那些被封锁的网站,Lantern 通过自有的服务器或者未封锁地区的用户运行的 Lantern 来提供访问。
  • 赛风,免费、开源,支持多平台(Win,Android)
  • 自由浏览器 FreeBrowser,仅支持Android,由Greatfire开发
  • 自由门
  • 无界浏览
  • 萤火虫(Firefly),用 Python 语言编写,采取 meek 工作原理
  • 浏览器集成包,为进一步降低破网难度,有志愿者ChromiumFirefox等浏览器,与已经配置好的翻墙软件(如GoAgentShadowsocks的客户端软件)一起打包成一键翻墙的浏览器集成包。这类浏览器集成包并不能提供高度安全的隐私保护,因为浏览器集成包的制作者可能会在制作过程中加入恶意程序。当然,这类浏览器集成包的确易于使用

#自用方法:
DigitalOcean买的vps,$5/月,然后在上面搭建的vpn服务器和shadowsocks。

参考

文章目录
  1. 1. 应对方法
  2. 2. 参考