在firewalld中设置规则以允许同一VPN子网中的客户端进行通信

在firewalld中设置规则以允许同一VPN子网中的客户端进行通信

我正在尝试在 Fedora 服务器上设置 Wireguard VPN。我已经启动并运行了它,并且可以连接到多个客户端、浏览它、通过 ssh 进入服务器等。总的来说,它工作正常。除了一件事。如果我同时连接了两个客户端,我无法通过 VPN 从客户端 A ssh 到客户端 B 或反之亦然。我可以从服务器 ssh 到任一客户端,也可以从客户端 ssh 到服务器,但不能在客户端之间进行 ssh。显而易见的原因是防火墙,所以我尝试禁用它,正如我所料,我现在可以在同一个 VPN 子网上的客户端之间进行 ssh。

因此防火墙设置不正确,但我添加了以下规则:

iptables -A FORWARD -i wg0 -o wg0 -j ACCEPT

哪个应该允许客户端进行通信?由于它是使用防火墙运行的 Fedora 服务器,我认为我应该创建一个名为 vpn 的新区域,并将 wg0 接口添加到该区域,这样我就可以为 VPN 制定特殊规则。这样就行得通了,我仍然可以浏览和在客户端和服务器之间进行 ssh,但不能在客户端之间进行。

我遗漏了什么?转发规则必须通过防火墙来设置吗?如果是,那么执行该操作的正确命令是什么?我似乎无法正确执行。

编辑:我尝试使用命令

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -o wg0 -j ACCEPT

但从防火墙获得 COMMAND_FAILED 响应。没有错误代码或其他任何内容。

编辑2:我添加了

firewall-cmd --permanent --zone=vpn --set-target=ACCEPT

现在我可以在客户端之间进行 ssh 了。这是正确的做法吗?

答案1

由于没有其他评论/答案,我将分享我如何让它发挥作用。我不知道这是否是最好的方法,但它确实有效。

我注意到区域 vpn 有 targer = default。默认为 REJECT。

我补充道

firewall-cmd --permanent --zone=vpn --set-target=ACCEPT

现在我可以在客户端之间进行 ssh 了。

相关内容