Showing posts with label GFW. Show all posts
Showing posts with label GFW. Show all posts

Thursday, March 11, 2010

"西厢计划"Ubuntu安装配置指南

"西厢计划"是今天听到的最振奋人心的消息, 穿越GFW这么多年, 基本上各种类型的方法都用过, 每每穿墙都有一种莫名的快感, 想着GFW同学被无数人一次又一次地虐待. 作为新世纪的有志青年, 翻墙已经成了一种必须掌握的技能. 俗话说得好, "不会翻墙的网民不是好公民." 看到这里你应该已经知道"西厢计划"到底是个什么东西了, 但它不同于以往的所有翻墙技术, 算是翻墙界的最新研究成果吧. "西厢计划"的优势在于可以用最直接的方式访问网站, 比如平时用的代理、VPN都是先到另一个地方绕一圈, 而按照作者的说法, "西厢计划"直接注入GFW系统, 这样当你访问敏感词网站时, GFW就变得像个傻子一样, 根本不会进行重置操作, 从而以最快的速度访问网站.

目前还只能在Linux系统中进行使用, 且要求内核版本大于等于2.6.17, 下面是我在Ubuntu中安装配置的全过程.

安装

这里下载安装文件, 解压进入目录. 先安装一些依赖软件:
$ sudo apt-get install autoconf automake libtool aptitude xtables-addons-common iptables-dev
接下来开始编译加安装:
$ ./autogen.sh
$ CFLAGS="" ./configure --prefix=/usr --libexecdir=/lib
$ make
$ sudo make install

配置

在安装文件的"examples"目录中有一些已经设定好的ipset规则, 这些规则用来过滤那些特定的网络访问, 先导入所有规则:
$ sudo ipset -R < CHINA
$ sudo ipset -R < GOOGLE
$ sudo ipset -R < YOUTUBE
$ sudo ipset -R < NOCLIP
再使用iptables设定具体的过滤规则:
$ sudo iptables -A INPUT -p tcp --sport 80 --tcp-flags FIN,SYN,RST,ACK SYN,ACK -m state --state ESTABLISHED -m set --match-set NOCLIP src -j ZHANG -m comment --comment "client-side connection obfuscation"
$ sudo iptables -A INPUT -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j CUI -m set --match-set CHINA src -m comment --comment "server-side connection obfuscation"
$ sudo iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -m gfw -j LOG --log-level info --log-prefix "gfw: " -m comment --comment "log gfw tcp resets"
$ sudo iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -m gfw -j DROP -m comment --comment "drop gfw dns hijacks"
最后修改主DNS, 在"/etc/dhcp3/dhclient.conf"文件中找到"prepend domain-name-servers", 将后面的IP替换为没有被感染的DNS地址, 比如"8.8.8.8", 重启网卡:
$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 up

大功告成! 打开浏览器试试吧, YouTube、Blogger、Picasa、Google Groups、Google Docs的Spreadsheet这些都已是畅通无阻, 不过目前Twitter、Facebook还无法访问, 但相信"西厢计划"以后将会越来越强大.

2010.3.13更新:

以上配置在重启之后都会消失, 这就麻烦了, 总不能每次开机都先输这么一长串命令吧. 在参考了Ubuntu官方Wiki之后, 有了一个很好的解决办法.

首先确定你已经设定好了上面的所有规则, 接着将当前规则导出并放到"/etc"目录中:
$ sudo ipset -S > ipset.rules
$ sudo iptables-save > iptables.rules
$ sudo mv ipset.rules iptables.rules /etc
其实我们需要做的就是让系统在每次开机的时候自动读取这些规则, 这可以有很多种方法, 比如写成脚本, 放到rc目录中, 但我觉得下面的方法更加灵活一点. 这里又要分成两种方法, 如果你使用了NetworkManager, 请看第一种, 否则看第二种. 之所以要这样分开讨论, 是因为第二种方法会导致NetworkManager不能正常工作.
  1. 这里下载NetworkManager的配置脚本, 加上可执行权限, 最后放到"/etc/NetworkManager/dispatcher.d"目录中.

  2. 在"/etc/network/interfaces"文件中添加如下几行:
    auto eth0
    iface eth0 inet dhcp
        pre-up ipset -R < /etc/ipset.rules
        pre-up iptables-restore < /etc/iptables.rules
        post-down ipset -S > /etc/ipset.rules
        post-down iptables-save > /etc/iptables.rules
    

P.S. 我终于又可以直接在Blogger里写博客了, 泪牛满面啊~~~

Wednesday, September 9, 2009

美国是怎样监管网络的?

今天在读Andrew S. Tanenbaum的著作《Computer Networks》时, 某页讲到美帝国主义使用一种叫做Carnivore的东西来监管网络, 顿时千头万绪涌上心来, 感动得热泪盈眶, 原来我们并不孤独... 我于是去详细了解了一下Carnivore到底是什么.

Carnivore由FBI (Federal Bureau of Investigation, 联邦调查局) 设计, 是美国的第三代网络监视软件, 前两代分别是Etherpeek和Omnivore (后来改名为DragonWare Suite). Carnivore的主要功能是监视互联网和电子邮件, 运行在Window$操作系统上, 由FBI放在每一个ISP (Internet Service Provider, 互联网服务提供商) 那里. 这样一个极容易侵犯个人隐私的东西在美国这个极讲究人权的国家是肯定会遭到反对和抗议的, FBI做出解释说Carnivore只是具备监视的功能, 但它并不会时刻监视所有的互联网信息, 而只会监视特定的对象, 监视的对象也必须由法院命令决定, 比如某些恐怖分子. 后来迫于舆论的压力, FBI将Carnivore改名为DCS1000 (Digital Collection System) 这样一个比较温和的名字. 2005年FBI宣布停止使用Carnivore, 但社会依然相信FBI只是把Carnivore替换成了其它类似的商业监控软件. 有关Carnivore更详细的介绍, 可以阅读博闻网的一篇文章: Carnivore网络监视软件的工作原理.

现在看来, 美帝国主义也不过如此, 还是比不上天朝的宇宙超级无敌河蟹墙: 金盾工程.