Il kernel ha tre liste di regole presenti nella tabella `filter'; queste liste sono chiamate catene del firewall (firewall chains) o giusto catene (chains). I loro nomi sono: INPUT, OUTPUT e FORWARD.
Tutto ciò ora è molto differente rispetto al funzionamento dei kernel 2.0 e 2.2!
Per i fan dell'arte ASCII, le catene adesso sono organizzate così:
_____ Ingresso / \ Uscita -->[Decisioni]-->|FORWARD|------> [di routing] \_____/ ^ | | v ____ ___ / \ / \ |OUTPUT| |INPUT| \____/ \___/ ^ | | ----> Processi locali --
I tre cerchi rappresentano le tre catene citate sopra. Quando un pacchetto arriva ad un cerchio del diagramma, questa catena lo esamina per deciderne il destino. Se la catena dice di scartare (DROP) il pacchetto, questo sarà ucciso lì, se la catena dice di accettarlo (ACCEPT), il pacchetto allora potrà continuare a percorrere il diagramma.
Una catena è una lista di regole. Ogni regola dice `se l'intestazione del pacchetto appare in questo modo, allora ecco cosa bisogna fare'. Se il pacchetto non soddisfa una certa regola, allora sarà consultata la regola successiva. Se non ci sono più regole da consultare allora il kernel, per decidere cosa fare, consulta la tattica (policy) della catena. In un sistema per la sicurezza, questa tattica in genere indica al kernel di scartare (DROP) il pacchetto.