Como criar regras avançadas com o firewall-cmd?

3

Eu quero criar uma regra usando o firewalld que usa critérios username ou userID e talvez um outro critério de módulo.

No iptables, acho que você pode fazer coisas como

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

(e você pode adicionar outros módulos -m ou protocolos -p ao mesmo comando)

Mas eu leio firewall-cmd manpage e não consigo encontrar como fazer o mesmo tipo de regra. Mesmo "regras ricas" não parecem ter esse apoio. Eu tenho que usar o recurso "direto"? Eu não consigo entender sua sintaxe. Especialmente me preocupa que estes não retornem nada!

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

É claro que iptables -L mostra que tenho essas tabelas, cadeias e regras nelas.

Então, como adiciono uma regra permanente ao proprietário e talvez mais um critério usando o firewalld?

    
por user109322 22.07.2015 / 23:33

1 resposta

5

Você não precisa adicionar ou até ter encadeamentos diretos personalizados (embora você possa, se você quiser, tornar-se realmente complicado. Basta adicionar diretamente às suas cadeias existentes.

Após a versão IP, tabela, cadeia e prioridade, você simplesmente especifica as opções relevantes do iptables:

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

Abaixo, no iptables, isso será realmente adicionado a uma cadeia gerenciada pelo firewalld chamada OUTPUT_direct, que é chamada a partir da cadeia OUTPUT.

    
por 23.07.2015 / 00:53