![如何使用firewall-cmd 创建高级规则?](https://linux22.com/image/663074/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8firewall-cmd%20%E5%88%9B%E5%BB%BA%E9%AB%98%E7%BA%A7%E8%A7%84%E5%88%99%EF%BC%9F.png)
我想使用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 链调用。