我在 CentOS 机器上安装了 OpenVPN。客户端可以很好地连接到 VPN 并访问其资源,ping 服务器的 LAN 地址。不过,我希望 OpenVPN 客户端能够访问连接到 OpenVPN 服务器的 LAN 上的计算机。我在服务器上启用了 ip 转发,按照我读过的方式推送了您需要执行的路由,但是在测试 OpenVPN 客户端时,甚至无法 ping 通服务器 LAN 上的计算机。
禁用firewalld后,问题就消失了,客户端可以正常ping通openvpn服务器后面的局域网上的计算机。我尝试将 set-target 放在 firewalld 上以使 openvpn 区域接受(只是作为测试),创建规则以接受来自 openvpn 子网的所有流量,但没有任何更改。它似乎起作用的唯一方法是我完全停止firewalld。还有其他人遇到过这个麻烦并且可以引导我走向正确的方向吗?
请注意,这是 openvpn 所在区域的firewalld list 命令输出的副本:
检查firewalld后,除了勾选服务http/https、openvpn和ssh以允许这些端口通过之外,该系统上没有丰富的规则或手动端口转发。这是 openvpn 区域的 list 命令的副本:
target: default
icmp-block-inversion: no
interfaces: enp8s0 enp9s0 tun0
sources:
services: http https openvpn ssh
ports:
protocols:
forward: no
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
我最终不得不添加以下规则:
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i tun0 -o virbr2 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i virbr2 -o tun0 -j ACCEPT
唯一的问题是,虽然这有效,但如果我尝试使用选项添加它们,permanent
它们不会生效 - 即使它列在direct.xml
谢谢,詹姆斯。