配置firewalld终止开关

配置firewalld终止开关

我想在我的计算机上配置防火墙终止开关,但不知道如何进行。我想阻止所有传入流量。仅允许特定 IP 地址、端口和接口上的传出流量。

这是 ufw 的替代方案:

ufw default deny incoming
ufw default deny outgoing
ufw allow out to $IP port $PORT proto { udp | tcp }
ufw allow out on $VPN_INTERFACE
ufw allow in on $VPN_INTERFACE from any to any port 60002

谢谢!

答案1

这是从我的自己的博客我在这里详细解释了一些关于区域、政策和丰富规则的内容。

Firewalld 可与区域和策略配合使用。为了实现您想要的目标,我们必须将所有面向互联网的卡分配到仅 VPN 区域,并创建一个策略来过滤进入该区域的所有流量。

在这里,我假设您只想过滤来自您自己的计算机的流量,因此该策略将具有入口区域 HOST 和出口区域 VPN-Only。

创建仅 VPN 区域:

firewall-cmd --permanent --new-zone VPN-Only

创建 VPN-Killswtich 策略:

firewall-cmd --permanent --new-policy VPN-Killswitch

策略的默认目标(这意味着删除我们未明确允许的所有内容):

firewall-cmd --permanent --policy VPN-Killswitch --set-target DROP

重新加载以应用更改:

firewall-cmd --reload

现在让我们添加允许出站流量到达 VPN IP 的策略规则。对每个区域重复此规则,将 1.2.3.4 替换为您的 VPN 的 IP。如果您使用的是wireguard,请将openvpn 更改为wireguard。

firewall-cmd --policy VPN-Killswitch --add-rich-rule='rule family="ipv4" destination address="1.2.3.4" service name="openvpn" accept'

允许传出流量到本地网络:

firewall-cmd --policy VPN-Killswitch --add-rich-rule='rule family="ipv4" destination address="192.168.1.0/24" accept'

设置入口区域:

firewall-cmd --policy VPN-Killswitch --add-ingress-zone HOST

和出口区:

firewall-cmd --policy VPN-Killswitch --add-egress-zone VPN-Only

现在我们只需要将网卡添加到 VPN-Only 区域即可。这可以通过 NetworkManager GUI(或 CLI)或通过 firewalld 来完成。

使用 NetworkManager 打开要过滤的连接的属性窗口,然后在“常规配置”选项卡上将“防火墙区域”设置为“仅限 VPN”。

或者使用firewalld:

firewall-cmd --permanent --zone VPN-Only --add-interface=enp0s8

测试设置并使其永久化:

firewall-cmd --runtime-to-permanent

相关内容