我正在使用 WireGuard 设置 VPN,并且在相应的 VPN 服务器上配置我的防火墙时卡住了。我想要以下功能:
- VPN 设备 (
10.6.0.0/24
) 可从 LAN (10.20.0.0/24
) 获得(问题!) 10.20.0.0/24
可从 VPN ( ) 获得的LAN 设备 (10.6.0.0/24
)(有效!)
当前的 iptables 配置:
向任何方向转发来自现有(已打开)连接的所有流量
iptables -t filter -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
这使得 LAN 设备可以从 VPN 获得(工作正常)
# Direction: VPN -> LAN -------------------------------------------------------------
iptables -t nat -A PREROUTING -d 10.20.0.0/24 -j DNAT --to-destination 10.6.0.1 # Act as destination NAT from VPN to LAN (be the LAN-gateway for the VPN)
iptables -t filter -A FORWARD -s 10.6.0.0/24 -d 10.20.0.0/24 -j ACCEPT # Accept traffic from VPN to LAN
iptables -t nat -A POSTROUTING -s 10.6.0.0/24 -d 10.20.0.0/24 -j MASQUERADE # Mask traffic from VPN to LAN for responses
这将使 VPN 设备可以从 LAN 中使用(需要帮助!)
# Direction: LAN -> VPN -------------------------------------------------------------
iptables -t filter -A FORWARD -s 10.20.0.0/24 -d 10.6.0.0/24 -j ACCEPT # Accept traffic from LAN to VPN
iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -d 10.6.0.0/24 -j MASQUERADE # Mask traffic from LAN to VPN for responses
目前的发现:
通过查看这些规则,我可能在下部错过了另一个 DNAT/SNAT,但我仍然无法弄清楚......
VPN 接口上的接口计数器显示,ping 被发送到 VPN 客户端并返回!所以问题似乎是到达的 VPN 数据包要被转换并转发到 LAN。
如果需要更多信息,请询问:) 感谢您的宝贵时间!