NAT con iptables. Condivisione di una connessione
Domenica, Agosto 30th, 2009iptables, applicazione per modificare le regole di firewalling in ambiente GNU/Linux, permette anche di attivare un sistema di NAT. La tecnica di Network Address Translation maschera gli indirizzi in ingresso ad una interfaccia di rete con l’indirizzo IP della macchina dove le regole sono impostate e li fa uscire su una interfaccia di output: in questo modo è possibile, ad esempio, condividere una connessione di rete con un’altra macchina.
Di seguito c’è uno script BASH per attivare il NAT sui pacchetti entranti nell’interfaccia di rete eth1: essi vengono inoltrati attraverso l’interfaccia eth2.
#!/bin/bash # Script che imposta le regole per effettuare NAT con un sistema GNU/Linux. IPTABLES=/sbin/iptables # Interfacce di rete interessate dal NAT IFIN=eth1 # Interfaccia di rete verso il computer locale IFOUT=eth2 # Interfaccia con accesso alla rete esterna # Regole NAT $IPTABLES -t nat -A POSTROUTING -o $IFOUT -j MASQUERADE $IPTABLES -A FORWARD -i $IFIN -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A FORWARD -i $IFIN -o $IFOUT -j ACCEPT # Abilitazione ip forwarding echo 1 > /proc/sys/net/ipv4/ip_forward
L’ultimo passo, da effettuare sul client che sfrutta il NAT, consiste nella modifica della tabella di routing. Da utente root basta eseguire da shell la seguente istruzione dove ip_address è l’indirizzo dell’host dove sono attive le regole di NAT.
alice:/# route add default gw ip_address

