Ogni regola fà un eventuale controllo sul pacchetto da esaminare e, se il controllo è positivo, inviano il pacchetto ad una destinazione (target).
Se un pacchetto non soddisfa alcuna delle regole nella catena, la sua sorte è determinata dalla politica (policy) della catena, che indica il target cui inviare questo tipo di pacchetti.
Ogni catena è costituita da un elenco ordinato di regole.
Il target di una regola si indica con il parametro -j <target>, generalmente in fondo alla regola
Per indicare la politica di una catena si usa il parametro -P <nome_catena> <target>
Se in una regola non è indicato alcun controllo, tutti i pacchetti la soddisfano.
I target più comuni sono:
<nome_catena_utente> richiama una catena definita dall'utente
ACCEPT accetta il apcchetto; il pacchetto viene inviato a destinazione senza ulteriori controlli
REJECT rifiuta il pacchetto eventualmente con la risposta ICMP indcata nel parametro --reject-with <tipo_risposta>; il pacchetto non viene più processato da alcuna regola della catena o in nessuna altra tabella
RETURN (valido solo nelle catene definite dall'utente) continua l'esame del pacchetto con la regola della catena chiamante successiva a quella che ha chiamato questa catena
MASQUERADE (solo nella tabella nat, catena POSTROUTING) serve per impostare il NAT con interfacce con IP dinamico (modem o DHCP)
SNAT simile a MASQUERADE, si usa se l'interfaccia con l'IP pubblico ha un IP statico (o più di uno), indicando quindi l'IP da usare
DNAT (solo nella tabella nat, catene PREROUTING e OUT) modifica l'IP di destinazione di un pacchetto (serve per aprire canali verso macchine interne)
Per aggiungere una regola in fondo ad una catena si utilizza il parametro -A <nome_catena>