Avanti Indietro Indice

9. Mescolare NAT e filtraggio dei pacchetti

E' abbastanza comune il desiderio di effettuare sia il Network Address Translation (vedi il NAT HOWTO) che il filtraggio dei pacchetti. La buona notizia è che assieme funzionano davvero bene.

Si può realizzare il filtraggio dei pacchetti ignorando completamente qualsiasi NAT presente, in quanto le sorgenti e le destinazioni controllate dal filtro dei pacchetti sono le sorgenti e le destinazioni `reali'.

Ad esempio, se stai effettuando del DNAT per inviare tutte le connessioni dirette a 10.1.1.1 porta 8080 verso 1.2.3.4 porta 80, il filtro dei pacchetti vedrà solo dei pacchetti diretti all'indirizzo 10.1.1.1 porta 8080 (la destinazione reale), e non verso 1.2.3.4 porta 80. Allo stesso modo si può ignorare anche il mascheramento: i pacchetti sembreranno provenire dall'indirizzo IP reale (diciamo 10.1.1.1), e le risposte ritorneranno indietro lì.

Puoi usare l'estensione `state' senza obbligare il filtraggio dei pacchetti a del lavoro extra, il NAT richiede comunque il tracciamento delle connessioni. Per migliorare il semplice esempio sul mascheramento presente nel NAT HOWTO vietiamo tutte le richieste di nuova connessione che possono arrivare all'interfaccia ppp0, in questo modo:

# Mascheriamo ppp0
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# I pacchetti di tipo NEW e INVALID in ingresso (INPUT) o in transito (FORWARD) 
# non sono consentiti, ossia scartati.
iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP
iptables -A FORWARD -i ppp0 0 -m state --state NEW,INVALID -j DROP

# Abilitiamo l'IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward


Avanti Indietro Indice