Repository 32bit  Forum
Repository 64bit  Wiki

Masquerading e Firewall

Da Slacky.eu.

In questo tutorial spiegherò come ho attivato il masquerading ed il firewall sul mio PC di casa con collegamento dialup ad internet.

Situazione

La situazione casalinga in esame è quella cui è presente un PC desktop con:

  • modem per il collegament ad internet
  • scheda di rete collegata ad un hub su cui collegare uno o più computer portatili (LAN)

L'obiettivo è quello di configurare il desktop come router in maniera da condividere la connessione ad internet per qualsiasi computer connesso alla LAN (Masquerading). Il router (desktop) deve essere configurato inoltre, come firewall per bloccare eventuali intrusione sul router stesso e su qualsiasi computer della LAN.

Tutti i PC della LAN si considerano "di fiducia" e pertanto il firewall non agirà sulle connessioni tra i PC della LAN stessa.

Si supporrà che la LAN sia già configurata a dovere e funzionante. Gli indirizzi IP sono i seguenti:

  • 192.168.0.1 (Router/firewall)
  • 192.168.0.0/255.255.255.0 (vari PC connessi alla LAN)

Masquerading

Per masquerading si intende il processo secondo cui il PC configurato come router riceve le richieste dei PC della LAN e le indirizza verso internet. Per fare ciò "traduce" l'indirizzo IP del PC di provenienza sostituendolo con il proprio IP verso internet (ad esempio 192.168.0.2 -> 62.98.230.5).

I pacchetti "di ritorno" provenienti da internet vengono ricevuti e inviati al PC richiedente previa sostituzione, da parte del router, dell'IP di destinazione con quello del PC richiedente appartenente alla LAN (ad es. 62.98.230.5 -> 192.168.0.2).

Questo processo si chiama NAT (Network Address Translation). Non voglio certo entrare in dettaglio su come questo avvenga. A questi indirizzi:

potete trovare una valida lettura.

Basti sapere che questo processo può essere effettuato con iptables (man iptables) mediante uno script che deve essere lanciato ogni volta che si instaura la connessione dialup.

Per fare questo basta creare un file:

 /etc/ppp/ip-up 

Questo file viene eseguito all'avvio delle connessione e deve essere come il seguente:

#! /bin/sh
#
# /etc/ppp/ip-up
#
# by tongiu
# Se esiste un NAT lo esegue
# do masquerading c'è anche in rc.inet2 comunque lo ripeto qui
if [ -f /proc/sys/net/ipv4/ip_forward ]; then
echo "Activating IPv4 packet forwardint."
echo 1 > /proc/sys/net/ipv4/ip_forward
fi

echo "Setting up NAT (Network Address Translation)..."
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTOUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQURADE

# generera log in /var/log/syslog per ogni richiesta
# iptables -t nat -A POSTROUTING -j LOG --log-prefix "IPTABLES NAT :" --log-level 1

il file ip-up verrà integrato in seguito, in maniera da lanciare il firewall assieme al NAT. Dopo avere salvato i files ricordatevi di renderli eseguibili con:

chmod +x /etc/ppp/ip-up
chmod +x /etc/ppp/firewall-masq

Si dovrà creare poi un file /etc/ppp/ip-down che verrà eseguito non appena la connessione ad internet viene interrotta:

#!/bin/sh
#
# /etc/ppp/ip-down
#
# by Tongiu

# Delete any existing chains
/usr/sbin/iptables -F
/usr/sbin/iptables -X


Collegatevi adesso ad internet e dovreste riuscire a scaricare la posta ed a navigare da qualsiasi PC della LAN ( qualora il tutto non funzioni assicuratevi che sia stato specificato il gateway nella configurazione di rete. Nel file /etc/rc.d/rc.inet1 assicuratevi che si siano le linee:

# Edit the next line to point to your gateway:
GATEWAY="192.168.0.1" #REPLACE with your gateway!

Per verificare che tutto funzioni potreste provare a fare (durante la connessione):

 /usr/sbin/iptables -L 

dovreste vedere tutte le regole definite (INPUT FORWARD OUTPUT) non vuote.

Firewall

Strumenti personali
Namespace

Varianti