OpenVPN:客户端将路由推送到服务器?

OpenVPN:客户端将路由推送到服务器?

我遇到了这样的情况:

  • 具有 2 个 IP 地址的服务器:SIP1 和 SIP2
  • 具有 2 个 IP 地址的客户端:CIP1 和 CIP2

在 SIP2 上我已经启动了 OpenVPN 服务器,并且我从客户端连接到它,使用 OpenVPN 的 --client 选项将流量绑定到 CIP2

现在的问题是——如何修改服务器上的路由表,以便在客户端连接时通过隧道添加到 SIP1 的路由?

答案1

这一切都只是猜测,但是......

看起来您可以使用该client-connect脚本来执行您想要的操作。摘自手册页:

The script is passed the common name and  IP  address  of
the just-authenticated  client as environmental variables
(see environmental variable sec- tion below).  The script is
also passed the pathname of a not-yet-created temporary file
as $1  (i.e.  the  first  command line argument), to be used
by the script to pass dynamically generated config file
directives back to OpenVPN.

因此,使用此脚本,您应该能够将必要的路由命令添加到 OpenVPN 配置中。client-disconnect您可以使用相应的脚本来拆除路由。

答案2

我认为这是典型的服务器到服务器[而不是类似拨号的]设置。

在服务器端输入如下内容:

# first local address assigned to the vpn tunnel, then remote
# [ this is not SIPx/CIPx - it's just private addressing for the tunnel ]
ifconfig 10.255.255.10 10.255.255.9
# here you install a new route on the server whenever vpn is established
# you want to put CIP1/32 routed via vpn ip assigned to the remote end of vpn
route 10.13.0.0 255.255.0.0 10.255.255.9
port somePort
[..]

在客户端:

# put your SIP1 here and some port on which server is configured
remote 213.xxx.xxx.xxx somePort
# again - first is local, second - remote address of vpn tunnel 
ifconfig 10.255.255.9 10.255.255.10
# you want to put below SIP1/32 routed via vpn ip from far end of the tunnel
route 10.15.0.0 255.255.0.0 10.255.255.10

您需要添加几行特定于您的加密方法的内容。尝试使用如上所述的预共享密钥这里.如果您在生产设置中使用适当的 tls,它会更加安全。

因为您将注入 SIP1/32 [OpenVpn 中使用的符号 SIP1 255.255.255.255] - 您的安全路由 - 一旦建立 VPN - 将始终被选择用于与 SIP1 通信 [反之亦然]。但是..一旦 VPN 完成 - 敏感流量可能会通过不受信任的网络流动。这是您不希望发生的。如果您确实必须使用公共 SIP1/CIP1 - 请确保防火墙[即使是本地防火墙] 只允许通过 OpenVpn 创建的 tunX 设备进行通信,并且不要让任何直接流量进入公共互联网。

答案3

路由 xxxx 255.255.255.0 #将数据包定向到 OVPN TUN 接口

iroute xxxx 255.255.255.0#在client-config-dir命令指定的用户配置脚本中添加OVPN进程内的路由

相关内容