Configurare la condivisione della connessione a Internet

3128787858Volete configurare sul vostro router Linux la condivisione della connessione a Internet?Avete una o più reti locali che utilizzano indirizzi IP privati e non avete bisogno di utilizzare un firewall;usate questo script iptables:

 

 

 

#!/bin/sh
##/usr/local/bin/nat_share
#minimal iptables script for
#sharing an Internet connection
#define variables
ipt="/sbin/iptables"
mod="/sbin/modprobe"
WAN_IFACE="eth1"
#load kernel modules
$mod ip_tables
$mod iptable_filter
$mod iptable_nat
$mod ip_conntrack
$mod iptable_mangle
$mod ipt_MASQUERADE
$mod ip_nat_ftp
$mod ip_nat_irc
$mod ip_conntrack_ftp
$mod ip_conntrack_irc
#Flush all active rules and delete all custom chains
$ipt -F
$ipt -t nat -F
$ipt -t mangle -F
$ipt -X
$ipt -t nat -X
$ipt -t mangle -X
#Set default policies
$ipt -P INPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -P OUTPUT ACCEPT
$ipt -t nat -P OUTPUT ACCEPT
$ipt -t nat -P PREROUTING ACCEPT
$ipt -t nat -P POSTROUTING ACCEPT
$ipt -t mangle -P PREROUTING ACCEPT
$ipt -t mangle -P POSTROUTING ACCEPT
#always have an entry for interface lo
$ipt -A INPUT -i lo -j ACCEPT
$ipt -A OUTPUT -i lo -j ACCEPT
#rewrite source addresses to WAN address
$ipt -t nat -A POSTROUTING -o $WAN_IFACE -j SNAT --to-source 22.33.44.55

Naturalmente dovrete sostituire i vostri nomi di interfaccia e i vostri indirizzi IP.Se non avete un indirizzo IP statico per la LAN e lo caricate da DHCP,usate questa riga:

 

#Enable IP masquerading
$ipt -t nat -A POSTROUTING -o $WAN_IFACE -j MASQUERADE

 

Questo script non implementa nessun tipo di protezione (non effettua,cioè,nessun tipo di filtraggio di pacchetti),ma si occupa di tradurre gli indirizzi privati delle macchine sulla LAN in quello della WAN e viceversa.Questo script è il più semplice possibile,i moduli del kernel indicati sono tutti obbligatori.Potete semplificare lo script compilando un kernel personalizzato che li comprenda,invece di caricarli dinamicamente.Potete anche inserire la parte relativa all’azzeramento delle regole e delle catene iptables in uno script separato.E’ importante che iptables parta con uno stato pulito e stabile in modo che non ci siano interferenze da eventuali regole o catene inutili.Dovrete avere anche le corrette politiche di default,altrimenti potreste avere risultati inaspettati.L’ultima riga dello script è quella che rende effettivamente condivisibile la connessione ad Internet.

La condivisione di questa ricetta è completamente insicura,usatela quindi solo per effettuare dei test e quando avete un firewall altrove.Potreste utlizzare,per esempio,un firewall per ciascuna rete locale,oppure vun firewall per la DMZ e un altro per la LAN.

I comandi di routing permettono di implementare molte delle funzionalità tipiche di iptables,ma è meglio non usarle e lasciare al firewall il compito di proteggere la rete.Il comando ip ,per esempio,dispone di opzioni per configurare il NAT,ma sono complicate e piene di trabocchetti.iptables permette di gestire il NAT con più facilità e con meno pericoli di commettere errori.Come regola generale,usate il router solo per effettuare routing e il firewall iptables per effettuare il filtraggio dei pacchetti.