Wednesday, March 2, 2011

带SSL的Twip搭建方法

现在GFW封锁加剧,明文传输的Twip已经是建一个死一个,上SSL是必须的。
说说我组建Twip SSL的过程,水平非常不高,如有错误或者更好的方法请指教。

1、服务器准备
搭建SSL要有独立IP,事实上专门为Twip准备一个IP也是推荐的做法。这样一般被墙不会殃及其它。
我的VPS是用的Linode,这里假设用来搭建Twip的ip为233.233.233.233。主机环境为Ubuntu+Apache+PHP。

2、为apache配置SSL证书。
apache默认是不启用ssl的,所以我们需要执行
a2enmod ssl
来启动ssl。

随后就是配置证书。
没有安装openssl的话记得先
apt-get install openssl
然后就可以用
openssl req -new -x509 -days 999 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
生成一个SSL证书了。

最后我们配置apache使之启动这个证书。
cd /etc/apache2/sites-available
nano default-ssl

修改下面的地方:
<VirtualHost 233.233.233.233:443>
记得把IP换成自己的。
然后把AllowOverride 全部改为All
确认
SSLEngine on
修改
SSLCertificateFile    /etc/apache2/apache.pem
SSLCertificateKeyFile /etc/apache2/apache.pem
如果之前openssl生成的证书不是/etc/apache2/apache.pem的话这里也要相应更改。
然后保存。

3、设置端口
cd /etc/apache2
nano ports.conf
新增一条
NameVirtualHost 233.233.233.233:443
记得IP换成自己的。
最后a2ensite default-ssl
没有打开rewrite的话
a2enmod rewrite
再用a2dissite检查一遍,关掉默认的http访问。

4、接下来的搭建twip的工作和之前几乎一样,记得填写的时候用https代替http就好了。

写的很简略,还有疑问可参考这里。
http://www.zhuoda.org/xiezhi/107857.html
关于twip搭建的方法网上一搜一大把。不废话了

Saturday, February 26, 2011

Twip的保护措施

最近GFW针对Twip进行了大规模升级。我的Twip也未能幸免,几次触发关键词后ip被封,给Linode发了Ticket后转移了数据中心也换了ip(赞一下人家的服务)。介于手机上Twi最方便的手段还是api,所以架一个api还是必不可少的。吸取之前的经验教训,这次架设api采用了一些手段保护隐藏,效果如何尚未检验。

手段1:
Https 是必不可少的!GFW 早就拥有了深度包检测能力,只要针对Twitter的json写几条条件,完全可以屏蔽任何明文传输的api。事实上现在它就这么做了。
假设Https需要独立ip和证书。独立ip现在很便宜,也有Startssl这样的免费的SSL证书服务。但是像我们就没必要了,openssl生成一个山寨证书也可以用,反正用户就是只有自己嘛。

手段2:
深层路径!
这个主要是要屏蔽爬虫。不要说什么写robots.txt,至少艳红的百度是无视这个的。一定要把api放在比较深且名字怪异的目录下,并且关闭apache的index功能。也有说法是修改htacess根据bot的USER_AGENT进行重定向。这个我不大看好因为GFW的bot完全可能伪造USER_AGENT。

手段3:
干掉index.html!
index.html只在第一次设置api的时候有用,这里面带有大量“twip”,“twitter”等敏感词。用完就删掉吧,记得换一个和谐的东西上去比如科学发展观学习资料等。不然apache会因为找不到index.html自动显示index.php,这个就麻烦了。当然一般人不知道的话是很难找到这个twip的(前提是你放置的路径很深)。

这个是我目前能想到的全部方法,具体效果如何尚待检验。最重要的一条,低调!有了api自己偷着乐就行了。