Shorewall:VPN客户端可以访问LAN资源,但不能访问Internet

我在我的工作室的办公室build立了一个networking,使用Raspberry Pi作为VPN服务器,让远程客户端访问局域网资源。

路由器端口转发1194端口到RPi,所以它可以从互联网访问。

一段时间后,我成功地使用Shorewall设置了OpenVPN,以授予VPN客户端访问选定的局域网服务器的权限。 但由于某种原因,VPN客户端根本无法访问Internet。

这是我的Shorewall设置:

我在区域接口主机文件中设置了三个区域。

#ZONE TYPE fw firewall net ipv4 loc:net ipv4 vpn ipv4 

接口

 #ZONE INTERFACE OPTIONS net eth0 dhcp,tcpflags,nosmurfs,routefilter,logmartians,sourceroute=0 vpn tun0 

主机

 #ZONE HOSTS loc eth0:192.168.200.0/24 (LAN subnet) 

OpenVPN服务器的隧道文件中有一个条目:

隧道

 #TYPE ZONE GATEWAY openvpnserver net 0.0.0.0/0 

从VPN到eth0的数据包被伪装,因为LAN客户端的默认网关是路由器,而不是RPi。

伪装

 #INTERFACE SOURCE ADDRESS eth0 10.8.0.0/24 (VPN subnet) 192.168.200.54 (local RPi address) 

策略拒绝从vpn到loc的连接,并接受从vpn到net的连接。 规则文件中接受从vpn到loc的特定连接。

我错过了什么? 为什么VPN客户端无法访问Internet?

这个问题根本不在Shorewall的configuration中。 实际上从VPN访问互联网,但VPN客户端有错误的DNS服务器地址。

OpenVPN的server.conf中有一行

 push "dhcp-option DNS 192.168.0.1" 

在给定的设置中没有任何意义。 我纠正了地址,现在VPN客户端可以访问Internet。