Tuesday, March 30, 2010

OAuth协议及开发简介

这是昨天三叶草小组内部交流我的主题, 因为考虑到多数人对Twitter不熟悉, 所以用人人网做的例子, 但其实人人网是不支持OAuth的.

Saturday, March 20, 2010

照相

cute girl

深夜, 可恶的Google Reader一直刷不开, 于是点开QQ邮箱开始看空间, 看到好友又更新了相册, 一张正面无码单人照, 有点带着淡淡忧伤的表情. 突然有点感怀神伤, 天使爱美丽中说人们之所以会不断地照相, 其实是担心被这个世界遗忘. 我们的青春是短暂的, 美丽女孩的青春更是短暂的. 多少年后, 可以留下些什么吧. 曾经看过的采访中说, 那些为领导、老板服务的姑娘们平时最大的爱好就是把自己打扮得漂漂亮亮, 然后用五彩的像素凝固下自己那转瞬即逝的青春.

她们为这个世界带来了美丽, 也许她们想要的仅仅是一个可以依靠的臭男人. 而一个真真懂得疼爱的男人却是比处女还要稀少的动物.

说到照相就不得不说说兰姐, 人送外号"柳照". 什么意思? 讲个故事你就明白了. 话说当年和兰姐一起去西岭雪山, 就是杜甫同学写的"窗寒西岭千秋雪"中的西岭. 当我们来到一座小木屋前时, 兰姐说: 给我在这里照一张吧. 当我们进入旅店的大厅时, 兰姐说: 这里挺不错, 照一张吧. 当我们去滑雪场滑雪时, 兰姐说: 这么难得的机会, 一定要摆一个帅点的pose. 当我们从滑雪场回来, 再次经过那个小木屋时, 兰姐说: 我太喜欢这座房子了, 多拍几张. 这里省略后续台词无数. 从刚才的故事我们懂得了, 兰姐是一个非常喜欢照相的人. 对于这点, 兰姐也是直言不讳, 如果你要让她在照相和男朋友之间选择的话, 我估计她会选前者. "柳"字是四川话的谐音字, 意思是说频繁地, 持续不断地做某件事. "柳照"绝对是形容兰姐最贴切的词语.

今天屁颠屁颠地跟着兰姐班上出去春游, 到了一个满是鲜花盛开的地方, 真是春天到啦, MM们也越穿越少啦. 那真是"阅黑丝无数, 行人无不侧目." "柳照"同学自然不会放过这样一个大好时机, 即便被热得满脸通红, 也要坚持摆出各种pose拍照, 这种专业的精神, 也只有在看《喜剧之王》的时候被星爷感染过.

今天真是有意义的一天.

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里写博客了, 泪牛满面啊~~~