NAT con iptables. Condivisione di una connessione

iptables, 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

Tags: , , ,

Leave a Reply

Per evitare la molesta presenza di commenti inviati automaticamente da programmi software e contenenti messaggi pubblicitari o di altro genere, il sito fa uso del CAPTCHA. Ricopiare il codice visualizzato nell'immagine a lato sul seguente campo di input.

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>