Home Mappa Indice Ricerca News Archivi Link A proposito di LF
[Barra superiore]
[Barra inferiore]
[an error occurred while processing this directive]
[Foto dell'autore]
di Guido Socher

Notizie sull'autore:

Guido è un fan di Linux da molto tempo. La sua pagina di Linux si trova qui: www.oche.de/~bearix/g/.

Contenuto:

Configurare il Mascheramento IP

[Illustrazione]

Sommario:

Il Mascheramento IP da la possibilità di connettere più computer ad Internet usando un computer con Linux con un solo indirizzo IP pubblico. Questo vuol dire che si può connettere un'intera rete privata ad Internet, e che il vostro provider continua a credere che vi state connettendo con un solo computer. Questo articolo spiega come configurare il Mascheramento con un kernel 2.2.x. Non spiega come metter su una rete. Per avere un'idea sulle reti si raccomanda di leggere l'articolo sul numero di Gennaio 2000 sulle reti domestiche.



 

Generalità

Per usare il Mascheramento come spiegato in questo articolo vi occorre almeno una macchina Linux con un kernel 2.2.x. Questa macchina viene usata per configurare la connessione ad Internet. Usare Linux per la condivisione non vuol dire che occorrerà usare Linux in tutta la vostra rete interna. Infatti, Linux funzionerà bene anche con Windows, Mac e altre varianti di Unix.
In questo articolo ci occuperemo solo di questa macchina per la condivisione della connessione. Essa da una parte si connette ad Internet e dall'altra alla votra rete locale. La macchina avrà pertanto almeno due interfacce ed anche almeno due indirizzi IP. Uno degli indirizzi IP è pubblico e può essere usato per l'instradamento su Internet. Questo indirizzo di solito vi viene assegnato dal provider nell'istante in cui attivate la connessione via modem (o qualsiasi altra usiate). Gli altri indirizzi IP sono provati e possono essere assegnati a scelta fra i seguenti intervalli:

Questo articolo non spiega come configurare la vostra rete. Si assume che che la vostra rete locale sia già installata e configurata.  

I principi del Mascheramento IP

Essenzialmente il mascheramento traduce gli indirizzi IP interni in indirizzi esterni. Quest'operazione viene chiamata traduzione degli indirizzi di rete e Linux la effettua usando i numeri di porta. Dal mondo esterno, tutte le connessioni sembreranno aver origine dalla macchina Linux che effettua il mascheramento. Potete trovare una spiegazione dettagliata nel numero di Gennaio.

Talvolta i pacchetti IP sono di tipo particolare e il Mascheramento potrebbe non funzionare per tutte le applicazioni, ma nella maggior parte dei casi va bene. Ci sono moduli per ICQ, ftp, e quake che devono essere caricati nel kernel per far funzionare correttamente quelle particolari applicazioni dalla rete interna. In generale, comunque, tutto ciò che usi solo HTTP (browser web), telnet, ssh, o smtp (email) funzionerà senza problemi.  

Configurazione del Kernel

Le persone che usano un kernel preconfezionato da una delle principali distribuzioni di Linux (Redhat, Mandrake, Debian, Suse...) possono saltare questo capitolo in quanto il loro kernel supporta già il mascheramento IP.

Di solito io faccio una copia di /usr/src/linux/.config dopo aver compilato un kernel ben funzionante. La volta successiva che mi occorre compilare un kernel riparto da questa configurazione; in questo modo è relativamente semplice configurare modifiche minori come il mascheramento IP.

Per usare il masceramento IP rispondete 'yes' alle domande seguenti in fase di configurazione del kernel. Queste componenti sono quelle che servono specificamente per il mascheramento, quindi selezionate anche tutte le altre opzioni che occorrono al vostro particolare sistema.

 

Configurazione del mascheramento IP

Scriveremo un piccolo script per automatizzare la configurazione del Mascheramento IP. Dovreste mettere lo script seguente in /etc/rc.d/init.d/ chiamandolo ipmasq. Cambiatene i permessi con chmod 755 ipmasq per renderlo eseguibile. Tale script assume che abbiate usato l'indirizzo IP statico 192.168.0.1 sull'interfaccia verso la vostra rete inetrna (ifconfig eth0 192.168.0.1 netmask 255.255.255.0). Modificate lo script se state usando altri indirizzi. Questa immagine mostra la pianificazione della rete che stiamo usando.
pianificazione della rete
#!/bin/sh
echo "Setting up IP masquerading ..."
# People still using windows to surf the web must convert this
# to a UNIX text file before using it.
#
# Support masquerading of FTP file transfer.
/sbin/modprobe ip_masq_ftp
#
#--------------
# Note: the modules below are commented out from loading. Remove the
# comment sign if you want to use the corresponding applications form
# one of the computers inside your internal network.
#
# Support masquerading of RealAudio over UDP. 
#/sbin/modprobe ip_masq_raudio
#
# Supports the masquerading of IRC DCC file transfers
#/sbin/modprobe ip_masq_irc
#
# Support masquerading of Quake and QuakeWorld 
# Quake I / QuakeWorld (ports 26000 and 27000)
#/sbin/modprobe ip_masq_quake
#
# Quake I/II/III / QuakeWorld (ports 26000, 27000, 27910, 27960)
#/sbin/modprobe ip_masq_quake ports=26000,27000,27910,27960
#
# Support masquerading of the CuSeeme video conferencing software
#/sbin/modprobe ip_masq_cuseeme
#
#Support masquerading of the VDO-live video conferencing software
#/sbin/modprobe ip_masq_vdolive
#--------------
# Important: Enable IP forwarding. It is disabled by default in
# the 2.2.x Kernels
echo "1" > /proc/sys/net/ipv4/ip_forward
#
# NOTE: This is an example for an internal Network address of
# 192.168.0.x The sub netmask is 255.255.255.0 or "24" bit
# Please change this if you use different internal IP addresses.
#
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ
#
#--- end of file
Per provarlo assicuratevi di aver configurato tutti i vostri computer nella rete interna in modo che abbiano un instradamento sul gateway predefinito (!!!) 192.168.0.1 (la macchina linux che opera il mascheramento). Quindi eseguite lo script come root su tale macchina. Fatto questo mandate un ping da una delle macchine interne alla rete ad un sito esterno (per esempio, ping 195.53.25.18)
Se questo funziona allora funziona anche il mascheramento. Provate anche ping www.linuxfocus.org Questo dovrebbe dare un risultato analogo al precedente ping. Se non funziona, controllate il file /etc/resolv.conf sulle vostre macchine client. Dovrebbe esistere su ogni computer interno alla rete e dovrebbe elencare i server DNS del vostro provider.
Con i client Windows Windows 9x-Clients occorre configurare lo stack TCP/IP della scheda di rete e va attivato il DNS aggiungendo gli indirizzi dei server DNS del vostro provider nel dialogo 'Ordine di ricerca dei server DNS'.
Quando i ping funzioneranno, funzionerà anche tutto il resto (p.e. la navigazione web).

A questo punto occorre far si che lo script /etc/rc.d/init.d/ipmasq venga eseguito automaticamente ogni volta che si riavvia la macchina Linux per la connessione. Il modo migliore per farlo è, secondo l'autore, modificare il file /etc/rc.d/init.d/network file (che dovrebbe già esistere) ed eseguire /etc/rc.d/init.d/ipmasq ALLA FINE della sezione di avvio nel file init.d/network. Cercate un comando case e l'annesso ramo "start)".  

Conclusioni

Come si è visto non è difficile configurare il mascheramento IP. Essenzialmente si tratta di abilitare l'instradamento dei pacchetti IP (forwarding) e di due comandi ipchains. Il mascheramento è un'applicazione molto potente per piccole reti domestiche, per le scuole o per piccole reti aziendali...

Per ulteriori e più dettagliate informazioni si raccomanda la lettura dell'IP-Masquerading mini howto e dell'IPCHAINS-HOWTO.

Per usare il mascheramento ovviamente occorre avere una rete configurata correttamente. Questo non è trattato in questo articolo. L'articolo sulle Reti Domestiche vi darà un'introduzione, mentre il Net 3 howto o la Network Administrator Guide spiegano in dettaglio come impiantare una rete. Io stesso ho in programma la scrittura di un altro articolo sulle reti entro quest'anno, ma sicuramente non vorrete aspettare così tanto :-)

 

Commenti per questo articolo

Ogni articolo ha la sua pagina dei commenti. Su questa pagina è possibile inviare un commento o leggere i commenti degli altri lettori:
 Pagina dei commenti 

Pagine web mantenute dal Team degli Editori di LinuxFocus
© Guido Socher
LinuxFocus.org 2000

Clicca qui per segnalare un errore o per inviare un commento a Linuxfocus
Informazioni sulla traduzione:
en -> -- Guido Socher
en -> it Antonio Schifano

2000-05-23, generated by lfparser version 1.5