我遇到了这样的情况:
- 具有 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进程内的路由