2011年3月13日星期日

免封TWIP API制作方法


当然最佳方案还是HTTPS 但是由于有些客户端(手机)不接受非法的证书,这需要一定成本,我这里提出一个无成本的方案
需求:
自己的空间或VPS
添加域名的权限
更改客户端路由表的权限
描述:
目前升级过的GFW似乎会检测HTTP包的前面一小段,从而辨别出推特的请求,我们常用的如TWIP(包括客户端形式登录的)HTTP请求例如:(客户端 tweetdeck)
2113 "app:/TweetDeck.swf" "Mozilla/5.0 (Windows; U; zh-CN) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.5.1"
****(IP地址) - ******(推特ID号)  [09/Mar/2011:12:30:19 +0800] "GET /statuses/mentions.xml?
 count=100&since%5Fid=  ************* HTTP/1.1" 200 2951 "app:/TweetDeck.swf" "Mozilla/5.0 (Windows; U; zh-CN) 
AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.5.1"
如果对前1KB内容进行检测,很容易发现特征。
目前墙的运作模型似乎是,你使用明文API会被记录,但是不会马上被封,一段时间以后被封,这可能是人工复核的结果。封锁方式目前DNS污染和敏感词(RST)均有。
* 从这点上看,GFW已经具备了检测明文条件下API的能力,并可依据记录抓出推友(IP与ID号是对应的),因此我建议对安全需求高的推友使用HTTPS
方案:针对DNS污染和敏感词检测,我们建议采取“无域名方式”+HOSTS本地路由
即在你的服务器或空间上,把API设置为一个不存在的域名,或是一个其他的域名,然后在本地修改路由强制指定IP到该域名上。 这样对于墙来说,你是在访问一个不存在的网站,即无法拦截了。
api1.jpg
如把API的域名设置为“人民网” 并在自己的终端设备上把人民网的地址指定为API的地址。这样墙就无能为力了。上面的那个域名则是被检测出来并被封锁的,可以看到只进行了0.2M的流量,就被流量分析抓出来了。
*怎么改HOSTS? 请自己学习。
*终端如果是手机,还需要搞到HOSTS的权限,这里不讨论了。
其他问题?
1,会不会封IP?很可能。但是IP并不贵,你可能需要花钱经常换IP,所以有条件的还是买SSL最好。
2, 如果设置一个不存在的域名,如 www.notexist.com,仍有可能被墙,因为墙可以把notexist作为关键词来过滤,你的HTTP HEAD里面有这个关键词则还是会被拦截,好在没有成本,立即换一个就是了。 因此建议设置一个国内的网站地址如新华网人民网之类的,他无论如何不可能拦截。
3,怕跨省?怕跨省就别上推,或使用SSL VPN等。

2011年3月10日星期四

ipad上使用SSH去那墙外之地的方法

    由于众所周知的原因,天朝人民上个网总是那么的需要技术含量,生生让一堆人憋成技术派。
     当我在twitter(注:这个世界上排名前5的网站在天朝是不存在的,是我虚构的!)上看到有如何用SSH在 ipad上实现翻墙的技术贴,我就开始了折腾。另外,再罗嗦一句,有人问ipad不是能用VPN翻墙么,何况这么苦憋的折腾?好吧……生 命在于折腾,而且多一个梯子有什么不好?!
       以下是步骤,ipad必须越狱(这是废话)
       电脑上的准备工作:
       (1) 安装一个电脑能之间访问ipad的软件,我用的是iphone folder,有了它就能在电脑上像访问一个文件夹一样直接访问ipad里面的目录,这也是为了方便。  
       (2) 一个文本编辑器,我用的是Ultraedit,用自己喜欢的吧。 
       (3) 找到这篇blog 
       (4) 下载我这里的这个文件gfwlist.pac http://u.115.com/file/f27bc10d13 越狱以后ipad上的准备工作,基本上都是在cydia各种源里面能找到的东西,找到并安装这些东西我想对会越狱的你不是什么难事:
        [1] 安装ifile,这个东西就像是windows里面的资源管理器,没有它…诸多不便。
        [2] 安装icabMobile这个浏览器,为啥要用这个浏览器,后面有说明。
        [3] 安装MobileTerminal,这个是用来登录服务器的客户端。
        [4] 安装openssh,这里要说的是cydia上只有for ios 3.X的版本,不过呢在ios 4.2.1下也一样能用,别担心,照装吧。
        [5] 安装Backgrounder,由于ipad所为的多任务是“假的”,需要一个能让MobileTerminal在后台也能“真正”运行的东西,就是这玩意了。
           万事具备,把你的ipad接上电脑,用iphone folder找到它,然后……开始了开始了!
         (1) 先找到ipad上的:/private/var/preferences/systemconfiguration 目录,把里面的preferences.plist找到,并将这个重要的文件复制到电脑上备份好,然后复制一个用文本编辑器进行修改。  
         (2) 用文本编辑器打开preferences.plist,找到以下原始的内容: com.apple.CommCenter (ip1) UserDefinedName com.apple.CommCenter (ip1) com.apple.CommCenterkey>   好了,注意红色部分,在之后和UserDefinedName 之前插入以下代码:Proxies ProxyAutoConfigEnablekey> 1 ProxyAutoConfigURLString</key> file:///你的pac文件位置string>   这是修改后的样子: com.apple.CommCenter (ip1) Proxies ProxyAutoConfigEnablekey> 1 ProxyAutoConfigURLString</key> file:///你的pac文件位置string> UserDefinedName com.apple.CommCenter (ip1) com.apple.CommCenterkey>  注意千万不要搞错位置,写错地方的话ipad重启以后这段代码会消失。这里要说明的是:file:///你的pac文件位置string> 如果你不太明白,请照这行写: file:///private/var/mobile/Documents/gfwlist.pacstring> 
          (3) 把修改好的preferences.plist复制回ipad里面覆盖原有的文件。
          (4) 把下载的gfwlist.pac放入ipad的:private/var/mobile/Documents目录下面。
         好了,如果你确实没有做错任何一步写错任何一行,那么电脑上的工作就结束。
         注意:每次修改preferences.plist内容和pac文件位置后,要重启ipad才能生效。
         Ipad上的工作开始了:
         (1)用backgrounder设置MobileTerminal能在“真”后台运行,关于这玩意还是很折腾的,我只用截图简单讲一下,运行 backgrounder以后,按overrides,然后add把MobileTerminal加进去。点右边的箭头进入设置,按图上画的红圈设置好。 注意:更改设置退出backgrounder后都会自动重启ipad以便生效。
         (2)设置好了backgrounder重启过后,先运行它,然后运行MobileTerminal,然后回到dos时代开始复习命令行,注意大小写: ssh –p 443 –D 1080 用户名@服务器地址 解释一下: -p 433 就是服务器用的端口,我这里是443。 -D 1080 就是本地的代理端口,要和pac文件里面对应,我的pac文件里面就是1080,所以照搬即可,想要自己改的同学请自行研究pac文件。 用户名@服务器地址,这不用解释了吧,用户名和服务器的域名或者ip。SSH服务器自己买一个吧,免费的不靠谱呢。 命令行打完后输入密码,输入的时候是看不到的,看着软键盘别打错就ok。然后可以看到如图所示的,已经登陆上去了。 按home回到ipad主界面,这个时候backgrounder和MobileTerminal全都在后台运行,不放心的话可以切回去检查下,特别是看看MobileTerminal还动不动(随便用个ls命令什么的),如果还会动,说明后台运行已经成功了。
         还等什么!打开你的icabMobile!为啥不用自带的safari呢,据我试验这个玩意太弱了,哪怕你上面做的全都对,它就是不行,估计是不能 用sock代理!你看……扔了它吧。打开我虚构的那个网站twitter.com或者另外一个虚构的网站youtube.com看看,当然也可以尝试一 些客户端比如twitter的官方客户端。 恭喜你,welcome to the world without wall! 后记:使用完之后,先切换到MobileTerminal,打logout命令退出,然后再关闭MobileTerminal。
         后记2:经过@aleclu的提醒,其实在3g下完全可以不用backgrounder,运行完MobileTerminal,哪怕这两个全部退出,一样可以持续的SSH翻墙。直到切换到wifi或者让ipad休眠,经试验的确是这样。

      搭建一枚长期可用的twitter API

      无法查看这则摘要。请 点击此处查看博文。

      2011年3月2日星期三

      6款免费稳定的VPN


      Tenacy VPN:

      这个是我一直在用的,感觉非常好,无需客户端,推荐使用。
      服务器在美国,速度还不错,每隔半小时自动变更密码。但连接的时间不止半小时。

      OpenVPN:

      OpenVPN是一个开放源码的基于SSL的VPN系统,非常的稳定,可以用在Windows, Apple OSX, 破解的 iphone/ipad,Android手机和DD-WRT路由器等等,访问美国的网站非常快,完全免费的。
           10VPN:
      10vpn.com 专业提供免费美国/加拿大VPN账号,免费访问youtube,Facebook等。官方提供中文界面,只要提交你邮箱就能获得一个6小时有效的账户,过期重申请即可。

      VPNywhere:

      来自欧洲的VPN,可以重复申请14天免费的VPN账户。
      UltraVPN:
      需要安装客户端。是法国的代理工具,需要注册一个帐号用来链接VPN服务器。下载注册后,打开软件登录帐号即可连接,速度还不错。

      Relakks:

      Relakks 是一家来自欧洲瑞典的 VPN 服务提供商,官方提供中文页面,支持银联支付。提供长达 30 天的免费高质量 VPN 服务。在这 30 天内,你可以使用它们的 16 MB/s 带宽的 VPN 畅游网络,可以通过换电脑注册或者修改MAC地址实现无限试用。