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 檢查它。

相關內容