Qual é a diferença entre iptables -X e iptables -F?

5

Em muitos exemplos, vejo os seguintes 2 comandos consecutivos:

iptables -F
iptables -X

Na página man, não consigo descobrir a diferença entre liberar e excluir. Existe diferença entre esses dois?

    
por Stéphane 03.01.2015 / 19:58

2 respostas

7

Para todas as cadeias você pode -F:

+---------------+       +---------------+
|               |       |               |
| Chain MyChain |       | Chain MyChain |
|     Rule 1    |  -F   |      is       |
|     Rule 2    |       |     empty     |
|     Rule 3    |  ==>  |               |
|               |       |               |
+---------------+       +---------------+

Somente para cadeias definidas pelo usuário (cadeia criada com iptables -N MyChain) você pode -X se estiver vazio:

+---------------+
|               |
| Chain MyChain |         Chain MyChain
|      is       |  -X      does not exist
|     empty     |
|               |  ==>
|               |
+---------------+

Ambos

iptables -F
iptables -X

são usados porque é possível excluir uma cadeia definida pelo usuário somente quando ela está vazia. Correntes internas não podem ser excluídas, mas podem ser liberadas.

    
por 04.01.2015 / 13:05
4

iptables -F libera as regras de uma cadeia.

link

-F, --flush [chain] 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.

iptables -X exclui uma cadeia.

link

-X, --delete-chain [chain] Delete the optional user-defined chain specified. There must be no references to the chain. If there are, you must delete or replace the referring rules before the chain can be deleted. The chain must be empty, i.e. not contain any rules. If no argument is given, it will attempt to delete every non-builtin chain in the table.

    
por 03.01.2015 / 20:21

Tags