2010年3月31日星期三

[GFW BLOG] 编译成功“西厢计划”

作者:misolate  来源:http://kakst.blogspot.com/2010/03/blog-post_31.html

在xp上装了西厢计划,blogger/blogspot的访问速度迅急!彷佛回到两三年前blogspot暂时未被墙地时光。不过youtube可以访问页面却不能观看视频,twitter之流还是不能访问。
于是我决定在Squeeze上操刀。之前我装过一次,没有成功。上回是iptables过旧,这次看到源更新,iptables又太新。不过这次有动力,还是找到了法子。参照依然是,http://blog.xiaogaozi.org/2010/03/ubuntu.html,大体上按着它走。
必须插一句,装成功之后,blogspot可以访问,但小高子这个站点,应该就是挂于blogspot而买了自己的域名的那种站点,不能访问。
1)安装编译环境:
sudo aptitude install build-essential auto-apt automake autoconf pkg-config
接着小高子的是(先不要往终端上贴):
sudo apt-get install autoconf automake libtool aptitude xtables-addons-common iptables-dev
如果照着做,下一步编译时候会提示:
类似
./configure: line 10586: syntax error near unexpected token `libxtables,'
./configure: line 10586: ` PKG_CHECK_MODULES(libxtables, xtables >= 1.4.3)'
解决方法就是,以上绿色字体那块,只装个iptables-dev,再自己重编译iptables和xtables-addons-common,应该是要先卸载掉系统己装有的xtables-addons-common。
2)编译iptables和xtables-addons-common,复杂可参照:http://prithak.blogspot.com/2009/10/nefilter-extensions-using-xtables.html
我是这样做:
-------------------------------
wget -c http://ftp.netfilter.org/pub/iptables/iptables-1.4.5.tar.bz2
tar jxvf iptables-1.4.5.tar.bz2
cd iptab*
./configure --prefix=/usr --libexecdir=/lib --libdir=/lib --sbindir=/sbin
注:做这一步的时候,最好先dpkg -L iptables(这软件不可卸载,否则iptables-dev也连带卸载,多亏我iptable-dev可用吧?),看它的文件分布,把上面的configure尽量写得相同一些。然后编译覆盖安装。
make && sudo make install
-------------------------------
wget -c http://nchc.dl.sourceforge.net/project/xtables-addons/Xtables-addons/1.19/xtables-addons-1.19.tar.bz2
tar jxvf xtables-addons-1.19.tar.bz2
cd xta*
./configure --prefix=/usr --libexecdir=/lib --libdir=/lib --sbindir=/sbin
注,原理同样,我现在也不确定位置。最好拆开系统己有的deb包看吧。
make && sudo make install
-------------------------------
这里的两个./configure还可以参看文后补充。至于拆deb包看,呃,补充里也提一下。
-------------------------------
3)以上是最为难缠的部分,装完这两个,小高子编译环境那一步实质上就只剩下aptitude install libtool。
4)然后是编译西厢:
svn checkout http://scholarzhang.googlecode.com/svn/trunk/ scholarzhang
进入./scholarzhang/west-chamber
./autogen.sh
CFLAGS="" ./configure --prefix=/usr --libexecdir=/lib
上一行是小高子里面给的,CFLAGS可以直接照写,也可以自定义,但--libexecdir这块儿看似没错,后续却会遇到问题。先照着做吧。

执行这一步,还要确定你的系统装着linux-headers,和内核对应,比如我是装linux-headers-2.6.32-3-686,否则会出错,提示/lib/modules/`内核版本/build 不存在。
make && sudo make install
5)善后配置。可以参照小高子。
或者参照我地做法:sudo得设为无需命令
-------------------------------
#!/bin/sh
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"
exit 0
以上创建为文本iptab,设为可执行。
--------------------------------
#!/bin/sh
cd /home/xjhv/scholarzhang/west-chamber/examples
sudo ipset -R < CHINA
sudo ipset -R < GOOGLE
sudo ipset -R < YOUTUBE
sudo ipset -R < NOCLIP
sh /home/xjhv/Desktop/iptab
exit 0
以上创建为文本ipset,设为可执行,设为自启动,因为每次关机这两个规则设置都会丢失。
-------------------------------
6)第五条提到--libexecdir的问题,体现在iptables设置的时候,也就是执行以上那个iptab,会因为没有相应的.so在/usr /libexec而不能进行,我当时试着又用--libexecdir=/usr/libexec之类的重编译了一下,然后可用,但更简单的方法应该是 ln -s /lib/xtables /usr/libexec/xtables。
------------------------------
补充:
7)编译iptables和xtables-addons-common时,可以./configure --prefix=/usr
这时编译西厢CFLAGS="" ./configure --prefix=/usr而不需要指定--libexecdir应该不会有后续的问题。
但这样装上的iptables不是debian的打包安装方式。可能会和iptables-dev包不和。
8)自己拆deb包来看的法子很简单,aptitude download xtables-addons-common即可,用解压缩软件就可以查看内容。
9)小高子有提到重启eth0,那是因为它改了8.8.8.8的DNS,我学校固定DNS不能改,所以装完西厢也不需要重启网络,导入规则即可见到效果。
10)有网友提到需要手动把 /usr/share/aclocal/ 里的文件copy到编译目录的m4目录里,但我没发现这事必要,也许是源码更新了。
11)虽然很�嗦,但我这篇日志还是有点适用性地,毕竟那三个重要的东西都是手动编译得到,以上各种备注也全是我遇到的问题和解决之法,再次感慨这回是Arch的pkgbuild和Gentoo的ebuild占到优势。
12)事实上我还不知道"西厢"是装上去之后一劳永逸,只要改改规则;还是得每次重编译装新版本。另外,我由于硬盘不足,很快就要格掉Debian,所以 不能再细究。这回多学了一些编译知识,Arch那算啥编译哈,都是别人帮你指定好自动的步骤,所以我当时用了它那么久,实质上都没学到多少东西。

--
Posted By GFW Blog to GFW BLOG at 3/31/2010 07:07:00 PM

--
1、请点击www.chinagfw.org访问我们,订阅地址:http://feeds2.feedburner.com/chinagfwblog。2、需要Psiphon2注册邀请的朋友,请向english@sesawe.net发送电子邮件请求,说明 "can I have psiphon2 access" 并告诉您所在的国家。也可以使用Twitter Direct Messages或登陆Psiphon网站直接向Psiphon索取使用邀请。3、GFW Blog现提供最新翻墙工具下载(地址一、二、三),翻墙(突破网络封锁)方法介绍请见本站anti-censorship部分。4、本站热烈欢迎各位朋友投稿或推荐文章,请发邮件至chinagfwblog[at]gmail.com。5、敬请关注、支持、参与Sesawe和黑箱监管集体诉讼。
To unsubscribe from this group, send email to
gfw-blog+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/gfw-blog?hl=zh-CN

没有评论:

发表评论