我有一台 OpenVPN 服务器,称为 vpn-server,后面有一个 LAN 192.168.3.0/24。客户端 vpn-client 后面也有一个 LAN,即 10.4.0.0/24。192.168.3.0/24 上的计算机可以访问 10.4.0.0/24(只有一个例外)。10.4.0.0/24 上的计算机可以访问 192.168.3.0/24。(服务器和客户端都基于 Linux。)
唯一的例外是 VPN 主机本身无法访问 10.4.0.0/24。irc 上的 #openvpn 中有人提到,当 openvpn 服务器连接到客户端网络时,它使用 VPN IP,而不是本地 IP,我应该检查我的 iptables 伪装规则。我的伪装规则和相关接口的接口配置位于http://pastebin.com/Q9RDy0es。
OpenVPN 的服务器和客户端配置文件可以在以下位置找到:http://pastebin.com/gtfm82pE。
我觉得这是主机端的防火墙问题,但我似乎无法解决。我需要新的/不同的伪装规则吗?我很确定 VPN 配置是正确的。
VPN 服务器路由表
Destination Gateway Genmask Flags Metric Ref Use Iface
10.54.1.9 * 255.255.255.255 UH 0 0 0 tun1
10.8.1.2 * 255.255.255.255 UH 0 0 0 tun0
<pubIP redacted> * 255.255.255.248 U 0 0 0 eth1
10.18.1.0 10.8.1.2 255.255.255.0 UG 0 0 0 tun0
172.16.20.0 10.54.1.9 255.255.255.0 UG 0 0 0 tun1
192.168.3.0 * 255.255.255.0 U 0 0 0 eth0
10.8.1.0 10.8.1.2 255.255.255.0 UG 0 0 0 tun0
10.54.1.0 10.54.1.9 255.255.255.0 UG 0 0 0 tun1
172.16.30.0 10.54.1.9 255.255.255.0 UG 0 0 0 tun1
10.3.0.0 10.54.1.9 255.255.255.0 UG 0 0 0 tun1
172.16.10.0 * 255.255.255.0 U 0 0 0 vlan4000
10.3.1.0 10.54.1.9 255.255.255.0 UG 0 0 0 tun1
10.4.0.0 10.8.1.2 255.255.0.0 UG 0 0 0 tun0
link-local * 255.255.0.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default <pubIP redacted> 0.0.0.0 UG 0 0 0 eth1
iptables -L 的 vpn-server 输出
Chain INPUT (policy ACCEPT)
target prot opt source destination
FW-1-INPUT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.3.0/24 anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere icmp any
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
REJECT all -- anywhere anywhere reject-with icmp-host- prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain FW-1-INPUT (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere icmp any
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:7788
ACCEPT udp -- anywhere anywhere udp dpt:ha-cluster
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT udp -- anywhere anywhere udp dpt:bootpc
ACCEPT udp -- anywhere anywhere udp dpt:openvpn
ACCEPT tcp -- sysmon.example.com anywhere tcp dpt:nrpe
ACCEPT tcp -- sysmon1.example.com anywhere tcp dpt:nrpe
ACCEPT udp -- sysmon1.example.com anywhere udp dpt:ntp
ACCEPT udp -- sysmon.examplecom anywhere udp dpt:ntp
ACCEPT tcp -- anywhere anywhere tcp multiport dports iax,sip
ACCEPT udp -- anywhere anywhere udp multiport dports iax,sip
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host- prohibited
答案1
请记住,当您的 OpenVPN 网关获取流量时,当客户端路由器及其主机看到它时,它很可能来自 openvpn 接口本身。因此,您需要确保您已以某种方式在 openVPN 服务器上对该 IP 进行 NAT,或者看到请求的主机/客户端有一条返回该 IP 的路径(这可能与您的 LAN 不是同一个网络)。
如果您对两侧的 openvpn 接口以及远程端的内部接口进行 tcpdump,您可能会发现问题出在与此不同接口 IP 相关的防火墙规则或与此相关的路由。