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

我想创build一个规则使用firewalld使用标准的用户名或用户名,也许还有一个其他模块标准。

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

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

(你可以添加其他-m模块或-p协议到同一个命令)

但是我读了firewall-cmd manpage ,我找不到如何做出同样的规则。 即使“富有的规则”似乎也没有这种支持。 我必须使用“直接”function吗? 我不太明白它的语法。 特别是它让我感到担心,这些都没有回报!

 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一个更多的标准?

你不需要添加甚至自定义直链(尽pipe如果你想变得非常复杂,可以直接添加到你现有的链中。

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

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

在iptables下面,这实际上会被添加到名为OUTPUT_direct的firewalldpipe理的链中,这个链从OUTPUT链中被调用。