2012年2月11日星期六

[GFW BLOG(功夫网与翻墙)] 翻墙问答:APN代理翻墙

原文:http://www.rfa.org/cantonese/firewall_features/firewall_apn-02102012111259.html?encoding=simplified

DC: 又到了翻墙问答的时间。近日,不少中国网民都在讨论以APN代理来翻墙,究竟这是什么东东来的?

李: 要明白什么叫APN代理,那么,就先要明白,不论2G GPRS还是3G网,只要涉及到互联网的设定,都要你在手机中设定APN。而APN是一个网络名,这个网络名下,可以透过APN内定义的主机以至特定代理 上网。一般人,都会用上由流动电话公司提供的APN上网。

但随著海外出现一些虚拟营运商,可能无线电频谱上租用别的流动电话公司,但向客户提供流动数据上网时,就透过自已公司的主机或数据中心进行。亦有公 司利用APN,迫使员工的手机在公司的内联网运作,保证资料的安全,APN代理技术便这样发展起来,之后有些公司,就特别用了特殊的APN代理,做到个别 程序的资料流量收费等效果,因此本来并不是设计用来翻墙,而能够翻墙,可以讲是意外收获。

DC: 那为何要用APN代理?到底有什么好处?

李: 有部分手机,由于作业系统设计上的局限,差不多现行主流的翻墙方法,像VPN等等都无法使用,像部分Windows Mobile的手机,以及现时诺基亚、索尼爱立信等的较旧款非智能手机等。这些手机难以透过软件去提升翻墙性能,作业系统所支援的设定和翻墙手段亦不多, 这样的情况下,那就唯有透过一个特别的APN代理去翻墙。基本上,APN代理翻墙,支援所有现存可以透过GPRS技术上网的手机。

DC: 那APN代理来翻墙,又有什么缺点?

李: APN翻墙的最大问题,在于APN并非第一时间跳进海外网络,你需要经过中国一个虚拟主机,再透过有关虚拟主机连去海外网站,这连结可以无加密、经VPN 加密,或SSH加密。但可以肯定你与APN代理之间,于中国国内一段的联系并无加密。所以一些有敏感字的内容,仍然有可能因触动中国当局防火长城的关键字 过滤系统,因此被断线。因此,这种翻墙方法,只适合用无法用VPN、翻墙软件的手机,有限度翻墙出海外。

另一方面,由于APN代理有一部分在中国国内的数据中心,所以最怕有人搜查数据中心,随时你的互联网浏览和通讯纪录都留在数据中心,一旦有公安上去搜查就麻烦。因此,很敏感的通讯,又需要加密的话,APN代理并不适合你的需要。

所以,如果你的手机仍然可以用VPN之类的翻墙方案的话,我个人不建议透过APN代理翻墙。但如果你有未有实名制登记的预付卡,又想用手机用墙外推 特的资料,外在推特发推,只要你懂得回避关键字过滤的话,这不失为使用旧机又能够看到墙外世界的好方法。推特其中一个好处,就是你用旧款手机也好,仍然能 够应付裕如。

DC: 这样,一般人能否自行架设APN代理服务?有没有一些免费的APN代理服务?

李: 虽然可以租虚拟主机,自行架设APN代理服务,但由于技术内容复杂,需要UNIX方面的知识,加上要同时在中国和海外各租一部主机,所以现时有人在卖 APN代理服务。而免费APN代理是比较难做到,因为现时设置APN代理来翻墙成本不低,相信除了因为兴趣和研究需要外,比较少人会这样做。

DC: 假如我真的要在手机用到APN代理翻墙,会否与我现时手机的设定有冲突?

李: 这又不会,因为由2G GPRS手机开设,都支援设立多重APN,以应付不同用途的需要,像彩信用的APN,就与一般数据通讯用的APN不同。反而有部分旧款点的手机,就APN 的设定数量有储存限制,可能只能让你设五个至十个的APN代理设定,由于一般而言,连彩信的设定一起计,你的手机至少有两至三个APN设定被营运商用了, 因此,买得太多不同公司的APN代理,不见得有什么好处。

DC: 多谢你李建军,翻墙问答的时间又到,在下周同样的时间,我们继续回答有关翻墙的问题。



--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/11/2012 06:50:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] 翻墙利器Alkasir和psiphon3更新

原文:http://igfw.net/archives/7498

Alkasir是一个加密Socks代理客户端,本次更新大概是为了解决伊朗和叙利亚封锁问题,我没有测试,不知道中国大陆还能不能用,有兴趣的试试吧。

官方网址:https://alkasir.com/

下载地址:https://alkasir.com/doc/data/alkasir1_3_usb_mozilla.exe

参考教程:http://igfw.net/archives/5042

========

psiphon3本次更新可能也是为解决封锁问题,同时也增加了一项新功能,就是界面上可以选择SSH+、VPN和SSH三种连接方式了,方便了ssh和vpn间的切换。其中的SSH+应该就是我 http://igfw.net/archives/7152文中提到的,支持混淆初次服务器握手以达到防止深度包检测和入侵检测的(IDS/IPS)目的ssh代理,是对以前ssh认证的改进。

获得psiphon3的方法参考 http://igfw.net/archives/7118

本文原始地址http://igfw.net/archives/7498




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/11/2012 06:44:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] FaWave��Chrome中强大的微博插件

原文:http://itwwt.com/9434.html

自从Follow5关闭后,你有木有觉得同步一条微博变得很难了呢?每次要打开各种社交网站,超级烦人。。。ifttt?对那玩意儿无爱~其实我更加喜欢的还是一句话发遍互联网~所以,FaWave进入了我滴视线。

image

以前搭过Twitter的API,独立微博,后来因为某墙的关系,放弃了Twitter API的搭建。之后就开始寻觅插件,最终锁定了FaWave~

FireFox, Opera等党就比较郁闷了,这款插件只有Chrome版本~

上截图~因为是中文插件,所以设置什么的就不多说了,真心强大!

image

我还打算做几个FaWave主题,反正只要写写CSS~~~

围观地址:https://chrome.google.com/webstore/detail/aicelmgbddfgmpieedjiggifabdpcnln?hl=zh-cn

作者: Dick_Wu http://dickwu.com/posts/2012/01/1093.html




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/11/2012 06:43:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

2012年2月10日星期五

[GFW BLOG(功夫网与翻墙)] bestssh - 提供免费德国和美国SSH代理帐号

原文:http://qiong.info/archives/6286

德国免费SSH帐号:http://bestssh.net/free-germany-ssh-account-2/

美国免费SSH帐号:http://bestssh.net/free-usa-ssh-account/

和 http://bestssh.net/free-ssh-account/

 


SSH帐号密码定时更换,不能连接时请访问官网获取最新密码,也可以通过推广获得免费私人ssh帐号,方法就是发含其官网的推广到 facebook、twitter、bbs、blog等,然后发邮件到 ukssh29@yahoo.com 获得,每个推广可免费获15天私人ssh帐号。

 

本文原始地址http://igfw.net/archives/7407


--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/10/2012 04:54:00 PM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] 保护你的隐私,五种控制Android应用的权限的方法

原文:http://www.williamlong.info/archives/2993.html

这篇文章目的在于介绍Android系统上控制权限的方法,读者只要使用过Android,或是对智能机平台有所了解,就能看懂,不需要专门的编程知识。

  1  为什么Android总是事无巨细地告诉你应用索取的每一项权限?

   相比Apple,Microsoft严格控制生态系统(从苹果给开发者的"App Store Guideline"可见一斑),只允许通过官方应用商店安装应用,并对每份上传进行仔细地审查而言,Android的开放就意味着,Google需要向 用户提供一系列用于为自己负责的流程、工具。所以在安装应用前,Android总是要事无巨细地告诉你,应用肯需要控制什么权限。

  同样,开发者也制作了一系列易用的工具,用以鉴别可疑的应用程序,或是控制权限。

Android权限

图1 Android 官方市场会强制提醒用

  Andoird哪里开放了?

  在Android中,用户能自由从本地安装应用,自由地对SD卡进行操作,自由选择应用市场。

  如果愿意放弃保修,用户还能轻易地实行root,解锁基带(baseband)。只有一些产品会严密地锁定bootloader(如摩托罗拉)。

   最重要的是,因为ASOP(Android源代码开放计划)的存在,绝大部分的Android代码都是开源的,开发者可以由此对Android系统进行 深入的修改,甚至可以自行编写一个符合Android规范的系统实例(如Cyanogen Mod)。正是因为ASOP,这篇文章才可能介绍多达5种原理不同的权限控制方法。

图2, Android开源计划的标志

图2 Android开源计划的标志

  开放的风险

  不考虑Symbian,Windows Phone 6.5(及以下)平台,那么几乎所有的智能手机病毒都是Android平台的,甚至官方Android Market也闹过几次乌龙。在国内水货横行的市场,情况更是火上浇油,不法业者可以在手机的ROM,甚至是bootloader中做好手脚,让用户有病无法医。

  在Android中,用户可以允许系统安装来自"未知源"(也就是非Google官方的,或手机预置市场的)应用程序。于是,移动平台最重要的门神------数字签名就被绕过了。

图3 Android 允许未知安装未知来源的应用程

图3 Android 允许未知安装未知来源的应用程

  出于Android的开放性,也有不允许"未知源"的反例:亚马逊的Kindle Fire平板使用了深度定制的Android,它只允许安装来自亚马逊官方商店的应用程序。

图4 亚马逊的 Kindle Fire 仅允许通过自带的市场安装应用

图4 亚马逊的 Kindle Fire 仅允许通过自带的市场安装应用

 

  2  Android有哪些"权限"

   首先需要明确一下Android中的种种"权限"。Android是在Linux内核上建立一个硬件抽象层(Android HAL),通过Dalvik以及各种库来执行android应用的。在手机启动时,首先需要由Bootloader(HTC手机上称作Hboot)引导 Linux及手机上各个硬件设备的驱动程序,之后才启动Android系统。所以其实我们会涉及到四种不同涵义的权限:

  Android权限(Permission)

  这指Android中的一系列"Android.Permission.*"对象,是本文的中心内容。

   Google在Android框架内把各种对象(包括设备上的各类数据,传感器,拨打电话,发送信息,控制别的应用程序等)的访问权限进行了详细的划 分,列出了约一百条"Android.Permission"。应用程序在运行前必须向Android系统声明它将会用到的权限,否则Android将会 拒绝该应用程序访问通过该"Permission"许可的内容。

  比方说,搜狗输入法提供了一个智能通讯录的功能,用户可以在输入联系人 拼音的前几个字符,或首字母,输入法就能自动呈现相关联系人的名字。为了实现这个功能,输入法必须声明它需要读取手机中联系人的能力,也就是在相关代码中 加上声明"android.permission.READ_CONTACTS"对象。

图5 搜狗输入法的智能联系人功能

图5 搜狗输入法的智能联系人功能

  原生Android只提供了对"一刀切"式的管理,要么同意使用,否则就根本就不安装应用程序。当用户遇到希望使用程序的同时,又想禁止部分Permission的场合,他就无路可走。

  于是,不少开发者就捣鼓出了"第三条道路";可惜的是,没有一种方法能同时做到既不需要将手机固件Root,又完全不涉及对原始应用程序进行反向工程的方法。

  Root

   Root指获得Android所在的Linux系统的Root(根)权限,有了根权限,你才能对Linux做出任意的修改。iOS中的越狱 (Jailbreak) 相当于获得iOS系统的Root权限(iOS是一种类Unix系统,和Linux都使用Root的概念)。在已Root的设备中,通常都是使用一个 叫"Superuser"(简称SU)的应用程序来向许可的程序授以Root权限。

  Bootloader的解锁(Unlock)

  利用数字签名,Bootloader可以限定只有正确签名的系统可以被引导。在修改固件以获得Root以前,解锁Bootloader通常是必须的。安装第三方修改、编译的固件也需要解锁Bootloader。

  基带(Radio)解锁

   在Android系统中,基带是上层软件与手机中无线设备(手机网络,Wi-Fi,蓝牙等)的驱动程序之间的中介。国外的网络运营商很喜欢锁定基带,从 而保证用户只能使用运营商自己指定的sim卡。在我国,锁定基带是非法的,手机制造商、网络运营商也不可以通过锁定基带的方法对待违约客户。iOS的"解 锁"就是解锁iOS中的基带软件。

  为什么要控制Android权限

  鱼和熊掌不可兼得,Android的世界有很多自由,坏人也能自由地做坏事。它的生态系统很强调自主:用户可以自主地减小风险,仅使用官方市场的应用程序,也可以自主地解除安全限制,从而获得更多自由。因此,在遇到坏事的时候,用户也不得不自主一下:

  1, 抵制不道德,乃至非法行为

  几乎所有的Android安全软件都能对来电、信息进行控制,以减少骚扰。

  另一方面,很多应用都会要求它们实际功能以外的权限,表现在非(主动)告知地搜集设备序列号,位置信息,诱使用户默认地上传联系人列表等方面。

  更坏一点的应用程序,则会踏入犯罪的范畴,比如能偷偷发出扣费信息,或是作为黑客的偷窥工具。

  2, 减少恶意软件的损害

  恶意软件即便潜伏成功,也难以获得权限,从而减少损失。

  3, 用户有权自主地在抑制应用程序的部分权限时,继续使用该应用程序,而只承担由于自行设置不当而带来的后果。

  用户拥有设备的所有权,因此有权自主控制设备上的内容、传感器等对象的访问;同时有权(不)运行,(不)编译设备上的应用程序。

  大多数应用程序在运行时,并未达成主动告知的义务,是失误;然而即使主动告知,用户还是可以不理会。

  为什么Android官方市场的强制提醒权限的行为不属于主动告知:

   通过Android官方市场,"打包安装器"安装应用程序时,所显示的"权限"仅是在安装包内AndroidManifest.xml声明的值,而非应 用程序实际上会调用的内容。该值仅用来表明Android系统能向应用授予的最大可能的权限。即便一个"Hello World"式的应用程序,也可以在AndroidManifest.xml中声明所有可能的Android Permission。

  这就是说,在AndroidManifest.xml中声明的值与应用程序实际调用的权限有关联,但不等同,且这种提示是由Android系统负责实施的强制行为。

  正确的理解是:"应用程序(被迫地)让Android系统告知用户,它在AndroidManifest.xml中所声明的事项。"

  这意味着应用程序在使用重要权限前,依然需要自行、主动地通知用户相关事宜。
   然而,即便只是让一半的应用程序达到以上的标准,也是不可能的。应用程序需要通过收集用户信息,程序的错误日志。从而统计用户的喜好,改进程序。另一方 面,这也是发送精确广告但不追溯到用户身份信息的方式,这一点对于免费应用而言,是极其重要的。我们之所以能知道不同型号手机的占有率,应用软件的流行 度,是与这样的统计不可分离的。

  一旦每个应用程序都专业地主动发出提醒,不专业的用户(大多数用户都是不专业的)通常会将之视为如同海啸警报一般的危机。

  这么做对谁都没有好处------用户方的隐私权是毋庸置疑的,然而应用程序方面的获取信息记录的需求也是无可阻挡的。如果每个用户都打算阻止,只会落得被迫接受不平等条约的下场,在温饱以前,不会有人考虑小康的问题。

  于是,现状就变得有趣:用户人享受着相同的服务;其中大部分用户出于不知情/好意,默默地向开发者、广告商提供了信息,剩下的少数用户则能阻断这种劳务。而作为维持Android平台的信息商人Google,只确保在它的地盘里,不会发生触碰底线的事情。

  一句话总结:

  设备是我的,不管你怎么说,反正我说了算,但我说的话大多是不算数的。    

  3  权限控制的方法

  这里开始介绍各种控制Android权限的办法。可惜的是,几乎所有的手段都需要对设备进行Root,如果不这么做,则需要付出不小代价。

  App Shield(国内常见的名字:权限修改器)

   它是一个需要付费的Android应用,其原理是修改应用程序的apk安装包,删除其中AndroidManifest.xml文件内,用于声明权限的 对应"Android.Permission.*"条目,然后再用一个公开的证书对安装包重新签名(需要允许"未知源"),这样一来,应用程序就不会向系 统申请原先所需的权限。当应用运行至相应的流程时,系统将直接拒绝,从而达到用户控制权限的目的。

  对于已安装的应用,AppShield也会按照同样方法制作好apk安装包,然后让用户先卸载原始的应用,再安装调整过的应用。除了该应用数字签名外,用户可以随时通过执行同样的流程,将吊销的权限恢复。

  Apk文件的结构

  Android应用都是打包成以.apk扩展名结尾,实际上是zip的文件格式。

  一个合法的apk至少需要这些成分:

  根目录下的"AndroidManifest.xml"文件,用以向Android系统声明所需Android权限等运行应用所需的条件。

  根目录下的classes.dex(dex指Dalvik Exceptionable),应用(application)本身的可执行文件(Dalvik字节码) 。

  根目录下的res目录,包含应用的界面设定。(如果仅是一个后台执行的"service"对象,则不必需)

  Apk根目录下的META-INF目录也是必须的,它用以存放应用作者的公钥证书与应用的数字签名。

   当应用被安装后,这个apk文件会原封不动地移至设备的data/app目录下,实际运行的,则是Dalvik将其中Classes.dex进行编译后 的Classes.odex(存放在Dalvik缓存中,刷机时的'cache wipe就是清除Dalvik的odex文件缓存')。

  优点:

  完全不需要Root,适用于所有版本的Android设备。不会损坏系统,可以吊销任意一项Android权限。

  问题:

  1,需要重新安装应用,该行为可能会丢失应用的配置、历史记录。

  2,执行权限吊销的应用的数字签名会被更改,无法直接更新。对于那些设计不良(没有意料到'不声明权限'情况的),或有额外自校验的应用,可能会无法运行。

  3,无法用于设备上的预装应用,除非制造商好心地将该应用设置为"可以删除"的状态。

  4,这个方法修改了apk包中的内容------尽管实际上AndroidManifest.xml和数字签名并不算是应用程序的本身,但修改它们可能引发著作权的问题。

  5,需要开启"未知源"。

  6,这是一个收费应用。 

  CyanogenMod 7.1(及以上版本)

  Cyanogenmod是一款著名的第三方编写的开源Android ROM。

   CM7.1加入了控制权限的开关,官方的名称是"Permission Revoking",任何非系统/保护应用在安装后,可直接吊销任意一项权限,其效果等价于直接删除apk包中AndroidManifest.xml的 对应条目,但不会引发自校验的问题。CM的权限工具的作用等同于AppShield,无非是在Android自身的权限系统中添加了一个开关。

  优点:

  免费,使用简便,可随时,任意地吊销、恢复非预装应用的任意一项权限;不存在数字签名的问题,因而不影响使用自校验的应用程序。

  问题:

  此功能仅在Cyanogen Mod 7.1及以上版本提供,无法用于其它rom。因为是由Android系统出面吊销权限,其实现原理与App Shield完全相同,同样的,应用程序会因为设计不良而出现崩溃。  

  Permission Denied

  这是可以吊销任意Android应用(注意,不当地吊销系统应用的权限可能会导致手机固件损坏,无法启动)的任意权限,对权限的修改在重启后生效。

   实现原理应该与Cyanogen Mod 7.1+完全相同,适用于任何已经Root的系统,因为一般的Android系统虽然事实上支持权限吊销,但没有像Cyanogen Mod那样放置接口,因此需要重启后才能应用权限配置。同样也有系统出面拒绝权限而导致的崩溃现象。

  优点:

  效果与Cyanogen Mod中的权限吊销效果一致,且可吊销系统应用的权限。同时提供了免费与收费版本,免费版并没有基本功能的缺失。适用于所有版本号不低于1.6的Android设备。

  问题:

  调整后的权限需要重启才能生效。设计不良的应用会崩溃。不恰当的权限修改会损坏系统,导致无法开机。  

  PDroid

   PDroid实际上是一个Android内核补丁加上一个用于管理的外部应用。补丁需要在Recover环境中刷入系统,也可以由开发者自行移植入系 统。该软件在Android ASOP 2.3.4代码基础上开发,仅适用于没有改动内核的Android 2.3系统,目前还未支持Android 4。

  为了避免Cyanogen Mod 7.1+权限吊销(Permission revoking)导致的崩溃问题,以及后台服务(如LBE,QQ手机管家等,PDroid的作者认为通过后台服务拦截权限并不是好办法),PDroid 并不阻止应用程序声明权限,但会在其实际索取相关信息时,予以阻止。通俗地说,就是签署协议但不执行。在PDroid的用户界面,用户能随时精确地控制涉 及隐私的各项权限。对于某些内容,除了阻止外,用户还可以伪造一个随机或指定的数据。

  可控制的内容包括:

  IMEI(可伪造)

  IMSI(可伪造)

  SIM卡序列号(可伪造)

  手机号码(可伪造)

  来,去电号码

  SIM卡信息

  当前蜂窝网络信息

  (以上七者均来自Android.Permission.READ_PHONE_STATE)

  GPS定位信息 (可伪造,来自Android.Permission.FINE_LOCATION)

  基站定位   (可伪造,来自Android.Permission.COARSE_LOCATION)

  系统自带浏览器的历史,书签(Android.Permission.BOOKMARKS)

  联系人    (android.permission.READ_CONTACTS)

  通话记录   (android.permission.READ_CONTACTS)

  系统日志   (android.permission.READ_LOGS)

  当前账户列表   (android.permission.GET_ACCOUNTS)

  当前账户的授权码  (android.permission.USE_CREDENTIALS)

  短信,彩信 (可能与这5个权限有关)

          android.permission.READ_SMS

          android.permission.RECEIVE_SMS

          android.permission.SEND_SMS

          android.permission.WRITE_SMS

          android.permission.RECEIVE_MMS

  日历    android.permission.READ_CALENDAR

   PDroid的内核补丁并不通用,每一个Rom都需要特定的补丁。开发者除了提供了几个特定机型下Cyanogen Mod,HTC Sense修改版ROM的专用补丁外,还推出了一个补丁生成工具(PDroid Patcher),用户可以给自己的ROM生成专用的内核补丁。使用该Patcher需要安装JDK(java Development Kit)。

  优点:

  PDroid避免了通过Android系统进行权限吊销的导致的潜在崩溃问题,也不需要后台服务。对隐私信息的控制是最精细的。尽管设备必须Root,但应用本身不需要Root权限。

  问题:

  安装过程是最繁琐,最不可靠的,容易导致ROM损坏,适用范围也小,需要用户有相当的技能(能安装JDK,会刷机)才可使用;只提供对隐私有关权限的控制,不提供网络访问,的控制。以这些为代价,它几乎没有其它缺点。  

  LBE安全大师

  实际上最常用的是以LBE为代表的通过一个Root权限的后台服务来拦截相关行为的工具。除了LBE外,还有QQ手机管家等应用。这里以LBE安全大师为例介绍。

   LBE是国内一个叫"LBE安全小组"开发的工具,支持Android2.0~4.0。它的核心功能是像杀毒软件一般,通过一个需要Root权限的后台 服务,劫持所有调用权限的行为,并放行用户许可的部分(其官方宣传为'API级别拦截')。它和PDroid一样几乎不会引发应用程序崩溃,它支持拦截几 个涉及用户的关键权限(LBE手机管家3.1/3.2):

  读取短信  (android.permission.READ_CONTACTS)

  联系人记录  (android.permission.READ_CONTACTS)

  通话记录  (android.permission.READ_CONTACTS)

  定位   (Android.Permission.COARSE_LOCATION

        Android.Permission.FINE_LOCATION)

  手机识别码  (与Android.Permission.READ_PHONE_STATE有关)

  通话状态  (与Android.Permission.READ_PHONE_STATE有关)

  发送短信(具体原理不明,同样类似于禁止这五个权限

        android.permission.READ_SMS

        android.permission.RECEIVE_SMS

        android.permission.SEND_SMS

        android.permission.WRITE_SMS

        android.permission.RECEIVE_MMS)

  拨打电话  (android.permission.CALL_PHONE)

  通话监听  (android.permission.PROCESS_OUTGOING_CALLS)

  除此以外,LBE还可以分别控制应用在Wifi,手机网络的联网权限,其原理是依靠IPtables防火墙,而非通过Android的"Internet"权限。

  此外LBE手机管家还提供基于智能内容审查的短信拦截、来电归属地显示,以及禁用系统(保护)应用,进程管理,杀毒等功能。

  LBE提供两个版本,一个叫"LBE安全大师",是一个全面的手机管家类应用,更新比较频繁,另一个版本(LBE手机隐私卫士,LBE Security lite)仅提供权限方面的管理。

  考虑到主要市场在国内,LBE的发行策略看上去有些奇怪,它在Google的官方市场并不发行最新版。通常只能只能在LBE的官方网页,以及国内的应用市场获得最新版本。

  优点:

  使用非常简单,功能强大而全面,风险很小,可以控制系统应用。适用范围广,有很多替代产品。

  问题:

  需要后台服务 (尽管蚕豆网有个评测,认为它对能耗几乎没有影响),不能控制所有的Android权限。     

  4  自启动的控制

  Android对后台服务有着最好的支持。

  在Android中可以自由地开发一种称为'Service'的后台运行的对象,加上没有苹果公司对应用程序的严格限制。诸如QQ挂机,即时调用第三方应用程序之类的形式都可以轻易实现。

  为了全面支持后台服务,也为了适应移动设备资源紧张,不得不经常清理内存的问题,应用可在系统中设置触发器,当系统发生了某个特定特定事件时(系统启动,拨打电话,收发信息,安装、卸载应用,插上电源等,或应用程序自行定义的事件),就会触发启动应用程序。

  AutoStarts 自启动管理

  AutoStarts是一个收费应用,通过它,用户能了解系统中每一项程序会在什么场合下被触发运行。如果提供Root权限,则还能禁止这样的行为。

   这里以Google Maps应用6.2版为例。默认情况下,这款应用总是会保持后台运行,并每小时向Google发送一次当前用户的位置信息。为了阻止这样的行为,需要联合 使用AutoStarts与任意一款进程管理应用:在AutoStarts中,阻止Google Maps的自行启动(如图),在每次使用完后,把Google Maps的进程杀掉。 

  5  其他

  Root带来的风险

  有一个钻牛角尖的说法认为,一旦对设备进行了Root,便无安全一说,只要恶意程序一旦偷偷获得Root级别,一切都是空谈。

   这种说法之所以钻牛角尖,是因为:一方面Android中的Root权限通常都是需要用户通过Superuser应用进行授权的,这已经够用,虽然不能 指望Superuser无懈可击;另一方面,控制Android权限主要是为了让应用程序在"灰色地带"的行为收敛一些,它们实际显然不是病毒等犯罪软 件。

  著作权的问题 (作者不是法律方面的专家,以下言论仅供参考)

  我们知 道,Android中的应用程序是基于Java语言编写的。而为了达到跨平台的目的,Java软件是以字节码(或叫中间代码,bytecode),而非计 算机能直接执行的机器码(Machine Code,有时也叫作Binary)的形式存在。因此执行Java软件时,需要一个Java虚拟机(Android系统中的Java虚拟机就是 Dalvik)负责解释运行,有的时候,虚拟机还会通过即时编译(JIT)的方法将字节码编译为机器码后再运行,以提高程序的执行效率。

  这就出现一个很有趣的现象:

  除非另行规定,作为设备的拥有者,用户总是可以自行决定如何使用软件,能自行决定程序能否访问用户自己的计算机(移动设备亦然)里面的各个内容、对象。

  由此衍生出,在需要对代码编译、解释的场合,用户也能通过对编译器(解释器)的干预,来影响代码的执行效果。在Android中,用户还可以在Dalvik解释、编译的时候动手。

   这是因为,著作权仅保护了软件代码不受到非授权的反向工程,未授权传播等侵犯。另一方面,对于Android上的Java,网页中的 javascript程序,赋予用户解释、编译的权利是程序能执行的先决条件;同时,软件发行者发通常也会主动提出放弃这种权利(表现为'软件按原样提供 '、'不对使用软件造成的后果负责'等条目)

  在编译、解释的过程中,需要通过汇编(Assemble),连接(Link)等方法将编译 好的对象(Object)、方法(Function)联系起来。默认情况下,这些行为是由原始的代码(源代码、中间代码)与编译器(解释器)决定的,但是 用户可以通过制约编译器(解释器)的设置,从而影响到最终代码。这么做是没有问题的。

  还有一种,应用程序在安装后,会在系统中产生一些 缓存,或注册一些信息。当其中的内容有关用户数据时,读取或修改它们也是没有问题的。这就是所谓"只要是你的东西总是你的";也是Cyanogen Mod、Permission Denied不会涉及版权问题的原因所在。

   总之,一个Android应用之所以能运行的前提是:

  1,首先,用户允许使用这个应用

  这也可以理解成:用户安装了应用(以及因此设定的后台对象),购买了预装应用的手机。这一点即不影响应用程序的主动通知义务,也不影响用户事后的干预。

  2,接下来,用户允许Dalvik对该应用使用"解释","JIT"的方法,从而该应用程序得以执行。

  3,用户随时可以对该应用作出任意不违反版权的干预。

  所以,在没有另行规定的前提下,用户总是可以自行决定,通过给应用程序分配自定义的权限;或是在应用程序调取内容,对象时予以阻断。同时,用户也需要自行承担因不当操作产生的后果。    

  附录:

  1、 数字签名

  数字签名是一种使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名可以轻易地验证完整性(正确性),合法签署的数字签名具有不可否认性。 (摘录自维基百科"数字签名"条目,有修改)

  2、 版权声明

  文章中引用的图标,图片或图片的部分,以及部分文字的引用,仅出于合理使用的目的,可能是持有人版权所有的。

  来源:fcerebel投稿。

评论《保护你的隐私,五种控制Android应用的权限的方法》的内容...

找不到相关文章,请发表留言

统计
微博:新浪微博 - 腾讯微博
QQ群:186784064
月光博客投稿信箱:williamlong.info(at)gmail.com
Created by William Long www.williamlong.info


--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/10/2012 04:53:00 PM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] cactusvpn提供免费VPN服务

原文:http://igfw.net/archives/7403

以前在 http://igfw.net/archives/6811 中提到过cactusvpn,当时还没有开始运营,说是订阅其资讯前多少个用户可以免费试用三个月,不知道有没有人获得,现在它开始营业了,目前提供美英荷三国pptp/l2tp/openvpn/proxy服务,免费的类型分三种:

一、免费试用24小时

访问 https://billing.cactusvpn.com/cart.php?a=add&pid=3 订购即可免费试用一天

二、免费试用一月

他们说他们每周会发放25个试用一月的帐号,需要的可以关注其博客、推特抢注

三、免费高级账户为博主

如果您有一个Google PR 至少为2的博客或论坛,你可以以任何语言原创一篇150字以上的含有其网站链接 www.cactusvpn.com 的文章来免费获得其高级VPN帐号,写好后发邮件到 sales@cactusvpn.com 告诉他们,等他们审核通过后即可获得。详情参考 http://www.cactusvpn.com/free-vpn/

本文原始地址http://igfw.net/archives/7403




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/10/2012 04:50:00 PM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] 一些翻墙代理相关软件更新

原文:http://igfw.net/archives/7126

https://addons.mozilla.org/en-US/firefox/addon/gproxy-tool/

是一个firefox上切换代理的简单扩展

http://monkeykingsurfer.blog.epochtimes.com/article/show?articleid=35650

孙悟空翻墙器 monkeykingsurfer 2012年1月31日更新版,一个打包浏览器

http://code.google.com/p/agfw/downloads/list

一个打包Snova的翻墙浏览器

http://code.google.com/p/jtorchat/downloads/list

实现在Tor上的P2P网络聊天软件

http://code.google.com/p/breakwall/downloads/list

集成五个 GAE 代理(Goagent、Apjp、Snova、Gappproxy 和 Wallproxy-plugins)在 MAC 系统下的所有设置和使用

http://code.google.com/p/secure-gappproxy/downloads/list

GAppProxy的一个分支,专注于用各类先进密码学手段提高安全性。如果你和我一样对安全神经质,这个应该也适合你。

http://code.google.com/p/apjp/downloads/list

一个强大的PHP/JAVA代理,更新解决了部分网站证书问题

http://code.google.com/p/snova/downloads/list

snova是一个插件化的web proxy框架,目前自动集成基于Google AppEngine平台的GAE插件,支持Heroku/CloundFoundry/OpenShift/Jelastic平台的C4插件,以及增强的PAC插件SPAC

http://code.google.com/p/goagent/

简单易用的GAE翻墙工具

http://code.google.com/p/sshtunnel/downloads/list

安卓系统上使用SSH代理翻墙工具

http://code.google.com/p/gaeproxy/downloads/list

安卓系统上使用GAE代理翻墙工具

http://code.google.com/p/android-openvpn-settings/downloads/list

安卓系统上使用OpenVPN的工具

ftp://ftp.stunnel.org/stunnel/

stunnel发布了安卓系统版本,有兴趣的可以研究下如何用来翻墙啦

本文原始地址http://igfw.net/archives/7126




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/10/2012 04:49:00 PM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

2012年2月9日星期四

[GFW BLOG(功夫网与翻墙)] SOCKS的安全代理实现

原文:http://briteming.blogspot.com/2012/02/socks.html

支持多进程的SOCKS安全代理。即用了认证也用了加密。具体的实现请看下面。
工程结构:
.
|– client.c (客户端源代码)
|– server.c(服务器源代码)
|– Makefile
|– pwd_file (密码文件)
`– tags (exuberant ctags)
其中pwd_file是用于认证的,客户端服务器各有自己的。客户端的只包存自己的用户名和被MD5哈希过的密码,
以’$'为间隔。服务器端存在这多个用户的信息每一个客户占一行。目前是”smIlence”的MD5摘要。
设置浏览器代理:
客户端设置浏览器的SOCKS host 为localhost:9050
开发环境:Ubuntu 10.10
开发语言:C (编译器是gcc 4.4.5)
编译方式:参考Makefile(需要openssl library)
运行方式:
客户端: $ ./client <server ip> <server port>
服务器端: $ ./server
其中server port 是8118
流程:
overview
client向server认证过程如下:
我们的认证方式是基于user和password的。首先server端会有数据库(为了简介我们是用文件形式保存),保存用户和用户密码(当然密码不是明文用,MD5)。
client一开始想和server建立链接时,client会向server发送它是谁,server会向client发送当时自EPOCH以来的微秒数,client利用收到的数和自己的密码摘要再进行哈希,然后发给服务器,服务器也会把微秒数和密码摘要哈希然后进行比较,一样就认证通过。这样做的原因是希望防止replay attack,中间者要是sniff我们的包也对他没什么用因为客户端没有发送密码摘要,而是摘要再进行哈希的摘要,利用时间是因为时间不会像随机数重复出现。
为了达到安全传输我们借用openssl来帮我们实现SSL,其中使用ASH-AES256-SHA为我们的cipher suite。
如下所示,它使用DH算法来进行密钥交换,256-bit AES来加密,和SHA1来进行消息认证。
$ openssl ciphers ADH-AES256-SHA -v
ADH-AES256-SHA SSLv3 Kx=DH Au=None Enc=AES(256) Mac=SHA1
在已经设置好浏览器的代理下,当有用户输入站点访问,浏览器会和客户端进行SOCKS4链接,成功后客户端会
向我们服务器进行认证。认证成功后,客户端接受并转发浏览器的GET请求给我们服务器,这里是在SSL下和服务器
链接,服务器再转发给目的http server,从http服务器接受回应的过程发送过去的逆过程。
最明显的安全弱点是我们的客户端没有对我们服务器进行认证。



--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/09/2012 07:25:00 PM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] Proxy Changer V2发布

原文:http://www.91tule.com/?p=494

Proxy Changer是一个更换匿名上网冲浪的小工具。每天都更新几次,你可以下载后检查他们的代理,占用非常低的电脑资源。 如果你的电脑用多个代理服务器上网,可以使用这个软件进行代理服务器的切换。

proxy代理

 

软件授权:免费版
软件语言:英文

官方网站: http://macole111.users.sourceforge.net/

软件下载: Proxy Changer v2.0 

原创文章,转载请注明: 转载自91图乐

本文链接地址: Proxy Changer V2发布




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/09/2012 10:21:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] 设置Squid成匿名代理

原文:https://www.d0z.net/archives/6056/

不久之前通过icyboy大家了解到了用Squid做http代理。可是上whatismyip.com你能看到自己使用的是什么代理。那有啥办法匿掉这个呢?icyboy给我了一个链接,大家可以研究看看。

http://www.sohailriaz.com/anonymous-proxy-using-squid-3/

根据icyboy的经验,在squid.conf里加上如下即可匿掉:
#Enable Anonymizer (Anonymous Proxy)
#header_replace User-Agent anonymous
forwarded_for off
request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access User-Agent allow all
request_header_access Cookie allow all
request_header_access All deny all
reply_header_access Allow allow all
reply_header_access Authorization allow all
reply_header_access WWW-Authenticate allow all
reply_header_access Proxy-Authorization allow all
reply_header_access Proxy-Authenticate allow all
reply_header_access Cache-Control allow all
reply_header_access Content-Encoding allow all
reply_header_access Content-Length allow all
reply_header_access Content-Type allow all
reply_header_access Date allow all
reply_header_access Expires allow all
reply_header_access Host allow all
reply_header_access If-Modified-Since allow all
reply_header_access Last-Modified allow all
reply_header_access Location allow all
reply_header_access Pragma allow all
reply_header_access Accept allow all
reply_header_access Accept-Charset allow all
reply_header_access Accept-Encoding allow all
reply_header_access Accept-Language allow all
reply_header_access Content-Language allow all
reply_header_access Mime-Version allow all
reply_header_access Retry-After allow all
reply_header_access Title allow all
reply_header_access Connection allow all
reply_header_access All deny all

关键在这两篇官方文档:

http://www.squid-cache.org/Doc/config/reply_header_access/

http://www.squid-cache.org/Doc/config/request_header_access/

 

用途:在一些网站,特别是PT站,规定绑定IP+禁止代理的,自己家如果是动态IP的话,就可以用这个了。




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/09/2012 10:20:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

2012年2月8日星期三

[GFW BLOG(功夫网与翻墙)] 一个代理引发的关于APN代理翻墙的思考

原文:http://igfw.net/archives/7397

发现一个透明代理 67.23.250.33 端口 53 设置浏览器代理后竟然可以用来翻墙而不被GFW重置,分析后发现是因为 53 端口的代理没有被GFW干扰所致,众所周知由于GFW的干扰,普通的http代理并不能用来翻墙,可能因为一些端口比较特殊GFW不得不网开一面或者 GFW疏忽大意抑或故意为之,造成使用个别特殊端口的普通http代理可以用来翻墙。

http://igfw.net/archives/7329一 文中原作者说过还有几个这样的特殊端口,我测试了一些 常见端口也找到几个,不过为避免GFW封锁,确实需要的可以推特上@我DM你端口;文中其实已经说了APN代理的两种类型,一种是直接使用国外特殊端口的 普通http代理,一种是通过SSH或VPN等手段穿过GFW后在国内服务器上搭建普通http代理。

比如说直接在国外VPS搭建53端口的高匿名http代理,然后用此代理在国内翻墙,事实上是可行的,不过这个过程中没有加密,安全性不足。然而通 过SSH或VPN等手段穿过GFW后在国内服务器上搭建个高匿名http代理,虽然在穿越GFW部分是加密的,不过从国内服务器到你的网络设备之间还是没 有任何加密,并且国内的服务器上还可能存储你相关数据,安全性也不好。

不过有时候迫不得已只能使用这种APN代理,比如你使用微软的WP手机既不能VPN更不能SSH,或者你使用诺基亚的非智能机等。另外使用http://igfw.net/archives/7329一 文中所说的Squid+Ziproxy组合在VPS上搭建代理,可以使用Ziproxy的JPEG 2000压缩图片和Gzip压缩网页来节省流量,使用Squid缓存加快网页浏览速度,而且由于是过程中无加密损耗速度要比ssh/vpn快,而且不用运 行本机进程也比ssh/vpn省电很多,所以如果你不太注重安全问题,在手机上用用这种APN代理也是比较适合的。

不过在APN接入点里设置代理各类手机上就各不相同了,比如在诺基亚非智能机和塞班系统上就比较容易设置,而据说iOS设备上就不能直接设置需要在电脑上配置好后导入。

回到开始的话题,知道了这些特殊端口存在后可以在代理网站上搜寻符合条件的代理用来翻墙,也可以自行扫描验证代理。不过这样获得的代理在安全性和稳定性上都有着天然不足,所以有可能的话还是自己购买国外VPS搭建吧。

本文原始地址http://igfw.net/archives/7397




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/08/2012 08:54:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] 简易 APN Proxy (APN代理)的搭建

原文:http://briteming.blogspot.com/2012/02/apn-proxy-apn.html

得厨神@paveo 的创意,何不将其用在手机等移动设备上?厨神的APN现在已经很成熟并在免费有限量专供中。我今天这里写得,是如何搭建自己的APN Proxy(APN 代理),但在阅读下面内容之前,需要一个刚性要求:一台在国内的Unix-Like的主机(可以是Linux/FreeBSD/Mac Osx Server/Solaris等等)并且是公网IP地址以及在国外的VPS主机(Unix类)。这个要求可以看出成本比较高,所以我看到淘宝上已经有人开 始出售APN代理了,这个可以理解。
第一部分 原理
原理图1
如 上图所示,我们要实现的功能原理是,将上网请求先发送到“国内VPS”,再由“国内VPS”通过SSH隧道转送到国外,最终实现无阻上网。点击查看大图可 以看出,主要配置是在“国内VPS”上,包括配置SSH -D、Squid、Privoxy或者Polipo(socks代理程序你可以选自己喜欢的)。
第二 配置
1 国外VPS
国外VPS上,你需要有一个SSH帐户,并且请注意,使用密钥方式登录你的SSH而非密码,之所以如此,是为了下一步建立长久的SSH以及断线自动重连做准备,这个很重要。关于“SSH 免密码 密钥 登录”请使用google看一下。
这 里有一个小插曲,部分centos 上如果默认的话,SSH帐户会报错,大约 是adminitstatly close之类,这有可能是 openfile数目问题,可以轻松解决。我非Linux爱好者,所以是临时google,并没有记录下来,你只要记得如果遇到同样问题,5分钟之内就可 以google解决。
2 国内VPS
这一节将会是我们的主战场,基本上,我将会按下面的逻辑图来进行配置,这其中会涉及很多文件的配置,需要你注意哦,最后部分我会提供部分配置文档下载,由于我使用的是FreeBSD,因此会有少量差异,我想这不会难倒你,对么?
原理图2
A SSH 隧道
其 实就是我们平时上网用的 SSH -D 方式,在本地打开 7070端口到国外VPS的SSH建立隧道,这样我们出国的流量就经过加密了。我们平时使用 ssh -qN -D 7070 demo@excample.com 来连接,但是现在我们要站在服务器的角度考虑问题:如果SSH -D方式中断了,怎么办?
这 里我们要做的事情是,建立一个机制,使得在SSH隧道出现问题的时候可以自动重启自动连接,有一个现成的工具可以使用 autossh  (FreeBSD请使用 whereis autossh ),autossh 可以传递大多数ssh的参数,包含 -D ,然后会监视这个会话连接,如果出现中断就可以自动重连接。
不过,如果 ssh 连接本身没有中断,但是进程卡死,sleep 状态,autossh 也不顶了怎么办?于是又要写一个脚本,定时检查 autossh 进程或者干脆定时重启 autossh 。
以下为脚本
#!/bin/sh
export AUTOSSH_PIDFILE=/var/run/autossh.pid
pidfile=”/var/run/autossh.pid”
if [ -f $pidfile ];then
kill  `cat $pidfile`
touch $pidfile
else
touch $pidfile
fi
/usr/local/bin/autossh -M 9000 -f -q -N -D 7070 root@excample.com
######################
#脚本 autossh.sh 结束#
######################
注意上面最后一句 autossh -M ,这个参数是监控端口,大体是通过此端口来判断 ssh 隧道是不是有问题,这个端口你可以随意指定。
你也可以将这个脚本加入到 crontab 中(使用crontab -e),比如我,设定半小时执行一次,目的是每半小时无论SSH连接是否正常都会重启一下隧道连接,也可以设定在夜间重启,总之,随你如何了。
接 下来,为了防止假死情况发生(我指autossh本身),我又再次写了一段脚本,用来实时监控 autossh 进程,一旦进程中断,这个新脚本就可以重新启动SSH连接。这个脚本是用来监控进程PID是否存在,PidFile有没有进程号,端口7070存在否。 (注意,这是在FreeBSD写得脚本,因此你需要改成适用于你系统的,比如 sockstat 其他系统没有这个命令,用以查看端口使用,你可以使用 netstat 来取代 )
#!/bin/sh
while :
do
        stillRunning=$(ps awx |grep “(autossh)” |grep -v “grep” | awk ‘{print $1}’)
        dead=`cat /var/run/autossh.pid`
        port=`sockstat -4l | grep :7070`
        [ -z "$stillRunning" -o -z "$dead" -o -z "$port" ] && /etc/autossh.sh
  sleep 10
done
########################
#mon-autossh.sh脚本结束#
########################
mon-autossh.sh中使用了无限循环,你也可以使用crontab来做定时检测,使用上面的脚本会吃系统资源尽管对于单服务类型的主机来说这一点也不是问题。
做完以上步骤,这时候我们就在本地建立了一个端口映射,即一个 7070端口的 socks5 代理。
我 们即将进行下一步,但有个问题挡在面前,为何我们不直接将这个sokes5代理应用到squid上却非要安装 Privoxy或者polipo?这是因为,squid 虽然支持二级代理,但是要求父代理必须是 HTTP ,因此我们的 ssh  生成的 socks5 代理就不能用了,我们就借助第三方软件来给squid 穿上 ssh 的外衣,这就是即将用到的 privoxy 或者 polipo 中的一种,注意,你只需要安装其中一种,我之所以将两种都写出来,是因二者有不同,希望你能了解个中不同,选择自己需要的。
B 代理转换 Privoxy 或者 Polipo,以及最好用的 3Proxy
  1) Privoxy
我 想使用过Tor的人应该很熟悉这个软件,或者使用opera浏览器的人。这个程序强大的地方除了可以将 socks5 代理转为 HTTP 外,还在于它支持按照规则转发(比如将GFW认证的网站与普通网站区分开)、广告过滤。也就是说,Privoxy 这个程序已经可以取代 squid 的功能,所以若你选择了 Privoxy 配置完好,就可以不看下面的部分了(只是认证环节我一直无法搞定)。不多说了,下面附上配置,分为两部分 Privoxy 的 config 和 gfw.action ,前者是全局设定,后者则是只将gfw的网站代理出国,其他网站仍然走国内路由,提高访问速度。
########
#以下是 privoxy 的 config
########
user-manual /usr/local/share/doc/privoxy/user-manual
confdir /usr/local/etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action
actionsfile default.action
### 下面这个 block.action 就是默认的过滤规则,可以去广告
#actionsfile block.action
#### 下面 gfw.action 就是我们需要的,只有符合这个规则才走国外代理
#### 请在 config 同目录下创建 gfw.action
actionsfile gfw.action
filterfile default.filter
#filterfile user.filter
logfile logfile
#forward-socks5 / 127.0.0.1:7070 .
# 下面这一行表示 打开 8118端口,你可以用手机直接连接进来
###################################################
listen-address  0.0.0.0:8118
### 下面的配置我不多说,都是必要项,有兴趣的可以日后研究
###
toggle  1
enable-remote-toggle  1
enable-remote-http-toggle  0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 5120
#connection-sharing 0
forwarded-connect-retries  3
accept-intercepted-requests 0
allow-cgi-request-crunching 0
activity-animation 1
split-large-forms 0
keep-alive-timeout 0
socket-timeout 120
handle-as-empty-doc-returns-ok 1
#### 配置结束 #######################################
OK了,这个就默认的 Privoxy 的 config 了,接下来我们要定义 gfw.action ,要把 autoproxy 里的那么多网址加进来,会累死你的,幸运地有网友已经提前做好了,请访问这里
然后修改 gfw.action 为 {+forward-override{forward-socks5 127.0.0.1:7070 .}} ,注意 那个“ . ”,很必要。
如果按以上方式,其实你已经配置好了代理,并且打开你的手机,在代理那里输入 IP : 8118 就可以访问世界了。iphone/ipad/touch/需要到app store 下载安装“易apn”这个软件,然后在专网那里自定一个 apn 代理就可以了。
当然,选用squid自有选用的道理,配置完之后同样也可以被squid拿来使用。我们接着配置另一个代理 polipo (两个代理软件,你只需要选择一个)
2) Polipo
我 想大家可以注意到 tor的默认组合已经从 tor + Privoxy 转换到了 tor + polipo ,前者我们在上面已经说过优点,缺点就是太难配置了(其实我觉得也不难啊,就是规则写起来麻烦点点),而polipo优点是自带缓存功能,有一定的加速效 果,再者就是可以将几个SSH通道做负载均衡,就是说你可以建立多个SSH -D连接然后绑定到一个polipo上。另一个好处就是配置简单易用,不过过滤功能就比privoxy弱了许多(也可以ad-block,不过真没必 要)。
所以我当前在用的方案就是 Squid + Polipo ,polipo 可以不设置缓存,设置了也不会影响,缓存工作交给squid来就OK。这一部分的配置可以参阅http://xijie.wordpress.com /2011/05/28/squid3polipo-use-sock5/,但是只参阅而不要使用这个配置,除非同时连接多个ssh主机。下面给出我的 polipo配置
#config file for polipo @ /usr/local/etc/polipo/
proxyAddress = “0.0.0.0″    # IPv4 only
proxyPort = 8119
allowedClients = 127.0.0.1,211.161.103.253
allowedPorts=1-65535
proxyName = “APN代理”
socksParentProxy = “localhost:7070″
socksProxyType = socks5
 chunkHighMark = 819200
 objectHighMark = 128
diskCacheFilePermissions=0640
diskCacheDirectoryPermissions=0750
disableIndexing = false
disableServersList = false
dnsQueryIPv6 = no
disableVia=false
censoredHeaders = from, accept-language
 pmmFirstSize = 16384
 pmmSize = 8192
maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 4
tunnelAllowedPorts = 1-65535
#End
大体上,如上的配置,就已经成功,同 B 1) 一样,这个时候只要设置代理为 8119 就可以上网了,可以不必向下阅读Squid部分了。
 3) 3Proxy
尽管我很喜欢使用polipo,但是在和squid配合使用时会有点点小毛病,而且3Proxy的功能更合乎我的需求:多端口代理,同时开放 socks5和http,并且可以做负载均衡,本例中不介绍,你可以查阅相关文章,我直接附上我的配置
###########################################
#!/usr/local/bin/3proxy
config /usr/local/etc/3proxy.cfg
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
daemon
log /var/log/3proxy.log D
rotate 10
logformat “- +_L%t.%.  %N.%p %E %U %C:%c %R:%r %O %I %h %T”
archiver gz /usr/bin/gzip %F
auth iponly
allow * 127.0.0.1,220.161.103.253 * *
parent 1000 socks5  127.0.0.1 7070  #使用父代理SSH -D
proxy -a -p8117                     #-a 是指匿名,-p指端口
external 12.34.56.78
internal 12.34.56.78  #你可以在这里改成127.0.0.1,原文档中有说明
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
#####################
##    脚本结束  #####
#####################
需要说明的是,3Proxy的配置文件 3proxy.cfg,你可以加上执行权限,直接就可以运行。这也是目前我在使用的 Squid + 3Proxy 构架,建议各位可以尝试一下这个。
C Squid 配置
如果你可以使用Squid 3.1 ,那么请选择它,但是它的性能不如 Squid 2.7 可是多了一个特性,就是可以限速,这个在 Squid 2.7 上是没有的,我使用的是 Squid 2.7 ,性能最好的一个版本。
我在这里要说的是,使用squid的原因是为了更大的缓存,限速以及更好的根据IP和域名区分国内国外网站从而决定是否走国外代理。所以我摘要解释一下配置,并提供一个配置下载连接。
由于我是squid 2.7 ,有些参数 squid 3.0+已经不再支持 比如  acl all         src 0.0.0.0/0 ,这一条如果是在 squid 3.0中就会有问题,需要删除,因为squid 3.0 已经默认 All 这个分组了。
首 先是squid的密码验证,你可以设置也可以不设置,在我的配置文件中已经为你默认注释掉,但是都已经配置好,包括摘要验证digest和基本验证 basic,还有 auth ttl 都已经设定好,需要的话,自己创建一个password文件然后就可以用了,password直接使用明文 plaint_txt 就可以,或者用httpd 一个password生成器(有web端,google 一下就OK)。
然后设定squid 引用我们在 B 中设定的代理,使用:
cache_peer 127.0.0.1 parent 8119 6000  no-query
其中 6000 是一个 icp 端口?反正没什么用,我也不知道。。。。
下面这一句,不用我说你也猜出作用了:
visible_hostname APN-Squid-Proxy-@bao3
http_port 3128
接下来是要求squid按规则区分国内国外路由的文件引用:
include /usr/local/etc/squid/gfw.squid
include /usr/local/etc/squid/proxyroute.squid
好 吧,这两个文件我也已经创建好了,在下载链接里,你去下载吧。接下来是告诉 Squid proxyroute 这个规则中的请求直接走国内的IP,而 gfw 这个规则中的域名则不允许直接走国内IP而是走国外IP。最后 never_direct allow all 是要求所有的未在proxyroute 这个规则中的请求都走国外IP上网。( Proxyroute 这个规则中全是IP地址,而且都是中国IP地址 )
always_direct allow proxyroute
never_direct allow gfw
never_direct allow all
#always_direct allow proxyroute
#never_direct allow proxyroute
#always_direct deny gfw
#always_direct allow all
###################################################################
Squdi 配置文件的最后一部分,是关于cache 参数的,我已经设定好但却是依照我的系统进行的,所以你可以自由调整你的需要
文件 gfw.squid ,是存储了绝大多数被国家GFWed了的域名,当一个新域名被封杀时,你可以手动在下面加入。而 proxyroute 则包含了中国所有的IP地址段,你可以定期到 http://code.google.com/p/chnroutes/ 自己手动更新,但是请注意,默认生成的route.txt并不使用squid使用,需要使用vi/emacs/sed/awk 等等自己更正。
https://t.co/0ywZ57Ey  Squid 配置文件夹下载(有用的文件只有 squid.conf gfw.squid proxyroute.squid ,其他的都临时文件或者默认文件 )
最后,也许有人会问,为何你没有提及加密的问题?手机APN 代理 设置好了,可是没有加密怎么办?
我们平时提到加密,一般是口令验证或者通信加密。口令验证是传递回服务器,由squid完成,这个我在配置文件头部已经写好了,但口令验证不能保证通信内容不被监视,这就需要通讯加密。
我 们提到通讯加密,最熟悉的就是SSL证书方式,也有其他方式,但这些通讯加密方式都有一个共性----需要在客户端(手机)和服务端(Squid)之间协 调算法并能加密和解密。但是我们的手机APN设置那里显然是无法设置解密或者加密方式,直接了当地说,APN Proxy 的设置处无法实现双向通讯加密,如果非要实现,就需要借助特定软件来做到,因为软件可以识别密钥并能正确加密。
当然,以上是基于通信理论和自己实践得出,也可能真的有 APN Proxy 可以在系统 APN 那里设定加密套接字????
祝福各位~~~我反正是爽死了,每天都用着 HTTP Proxy 。
 -------------------------------------------------------------------------

搭建增强型代理服务器(APN Proxy)
我 在上一篇博文中已经写了如何搭建简单APN代理,这一个月中我一直在测试(苦逼的IT男,别人过年带老婆回家,我是带着ipad+ssh 在家测试),于是推翻掉上一篇文章中的方案,使用本文的方案。 本篇原理与上一篇相仿,不同的实现则是使用 Ziproxy+Privoxy(上一篇是使用Squid+Privox/3Proxy/polipo),我的系统是 FreeBSD 8.2-Release ,你可以选用你喜欢的Unix-Like主机。使用Squdi实现的好处是在访问时可以有缓存:由于让PC(或者手持设备---以下统称装置)加快网速, 以抵消由于使用代理带来的网速慢,因此比使用VPN绝对是要快多了。
本文假定你有两台主机,国内主机使用SSH连接到国外主机,事实上如果你 只有一台国外主机,则可以直接使用Ziproxy而无需Privoxy,但 是请务 必注意,在只有一台国外主机的情况下,请将Ziproxy的端口改成一组特殊端口,抱歉,不能直说是哪几个端口,但是聪明的你应该可以猜到,实在不想猜, 就直接到twitter上问吧
我想多数人在装置应该使用过Opera浏览器,当我们打开一个网页的时候,Opera用自己的 OperaTurbo技术加速打开,实际上大家也发现 了,用 它打开网页后图像变的模糊了,这是因为被服务器压缩过。而我们今天使用的这个方案就是采用压缩方式来达到节约流量和提高网速。
Ziproxy的主 要作用是压缩HTTP请求和优化精简图片,它可以把JS,CSS,HTML和JPEG,PNG,GIF都压缩,然后再传递给你的 装置使 用,更好玩的是,它还可以区分用户,比如你想给手机用户使用代理,那么创建一个针对手机的配置,把图片压缩的重一点;而想把代理给ipad或者电脑用,就 创建一个针对电脑的配置,把图片压缩的轻一点;两个配置的端口只要不同就OK了。
Privoxy在这个方案中有两个作用:1 将SSH的 socks5 代理转化为HTTP代理然后给ziproxy使用 ,这是因为 Ziproxy只支持http的父代理。2 区分网站。Privoxy会将被 某国家 屏蔽的网站转发到SSH 代理上,而将没有屏蔽的直接走你的国内主机线路。
方案开始实施:
1 建立到国外主机的连接( SSH -D)
我是使用autossh的,建立你也使用这个工具,它会监视你的ssh连接,在断线时可以自动重连接,不过你可以自己动手写脚本
我的SSH 连接在本地开的端口是 7070 ,这个是大家现在的标配了,不多说。
2 安装和配置Privoxy
freebsd上可以用ports安装也可以直接pkg_add -r ;其他系统也一样有自己的方式安装,Unix-Like中似乎只有Mac有点区别,幸好不会有人用Mac server做这个方案。  :D
这里着重说一下配置
Privoxy的配置文件默认是config ,我的位置是在 freebsd 的 /usr/local/etc/privoxy/
配置文件很短,我们要修改一下
ota# cat /usr/local/etc/privoxy/config
user-manual /usr/local/share/doc/privoxy/user-manual
confdir /usr/local/etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action
actionsfile default.action
#actionsfile block.action
actionsfile gfw.action
filterfile default.filter
#filterfile user.filter
logfile logfile
hostname www.test.me
#forward-socks5 / 127.0.0.1:7070 .
listen-address  127.0.0.1:8116
toggle  1
enable-remote-toggle  1
enable-remote-http-toggle  0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 5120
#connection-sharing 0
forwarded-connect-retries  3
accept-intercepted-requests 0
allow-cgi-request-crunching 0
activity-animation 1
split-large-forms 0
keep-alive-timeout 0
socket-timeout 120
handle-as-empty-doc-returns-ok 1
诸 位请注意以上代码中黑底紫字部分,是我们的关键,其他字段都是是否开关一些功能和是不是支持广告过滤和屏蔽恶意网站。在紫色字体中,我故意注释掉 了 forward-socks5的代理转发功能,这个意图是希望Privoxy默认不转发到SSH,即默认情况下让Privoxy直接走国内IP。可是我们 想让一些特殊网站走国外IP,这就是紫色字体中的 actionsfile gfw.action 这里指定。
gfw.action 是一个专门收集一些特殊网站的文件并在些文件中规定了这些网站走SSH -D 的代理(端口是7070).这个文件起先我是自己写的,一个一个加上去,后来直接用正则过滤了autoproxy2pac中的URL,后来我发现一个更好 玩的,你可以直接在这里下载gfw.action这个文件,传送门-> 爱我就摸我一下.。
从以上网站下载的gfw.action文件还不能被我们直接使用,原作者已经提到,需要我们将其中的代理端口改成自己的,我是直接用
sed  -i ‘s/7127/7070/’ /usr/local/etc/privoxy/gfw.action
你可以使用vi打开来改第一行(注:FreeBSD 上sed不能使用这条语句需要安装GNU Sed,即gsed方可)。
经过这一步,Privoxy将会默认直接走国内路由,访问特殊网站时则会自动选择SSH代理,达到了区分网站的目的,接下来我们就可以实现将访问流量进行压缩的操作
3 Ziproxy 配置
安 装好Ziproxy,Debian/Ubuntu都有源可以直接装。而Ziproxy的配置,在我的 FreeBSD 上存在于 /usr/local/etc/ziproxy/ 下 (这也是FreeBSD一个优点,所有第三方都放在这个位置),cp ziproxy.conf.sample ziproxy.conf ,使用默认配置。
默认配置当然不合我们的要求,修改以下参数:
1 Port = 6060
这是指Ziproxy 的监听端口,这个端口将来用来给你的其他装置用
2 #Address = “127.0.0.1″
这个是指将Ziproxy的代理绑定到你主机的哪个IP上(如果有多个的话),默认是绑定到所有的IP上,但需要注意一下是否是这样,免得手机连接不上代理却是因这个,那就是笑话了。
3 #OnlyFrom = “127.0.0.1″
这个是访问限制,可以限制哪些IP可以访问你的代理(APN Proxy),我是允许所有人访问,但这极不安全,可以使用SASL认证,目前我还在研究中。。。。
4 # MaxActiveUserConnections = 20
这是用来限制一个用户可以产生多少条连接,默认是不限制,但这样就可能被人用来下载迅雷等等,你可以加上限制
5 NextProxy=”127.0.0.1″
下一跳代理,也就是父级代理。我们的手机连通过 Port=6060端口连接到你的这台主机后,ziproxy会把连接直接丢给 127.0.0.1的下一个代理(也就是我们的Privoxy)
6 NextPort=8116
下一跳代理的端口,我设定的是8116。
7   ConventionalProxy = true
这一项没什么好说,一定要是true,我人为改为false就失败了。
4 扫尾
[你没有必要看这里,因为做完前3步你的服务器就已经完全可以运行了]
大家可以跳过一步,之所以加上,是因为我自己有两个海外的SSH 主机,防止一个断掉也或者用于网络质量不好的时候切换线路。于是自己写了一段脚本,这段脚本只能运行在FreeBSD下,因为里面有几个命令其他系统没有,不过都有替代命令。
脚本的目的是监视两个SSH生成的端口7070和8080,如果其中一个断掉了(比如SSH 7070),就自动强制Privoxy使用另一个(SSH 8080),并且尝试立刻重新连接(SSH 7070)。这样在APN Proxy就可以尽量不受影响。下面是脚本
#!/bin/sh
export AUTOSSH_PIDFILE=/var/run/autossh.pid
while :
do
sshport=`sockstat -4l | grep :8080 | awk ‘{print $3}’`
sshpid=$( sockstat -4l | grep autossh | grep 9101 | awk ‘{print $3}’ )
pidfile=`cat /var/run/autossh.pid`
privoxypid=`cat /var/run/privoxy/privoxy.pid`
if  [ -z "$sshport" -o -z "$sshpid" ]; then
kill -9 $sshpid
kill -9 $sshport
/usr/local/bin/autossh -M 9100 -f -q -N -D 8080 root@206.253.165.50
/usr/local/bin/gsed  -i ‘s/8080/7070/’ /usr/local/etc/privoxy/gfw.action&&kill -HUP $privoxypid
#echo Now Start AutoSSH@PID `cat $pidfile`
fi
ssh1port=`sockstat -4l | grep :7070 | awk ‘{print $3}’`
ssh1pid=$( sockstat -4l | grep autossh | grep 9001 | awk ‘{print $3}’ )
if  [ -z "$ssh1port" -o -z "$ssh1pid" ]; then
kill -9 $ssh1port
kill -9 $ssh1pid
/usr/local/bin/autossh -M 9000 -f -q -N -D 7070 root@216.231.135.225
/usr/local/bin/gsed  -i ‘s/7070/8080/’ /usr/local/etc/privoxy/gfw.action&& kill -HUP $privoxypid
fi
sleep 10
done
这段代码已经稳定运行了20天了,我现在随便重启一台海外的主机,这脚本都可以自动切换到另一台,很是舒服。这属于额外设置,你可以不必理会。
经 过以上设置,你的APN 代理算是初步弄好了,还记得我前面提到的可以创建不同的ziproxy来区分不同用户吗,那你就可以分享给别人了。但是需要注意的是,尽管这种方式不会被 RST重置,但是仍然不可能脱离有关部门的监管。并且如果他人分享APN 代理给你用,你也需要注意,这是不加密的,你的信息被会轻易获取,所以最好是跟自己的铁哥们合着用或者直接自己使用
最后写完的时候看到网上有这么 一文章,与我的思路一致,不同之处在于,将SSH 方式使用openvpn,这样不必使用privoxy了;区分代理走国内还是走国外也是由openvpn实现,而我是使用privoxy。这思路也不错, 用我的方案可以压缩+过滤,用他的,则应该没有这功能,大家可以参考这里:   http://ayanamist.tumblr.com/post/16227815835/apn-proxy
有人只有一台海外主机,那你幸福了,所有都不需要做,直接安装ziproxy,然后默认设置情况下改一下Port为特殊端口就可以直接代理了,区别只在于没有了广告过滤和路由区分,不过如果是在电脑上或者使用ios,则可以用 autoproxy2pac来达到自动路由。
祝各位龙年大吉,早生贵子,家人健康,生活美满~~~ 顺道征女友一只,让我也能实现前面的这句话
 -----------------------------------------------------------------

APN Proxy的实现
有一个这样的服务,号称可以翻墙加速,主要作者@Paveo 也不愿公开它的工作原理。现在我也实现了类似的。
其实原理很简单,只不过门槛很高,至少需要一台国内的VPS。
  1. 要让国内的这台VPS处于翻墙状态,可以用OpenVPN来实现,也可以利用SSH做个代理。用SSH的话记得要转换成HTTP代理,Privoxy、Polipo、3proxy等都是可以的。
  2. 需要一个共享软件,Proxy+,如果只是自己用,估计免费版够了,否则请购买商业版……
  3. 如果是用SSH的,需要设置Cascading为Non-ICP,并设为之前的HTTP代理;用OpenVPN方案的可以无视。
  4. 需 要设置Proxy+的过滤规则,Access List里Objects中,添加HTTPHeader类型的规则,我只想让塞班用户使用,于是加入名为Symbian内容为*Series60*,这样 HTTP Header中有匹配到的就会放行。在Rule内加入Deny !Symbian,这样不符合规则的就会被拒绝访问。
  5. 最重要的: 要能让自己继续访问管理页面。上面的规则会让自己也无法访问管理页面。添加一个Object,名为 UP,类型为Parameter,内容为username:password(管理员用户和密码),再添加一个Object,名为IP,类型为 ClientIP,内容为127.0.0.1。接着在Rule里第一条添加为Pass UP IP,放行服务器本地的访问。
至此,APN Proxy就只有HTTP Header符合规则的用户才能访问了。
如果是要给其它手机用户使用,需要找出他们的HTTP Header的特征码,我是用服务器上装Fiddler来捕捉分析的。
如果是可信赖的人用,OpenVPN可以配合chnroutes来避免国内网站访问过慢。
最后吐槽一下UCWeb的内置域名代理支持,居然用的UA是Mozilla/5.0 (windows; U; Windows NT 5.1; zh-CN; rv:1.7.12) Gecko/20050919 Firefox/1.0.7
来源http://ayanamist.tumblr.com/post/16227815835/apn-proxy


--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/08/2012 08:52:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

2012年2月7日星期二

[GFW BLOG(功夫网与翻墙)] 搭建增强型代理服务器(APN Proxy)

原文:http://allinfa.com/setup-apn-proxy.html

本文转载自莓玩没了搭建增强型代理服务器(APN Proxy),是上一篇简易 APN Proxy (APN代理)的搭建的进阶篇。美博园没有测试,用过的朋友请反馈。

我在上一篇博文中已经写了如何搭建简单APN代理,这一个月中我一直在测试(苦逼的IT男,别人过年带老婆回家,我是带着ipad+SSH 在家测试),于是推翻掉上一篇文章中的方案,使用本文的方案。

本篇原理与上一篇相仿,不同的实现则是使用 Ziproxy+Privoxy(上一篇是使用Squid+Privox/3Proxy/polipo),我的系统是 FreeBSD 8.2-Release ,你可以选用你喜欢的Unix-Like主机。使用Squdi实现的好处是在访问时可以有缓存:由于让PC(或者手持设备---以下统称装置)加快网速, 以抵消由于使用代理带来的网速慢,因此比使用VPN绝对是要快多了。

本文假定你有两台主机,国内主机使用SSH连接到国外主机,事实上如果你只有一台国外主机,则可以直接使用Ziproxy而无需Privoxy,但 是请务 必注意,在只有一台国外主机的情况下,请将Ziproxy的端口改成一组特殊端口,抱歉,不能直说是哪几个端口,但是聪明的你应该可以猜到,实在不想猜, 就直接到twitter上问吧

我想多数人在装置应该使用过Opera浏览器,当我们打开一个网页的时候,Opera用自己的OperaTurbo技术加速打开,实际上大家也发现了,用 它打开网页后图像变的模糊了,这是因为被服务器压缩过。而我们今天使用的这个方案就是采用压缩方式来达到节约流量和提高网速。

Ziproxy的主要作用是压缩HTTP请求和优化精简图片,它可以把JS,CSS,HTML和JPEG,PNG,GIF都压缩,然后再传递给你的 装置使 用,更好玩的是,它还可以区分用户,比如你想给手机用户使用代理,那么创建一个针对手机的配置,把图片压缩的重一点;而想把代理给ipad或者电脑用,就 创建一个针对电脑的配置,把图片压缩的轻一点;两个配置的端口只要不同就OK了。

Privoxy在这个方案中有两个作用:1 将SSH的 socks5 代理转化为HTTP代理然后给ziproxy使用 ,这是因为 Ziproxy只支持http的父代理。2 区分网站。Privoxy会将被 某国家 屏蔽的网站转发到SSH 代理上,而将没有屏蔽的直接走你的国内主机线路。

方案开始实施:

1 建立到国外主机的连接( SSH -D)

我是使用autossh的,建立你也使用这个工具,它会监视你的ssh连接,在断线时可以自动重连接,不过你可以自己动手写脚本
我的SSH 连接在本地开的端口是 7070 ,这个是大家现在的标配了,不多说。

2 安装和配置Privoxy

freebsd上可以用ports安装也可以直接pkg_add -r ;其他系统也一样有自己的方式安装,Unix-Like中似乎只有Mac有点区别,幸好不会有人用Mac server做这个方案。  :D

这里着重说一下配置

Privoxy的配置文件默认是config ,我的位置是在 freebsd 的 /usr/local/etc/privoxy/

配置文件很短,我们要修改一下

ota# cat /usr/local/etc/privoxy/config
user-manual /usr/local/share/doc/privoxy/user-manual
confdir /usr/local/etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action
actionsfile default.action
#actionsfile block.action
actionsfile GFW.action
filterfile default.filter
#filterfile user.filter
logfile logfile
hostname www.test.me
#forward-socks5 / 127.0.0.1:7070 .
listen-address  127.0.0.1:8116
toggle  1
enable-remote-toggle  1
enable-remote-http-toggle  0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 5120
#connection-sharing 0
forwarded-connect-retries  3
accept-intercepted-requests 0
allow-cgi-request-crunching 0
activity-animation 1
split-large-forms 0
keep-alive-timeout 0
socket-timeout 120
handle-as-empty-doc-returns-ok 1


诸位请注意以上代码中黑底紫字部分,是我们的关键,其他字段都是是否开关一些功能和是不是支持广告过滤和屏蔽恶意网站。在紫色字体中,我故意注释掉了 forward-socks5的代理转发功能,这个意图是希望Privoxy默认不转发到SSH,即默认情况下让Privoxy直接走国内IP。可是我们 想让一些特殊网站走国外IP,这就是紫色字体中的 actionsfile gfw.action 这里指定。

gfw.action 是一个专门收集一些特殊网站的文件并在些文件中规定了这些网站走SSH -D 的代理(端口是7070).这个文件起先我是自己写的,一个一个加上去,后来直接用正则过滤了autoproxy2pac中的URL,后来我发现一个更好 玩的,你可以直接在这里下载gfw.action这个文件,传送门-> 爱我就摸我一下.。

从以上网站下载的gfw.action文件还不能被我们直接使用,原作者已经提到,需要我们将其中的代理端口改成自己的,我是直接用

sed  -i 's/7127/7070/' /usr/local/etc/privoxy/gfw.action

你可以使用vi打开来改第一行(注:FreeBSD 上sed不能使用这条语句需要安装GNU Sed,即gsed方可)。

经过这一步,Privoxy将会默认直接走国内路由,访问特殊网站时则会自动选择SSH代理,达到了区分网站的目的,接下来我们就可以实现将访问流量进行压缩的操作

3 Ziproxy 配置

安装好Ziproxy,Debian/Ubuntu都有源可以直接装。而Ziproxy的配置,在我的 FreeBSD 上存在于 /usr/local/etc/ziproxy/ 下 (这也是FreeBSD一个优点,所有第三方都放在这个位置),cp ziproxy.conf.sample ziproxy.conf ,使用默认配置。

默认配置当然不合我们的要求,修改以下参数:

1 Port = 6060

这是指Ziproxy 的监听端口,这个端口将来用来给你的其他装置用

2 #Address = “127.0.0.1″

这个是指将Ziproxy的代理绑定到你主机的哪个IP上(如果有多个的话),默认是绑定到所有的IP上,但需要注意一下是否是这样,免得手机连接不上代理却是因这个,那就是笑话了。

3 #OnlyFrom = “127.0.0.1″

这个是访问限制,可以限制哪些IP可以访问你的代理(APN Proxy),我是允许所有人访问,但这极不安全,可以使用SASL认证,目前我还在研究中。。。。

4 # MaxActiveUserConnections = 20

这是用来限制一个用户可以产生多少条连接,默认是不限制,但这样就可能被人用来下载迅雷等等,你可以加上限制

5 NextProxy=”127.0.0.1″

下一跳代理,也就是父级代理。我们的手机连通过 Port=6060端口连接到你的这台主机后,ziproxy会把连接直接丢给 127.0.0.1的下一个代理(也就是我们的Privoxy)

6 NextPort=8116

下一跳代理的端口,我设定的是8116。

7   ConventionalProxy = true

这一项没什么好说,一定要是true,我人为改为false就失败了。

4 扫尾

[你没有必要看这里,因为做完前3步你的服务器就已经完全可以运行了]

大家可以跳过一步,之所以加上,是因为我自己有两个海外的SSH 主机,防止一个断掉也或者用于网络质量不好的时候切换线路。于是自己写了一段脚本,这段脚本只能运行在FreeBSD下,因为里面有几个命令其他系统没有,不过都有替代命令。

脚本的目的是监视两个SSH生成的端口7070和8080,如果其中一个断掉了(比如SSH 7070),就自动强制Privoxy使用另一个(SSH 8080),并且尝试立刻重新连接(SSH 7070)。这样在APN Proxy就可以尽量不受影响。下面是脚本

#!/bin/sh
export AUTOSSH_PIDFILE=/var/run/autossh.pid
while :
do

sshport=`sockstat -4l | grep :8080 | awk '{print $3}'`
sshpid=$( sockstat -4l | grep autossh | grep 9101 | awk '{print $3}' )
pidfile=`cat /var/run/autossh.pid`
privoxypid=`cat /var/run/privoxy/privoxy.pid`

if  [ -z "$sshport" -o -z "$sshpid" ]; then
kill -9 $sshpid
kill -9 $sshport

/usr/local/bin/autossh -M 9100 -f -q -N -D 8080 root@206.253.165.50
/usr/local/bin/gsed  -i 's/8080/7070/' /usr/local/etc/privoxy/gfw.action&&kill -HUP $privoxypid

#echo Now Start AutoSSH@PID `cat $pidfile`
fi

ssh1port=`sockstat -4l | grep :7070 | awk '{print $3}'`
ssh1pid=$( sockstat -4l | grep autossh | grep 9001 | awk '{print $3}' )

if  [ -z "$ssh1port" -o -z "$ssh1pid" ]; then
kill -9 $ssh1port
kill -9 $ssh1pid
/usr/local/bin/autossh -M 9000 -f -q -N -D 7070 root@216.231.135.225
/usr/local/bin/gsed  -i 's/7070/8080/' /usr/local/etc/privoxy/gfw.action&& kill -HUP $privoxypid

fi
sleep 10

done


这段代码已经稳定运行了20天了,我现在随便重启一台海外的主机,这脚本都可以自动切换到另一台,很是舒服。这属于额外设置,你可以不必理会。

经过以上设置,你的APN 代理算是初步弄好了,还记得我前面提到的可以创建不同的ziproxy来区分不同用户吗,那你就可以分享给别人了。但是需要注意的是,尽管这种方式不会被 RST重置,但是仍然不可能脱离有关部门的监管。并且如果他人分享APN 代理给你用,你也需要注意,这是不加密的,你的信息被会轻易获取,所以最好是跟自己的铁哥们合着用或者直接自己使用

最后写完的时候看到网上有这么一文章,与我的思路一致,不同之处在于,将SSH 方式使用openvpn,这样不必使用privoxy了;区分代理走国内还是走国外也是由openvpn实现,而我是使用privoxy。这思路也不错, 用我的方案可以压缩+过滤,用他的,则应该没有这功能,大家可以参考这里:

http://ayanamist.tumblr.com/post/16227815835/apn-proxy

有人只有一台海外主机,那你幸福了,所有都不需要做,直接安装ziproxy,然后默认设置情况下改一下Port为特殊端口就可以直接代理了,区别只在于没有了广告过滤和路由区分,不过如果是在电脑上或者使用ios,则可以用 autoproxy2pac来达到自动路由。




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/07/2012 07:31:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] foxyproxy的用法

原文:http://www.xzcblog.com/2012/02/7/%E7%9F%A5%E8%AF%866.html

因为autoproxy会导致我的火狐经常崩溃所以我把他换成了foxyproxy,这里我来介绍一下foxyproxy的用法。

凡是使用过autoproxy的同学都知道也许autoproxy不是最好用的但是他绝对是最方便的,因为她有一个订阅规则,只要订阅了他,就不需要我们自己手动添加代理规则了,foxyproxy没有规则列表但是我们同样可以使用autoproxy的规则。

首先选择工作模式为使用基于预定模块的代理服务器,

添加代理服务器:

在选项-》代理服务器选项中点击新建代理服务器,代理名称随便下面的颜色随便选一个,只要不合默认的一样即可。

代理服务器细节中点击手动配置代理服务器,因为使用的是ssh代理,所以主机选项添127.0.0.1 端口添7070并勾选下面的socks代理,选中socks v5

foxyproxy代理服务器设置

点击url模式,勾选不要对内部地址使用这个代理

点击确定。

点击模式订阅,点击下面的go,会弹出添加模式订阅的窗口其中订阅名称,订阅描述随便添,订阅网址填写https://autoproxy- gfwlist.googlecode.com/svn/trunk/gfwlist.txt 代理服务器中添加我们之前创建的代理服务器,更新频率随你便,format选成autoproxy,obfuscation选成base64,点击确定即 可。

添加代理规则订阅

最后启用快速添加即可。




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/07/2012 07:28:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] vpnywhere提供三个月免费美国和荷兰PPTP VPN服务(优惠活动2月13日结束)

原文:http://igfw.net/archives/7420

公告igfw.tk域名停用,启用新域名 igfw.net 请大家收藏夹和RSS订阅(谷歌阅读器)里重新收藏订阅(订阅地址http://igfw.net/feed),同时欢迎关注我推特帐号zzug一起交流,感谢大家支持。

以前vpnywhere.com曾长期提供免费14天测试VPN服务,不过后来停止了测试,现在其又推出了三个月免费的优惠码,使用优惠码订购可以免费使用其美国和荷兰PPTP VPN服务三个月。据说优惠码2月13日失效,需要VPN的赶快注册啦。

优惠码:2294AA3

注册地址:http://member.vpnywhere.com/signup.php

翻墙打开注册地址,订购三个月15欧元的VPN服务包,填表注册,注意在coupon code处填写 2294AA3其他按要求填写,然后在跳转到的页面里勾选同意协议继续注册,然后邮箱会收到激活邮件,点击激活邮件里的链接完成帐号激活,激活后邮箱就会 收到含有VPN帐号信息的邮件,其中有VPN服务器地址、用户名和密码,以前注册过此网站帐号的只需登录后使用优惠码订购无需重新申请。

注意由于VPN服务器被GFW DNS污染直接使用无法连接,只需直接使用域名对应真实IP连接即可,知道域名查IP的方法参考  http://igfw.net/archives/3996 (如果你还是看不明白就推特上@我DM你IP),另外注册后可能不能立刻连接会提示691错误,可能需要等好多分钟才能正常连接。

貌似其提供的PPTP VPN是动态IP用来申请需要检测IP的国外资源可以极大的提供成功率呀,比如http://igfw.net/archives/6821一文中说的那个极品空间。

本文原始地址http://igfw.net/archives/7420




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/07/2012 07:27:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

2012年2月6日星期一

[GFW BLOG(功夫网与翻墙)] 免费在线代理及免费试用ssh/openvpn

原文:http://igfw.net/archives/7364

网站camolist.com提供免费在线代理(打开网站就能看到好多网页代理的网址了),之所以提它主要是其提供的免费在线代理都支持https访问,不过网页广告比较多,当然浏览器可以配合Adblock Plus扩展去除其广告,也可以购买其无广告版网页代理。

不过由于网页代理对 flash和复杂的网页脚本无能为力,他们还提供了ssh/vpn服务,当然是收费的了,不过提供7天免费试用,有兴趣的可以试试。

要试用其ssh/vpn服务只需给 support@camolist.com 发邮件说明试用即可(用英语,英语不好就直接发标题和内容都为free trial的邮件也行),其提供的vpn是openvpn,发邮件申请后等几个小时应该就能收到回复邮件了,里面有用户名、密码和一个网址,访问此网址并 用收到的用户名、密码登录可下载openvpn配置文件使用;也可以参考http://igfw.net/archives/5593一文使用OpenVPN client客户端,运行客户端后直接输入服务器地址,点击连接,输入用户名密码登录即可使用vpn。

上图是登录界面截图,下图是登录后下载配置文件截图

本文原始地址http://igfw.net/archives/7364




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/06/2012 09:27:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

2012年2月5日星期日

[GFW BLOG(功夫网与翻墙)] FREE免费VPN代理服务(收集中!)

原文:http://www.91tule.com/?p=479

尽管Free VPN不是我们上网隐藏IP和保护隐私的最好选择,但是可以很容易帮我们访问到Facebook、Twitter、Blogger等被墙的网站!如果你想 找免费vpn,你可以在百度,Google中嵌入“vpn代理”、“vpn 免费”、“免费vpn代理”等关键字!

大多免费的VPN需要注册,或者点击广告、做CPA调查任务等,在访问速度、代理服务器方面限制很厉害!在这 91tule.com给你推荐一些比较好的免费VPN服务:

ProXPN

一家来自美国加州的公司,提供免费稳定的VPN代理服务器服务,协助你建立一个更安全、高加密性的连线环境。优点是操作及使用上都很简单,不过使用前仍必须注册帐户,然后安装 proXPN 提供的客户端(支援 Windows 及 Mac 作业系统)才能够使用。

SecurityKiss

是一家英国的VPN提供商,使用的是OpenVPN的网络连接,它不但能够隐藏你的真实IP地址,而且还加密你的数据连接。不象通常的PPTP VPN服务商,SecurityKISS 已经把他们的服务制作成一个自己的软件,结合了OpenVPN客户端,所以你只需要下载和安装这个软件。之后,打开软件进行连接。并不需要进行注册,也没 有用户名和密码,直接就可以连接他们的服务器。
我对这个VPN做了一下测试,可以正常连接,速度也相当快。SecurityKISS 现在是免费提供,任何人都可以下载和使用。但是它的网站并没有说他们的免费VPN服务是永久免费还是暂时免费。当然,他们也是提供有收费的VPN的。

ShieldExchange 

shieldexchange主要是提供收费的Open VPN服务,他们提供的免费Open VPN服务只是试用而已,流量很少,才100MB而已,而且QQ邮箱这些还收不到注册邮件,注册后去邮箱收取激活链接,激活后才能试用免费的VPN服务 。

HotSpot Shield

由AnchorFree开发的一款免费的高速VPN代理软件。Hotspot Shield的最初作用是保证网络安全和保护网络隐私,它通过自动搜索Wi-Fi网络来实现加密网络传输。基于这种特点,Hotspot Shield也可用来作为破网软件,访问受到屏蔽的网站,有时速度上不够快。

Expat Shield 

一款国外的免费VPN代理工具,是款AnchorFree LTD英国分公司提供的免费OpenVPN(英国服务器)客户端,支持简体中文。

以上这些免费VPN是比较优秀的代理服务,我依然会在本页面为大家更新最新的免费VPN服务!

原创文章,转载请注明: 转载自91图乐

本文链接地址: FREE免费VPN代理服务(收集中!)




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/05/2012 09:21:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

[GFW BLOG(功夫网与翻墙)] 轻量级socks5 服务器程序:ssocks 攻略(原创文章)

原文:http://briteming.blogspot.com/2012/02/socks5-ssocks_05.html

经 过和ssocks 的作者联系,指出其旧版0.0.11并不真的支持修改端口号和设置认证机制。作者于昨天推出了新版:v0.0.13.(http://superb- sea2.dl.sourceforge.net/project/ssocks/ssocks-0.0.13.tar.gz)

首先用putty.exe登录你的linux vps.然后:
# wget http://superb-sea2.dl.sourceforge.net/project/ssocks/ssocks-0.0.13.tar.gz
# tar zxvf ssocks-0.0.13.tar.gz
# cd ssocks-0.0.13
# ./configure
# make
# make install
 安装完毕。ssocks的执行文件为ssocksd,配置用户认证的文件为/usr/local/etc/ssocksd.auth

先去配置用户认证:
# nano /usr/local/etc/ssocksd.auth
注释掉admin:abcde这行,在其下面添加一行:
username:password
(username改为你设置的用户名,password改为你设置的密码)
然后
# nohup ssocksd --port 34567 -a /usr/local/etc/ssocksd.auth &
(34567可改为你设置的端口号)
# killall ssocksd
# nohup ssocksd --port 34567 -a /usr/local/etc/ssocksd.auth &

然后,你就可关闭putty.exe,运行tor browser,在新版的tor vidalia 程序中,点击“设置中继服务器”-“网络”-勾选“我使用代理服务器连接到网络”-address栏填写你的vps的主机名或ip,端口填写你的ssocks server的端口:34567.
username和password栏填写你设置的用户名和密码。
type选择socks 5,不勾选“我的防火墙只允许我连接到特定端口”和“我的isp阻止与tor网络的连接",
然后点击“确定”。这样通过你建立的socks 5代理,即可很顺利的连接上tor网络,设置浏览器的socks代理为127.0.0.1:9050,从而可用tor顺利的翻墙。

这个程序比网上漫天飞的那个ss5和某位国人搞的kingate好用多了。那2个程序我试了多次都未成功,干脆放弃之。



--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 2/05/2012 08:41:00 AM

--
1、翻墙利器赛风3下载地址: http://dld.bz/caonima326http://dld.bz/caonima745/
2、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog
3、停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com
翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)