No arquivo man do iptables existe uma opção -S
S, --list-rules [chain]
Print all rules in the selected chain. If no chain is selected, all chains are printed like iptables-save. Like every other iptables
command, it applies to the specified table (filter is the default).
Usando iptables -S | grep <CHAINNAMEHERE>
. Por exemplo:
root@root:~# iptables -S | grep TRAFFICLOG
-N TRAFFICLOG
-A FORWARD -i eth0 -j TRAFFICLOG
você pode ver quais regras estão bloqueando a exclusão da cadeia da tabela. Percorra cada regra (exceto iptables -N <CHAINNAMEHERE>
e exclua a regra usando a opção -D
-D, --delete chain rulenum
Delete one or more rules from the selected chain. There are two versions of this command: the rule can be specified as a number in the
chain (starting at 1 for the first rule) or a rule to match.
Por exemplo, iptables -D FORWARD -i eth0 -j TRAFFICLOG
. Depois de ter excluído cada regra para sua cadeia, elimine a cadeia com a opção -F
, iptables -F <CHAINNAMEHERE>
.
-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.
Em seguida, exclua sua cadeia com a opção -X
, iptables -X <CHAINNAMEHERE>
-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.
O Iptables é um conjunto de ferramentas complicado, por isso é necessário um tutorial ideal. Você pode experimentar um em www.iptables.info