Ogni regola deve indicare a quali pacchetti si applica. I controlli più comuni sono:
L'interfaccia attraverso cui è entrato il pacchetto, che si indica con il parametro -i <nome_interfaccia>
L'interfaccia dalla quale uscirà il pacchetto con il parametro -o <nome_interfaccia>
L'IP o la rete del mittente con il parametro -s <ip_mittente>[/<bit_rete>]
L'IP o la rete del destinatario con il parametro -d <ip_dest>[/<bit_rete>]
Il protocollo con l'opzione -p <protocollo>; il protocollo può essere:
TCP nel qual caso posso indicare la porta di provenienza con --source-port <n_porta> e la porta di destinazione con --destination-port <n_porta>
UDP nel qual caso posso indicare la porta di provenienza con --source-port <n_porta> e la porta di destinazione con --destination-port <n_porta>
ICMP nel qual caso posso indicare un particolare tipo di pacchetto ICMP tramite il parametro --icmp-type <nome_pacchetto_icmp>
Un utile condizione individua i pacchetti appartenenti ad una connessione aperta o le connessioni secondarie di alcuni protocolli: --state ESTABLISHED, RELATED
tutte le condizioni possono essere invertite inserendo prima della condizione il carattere !
Naturalmente una regola può contenere un numero a piacere di condizioni
La regola sarà soddisfatta solo se tutte le condizioni indicate sono soddisfatte