OpenVPN:将客户端的 LAN 转发到 VPN

OpenVPN:将客户端的 LAN 转发到 VPN

我当前的设置包括一个具有单个网络接口的 openVPN 服务器和一个位于另一个网络上的客户端,该客户端充当特定 LAN 的路由器。我的目标是通过 VPN 转发 LAN 流量。

LAN 的路由器是通过其公共接口连接到 openVPN 服务器的路由器。

  • openVPN 网络:10.8.1.0/24
  • 内部网络:192.168.10.0/24

防火墙

*nat
:PREROUTING ACCEPT [2:98]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [5:327]
-A POSTROUTING -s 10.8.1.0/24 -o em1 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [186:19694]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p udp -m state --state NEW,ESTABLISHED -m udp --dport 1195 -j ACCEPT
-A INPUT -i tun+ -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i tun+ -j ACCEPT
-A FORWARD -s 10.8.1.0/24 -o em1 -j ACCEPT
-A FORWARD -i tun+ -o em1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i em1 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

OpenVPN 服务器

port 1195 # 1194 is used by another OpenVPN 
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/suzume.crt
key /etc/openvpn/suzume.key
server 10.8.1.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
client-config-dir ccd
route 192.168.10.0 255.255.255.0
tls-auth /etc/openvpn/ta.key 0

OpenVPN 客户端

客户端 dev tun 远程 MY_SERVER_IP proto udp nobind resolv-retry 无限 persist-key persist-tun ca ca.crt cert myhostname.crt key myhostname.key ns-cert-type 服务器 tls-auth ta.key 1 comp-lzo 动词 3 mtu-test

目前我还没有推送默认网关:我正在测试将单个 IP 添加到路由表。在客户端上:

route add 69.192.17.215 gw 10.8.1.5 tun1

(再次强调,客户端实际上是 LAN 的路由器)

如果我在客户端上,我可以看到traceroute数据包通过 VPN。但是,如果我尝试从客户端访问相同的 IP,则什么都无法通过。服务器上 VPN 接口上的 tcpdump 显示:

# tcpdump -n -i tun0
  tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
  00:25:13.267823 IP MY_INTERNAL_IP > 69.192.17.215: ICMP echo request, id 3607, seq 11, length 64

什么也没发生。

当我直接在客户端上执行操作时,请比较一下:

00:28:10.277901 IP OPENVPN_CLIENT_IP > 69.192.17.215: ICMP echo request, id 5243, seq 1, length 64
00:28:10.365054 IP 69.192.17.215 > OPENVPN_CLIENT_IP: ICMP echo reply, id 5243, seq 1, length 64

我也为客户端设置了iroute 192.168.10.0 255.255.255.0目录ccd。但是我无法通过 VPN 路由来自 LAN 的流量,大概是因为服务器不知道如何将数据发送回它们。

我缺少什么才能执行此操作?我在服务器和客户端/路由器上拥有完全访问权限。服务器运行 CentOS 6.5,客户端/路由器运行 Debian Squeeze。

答案1

解决方案是在客户端/路由器上执行

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o tun1 -j MASQUERADE

VPN 接口在哪里tun1。通过伪装内部 IP,一切正常。

相关内容