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

8

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

...run the following command to disable the firewall on the current system: iptables -F

Ele usa explicitamente a palavra "desativar", o que para mim sugere que será simples reativar. Ao ler a página man, no entanto, para o iptables, vejo isto:

Flush the selected chain (all the chains in the table if none is given). This is equivalent to deleting all the rules one by one.

Posso obter esclarecimentos sobre o comportamento esperado?

    
por Mike B 21.01.2013 / 03:45

2 respostas

13

As regras iptables são armazenadas em dois lugares nos sistemas da Red Hat:

  • Na memória dentro do kernel em execução, onde o código do firewall os verifica na E / S da rede. Limpar as regras com iptables -F acaba com este conjunto de regras apenas.

  • Em /etc/sysconfig/iptables do qual eles são carregados na inicialização. Você pode forçar um recarregamento sem reinicializar com service iptables reload ou ...restart .

Então a resposta é não, liberar as regras com iptables -F não é permanente.

Quando você entra em setup e modifica as regras de firewall, ele as salva em /etc/sysconfig/iptables . Você não deve editar esse arquivo diretamente, mas se você souber o formato de linha de comando iptables , poderá facilmente descobrir o formato desse arquivo.

    
por 21.01.2013 / 03:48
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
    
por 21.01.2013 / 18:41

Tags