我为有限访问内部networking的子网10.8.0.0/24设置了OpenVPN服务器。 此外,我想手动configuration10.8.1.0/24与选定的客户端的静态IP给他们额外的权限(如SSH访问)。
访问控制通过iptables完成,并按预期工作。
现在我用一个运行在端口80和443上的web服务器将一条路由推送到一个外部IP(在这个例子中是10.10.10.10)。
当连接到VPN没有客户端特定的configuration,从而得到一个10.8.0.0/24 IP我没有问题访问10.10.10.10上的networking服务器。 我可以看到tun0上的软件包,并将服务器留在p4p1(外部接口)上。 当使用客户端特定的configuration连接到VPN,从而获得10.8.1.0/24 IP时,我可以ping所有内部服务器,但为10.10.10.10指定的包不会被中继到VPN服务器上的任何物理接口在TCP转储中检查)。
关于这个从OpenVPN服务器configuration摘录:
server 10.8.0.0 255.255.255.0 push "route 10.10.10.10 255.255.255.255" client-config-dir /etc/openvpn/ccd route 10.8.1.0 255.255.255.0 client-to-client comp-lzo persist-key persist-tun
客户端configuration/ etc / openvpn / ccd / some-client:
ifconfig-push 10.8.1.133 10.8.1.134
由于stream量正在通过任何特定的路由列在内部接口(p1p1)上,我猜OpenVPN并不是正确地将stream量redirect到接口p4p1上的默认路由,但我不知道为什么会这样做,固定。
有什么build议么?
正如Diamant所说,networking服务器也需要通过VPN服务器拥有一个返回到10.8.1.0/24的路由。 或者,VPN服务器将需要configuration为对networking服务器的请求执行NAT。
此外,我不知道这一点,但您可能需要添加push "route 10.8.0.0 255.255.0.0"到您的服务器configuration。
编辑:在服务器configuration的networking掩码困扰我。 而不是上面的build议,请尝试删除服务器configuration中的server 10.8.0.0 255.255.255.0行,并添加此代替:
mode server tls-server ifconfig 10.8.0.1 255.255.254.0 # different netmask to support 10.8.1.0/24 range ifconfig-pool 10.8.0.0 10.8.0.253 route-gateway 10.8.0.1 push "route-gateway 10.8.0.1"
编辑2:添加丢失的configuration行