Logica di attraversamento di iptables
Il kernel gestisce ogni pacchetto secondo logiche e seguenze ben precise, che determinano il modo con cui vanno processate, e configurate, le iptables.
Pacchetti destinati al sistema locale
1 - Un pacchetto entra da una interfaccia (es: eth0)
2 - Attraversa la tabella/catena mangle / PREROUTING (set TOS ecc)
3 - Attraversa la tabella/catena nat / PREROUTING (DNAT)
4 - Viene fatta la decisione di routing sulla base dell'IP destinazione attuale.
5 - Attraversa la tabella/catena mangle / INPUT
6 - Attraversa la tabella/catena filter / INPUT
7 - Viene processato da una applicazione locale (in userland)
Pacchetti in uscita dal sistema locale
1 - Il pacchetto viene processato/generato da una applicazione locale
2 - Il kernel decide dove routare, sulla base dell'IP destinazione.
3 - Attraversa la tabella/catena mangle / OUTPUT
4 - Attraversa la tabella/catena nat / OUTPUT
5 - Attraversa la tabella/catena filter / OUTPUT
6 - Attraversa la tabella/catena mangle / POSTROUTING
7 - Attraversa la tabella/catena nat / POSTROUTING (SNAT)
8 - Esce dall'interfaccia per raggiungere la sua destinazione (es: eth1)
Pacchetti che attraversano il firewall
1 - Un pacchetto entra da una interfaccia (es: eth0)
2 - Attraversa la tabella/catena mangle / PREROUTING
3 - Attraversa la tabella/catena nat / PREROUTING
4 - Viene routato verso l'IP di destinazione (in questo caso remoto).
5 - Attraversa la tabella/catena mangle / FORWARD
6 - Attraversa la tabella/catena filter / FORWARD
7 - Attraversa la tabella/catena mangle / POSTROUTING
8 - Attraversa la tabella/catena nat / POSTROUTING
9 - Esce dall'interfaccia per raggiungere la sua destinazione (es: eth1)