IPtables tem uma lista de regras e, para cada pacote, verifica a lista de regras em ordem. Uma vez encontrada uma regra que corresponda ao pacote e especifique uma política (ACCEPT, REJECT, DROP), o destino do pacote correspondente é determinado; não mais regras são examinadas.
Isso significa que a ordem em que você executa comandos é importante. Quando você usa iptables -A
, adiciona uma regra ao final da lista de regras. Assim, você terá uma lista de regras com esta aparência:
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
ACCEPT all -- anywhere anywhere
Como a regra REJECT
vem antes da regra ACCEPT
, ela é acionada primeiro e, assim, o encaminhamento não acontece.
Por isso, você precisará excluir a regra REJECT
em vez de adicionar uma regra ACCEPT
. Para excluir a regra REJECT, execute
iptables -D FORWARD -j REJECT
Para mais informações, leia o manual do iptables.