【问题标题】:Use sshuttle to route traffic to company's VPN server使用 sshuttle 将流量路由到公司的 VPN 服务器
【发布时间】:2021-06-28 13:38:01
【问题描述】:

我需要访问公司的内部网络,而不是直接使用他们的 OPENVPN 服务器(我的 ISP 阻止了它)。所以我用了一个公网IP的实例,我公司所在的地方,并配置了一个OPENVPN客户端,然后用它来连接公司的OPENVPN服务器。

(public IP instance) ===OPENVPN===> (Company)

现在,我需要实现另一件事,即通过使用 sshuttle 通过 SSH 隧道使用 VPN 在我的本地计算机上工作,这样拓扑变为:

(local) ===SSHUTTLE===> (public IP instance) ===OPENVPN===> (Company)

注意公网IP实例有两个网卡; eth0(有公网IP)和tun0(属于OPENVPN)

我安装了sshuttle,并测试了下一条命令:

sshuttle --dns -r <user>@<public IP instance address> 0.0.0.0/0

它说在那之后连接,但我仍然无法访问任何东西。我测试了 dig,它返回的结果显示了公司内部服务的地址。但是,我仍然无法ping通它们。我使用traceroute 进行了测试,它在显示一些跃点后停止。

一个重要的点是我无法从我的本地计算机 ping tun0 地址(在公共 ip 实例上)。

我怀疑我需要在中间公网 IP 实例上添加一些路由,但我不确定。

如果有任何帮助,我将不胜感激 提前致谢

【问题讨论】:

    标签: ssh vpn openvpn ssh-tunnel


    【解决方案1】:

    你的设置是正确的,但你的假设是错误的。

    首先,检查您的 vpn 在跳转框上是否正常工作,如果 linux 只是检查

    route -n
    

    错误的假设:

    • sshuttle 将路由你的 dig 命令,sshutle 只路由 TCP 和 DNS 查询是 UDP
    • 在你的 sshuttle 中使用 --dns 毫无意义,因为你赢了t gain dns of vpn but of the jump box and that wont 工作
    • 您应该在 /etc/resolv.conf 中添加本地 vpn 的 DNS 和目标域以进行本地发现 like :
    search companydomain.internal
    nameserver 10.x.y.z
    
    • 最好拆分流量,只针对您公司的 CIDR 而不是 sshuttle ,其中大多数使用 10.0.0.0/8 的部分而不是所有流量 0.0.0.0/0
    • 重要提示:这可能是您的公司阻止通过 VPN 访问到 Internet 的出口流量

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 2018-01-19
      • 2020-08-31
      相关资源
      最近更新 更多