OpenVPN-客户端作为其他客户端的网关

OpenVPN-客户端作为其他客户端的网关

我有以下结构:

网络图

我想要实现的基本上是通过内部网络中的 MacOS OpenVPN 客户端路由来自笔记本电脑客户端(以及任何可能的未来客户端)的所有流量。

我知道最简单的方法是在 MacOS 内部服务器上运行 OpenVPN 服务器,但是它位于代理和防火墙后面,无法从外部访问(在我的情况下,ssh 隧道不是一种选择)——这就是为什么我有如此奇怪的结构。

应如何配置客户端和服务器以实现这一点?

答案1

可以使用以下方式路由仅可通过另一个 openVPN 客户端访问的子网:电荷耦合器件脚本

例如,在你的案例中,你必须在 AWS 服务器配置中添加类似以下内容

假设10.80.0.1是您的 AWS VPN 网关的 IP(VPN 地址,而不是外部 IP),并且10.0.2.0/24是您希望通过 MacOS 服务器路由的子网

在文件中/etc/openvpn/ccd/macos_vpn_commonname

iroute 10.0.2.0 255.255.255.0 push "route 10.0.2.0 255.255.255.0 10.80.0.1" route 10.0.2.0 255.255.255.0 10.80.0.1"

你还需要在 AWS 服务器上的 OpenVPN 服务器主配置文件中添加一行
client-config-dir /etc/openvpn/ccd

它的作用是在macos_vpn_commonname客户端连接时告诉 OpenVPN 服务器,子网 10.0.2.0 /24 可通过该客户端访问,并启用通过该隧道的路由。据我测试,没有其他方法可以做到这一点,即使手动通过之前创建的隧道路由流量也行不通。

这将涵盖通过 MacOS 服务器路由子网。如果您需要通过它重定向所有流量,请告诉我,我将尝试进一步帮助您使用iprule/iproute在 AWS OpenVPN 服务器和redirect-gateway指令上,因为我不确定 OpenVPN 是否已通过内部机制为这种情况做好准备。

相关内容