Jump ESP, jump!: BYOPPP - 构建你自己的隐私保护代理
我读过一篇博客文章,介绍如何在树莓派上构建自己的隐私代理服务器。这篇文章让我思考如何利用它来保护我在安卓手机上的隐私,同时摆脱那些烦人的广告。
由于我拥有一台三星Galaxy S3 LTE,搭载安卓4.3系统(带有基于硬件的Knox计数器),现在对手机进行root意味着你会破坏Knox,并失去保修。这是无法回头的决定…
这意味着我必须在无需root的情况下解决这个问题。幸运的是,较新的安卓系统支持无需root的VPN,但设置强制性的系统全局代理仍然需要root权限。
但多亏了一些iptables技巧和Privoxy,这不再是问题了 :)
构建你自己的隐私保护代理所需的组件:
- 一台(或多台)廉价的VPS服务器
- 一个体面的VPN程序
- Privoxy
- iptables
VPS服务器
要获得廉价的VPS服务器,我推荐使用Amazon EC2,但你可以选择任何你喜欢的。微型实例非常便宜(甚至免费),并且完全有足够的资源来完成这个任务。我现在使用Ubuntu免费层,效果非常好。最后但同样重要的是,亚马逊有两因素认证!你可以在10分钟内设置好一个Ubuntu服务器。使用离你最近的AWS区域,例如我选择EU - Ireland。
VPN
对于VPN程序,我推荐免费版的OpenVPN AS(编辑:确保在服务器和客户端上都使用OpenVPN AS 2.0.6或更高版本)。设置简单,快速入门指南在这里,基于GUI的配置,以及适用于Android、iOS、Windows、Linux、OSX的一键客户端安装程序。Ubuntu安装包在这里。
最重要的设置:
- 我更喜欢为我的OpenVPN设置使用TCP 443和UDP 53端口,让用户猜测原因。
- 为了良好的性能,UDP优于TCP。
- VPN模式是第3层(路由/NAT)。
- 不要忘记在AWS防火墙(安全组)中允许配置的VPN端口。
其他VPN设置:
- VPN客户端是否应该访问私有子网(服务器端的非公共网络)? - 是
- 客户端互联网流量是否应该通过VPN路由? - 是
Privoxy
我们必须安装和配置的下一个组件是Privoxy。像往常一样,“apt-get install privoxy"就可以工作。下一步是通过/etc/privoxy/config文件配置privoxy,有两个选项需要更改:
|
|
注意不要在AWS EC2安全组中允许所有人访问你的Privoxy服务器,确保它只能被VPN用户访问!
一切设置完成后,用"service privoxy start"启动privoxy,并将其添加到自动启动"update-rc.d privoxy defaults”。
Iptables
最后一步是配置你的iptables链,将来自VPN客户端的每个网络流量转发到Privoxy服务器:
|
|
你也可以选择阻止访问所有其他端口,不经过你的Privoxy的内容将无法访问。
根据你的Linux发行版和偏好,你可能需要使此规则持久化。
最终测试
现在你可以从你的安卓设备连接到VPN服务器。
从客户端登录后,你可以在设备上安装以下不错的软件包:
连接后,最终结果可以在以下截图中看到。是的,我选择《愤怒的小鸟》作为例子是有原因的。
没有Privoxy的《愤怒的小鸟》
有Privoxy的《愤怒的小鸟》
带有广告的愚蠢手电筒应用
有Privoxy的愚蠢手电筒应用
剧透警告
如果你害怕NSA跟踪你,这篇文章不适合你。如果你想实现IP层匿名,这篇文章也不适合你。只要你是唯一使用该服务的人,应该很容易看出可能出什么问题。
已知问题
- 每当互联网连接(Wifi,3G)断开时,VPN连接也会断开,你的隐私就消失了…
- 只要域名不在Privoxy黑名单中,通过SSL破坏你隐私的网站仍然可以这样做。
额外推荐
如果你使用OSX或Windows,我可以推荐使用Aviator作为你的默认浏览器。它很棒,试试看!
PS:还有一些从官方商店移除的广告拦截应用可以阻止一些广告,但你必须为每个使用的WiFi连接配置代理,并且它不适用于3G。