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

我目前的设置涉及一个单一的networking接口的OpenVPN服务器和另一个networking上的客户端作为特定局域网的路由器。 我的目标是启用通过VPN转发LANstream量。

局域网的路由器是通过其公共接口连接到OpenVPN服务器的路由器。

  • openVPNnetworking:10.8.1.0/24
  • 内部networking: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重试无限持久性键persist-tun ca ca.crt证书myhostname.crt密钥myhostname.key ns-cert-type服务器tls-auth ta.key 1 comp-lzo动词3 mtu-testing

现在我还没有推动默认网关:我正在做testing添加单个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 

我也在客户端的ccd目录中设置了iroute 192.168.10.0 255.255.255.0 。 但是我不能通过VPN路由来自局域网的stream量,可能是因为服务器不知道如何将数据发回给他们。

我错过了什么来执行这个? 我有充分的权限在服务器和客户端/路由器上。 服务器运行CentOS 6.5和客户端/路由器Debian Squeeze。

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

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

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