Repository 32bit  Forum
Repository 64bit  Wiki

Masquerading e Firewall

Da Slacky.eu.
Versione delle 20:34, 10 set 2006, autore: Darkside04 (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)


In quessto 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
Strumenti personali
Namespace

Varianti