我在我的工作室办公室建立了一个网络,使用 Raspberry Pi 作为 VPN 服务器,供远程客户端访问 LAN 资源。
路由器将 1194 端口转发到 RPi,因此可以从互联网访问。
经过一段时间,我成功地使用 Shorewall 设置了 OpenVPN,并允许 VPN 客户端访问选定的 LAN 服务器。但出于某种原因,VPN 客户端根本无法访问互联网。
这是我的 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 客户端无法访问互联网?
答案1
问题根本不在 Shorewall 配置上。实际上可以通过 VPN 访问互联网,但 VPN 客户端的 DNS 服务器地址错误。
OpenVPN 中有一行服务器配置文件
push "dhcp-option DNS 192.168.0.1"
在给定的设置中这毫无意义。我更正了地址,现在 VPN 客户端可以访问互联网了。