如何显示整个防火墙状态?

如何显示整个防火墙状态?

我正在尝试弄清楚为什么防火墙没有按照我要求的方式运行,因此试图找出如何以firewalld某种类似于配置文件的格式显示其完整的规则集iptables。或者其他格式——我不太在意——只要它至少与iptablespf配置一样可读(也就是说,这是一个相当低的门槛!)。

  • 命令如firewall-cmd --list-all“列出区域中添加或启用的所有内容”。但这仅列出接口、服务等,没有进一步的详细信息。我看不到选项--list-all-no-really-everything
  • 当我阅读规则时,我以为我已经找到了它direct,但我发现它仅适用于作为额外的“直接”规则添加的规则,而不是它首次出现的进入引擎室的活板门。
  • 我看到了配置文件/etc/firewalld和默认值/usr/lib/firewalld。但尽管乍一看很有希望,而且注释得很漂亮,但它似乎并没有真正告诉我太多有关当前状态的信息。类似这样的问题这个是关于导出规则(用于移动到其他地方),并表明这就是全部(我猜测在公共区域中提到的服务中提到的端口被阻止传入......?)。

我的理解(如果我错了请纠正我)是它firewalld里面有一些类似 iptables 的东西,它负责做所有实际的工作,并且它有一些--reload可以找到并重新加载的状态。这就是我希望找到的状态。

也许我有点愚钝,但我发现间接性和帮助性的整体水平firewall-cmd完全令人费解。是的,众所周知,“计算机科学中的每个问题都可以通过添加另一层间接性来解决”,但有时这可能会走向极端。

我可能根本没有防火墙问题,但我无法充分了解防火墙的状态以排除这种可能性。是否有理由切换到 iptables(我绝望地想知道)?设置起来更麻烦,而且很容易出错,但至少我知道发生了什么。

我非常乐意接受挑战,或者接受别人告诉我我找错了方向。

答案1

我通常建议查看 Linux 内核正在运行的实际防火墙规则集,而不是尝试从以下方面诊断更复杂的防火墙问题:“方便使用的” 防火墙工具(例如 UFW 等)以及此类工具提供的抽象层。通常,一旦您了解了潜在问题,您就可以通过这些工具轻松解决这些问题。

虽然有些人觉得[sudo] iptables-save这个命令[sudo] iptables -L -v -n更好。讨论配置时,使用该选项查看行号
通常很有用。提及规则会使讨论变得更容易一些。但请记住,默认情况下仅显示 FILTER 表,您需要使用开关指定其他表。--line-numbers#Xiptables-t [ nat | mangle | raw]

当firewalld使用nftables后端时,请改用nft list ruleset

(对我来说,firewalld 实际上是另一个创建规则集的前端,这些规则集将加载到 Linux网络过滤器内核模块。您仍然可以使用其原生和更低级别的工具(例如 iptables或更现代的nftables后续工具)来操纵这些后端。下图显示了防火墙可以使用和整合的其他后端。)

来自 https://firewalld.org/documentation/concepts.html

答案2

接受的答案是正确的,我只是想为其他人补充一下,这个答案可以firewall-cmd --list-all-zones很好地概述所有区域及其规则(与的输出相同--list-all,但同时针对所有区域)。

IE

[root@sso-staging-01 ~]# firewall-cmd --list-all-zones
[root@sso-staging-01 ~]# firewall-cmd --list-all-zones
block
  target: %%REJECT%%
  icmp-block-inversion: no
  interfaces:
  sources:
  services:
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

dmz (active)
  target: default
  icmp-block-inversion: no
  interfaces:
  sources: 172.18.16.0/20
  services:
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

drop
  target: DROP
  icmp-block-inversion: no
  interfaces:
  sources:
  services:
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

external
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh
  ports:
  protocols:
  forward: no
  masquerade: yes
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

home
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client mdns samba-client ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

internal (active)
  target: default
  icmp-block-inversion: no
  interfaces:
  sources: 172.15.232.0/23
  services: VRRP https
  ports: 6556/tcp 443/tcp
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

legacy (active)
  target: default
  icmp-block-inversion: no
  interfaces:
  sources: 128.0.0.0/24
  services: https
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

nm-shared
  target: ACCEPT
  icmp-block-inversion: no
  interfaces:
  sources:
  services: dhcp dns ssh
  ports:
  protocols: icmp ipv6-icmp
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
        rule priority="32767" reject

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: 
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

trusted (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces:
  sources: 172.10.1.0/24 172.10.3.0/24
  services: http https ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

work (active)
  target: default
  icmp-block-inversion: no
  interfaces:
  sources: 172.10.0.0/16
  services: http https
  ports: 80/tcp 443/tcp
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

相关内容