Linux/ Un firewall per amico (V)

Come previsto da questa settimana iniziamo a parlare della vera e propria implementazione di una macchina che funga da firewall e che nello stesso momento ci offra altri servizi utili al fine della connessione ad Internet


Questa settimana iniziamo a parlare della vera e propria
implementazione di una macchina che funga da firewall e che nello stesso momento
ci offra altri servizi utili al fine della connessione ad Internet. Alcuni
paragrafi di questo e dei futuri articoli potranno essere di ostica comprensione
a chi sia a completo digiuno del protocollo TCP/IP. Chi vuole approfondire l?argomento
?Protocolli di Rete? può mandarmi una mail al mio indirizzo di posta
elettronica. 

La configurazione tipica su cui normalmente si lavora prevede più client
connessi a una rete locale e un solo accesso ad Internet. In generale, questa tIPologia
di rete crea un problema non banale: come devono condividere l?accesso ad
Internet i vari client della rete locale? Ogni volta che ci connettiamo ad
Internet riceviamo dal nostro Internet Service Provider (ISP) un IP dinamico che
a ogni connessione può essere diverso da quello precedente. L?IP è composto
da 4 numeri separati da un punto e ogni numero assume un valore compreso tra 0 a
255 (per esempio 131.114.11.52), esso rappresenta il nostro nome a cui fanno
riferimento le altre macchine connesse ad Internet quando ci devono inviare
dati. 

Le comunicazioni attraverso Internet avvengono mediante l?utilizzo di
pacchetti, questi ultimi li possiamo paragonare a dei piccoli plichi postali che
all?interno contengono i dati che vogliamo trasmettere e all?esterno
presentano l?indirizzo completo del mittente e del destinatario (indirizzo IP)
in modo che il sistema adibito allo smistamento e consegna dei ?plichi?
possa, facilmente, consegnarlo al suo destinatario.

 

  Diagramma di una rete che utilizza il masquerading

Diagramma di una rete che utilizza il masquerading

A questo punto la domanda nasce spontanea: come faccio con un solo IP a far
navigare più computer?  NAT, ovvero condivisione dell?accesso a Internet.
Non avere un nome, ovvero un IP fisso, nella grande ragnatela di Internet,
significa non poter ricevere dati dalle altre macchine interconnesse alla rete.
E? comunque possibile dare l?accesso ad Internet a più computer attraverso
un solo IP attraverso il servizio NAT, chiamato, dai linuxiani, Masquerading,
cioè mascheramento del proprio IP. Attraverso questa funzione gli elaboratori
della rete locale possono dialogare con quelli della rete esterna (Internet),
ricevendo e trasmettendo dati, ma i computer esterni alla rete locale operano
come se comunicassero, esclusivamente, con il computer adibito a firewall per la
rete locale. In altre parole il masquerading permette di rendere invisibili gli
indirizzi IP locali alla rete esterna, eliminando il problema di utilizzare
indirizzi validi per la rete Internet. Tutte le connessioni generate dalla rete
interna verso Internet hanno come mittente, non il proprio IP, ma bensì l?IP
dinamico assegnato dall?ISP alla macchina che funge da Firewall. Anche se il
pacchetto, contenente dati, viene inviato da un client della rete locale, il
firewall prima di rigiralo verso il gateway Internet sostituisce l?IP del
mittente con il proprio. E? naturale, che il sistema che gestisce il
masquerading, sia in grado, successivamente, di distinguere quali siano stati i
veri mittenti dei pacchetti e rigirarli a loro. Tale sistema di filtro ha un
difetto. Il masquerading permette di instradare le connessione interne verso l?esterno
ma non permette ai computer ?esterni? di instradare le loro connessioni
verso gli host della rete locale. In effetti, l?utilizzo di IP privati non
permette tali operazioni. L?attivazione del filtro di masquerading avviene
attraverso regole dell?IPchains che per la loro complessità spiegheremo nella
prossima settimana. Per ora vi presento un semplice script senza
commentarvelo: 

#!/bin/sh

# forwarding

echo "1" > /proc/sys/net/IPv4/IP_forward

# firewall

IPchains -P forward DENY

IPchains -A forward -s 192.168.0.0/24 -j MASQ

# masquerading

depmod -a

modprobe IP_masq_ftp

modprobe IP_masq_raudio

modprobe IP_masq_irc

# time out

IPchains -M -S 7200 120 120

# dynamic IP

echo "1" > /proc/sys/net/IPv4/IP_dynaddr

La prossima settimana vedremo di capire meglio il funzionamento di IPchains, lo
strumento principale per la messa a punto del nostro firewall Linux.

Giuseppe Augiero

La tua email sarà utilizzata per comunicarti se qualcuno risponde al tuo commento e non sarà pubblicato. Dichiari di avere preso visione e di accettare quanto previsto dalla informativa privacy

Chiudi i commenti