编程随想的博客:如何隐藏你的踪迹,避免跨省追捕[8]:如何搭配“多重代理”和 “多虚拟机”

  话说这个系列已经2年没更新了(之前的“第7篇”发布于2013年1月)。前几天看到有读者在博客评论区讨论“双重代理”如何部署在“双虚拟机环境”。于是俺借着这个话题,再发一篇。
  今天这篇,主要谈谈——如何把“多重代理”和“多虚拟机”组合在一起。可能很多同学把这个问题想得过于简化。其实捏,不同的 TOR 前置代理以及不同的上网软件,有可能需要不同的部署方式。具体取决于——相关软件的靠谱程度,以及你对安全性的要求有多高。

  事先声明:
  如果你不了解啥是“多重代理”,或者你不了解啥是“多虚拟机方案”,建议先看完本系列的前面3篇:
如何隐藏你的踪迹,避免跨省追捕[5]:用多重代理隐匿公网IP
如何隐藏你的踪迹,避免跨省追捕[6]:用虚拟机隐匿公网IP(原理介绍)
如何隐藏你的踪迹,避免跨省追捕[7]:用虚拟机隐匿公网IP(配置图解)

★名词解释


  为了避免产生歧义,先界定一下相关的术语。

◇多重代理


  本文提及的“多重代理”,指的是——基于 TOR 的多重代理。在各种“多重代理”的方案中,这种形式是最实用的(兼顾了安全性和速度)。
  顺便说一下:
  去年(或者是前年)曾经有读者在博客评论中咨询“多重 VPN”。俺个人认为:多重 VPN 的方案,隐匿性【远远不如】基于 TOR 的多重代理。因为 VPN 服务器的的 IP 是相对固定的,即使你用了多重 VPN,被人反查(逆向追踪)的可能性还是比较大。在这方面,TOR 就远远好于 VPN。因为 TOR 的线路是动态变化的(大约10分钟变化一次),导致逆向追踪非常困难。

◇多虚拟机


  在本系列前面的博文《用虚拟机隐匿公网IP(原理介绍)》,俺介绍了两种虚拟机方案——“单虚拟机”和“双虚拟机”。
  今天这篇博文,面向的是安全性要求比较高的读者;因此,【不】讨论“单虚拟机”方案。
  在双虚拟机方案中,俺把充当网关的虚拟机称为“网关虚拟机”,把那个网卡设为“Host Only”模式的虚拟机称为“隔离虚拟机”。

★为啥要考虑部署方式?


  如果你对安全性的要求比较高,对如下几种情况,你需要额外考虑部署的问题。

◇多个隔离虚拟机


  “多个隔离虚拟机”是啥意思捏?
  以俺本人为例,俺所有的日常工作都是在虚拟机中进行。(这么干的好处很多,具体参见“这篇博文”)。所以,俺会有一个单独的虚拟机,用于“编程随想”这个身份的上网;并且会有另一个虚拟机,用于俺的真实身份的上网。如此一来,至少就有2个“隔离虚拟机”了。

  那么,在这种情况下,TOR 是应该安装到“网关虚拟机”还是安装在“隔离虚拟机”捏?大伙儿先思考一下。

◇网关虚拟机的环境【不】可靠


  所谓的“网关虚拟机的环境不可靠”,有如下几种情况:
1. 网关虚拟机的操作系统不可靠
(比如说,你的网关虚拟机安装的是 Windows 系统。你可能担心 Windows 会有美国 NSA 的后门)
2. TOR 的前置代理不可靠
(比如说,你用了国内 VPN 提供商提供的 VPN 做 TOR 的前置代理。该 VPN 需要安装客户端,而你对这款客户端不放心)
(比如说,你用了 无界 和 自由门 作为 TOR 的前置代理。这两款工具【不是】开源的。所以你对这两款工具不放心)
3. 网关虚拟机安装了某些不可靠的软件
(比如说,有些电信提供商/ISP 的宽带拨号,需要在系统中额外安装一个拨号软件。而你对 ISP 提供的拨号软件不放心)

  那么,在这种情况下,TOR 是应该安装到“网关虚拟机”还是安装在“隔离虚拟机”捏?大伙儿先思考一下。

◇你用的上网软件【不】可靠


  最后一种情况是:上网软件不可靠。
  所谓的“上网软件”,顾名思义就是你用来上网的软件。可以是浏览器,也可以是聊天工具或者下载工具。
  为啥会碰到“上网软件不可靠”的情况捏?
  举例如下:
  比如你想用 QQ 进行反党宣传。但是你又不想让腾讯知道你的公网 IP。于是你就需要组合“多重代理”和“多虚拟机”来确保你的公网 IP 不会暴露给疼逊的服务器。在这种情况下,QQ 客户端就属于“不可靠的上网软件”。

  那么,在这种情况下,TOR 是应该安装到“网关虚拟机”还是安装在“隔离虚拟机”捏?大伙儿先思考一下。

★两种基本的部署方式


◇TOR 的前置部署——部署在“网关虚拟机”


  为了形象起见,俺直接画一个示意图,如下:
不见图 请翻墙

◇TOR 的后置部署——部署在“隔离虚拟机”


  为了形象起见,俺直接画一个示意图,如下:
不见图 请翻墙

★这两种部署方式各自的风险


◇TOR 的前置部署——部署在“网关虚拟机”


  如下图所示,如果“网关虚拟机”的环境不可靠(比如说其中有恶意软件),那么该恶意软件有可能会监控“网关虚拟机”系统中的网络流量。如此一来,就会看到【原始流量】(图中的“红色虚线”)。
不见图 请翻墙

◇TOR 的后置部署——部署在“隔离虚拟机”


  如下图所示,如果“上网软件”不可靠,那么该软件有可能直接尝试去连接“TOR 的前置理”(参见图中的“红色实线”),从而导致 TOR 被绕过。
  虽然这种行为不会直接导致你的公网IP暴露,但是会大大降低你在网络层面的隐匿性。如果有人要对你进行逆向追溯,只要查出前置代理服务器上的访问日志,就【有可能】查出你的公网IP。
不见图 请翻墙

★不同情况下,该如何应对?


  下面来说说应对的策略。

◇仅仅是“网关的环境”不靠谱


  很显然,这种情况下,你必须采用“TOR 后置部署”的部署方式。示意图如下:
不见图 请翻墙

◇仅仅是“上网软件”不靠谱


  很显然,这种情况下,你必须采用“TOR 前置部署”的部署方式。示意图如下:
不见图 请翻墙

◇都很靠谱,但是有多个“隔离虚拟机”共用同一个“网关虚拟机”


  对这种情况,俺需要稍微费点口水。
  首先,俺要唠叨一下:
  之所以需要多个“隔离虚拟机”,就是想要达成某种隔离性。比如在本文开头提及俺本人的例子——俺把不同的上网身份隔绝在不同的虚拟机,就是为了尽可能避免两者的关联性。

  如果采用“TOR前置”部署
  由于“网关虚拟机”只有一个。把 TOR 部署在网关导致你的多个“隔离虚拟机”共用【同一个 TOR 环境】。
  “共用同一个 TOR 客户端”的风险在于:多个“隔离虚拟机”的上网流量,有比较大的可能性,这些流量会使用同一个(TOR)出口节点。由于 TOR 的出口节点能够看到原始流量,万一原始流量是明文的HTTP,并且该节点是蜜罐,那么风险就会变大。
  反之,如果采用“TOR后置”部署
  由于每个“隔离虚拟机”都有自己的 TOR 客户端。所以这几个“隔离虚拟机”的上网流量,在同一个瞬间使用同一个(TOR)出口节点的概率小很多。

◇网关环境不可靠,上网软件也不可靠


  本来不想写这一节。但是俺估计:某些喜欢抬杠的同学会这么问。
  老实说,这种情况是比较蛋疼的(很罕见)。但是同样有办法搞定。而且方法有两种,具体如下:

  办法1
  把“双虚拟机”改为“三虚拟机”。多出来的那个虚拟机用来单独安装 TOR(不妨称之为“TOR 虚拟机”)。
  注意事项:
  为了防止上网软件绕过 TOR,直接去联前置代理,需要在“网关虚拟机”上配置防火墙规则,使得“隔离虚拟机”无法直接访问“网关虚拟机”。

  办法2
  把“双重代理”改为“三重代理”。也就是说——TOR 既部署在“网关虚拟机”,也部署在“隔离虚拟机”。
  为了让大伙儿直观些,再画一张示意图,如下:
不见图 请翻墙  小结
  这两个方法,俺倾向于后者。因为“三虚拟机”会增加 Host OS 的性能开销,而且让俺感觉有点“杀鸡用牛刀”。

★总结


  描述了这么多种部署方式,不晓得大伙儿看了之后,会不会晕?
  为了防止大伙儿晕菜,俺在结尾作一个总结发言:
  不论是哪一种部署方案,出问题的根源都是因为【TOR 被绕过】

  对于“TOR 前置部署”,如果网关中的软件偷窥了进入 TOR 之前的流量,其效果就等同于——绕过 TOR 获取了原始流量。
  对于“TOR 后置部署”,就更加明显了——上网软件如果耍流氓,有可能直接去联前置代理(同样是绕过 TOR)。
  对于“只部署一个 TOR 客户端”的情况,你要确保 TOR 运行在可靠的环境中。如果“网关虚拟机”不可靠,就把 TOR 放在“隔离虚拟机”;反之,如果“隔离虚拟机”不可靠,就把 TOR 装在“网关虚拟机”。
  如果两边都不可靠,要么加出一个单独的虚拟机装 TOR(刚才所说的“三虚拟机”),要么两边都装 TOR(刚才所说的“三重代理”)。

回到本系列的目录

版权声明

本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者"编程随想"和本文原始地址。

评论

此博客中的热门博文

陈先生的抢救室|膜蛤文化流行背后的社会学意味

【河蟹档案】70后的痛:你硬时政策比你硬,政策软时你还软

Long live shadowsocks