使用ssh隧道做三层流量代理( 二 )


使用ssh隧道做三层流量代理文章插图
-w any:any时 , 系统自动选择下一个可用tun序号 , 当然也可以收到指定可用的tun序号 , 比如-w 0:0 。
乍一看 , 可能会觉得在目标使用root登录我们的vps有点危险 , 不过让他不返回shell之后 , 目标进入我们的当前的会话应该也无法从已有的隧道spawn一个shell出来 , 并且在命令行参数中也无法看到密码 , 不考虑泄露ip的风险的话 , 实际上的风险是可控的 。
然后是配置网卡 , 在我们的vps执行如下命令 , 设置本地网卡地址为1.1.1.1 , 掩码32位 , 因为是要建立一个点对点的连接 , 所以设置对端地址为1.1.1.2:
使用ssh隧道做三层流量代理文章插图
在目标执行执行如下命令 , 设置本地ip为1.1.1.2 , 32位掩码 , 同样是点对点连接 , 设置对面ip为1.1.1.1 。
使用ssh隧道做三层流量代理文章插图
随后分别把目标和vps的网卡启动 。
使用ssh隧道做三层流量代理文章插图
使用ssh隧道做三层流量代理文章插图
因为我们要将流量代理进目标内网 , 所以我们要在目标上开启内核流量转发功能 , 并且通过iptables把来自1.1.1.2的流量转发到eth0网卡上去 。
使用ssh隧道做三层流量代理文章插图
然后在vps设置一个路由 , 把网关设置成对端的ip(也就是目标上的tun0的本地ip) , 把发向目标内网网段的流量通过点对点连接 , 也就是tun0转发进去 。
使用ssh隧道做三层流量代理文章插图
至此 , 整个配置过程就结束了 , 理论上讲对端ip可以是任意的(任意一个用不到的ip) , 但本地ip一定是正确 , 因为会影响你接收ICMP error的数据包 。
我在本地打开另一台win10机器 。
使用ssh隧道做三层流量代理文章插图
在vps上ping一下它 , 成功ping通 。
使用ssh隧道做三层流量代理文章插图
使用nc监听一个端口并传输数据 , 确定是本地机器 。
使用ssh隧道做三层流量代理文章插图
使用ssh隧道做三层流量代理文章插图
目前看来使用是没有问题了 , 但是稳定性和隐蔽性有待进一步测试 。
测试过程使用的命令文字版 , 为了方便复制:
VPS:ip addr add 1.1.1.1/32 peer 1.1.1.2 dev tun0ip link set tun0 uproute add -net 192.168.64.0/24 gw 1.1.1.2目标:ip addr add 1.1.1.2/32 peer 1.1.1.1 dev tun0ip link set tun0 upecho 1 > /proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -s 1.1.1.1 -o eth0 -j MASQUERADENo.8 参考链接
▼稿件合作 15558192959
小E微信号:Eanquan0914