O iptables -F exclui permanentemente todas as regras do iptables?

8

Em um documento de treinamento do RHEL, o autor diz:

... execute o seguinte comando para desativar o firewall no sistema atual: iptables -F

Ele usa explicitamente a palavra "desativar", o que para mim sugere que será simples reativar. Ao ler a página de manual do iptables, vejo o seguinte:

Lave a corrente selecionada (todas as correntes na tabela, se nenhuma for fornecida). Isso é equivalente a excluir todas as regras uma por uma.

Posso obter esclarecimentos sobre o comportamento esperado?

Mike B
fonte
2
Observe que iptables -Flibera todas as regras da tabela "filter", não libera as outras tabelas (nat, mangle ...) e não restaura as políticas ao padrão, portanto, não se pode desativar o firewall .
Stéphane Chazelas

Respostas:

13

As iptablesregras são armazenadas em dois locais nos sistemas Red Hat:

  • Na memória do kernel em execução, onde o código do firewall os verifica na E / S da rede. A liberação das regras iptables -Fse livra apenas desse conjunto de regras.

  • No /etc/sysconfig/iptablesqual eles são carregados na inicialização. Você pode forçar uma recarga sem reiniciar com service iptables reloadou ...restart.

Portanto, a resposta é não, cumprir as regras iptables -Fnão é permanente.

Quando você entra setupe modifica as regras do firewall, ele as salva /etc/sysconfig/iptables. Você não deve editar esse arquivo diretamente, mas se você conhece o iptablesformato da linha de comando, pode facilmente descobrir o formato desse arquivo.

Warren Young
fonte
Resposta fantástica. Agradeço os detalhes e esclarecimentos. Obrigado Warren.
Mike B
9

Além disso, como ponto de referência, veja como liberar TODAS as regras atuais do iptables:

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables=/sbin/iptables
$iptables -F
$iptables -X
$iptables -t nat -F
$iptables -t nat -X
$iptables -t mangle -F
$iptables -t mangle -X
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT
Steve Dibb
fonte
4
Na verdade, existem mais tabelas do que isso. Pelo menos -t rawe -t security. Em vez de codificação codificada, use/proc/net/ip_tables_names
derobert