Repository 32bit  Forum
Repository 64bit  Wiki

Masquerading e Firewall: differenze tra le versioni

Da Slacky.eu.
(Firewall)
 
(5 revisioni intermedie di un utente non mostrate)
Riga 105: Riga 105:
= Firewall =
= Firewall =
Per realizzare lo script di firewall useremo Guarddog.
+
Per realizzare lo script di firewall useremo [http://www.simonzone.com/software/guarddog/ Guarddog.]
Si tratta di un programma che effettua una suddivisione dei PC in gruppi o "zone" dando la possibilit� di stabilire quali protocolli sono permessi tra le varie zone.
+
Si tratta di un programma che effettua una suddivisione dei PC in gruppi o "zone" dando la possibilità di stabilire quali protocolli sono permessi tra le varie zone.
Oltre alle due zone definite di default, locale ed Internet, si puo definire una zona LAN inserendo tutti gli indirizzi 192.168.0.0/255.255.255.0 e definendo che tale zona debba essere collegata alla zona Internet.
+
Oltre alle due zone definite di default, ''locale'' ed ''Internet'', si puo definire una zona ''LAN'' inserendo tutti gli indirizzi 192.168.0.0/255.255.255.0 e definendo che tale zona debba essere collegata alla zona ''Internet''.
E' opportuno definire anche una zona "Serverdifiducia" in cui metteremo tutti i server di posta, news etc che utilizziamo di norma. Per questa zona abilitiamo il collegamento con la zona Locale e LAN solo per i protocolli che ci interessano (POP, IMAP etc)2.
+
E' opportuno definire anche una zona ''"Serverdifiducia"'' in cui metteremo tutti i server di posta, news etc che utilizziamo di norma. Per questa zona abilitiamo il collegamento con la zona Locale e LAN solo per i protocolli che ci interessano (POP, IMAP etc - Nella linguetta "Protocollo" scorrete sulla destra con il mouse per vedere quali protocolli dovete abilitare e con quali zone.).
Vi rimando al manuale per i dettagli.
+
Vi rimando al [http://www.simonzone.com/software/guarddog/manual2/index.html manuale] per i dettagli.
ATTENZIONE:�disinstallate ipchains che normalmente installato su Slackware. Ipchains veniva usato al posto di iptables con il kernel 2.2.X ma potrebbe interagire con iptables e dare problemi.
+
'''ATTENZIONE:''' disinstallate ipchains che normalmente è installato su Slackware. Ipchains veniva usato al posto di iptables con il kernel 2.2.X ma potrebbe interagire con iptables e dare problemi.
Una volta salvato il tutto Guarddog genera un file rc.firewall in /etc.
Una volta salvato il tutto Guarddog genera un file rc.firewall in /etc.
Vi allego il mio rc.firewall; potreste metterlo in /etc ed aprire guarddog. In tal modo potreste partire dalla mia configurazione e personalizzarla per le vostre esigenze.
+
Vi allego il mio [http://www.slacky.it/tutorial/firewall/rc.firewall rc.firewall]; potreste metterlo in /etc ed aprire guarddog. In tal modo potreste partire dalla mia configurazione e personalizzarla per le vostre esigenze.
Per poter eseguire rc.firewall ogni qualvolta si avvia il collegamento dialup basta fare un link simbolico:
Per poter eseguire rc.firewall ogni qualvolta si avvia il collegamento dialup basta fare un link simbolico:
�ln -s /etc/rc.firewall /etc/ppp/firewall-standalone
+
<pre> ln -s /etc/rc.firewall /etc/ppp/firewall-standalone </pre>
 
e lanciare firewall-standalone da ip-up che diventer� quindi il seguente:
 
  +
e lanciare firewall-standalone da ip-up che diventerà quindi il seguente:
  +
<pre>
#!/bin/sh
#!/bin/sh
#
#
Riga 131: Riga 133:
# by Tongiu
# by Tongiu
# Se�esiste�un firewall lo�esegue
+
# Se esiste un firewall lo esegue
# uso guarddog facendo un link simbolico
# uso guarddog facendo un link simbolico
# firewall-standalone -> /etc/rc.firewall
# firewall-standalone -> /etc/rc.firewall
if [ -x /etc/ppp/firewall-standalone ]; then
if [ -x /etc/ppp/firewall-standalone ]; then
echo "Activating Guarddog firewall."
+
echo "Activating Guarddog firewall."
/etc/ppp/firewall-standalone 2> /dev/null
+
/etc/ppp/firewall-standalone 2> /dev/null
fi
fi
# Se�esiste�un NAT lo�esegue
+
# Se esiste un NAT lo esegue
if [�-x /etc/ppp/firewall-masq ]; then
+
if [ -x /etc/ppp/firewall-masq ]; then
echo "Activating NAT"
+
echo "Activating NAT"
/etc/ppp/firewall-masq
+
/etc/ppp/firewall-masq
fi
fi
  +
</pre>
  +
Attenzione al fatto che il firewall deve essere lanciato PRIMA del NAT in quanto rc.firewall azzera tutte le regole precedentemente impostate (e quindi annullerebbe il NAT). A questo punto all'avvio di ppp (e quindi della connessione dialup) verranno impostate le regole di iptables per il firewall e per la condivisione della connessione da parte di tutta la LAN.
Attenzione al fatto che il firewall deve essere lanciato PRIMA del NAT in quanto rc.firewall azzera tutte le regole precedentemente impostate (e quindi annullerebbe il NAT).
+
Al termine della connessione invece, tutte le regole verranno azzerate.
A questo punto all'avvio di ppp (e quindi della connessione dialup) verranno impostate le regole di iptables per il firewall e per la condivisione della connessione da parte di tutta la LAN.
 
 
Al termine della connessione invece, tutte le regole verranno azzerate.
 
 
P.S: se volte vedere chi cerca di introdursi nel vostro amato PC nella linguetta Accesso di Guarddog abilitate Registra pacchetti bloccati e Registra pacchetti respinti
+
P.S: se volte vedere chi cerca di introdursi nel vostro amato PC nella linguetta Accesso di Guarddog abilitate '''Registra pacchetti bloccati''' e '''Registra pacchetti respinti''' ed andate a vedere /var/log/syslog mentre navigate in internet (da root: tail -f /var/log/syslog).

Versione attuale delle 21:45, 10 set 2006


Indice

[modifica] Introduzione

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

[modifica] 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)

[modifica] 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.

[modifica] Firewall

Per realizzare lo script di firewall useremo Guarddog.

Si tratta di un programma che effettua una suddivisione dei PC in gruppi o "zone" dando la possibilità di stabilire quali protocolli sono permessi tra le varie zone.

Oltre alle due zone definite di default, locale ed Internet, si puo definire una zona LAN inserendo tutti gli indirizzi 192.168.0.0/255.255.255.0 e definendo che tale zona debba essere collegata alla zona Internet.

E' opportuno definire anche una zona "Serverdifiducia" in cui metteremo tutti i server di posta, news etc che utilizziamo di norma. Per questa zona abilitiamo il collegamento con la zona Locale e LAN solo per i protocolli che ci interessano (POP, IMAP etc - Nella linguetta "Protocollo" scorrete sulla destra con il mouse per vedere quali protocolli dovete abilitare e con quali zone.).

Vi rimando al manuale per i dettagli.

ATTENZIONE: disinstallate ipchains che normalmente è installato su Slackware. Ipchains veniva usato al posto di iptables con il kernel 2.2.X ma potrebbe interagire con iptables e dare problemi.

Una volta salvato il tutto Guarddog genera un file rc.firewall in /etc.

Vi allego il mio rc.firewall; potreste metterlo in /etc ed aprire guarddog. In tal modo potreste partire dalla mia configurazione e personalizzarla per le vostre esigenze.

Per poter eseguire rc.firewall ogni qualvolta si avvia il collegamento dialup basta fare un link simbolico:

 ln -s /etc/rc.firewall /etc/ppp/firewall-standalone 

e lanciare firewall-standalone da ip-up che diventerà quindi il seguente:

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

# Se esiste un firewall lo esegue
# uso guarddog facendo un link simbolico
# firewall-standalone -> /etc/rc.firewall

if [ -x /etc/ppp/firewall-standalone ]; then
  echo "Activating Guarddog firewall."
 /etc/ppp/firewall-standalone 2> /dev/null
fi

# Se esiste un NAT lo esegue
if [ -x /etc/ppp/firewall-masq ]; then
 echo "Activating NAT"
 /etc/ppp/firewall-masq
fi

Attenzione al fatto che il firewall deve essere lanciato PRIMA del NAT in quanto rc.firewall azzera tutte le regole precedentemente impostate (e quindi annullerebbe il NAT). A questo punto all'avvio di ppp (e quindi della connessione dialup) verranno impostate le regole di iptables per il firewall e per la condivisione della connessione da parte di tutta la LAN.

Al termine della connessione invece, tutte le regole verranno azzerate.


P.S: se volte vedere chi cerca di introdursi nel vostro amato PC nella linguetta Accesso di Guarddog abilitate Registra pacchetti bloccati e Registra pacchetti respinti ed andate a vedere /var/log/syslog mentre navigate in internet (da root: tail -f /var/log/syslog).

Strumenti personali
Namespace

Varianti