Come utilizzare iptables per configurare il nat di una porta su Linux

Iptables è un applicativo che consente di utilizzare un sistema operativo Linux come un firewall. Una delle operazioni che si possono configurare è il NAT di una porta tcp. Vediamo come.

Poco tempo fa ho avuto la necessità di dover accedere ad un servizio CVS in ufficio utilizzando una linea adsl differente da quella standard, per una questione di maggiore velocità di trasmissione dei dati. Non volendo modificare nulla sul server che ospitava il servizio, ho deciso di sfruttare una regola iptables su un secondo server, utilizzandolo di fatto come tramite per raggiungere il servizio dalla linea veloce. Ho quindi configurato una regola di NAT che girava la porta 2401 del nuovo server verso quello dove risiedeva il servizio cvs. Di seguito elenco i passaggi necessari:

  • abilitazione del IP Forwarding: per abilitarlo senza dover riavviare il sistema si può usare il comando
    sysctl -w net.ipv4.ip_forward=1
    ma per rendere definitiva la modifica si deve impostare a 1 la variabile net.ipv4.ip_forward nel file /etc/sysctl.conf;
  • creare le regole iptables per effettuare il nat ed eseguirle una dopo l’altra per applicarle:/sbin/iptables -t nat -A POSTROUTING –out-interface eth0 -j MASQUERADE
    /sbin/iptables -A FORWARD -p tcp -i eth0 -d 192.168.9.242 –dport 2401 -j ACCEPT
    /sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d 192.168.9.156 –dport 2401 -j DNAT –to192.168.9.242:2401

    dove  192.168.9.242 è il server su cui gira il servizio CVS, 192.168.9.156 è il server che fa da tramite e 2401 è la porta configurata per il NAT;

  • caricare le regole iptables allo startup del server: salvo le regole attuali sul file /etc/iptables.rulessudo sh -c “iptables-save -c > /etc/iptables.rules”

    poi configuro il caricamento delle stesse all’avvio dell’interfaccia di rete (in questo caso il sistema operativo è Ubuntu, quindi modifico il file /etc/network/interfaces)

    auto eth0 iface
    eth0 inet dhcp
    pre-up iptables-restore < /etc/iptables.rule

A questo punto ho configurato un NAT della porta 2401 attraverso il server di appoggio.

 


 

Lascia un commento