Connection tracking con Iptables

Una delle più potenti e benvenute feature di iptables è la gestione del traffico con la consapevolezza dei flussi e delle connessioni dei protocolli usati.
Il modulo ip_conntrack di Netfilter si preoccupa di gestire le connessioni e fornire gli strumenti per poterle controllare.
In /proc/net/ip_conntrack il kernel mantiene e aggiorna in tempo reale lo stato delle connessioni gestite (il numero massimo è configurabile modificando /proc/sys/net/ipv4/ip_conntrack_max.

La gestione del traffico sulla base delle connessioni è fatta richiamando il modulo di match state che permette di dividere il traffico secondo diversi stati:
NEW - Il primo pacchetto relativo ad una nuova connessione (syn TCP o nuovo pacchetto UPD)
ESTABLISHED - Pacchetti relativi a connessioni già stabilite, in cui si è avuto almeno un pacchetto da entrambi i peer
RELATED - Pacchetti in qualche modo correlati a connessioni esistenti ed established. Ticipi esempi il traffico di dati FTP o il trasferimetno DCC in IRC.
INVALID - Pacchetti che non rientrano in alcuno dei suddetti stati, di solito vengono droppati.

Il match state risulta particolarmente comodo per gestire il "traffico di ritorno" per connessioni accettate.
Ad esempio, per permettere su un host, tutto il traffico in uscita e, in entrata, solo il traffico correlato a quanto uscito bastano regole tipo:
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
itables -I OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


Per gestire lo stato di connessione di alcuni protocolli particolari, esistono dei moduli speciali adibili sia alla gestione del connection tracking, sia al natting:
ip_conntrack_ftp - ip_nat_ftp : Conntrack e nat per FTP
ip_conntrack_h323 - ip_nat_h323 : Conntrack e nat per H323
ip_conntrack_irc - ip_nat_irc : Conntrack e nat per IRC
ip_conntrack_rtsp - ip_nat_rtsp : Conntrack e nat per IRC
ip_conntrack_tftp - ip_nat_tftp : Conntrack e nat per TFTP
ip_conntrack_rpc_tcp - ip_conntrack_rpc_udp : Conntrack per RPC

Privacy Policy