1987年,中国发出了第一封电子邮件:Across the Great Wall, we can reach every corner in the world(越过长城,走向世界每个角落)。从那一年开始,我们用互联网和这个世界联系在一起了,但是就在12年后,那个越不过去长城,回来了。
1998年,为了防止大家访问部分网站,针对IP和DNS的污染,开始了。伴随着污染,墙和梯的较量正式开始。 早期的GFW不能称之为墙,更像是一个补丁,只是单纯的污染DNS,那么我们修改DNS服务器就可以绕过去。 加上国内的DNS也流氓,所以大家大多会把DNS改成Google提供的 8.8.8.8/8.8.4.4
。
这样幼稚的屏蔽方式,政府也知道是不行的,于是,真正的GFW正式登上历史舞台。
除了屏蔽特定的IP或者域名之类,GFW还会审查流量内容,因为当时大部分的网站都没有用HTTPS进行加密,所以流量是非常透明的,审查起来很容易。 当然,也会对URL进行审查,有一段时间Google无法访问,就是因为URL里面又一个叫gs_rfai
的参数,其中rfa字样,与在大陆被封锁的自由亚洲电台的网址和英文缩写巧合而被GFW屏蔽。 近几年HTTPS普及了,针对内容审查手段也就慢慢失效了。
墙的其它升级就简单的多了,主要就是两个任务:
针对IP、域名列表的扩充,扩大黑名单范围;
对新增的翻墙工具的封堵。
这些是功能上的升级,性能上也在升级,据传说16年,GFW就拥有100多台小型机做的集群了(而且,各地的GFW似乎也没能完美的同步(也可能是故意的),大致是以省为单位,有的时候会出现某个网站只能被某些省访问的情况出现)。
举些升级的例子:
比如你用HTTP/SOCKS代理翻墙,那我就检测代理的流量特征(于是HTTP/SOCKS代理,卒)。
你用SSH翻墙,我就检测你的流量特征,分析你到底是在执行命令,传输文件还是在打隧道翻墙
但是SSH隧道目前仍然可用,技术角度说,完全区分SSH/SFTP和翻墙流量还是有难度的
你用GoAgent翻墙,那我就屏蔽Google的所有IP。
你用PPTP翻墙,那我就检测PPTP的协议,直接杀。
OpenVPN也遭遇了PPTP同样的待遇。
但是AnyConnect没有,因为很多外企在使用它连接公司内网。
Shadowsocks也差点遭受和各大VPN一样的待遇,但是因为SS的流量实在难以识别,所以当时(大约2015年)解决的方式更加粗暴:请Shadowsocks的作者喝茶。
后来(大约2020年前)Shadowsocks还是被识别了,参见这个报告。
目前最强大的工具应该是V2Ray,除了支持的协议多,其中的VMess协议对计算机时钟的要求让这个系统可以抵御一定的流量重放攻击。
最近大家开始用Vultr/Linode搭建服务器这个的确不好管,但是重要节假日(每年0110月/0100日前后,国庆,两会)就批量屏蔽这些IP。
GFW不仅防止国内用户访问国外主机,有的时候还会禁止一些境外IP访问国内的主机,这样可以屏蔽部分使用内网穿透技术的人。
HTTPS代理,TLS给HTTP代理穿上了铠甲,使之又能再战500年。但是考虑到GFW会主动刺探,所以最好将代理的endpoint隐藏在正常网站的某个子路径下。
SSH隧道,SSH采用非对称加密,再加上有广泛的正常用途(管理服务器)所以目前SSH隧道还是可用的。
Shadowsocks/V2Ray/GoProxy 其实可以理解为对你的代理流量进行加密和混淆的工具,但是GFW在慢慢尝试识别这些流量。
需要特别说明一下的是,GoProxy比较特殊,支持内网穿透。
AnyConnect等商用方案。
突发!中共伪政权用于阻塞人民耳目的防火墙(GFW)今日被黑客攻破,并在网上公布包括源代码在内的超过500GB的内部文档 - 精木发表于 时事述评 - 论坛 | 文学城
Enlace Hacktivista提供了获取泄露数据的途径:
泄漏文件总计约 600 GB。其中mirror/repo.tar
单个文件,作为RPM打包服务器的存档就占了500 GB。
具体的文件的使用方法,David Fifield已经在Net4People 上提供了更详尽的说明。
根据泄露文件,积至公司至少向五个国家提供了技术服务:哈萨克斯坦、埃塞俄比亚、缅甸、巴基斯坦,以及一个仅以代号A24出现的未公开国家。这些国家在泄露材料中都以代号标识,多数情况下代号由国家名称首字母与两位年份组成。