如何使用firewall-cmd 创建高级规则?

如何使用firewall-cmd 创建高级规则?

我想使用firewalld创建一个规则,该规则使用标准用户名或用户ID以及可能还有一个其他模块标准。

在 iptables 中,我认为你可以做类似的事情

iptables -A OUTPUT -m owner --uid-owner <UID> -j ACCEPT

(并且您可以将其他 -m 模块或 -p 协议添加到同一命令中)

但我读过firewall-cmd手册页我无法找到如何制定相同类型的规则。即使是“丰富规则”似乎也没有这种支持。我必须使用“直接”功能吗?我不太理解它的语法。尤其让我担心的是这些没有返回任何内容!

firewall-cmd --direct --get-chains ipv4 filter
firewall-cmd --direct --get-rules ipv4 filter OUTPUT
firewall-cmd --direct --get-rules ipv4 filter INPUT

当然iptables -L表明我有那些表格,链和规则。

那么我如何添加永恒的与所有者一起制定规则,也许还使用firewalld 制定另一个标准?

答案1

你不需要添加甚至拥有自定义的直接链(尽管如果你想获得真的很复杂。直接添加到现有链即可。

在 IP 版本、表、链和优先级之后,只需指定相关的 iptables 选项:

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 \
        -m owner --uid-owner $UID -j ACCEPT

在 iptables 中,这实际上将被添加到名为 OUTPUT_direct 的防火墙管理链中,该链从 OUTPUT 链调用。

相关内容