『Freesia』- (K)NoW_NAME
樱花任务/Sakura Quest ED1
我会把这个贴子当作【分享发现】收藏夹。
我会把这个贴子当作【分享发现】收藏夹。
92 个评论
基本原理是,双虚拟机隔离保护匿名,VPN+Tor隐藏流量特征。具体可以参考编程随想的文章:
https://program-think.blogspot.com/2013/01/howto-cover-your-tracks-6.html
https://program-think.blogspot.com/2015/04/howto-cover-your-tracks-8.html
我使用Tor前置部署方案,即【网关虚拟机】里安装VPN开源客户端和Tor,上网软件安装在【隔离虚拟机】里,隔离虚拟机的全部(TCP)流量走网关,见图:

虚拟化软件使用VirtualBox。
网关虚拟机配置三张网卡:
eth0:连接到VirtualBox自带的NAT网络,可以直接上网。eth0的IP交给系统自动管理即可。
eth1:较旧的双虚拟机互联大多使用host-only模式。host-only模式下流量要通过主机网络栈,有安全风险。新版VirtualBox自带一个“内部网络”模式,内部网络由VirtualBox管理,仅虚拟机可见,与主机没有任何交互。这里设置eth1的网络为192.168.89.0/24,网关虚拟机地址为192.168.89.64。VirtualBox的内部网络使用【界面名称】来唯一标识每一个网络。这里界面名称叫【tor-intnet】.
eth2:可选,配置一个host-only网络,可以用来SSH。不用时关掉。在VirtualBox里新建一个主机网络192.168.12.0/24,eth2地址设置为192.168.12.64。
最后,VirtualBox的文档里推荐,如果操作系统支持,虚拟网卡控制芯片尽量选virtio-net,速度更快。
然后打开网关虚拟机,配置interfaces. 在/etc/network/interfaces里面,增加以下内容:
auto eth1
iface eth1 inet static
address 192.168.89.64
auto eth2
iface eth2 inet static
address 192.168.12.64
用V2Ray作为Tor的前置代理,可以用真正的TLS流量包装Tor流量,外人看上去就是在访问无害的网站。
首先下载v2ray:
wget https://github.com/v2ray/v2ray-core/releases/download/v4.23.1/v2ray-linux-64.zip
然后切进v2ray的目录,修改config.json,我这里的配置是V2Ray+WS+TLS+Web+CDN,一步到位:
{
"inbound": {
"protocol": "socks",
"port": 10086,
"listen": "127.0.0.1"
},
"outbound": {
"protocol": "vmess",
"settings": {"vnext": [{
"address": "域名",
"port": 443,
"users": [{"id": "UUID"}]
}]},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {"serverName": "域名"},
"wsSettings": {
"headers": {"Host": "域名"},
"path": "ws路径"
}
},
"mux": {"enabled": true}
}
}socks5端口是万年不变的10086。然后把v2ray解压出来的v2ray.service拷贝到systemd下,运行:
systemctl restart v2ray
v2ray就搭建好了。
安装:
pkg install tor
安装完成以后打开/etc/tor/torrc,在后面增加:
Socks5Proxy 127.0.0.1:10086
SOCKSPort 192.168.89.64:9050
SOCKSPolicy accept 192.168.89.0/24
然后运行:
systemctl restart tor
网关虚拟机就制作完成了。
按照上面的配置,网络参数如下:
- 界面名称:tor-intnet
- 网络号:192.168.89.0/24
- 网关IP:192.168.89.64
- Socks5端口:9050
注意【隔离虚拟机】只能有一张网卡,而且网卡的模式必须是【内部网络】,否则起不到隔离的效果。
在VirtualBox里,网卡的界面名称填tor-intnet,进入虚拟机,网卡配置填:
auto eth0
iface eth0 inet static
address 192.168.89.2
这是因为内部网络模式不会自动分配IP,所以必须手动指定如果要使用动态IP,可以在宿主机里添加DHCP:
vboxmanage dhcpserver add --netname tor-intnet --ip 192.168.89.1 --netmask 255.255.255.0 --lowerip 192.168.89.2 --upperip 192.168.89.254 -enable
以下命令可以删除已添加的DHCP服务器:
vboxmanage dhcpserver remove --netname tor-intnet
VirtualBox的manual见:https://www.virtualbox.org/manual
设置完网络后,对【隔离虚拟机】中的任何软件,只要配置socks5代理,就可以用Tor+VPN上网了。反过来说,只要软件配置了socks5,那么它的流量一定经过了Tor+VPN。而其它任何没有配置socks的流量,都无法穿出隔离虚拟机,更不用说联网了。
如果软件要联网,可以配置以下sock5代理:192.168.89.64:9050
如果要在隔离虚拟机里使用系统代理,可以使用privoxy:
pkg install privoxy
然后打开配置文件/etc/privoxy/config,末尾添加:
forward-socks5t / 192.168.89.64:9050 .
forward localhost/ .
就可以设置本地全局代理。