Firewalld 阻止所有输入/输出连接,只允许某些传出端口

Firewalld 阻止所有输入/输出连接,只允许某些传出端口

我试图在 Fedora 36 中设置防火墙来阻止所有输入和输出连接,并只允许某些传出通信。

  1. 该计算机不是任何类型的服务器,因此我们希望阻止所有传入连接。
  2. 我只想允许一些选定的端口能够发送流量。

这就是我能想到的:

  1. 所有接口的默认区域设置为:民众
  2. 默认公共区域目标设置为:降低
  3. 公共区域中没有配置任何服务、端口、协议...。
  4. 计算机上根本未启用 IPv6。
  5. 计算机具有静态 IPv4,因此不需要 dhcp 端口。
  6. 我正在一台新的 Fedora 机器上测试这个,没有安装额外的网络软件。
  7. 每次更改后,防火墙都会重新加载。
  8. 其余部分使用直接规则进行配置:
ipv4 filter OUTPUT 0 -p tcp -m tcp --dport 53 -j ACCEPT
ipv4 filter OUTPUT 0 -p tcp -m tcp --dport 80 -j ACCEPT
ipv4 filter OUTPUT 0 -p tcp -m tcp --dport 443 -j ACCEPT
ipv4 filter OUTPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
ipv4 filter OUTPUT 2 -m state --state INVALID -j DROP
ipv4 filter OUTPUT 3 -o lo -j ACCEPT
ipv4 filter OUTPUT 4 -j DROP

这是行不通的。我无法加载任何网站。

如果我将 NEW 添加到上面的 --state 规则中,我就可以加载网站。
ipv4 filter OUTPUT 1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
但是,如果我然后删除所有 --dport 规则,等到ss -tupan显示没有等待连接,我仍然可以加载新网站,无论这些生成的规则没有明确允许任何端口:

ipv4 filter OUTPUT 1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
ipv4 filter OUTPUT 2 -m state --state INVALID -j DROP
ipv4 filter OUTPUT 3 -o lo -j ACCEPT
ipv4 filter OUTPUT 4 -j DROP

将 --dport 规则从 ACCEPT 更改为 DROP 确实会阻止网站加载,但这不是我想要的。

我的理解是,如果没有 --dport 规则,所有内容都应该被删除,并且只有 --dport 规则允许特定端口。所以我不需要新状态。

我怎样才能让它表现得像那样?
谢谢。

相关内容