我试图弄清楚为什么防火墙没有像我认为我要求的那样运行,因此试图弄清楚如何以firewalld
类似于iptables
配置文件的某种格式显示其完整的规则集。或者其他一些格式——我不太在意——只要它至少与iptables
orpf
配置一样具有可读性(即,这是一个非常低的清除标准!)。
firewall-cmd --list-all
诸如“列出为区域添加或启用的所有内容”之类的命令。但这只是列出了接口、服务等,没有进一步的细节。我看不到--list-all-no-really-everything
选项。- 我以为我在阅读
direct
规则时发现了它,但我发现这只适用于作为额外“直接”规则添加的规则,而不是它首次出现的进入机舱的活板门。 - 我看到了配置文件
/etc/firewalld
和/usr/lib/firewalld
. 但是,虽然这乍一看很有希望,而且评论很漂亮,但它似乎并没有真正告诉我关于当前状态的太多信息。像这样的问题是关于导出规则(用于移动到其他地方),并表明这就是全部(我猜公共区域中提到的服务中提到的端口被阻止传入......?)。
我的理解(如果我错了,请纠正我)是firewalld
里面有类似 iptables 的东西,它正在做所有的实际工作,它有某种可以找到的状态--reload
,嗯,……重新加载。这就是我希望找到的状态。
也许我很模糊,但我发现整体的间接性和帮助性firewall-cmd
完全无法理解。是的,著名的“计算科学中的每个问题都可以通过添加另一层间接来解决”,但有时这可能会走极端。
我可能根本没有防火墙问题,但我无法充分了解防火墙状态以排除这种情况。是否有切换到 iptables 的情况(我绝望地想知道)?设置起来比较麻烦,而且很容易出错,但至少我知道发生了什么。
我非常愿意接受挑战,或者被告知我在找错树。
我通常建议查看 Linux 内核正在运行的实际防火墙规则集,而不是尝试从“用户友好” 工具(如 firewalld(或类似的 UFW 等)及其提供的抽象层)诊断更复杂的防火墙问题. 通常,一旦您了解了潜在问题,您就可以在这些工具支持的问题中轻松解决它们。
虽然有些人
[sudo] iptables-save
更喜欢我,但命令[sudo] iptables -L -v -n
是你最好的朋友。通常在讨论配置时,使用该选项以及查看数字行很有用。
--line-numbers
提及规则#X
使讨论更容易一些。请记住,默认情况下 iptables 仅显示 FILTER 表,而您可以使用-t [ nat | mangle | raw]
开关指定其他表。当 firewalld 使用 nftables 后端时,使用
nft list ruleset
.(对我来说,firewalld 实际上是另一个创建规则集的前端,这些规则集将加载到 Linux netfilter内核模块中。您仍然可以使用它们的本机和更底层的工具(例如
iptables
或更现代的nftables
后续工具)来操作这些后端。图片下面显示了 firewalld 可以使用和整合的其他后端。)