A Wikipédia possui um diagrama para mostrar a ordem de processamento.
Para mais detalhes, você também pode consultar a documentação do iptables, especificamente o cruzamento do capítulo de tabelas e cadeias . Que também inclui um diagrama de fluxo .
A ordem muda dependendo de como o netfilter está sendo usado (como ponte ou filtro de rede e se tem interação com a camada de aplicação).
Geralmente (embora haja mais diabo nos detalhes do capítulo acima), as cadeias são processadas como:
- Veja a cadeia INPUT como "tráfego de entrada de fora para este host".
- Veja a cadeia FORWARD como "tráfego que usa este host como um roteador" (a origem e o destino não são neste host).
- veja a cadeia OUTPUT como "tráfego que este host deseja enviar".
- PREROUTING / POSTROUTING tem usos diferentes para cada um dos tipos de tabela (por exemplo, para as tabelas nat, PREROUTING é para tráfego SNAT de entrada (encaminhado / encaminhado) e POSTROUTING é para tráfego DNAT de saída (encaminhado / encaminhado). docs para mais detalhes.
As várias tabelas são:
- O Mangle é para alterar os pacotes (Tipo de serviço, Tempo de vida, etc.) na passagem.
- Nat é colocar as regras NAT.
- Raw deve ser usado para marcação e acompanhamento de conexão.
- O filtro é para filtrar pacotes.
Então, para seus cinco cenários:
- Se o host de envio seu host com iptables, OUTPUT
- O mesmo que acima
- A cadeia FORWARD (desde que o gateway seja o host com iptables)
- Se "me" for o host com iptables, INPUT
- Observe as regras da cadeia acima (que é a regra geral) e o diagrama de fluxo (e isso também varia em o que você está tentando alcançar com o IPTables)