OpenVPN客户端无法访问局域网

OpenVPN客户端无法访问局域网

OpenVPN:连接到服务器的客户端=防火墙;但无法访问局域网内的数据库

我有 5 个 VLAN:

vlan 2: 192.168.12.0/24
vlan 3: 192.168.13.0/24
vlan 4: 192.168.14.0/24
vlan 5: 192.168.15.0/24
vlan 6: 192.168.100.0/24

所有LAN都已连接到交换机cisco 3650三层。交换机Layer3连接防火墙(CentOS 6.2安装了squid和shorewall 4);

防火墙有 eth0: 172.16.1.101 连接到调制解调器:172.16.1.1; eth1:192.168.99.99 连接到交换机第 3 层:192.168.99.100 无交换机端口。

VPN 客户端连接并具有 IP 类别:192.168.10.0/24。现在从LAN到Internet的所有流量都正常,没有问题。

当客户端使用 openvpn 成功连接到服务器但无法 ping 或访问 LAN 中的任何计算机时。我做错了什么?

答案1

这可能是路由或防火墙问题。首先,您应该检查是否可以从 VPN 客户端 ping 服务器/防火墙。检查是否可以 ping 通 eth1 和 tun1 地址。

如果这些检查失败,您可能缺少路线。也许openVPN不会强制客户端设置内部子网的路由。

在客户端上,假设它是 Linux 客户端,您必须运行route -n并检查它是否有远程 LAN 的网关。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
...
192.168.99.0    192.168.10.##   255.255.255.0   UG    0      0        0 tun1
...

192.168.10.##应该是服务器/防火墙上tun1接口的地址。

如果有路由,您应该至少能够 ping 通 tun1 iface 地址。

为了更快地调试,您可以禁用 shorewall,顺便说一句,您应该检查您的防火墙规则,您必须启用从 vpn tun 接口到 LAN 的转发,反之亦然。

使用 IPTables 应该是这样的:

# iptables -A FORWARD -i tun+ -o eth1 -j ACCEPT
# iptables -A FORWARD -i eth1 -o tun+ -j ACCEPT

tun+ 代表“any tun”,你应该使用真正的 tun 设备,用 ifconfig 检查它。

相关内容