Condividere la connessione a internet: differenze tra le versioni

corretta gerarchia titoli
Nessun oggetto della modifica
(corretta gerarchia titoli)
Riga 1: Riga 1:
{{Versioni compatibili|Tutte le versioni di Debian}}
{{Versioni compatibili|Tutte le versioni di Debian}}


=Premessa=
== Premessa ==
Oggi che la maggior parte degli utenti domestici ha la possibilità di accedere ad Internet con connessioni a [http://it.wikipedia.org/wiki/Larghezza_di_banda banda] larga (ad esempio [http://it.wikipedia.org/wiki/ADSL ADSL]) e che è sempre più frequente avere a disposizione almeno un paio di computer, si avverte la necessità di poter condividere la connessione tra i vari computer della nostra rete domestica.
Oggi che la maggior parte degli utenti domestici ha la possibilità di accedere ad Internet con connessioni a [http://it.wikipedia.org/wiki/Larghezza_di_banda banda] larga (ad esempio [http://it.wikipedia.org/wiki/ADSL ADSL]) e che è sempre più frequente avere a disposizione almeno un paio di computer, si avverte la necessità di poter condividere la connessione tra i vari computer della nostra rete domestica.


GNU/Linux è probabilmente la scelta più indicata in questi frangenti, essendo un sistema operativo nato espressamente in ambiente di rete: moltissimi dei [http://it.wikipedia.org/wiki/Router router] sul mercato fanno uso di GNU/Linux come sistema operativo, perché non farlo anche noi?
GNU/Linux è probabilmente la scelta più indicata in questi frangenti, essendo un sistema operativo nato espressamente in ambiente di rete: moltissimi dei [http://it.wikipedia.org/wiki/Router router] sul mercato fanno uso di GNU/Linux come sistema operativo, perché non farlo anche noi?


=Prerequisiti=
== Prerequisiti ==
Tutto quello di cui abbiamo bisogno è la nostra Debian, una scheda di rete per ciascun PC da collegare alla rete locale ed un hub o switch.
Tutto quello di cui abbiamo bisogno è la nostra Debian, una scheda di rete per ciascun PC da collegare alla rete locale ed un hub o switch.


Riga 13: Riga 13:
Per fare in modo che Debian si comporti come un router avremo bisogno anche di ''iptables''. Vi rimando alla guida [[Debian e iptables]] per la sua corretta installazione e configurazione.
Per fare in modo che Debian si comporti come un router avremo bisogno anche di ''iptables''. Vi rimando alla guida [[Debian e iptables]] per la sua corretta installazione e configurazione.


=Configurazione Router=
== Configurazione Router ==
Per fare in modo che Debian faccia da [http://it.wikipedia.org/wiki/Gateway gateway] tra i PC della LAN e internet dobbiamo utilizzare il [http://it.wikipedia.org/wiki/Network_address_translation NAT] ''(Network Address Translation)''.<br>
Per fare in modo che Debian faccia da [http://it.wikipedia.org/wiki/Gateway gateway] tra i PC della LAN e internet dobbiamo utilizzare il [http://it.wikipedia.org/wiki/Network_address_translation NAT] ''(Network Address Translation)''.<br>
Il tipo di NAT che ci interessa in questa guida è chiamato '''masquerading''' ''(mascheramento)'' degli indirizzi locali.<br>
Il tipo di NAT che ci interessa in questa guida è chiamato '''masquerading''' ''(mascheramento)'' degli indirizzi locali.<br>
Il motivo è semplice: per accedere a internet è necessario avere un [http://it.wikipedia.org/wiki/Indirizzo_IP indirizzo IP] di tipo pubblico, che il nostro ISP ci fornisce. Per permettere anche ai computer sprovvisti di indirizzo pubblico di navigare, dobbiamo fare in modo che i loro indirizzi di tipo privato vengano "nascosti" dietro a quello pubblico.
Il motivo è semplice: per accedere a internet è necessario avere un [http://it.wikipedia.org/wiki/Indirizzo_IP indirizzo IP] di tipo pubblico, che il nostro ISP ci fornisce. Per permettere anche ai computer sprovvisti di indirizzo pubblico di navigare, dobbiamo fare in modo che i loro indirizzi di tipo privato vengano "nascosti" dietro a quello pubblico.


==Masquerading: configurazione automatica==
=== Masquerading: configurazione automatica ===
Per fare masquerading è necessario utilizzare il firewall di Linux, ''Netfilter'', tramite il comando apposito, che per i kernel recenti è <tt>iptables</tt>.
Per fare masquerading è necessario utilizzare il firewall di Linux, ''Netfilter'', tramite il comando apposito, che per i kernel recenti è <tt>iptables</tt>.


Riga 29: Riga 29:
se poi volete usare anche le funzionalità avanzate potete sbizzarrirvi: la flessibilità di ''ipmasq'' è totale, ma sarà necessario studiare un po'. La documentazione per ''ipmasq'', come al solito, è in <tt>/usr/share/doc/ipmasq</tt>.
se poi volete usare anche le funzionalità avanzate potete sbizzarrirvi: la flessibilità di ''ipmasq'' è totale, ma sarà necessario studiare un po'. La documentazione per ''ipmasq'', come al solito, è in <tt>/usr/share/doc/ipmasq</tt>.


==Masquerading: configurazione manuale==
=== Masquerading: configurazione manuale ===
Se invece vogliamo procedere a mano, logghiamoci come utente '''root''' e digitiamo il seguente comando:
Se invece vogliamo procedere a mano, logghiamoci come utente '''root''' e digitiamo il seguente comando:
<pre># iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE</pre>
<pre># iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE</pre>
Riga 73: Riga 73:
in questo modo la regola verrà caricata ad ogni avvio del sistema, senza che sia necessario digitarla nuovamente, e solo se il file <tt>/etc/iptables-save</tt> esiste ed è leggibile.
in questo modo la regola verrà caricata ad ogni avvio del sistema, senza che sia necessario digitarla nuovamente, e solo se il file <tt>/etc/iptables-save</tt> esiste ed è leggibile.


==Ip Forwarding==
=== Ip Forwarding ===
Configurare ''iptables'' non è però sufficiente. I comuni Pc, infatti, non devono essere in grado di comportarsi come i [http://it.wikipedia.org/wiki/Router router] e cioè non devono poter [[routing|instradare]] pacchetti da una rete all'altra.<br>
Configurare ''iptables'' non è però sufficiente. I comuni Pc, infatti, non devono essere in grado di comportarsi come i [http://it.wikipedia.org/wiki/Router router] e cioè non devono poter [[routing|instradare]] pacchetti da una rete all'altra.<br>
Dato che per noi è fondamentale abilitare questa possibilità, dobbiamo agire su un parametro del kernel che regola questa funzione: l' '''ip-forwarding'''.
Dato che per noi è fondamentale abilitare questa possibilità, dobbiamo agire su un parametro del kernel che regola questa funzione: l' '''ip-forwarding'''.
Riga 81: Riga 81:
così facendo, però, ad ogni riavvio dovremo reimpostare la variabile.
così facendo, però, ad ogni riavvio dovremo reimpostare la variabile.


=== Impostare l'<tt>ip-forwarding</tt> al boot: <tt>/etc/sysctl.conf</tt> ===
==== Impostare l'<tt>ip-forwarding</tt> al boot: <tt>/etc/sysctl.conf</tt> ====


Se avete installato ''ipmasq'', l'ip-forwarding è già abilitato: passate alle misure di sicurezza.
Se avete installato ''ipmasq'', l'ip-forwarding è già abilitato: passate alle misure di sicurezza.
Riga 114: Riga 114:
Per un approfondimento riguardante i parametri del kernel networking modificabili a run-time, vi rimandiamo alla guida [[Parametri a run-time per Netfilter]].
Per un approfondimento riguardante i parametri del kernel networking modificabili a run-time, vi rimandiamo alla guida [[Parametri a run-time per Netfilter]].


=== Impostare l'<tt>ip-forwarding</tt> al boot: script ===
==== Impostare l'<tt>ip-forwarding</tt> al boot: script ====


È possibile anche abilitare l'ip-forwarding associando uno script alla creazione delle interfacce di rete in fase di boot. Questo metodo è consigliato solo in caso di setup più complessi, in cui si vogliono impostare regole diverse a seconda dell'interfaccia di rete che si attiva.
È possibile anche abilitare l'ip-forwarding associando uno script alla creazione delle interfacce di rete in fase di boot. Questo metodo è consigliato solo in caso di setup più complessi, in cui si vogliono impostare regole diverse a seconda dell'interfaccia di rete che si attiva.
Riga 167: Riga 167:
</pre>
</pre>


==Server DNS==
=== Server DNS ===
Per poter navigare su internet, è necessario che i PC della nostra rete locale abbiano accesso ad un server [[DNS]] che traduca per noi gli indirizzi internet in indirizzi IP.  
Per poter navigare su internet, è necessario che i PC della nostra rete locale abbiano accesso ad un server [[DNS]] che traduca per noi gli indirizzi internet in indirizzi IP.  


Riga 203: Riga 203:
e configurarlo come [[DNS]] sui PC della nostra rete.
e configurarlo come [[DNS]] sui PC della nostra rete.


==Altri Protocolli==
=== Altri Protocolli ===
===FTP===
==== FTP ====
Con la configurazione svolta fino a questo punto dovrebbe essere possibile accedere dai PC della LAN a server FTP esterni in ''passive mode'' (se ciò non fosse possibile vedere più avanti: [[Condividere_la_connessione_a_internet#Problemi_con_MTU|Problemi con MTU]]).  
Con la configurazione svolta fino a questo punto dovrebbe essere possibile accedere dai PC della LAN a server FTP esterni in ''passive mode'' (se ciò non fosse possibile vedere più avanti: [[Condividere_la_connessione_a_internet#Problemi_con_MTU|Problemi con MTU]]).  


Riga 216: Riga 216:
Da questo momento in poi i PC della LAN dovrebbero essere in grado di accedere ai server FTP anche in ''active mode''.
Da questo momento in poi i PC della LAN dovrebbero essere in grado di accedere ai server FTP anche in ''active mode''.


===IRC===
==== IRC ====
Dovreste essere in grado di usare IRC senza problemi dai PC della vostra LAN. In caso contrario potreste provare a caricare manualmente i moduli che servono al router per gestire le connessioni ad IRC:
Dovreste essere in grado di usare IRC senza problemi dai PC della vostra LAN. In caso contrario potreste provare a caricare manualmente i moduli che servono al router per gestire le connessioni ad IRC:


Riga 228: Riga 228:
Se avete problemi, leggete più avanti: [[Condividere_la_connessione_a_internet#Problemi_con_MTU|Problemi con MTU]].
Se avete problemi, leggete più avanti: [[Condividere_la_connessione_a_internet#Problemi_con_MTU|Problemi con MTU]].


=Configurazione LAN=
== Configurazione LAN ==
Passiamo ora alla configurazione degli altri PC della nostra rete domestica.<br>
Passiamo ora alla configurazione degli altri PC della nostra rete domestica.<br>
===Premessa===
==== Premessa ====
Generalmente per le reti locali domestiche si utilizzano indirizzi IP del tipo 192.168.0.x, dove x è un numero variabile tra 1 e 254. Questo significa che all'interno della stessa rete possiamo avere fino a 254 indirizzi IP univoci.<br>
Generalmente per le reti locali domestiche si utilizzano indirizzi IP del tipo 192.168.0.x, dove x è un numero variabile tra 1 e 254. Questo significa che all'interno della stessa rete possiamo avere fino a 254 indirizzi IP univoci.<br>
Generalmente il router di una rete ha come indirizzo IP il primo o l'ultimo della rete e cioè 192.168.0.1 oppure 192.168.0.254. In questo esempio noi useremo il primo.
Generalmente il router di una rete ha come indirizzo IP il primo o l'ultimo della rete e cioè 192.168.0.1 oppure 192.168.0.254. In questo esempio noi useremo il primo.
==Assegnare un IP==
=== Assegnare un IP ===
Ad ogni PC della LAN si deve assegnare un indirizzo IP per poter comunicare con gli altri PC della rete interna (che nel caso limite è il solo PC che fa da router). Per assegnare un indirizzo IP statico basta usare il comando:
Ad ogni PC della LAN si deve assegnare un indirizzo IP per poter comunicare con gli altri PC della rete interna (che nel caso limite è il solo PC che fa da router). Per assegnare un indirizzo IP statico basta usare il comando:
<pre>
<pre>
Riga 250: Riga 250:
</pre>
</pre>


==Impostare il gateway==
=== Impostare il gateway ===
Ora bisogna dire ad ogni macchina della LAN di instradare tutti i pacchetti diretti verso l'esterno al PC fisicamente collegato ad internet (che fa da router). A tal scopo basta impostare il ''default gateway'':
Ora bisogna dire ad ogni macchina della LAN di instradare tutti i pacchetti diretti verso l'esterno al PC fisicamente collegato ad internet (che fa da router). A tal scopo basta impostare il ''default gateway'':
<pre>
<pre>
Riga 260: Riga 260:
</pre>
</pre>


==Impostare il server DNS==
=== Impostare il server DNS ===
Per impostare il server [[DNS]] che i nostri PC useranno è necessario editare il file <code>/etc/resolv.conf</code> inserendo la seguente linea:
Per impostare il server [[DNS]] che i nostri PC useranno è necessario editare il file <code>/etc/resolv.conf</code> inserendo la seguente linea:
<pre>nameserver 192.168.0.1</pre>
<pre>nameserver 192.168.0.1</pre>
assicurandoci di scriverlo nella prima riga del file ''(L'ordine con cui il sistema interroga i [[DNS]] è identico a quello in cui compaiono in /etc/resolv.conf)''
assicurandoci di scriverlo nella prima riga del file ''(L'ordine con cui il sistema interroga i [[DNS]] è identico a quello in cui compaiono in /etc/resolv.conf)''


==Client Windows®==
=== Client Windows® ===
Per la configurazione di eventuali PC con installato Microsoft® Windows® vi rimandiamo alla Guida in Linea, al sito di supporto ed al vostro rivenditore hardware (che per contratto è tenuto a fornirvi assistenza).
Per la configurazione di eventuali PC con installato Microsoft® Windows® vi rimandiamo alla Guida in Linea, al sito di supporto ed al vostro rivenditore hardware (che per contratto è tenuto a fornirvi assistenza).


=Problemi con MTU=
== Problemi con MTU ==
Può capitare a volte, specialmente con collegamenti ADSL, che l'MTU impostato di default  per le interfacce di rete (1500) non sia appropriato e causi vari malfunzionamenti. Ad esempio, io non riuscivo ad usare wget, ftp, apt-get e irc. Altri hanno riportato di non potere accedere a certi siti.
Può capitare a volte, specialmente con collegamenti ADSL, che l'MTU impostato di default  per le interfacce di rete (1500) non sia appropriato e causi vari malfunzionamenti. Ad esempio, io non riuscivo ad usare wget, ftp, apt-get e irc. Altri hanno riportato di non potere accedere a certi siti.


Riga 286: Riga 286:
Riavviando ora tutte le interfacce di rete sia eth0 che ppp, avremo impostato il nuovo valore per l'MTU sperando di aver eliminato i malfunzionamenti.
Riavviando ora tutte le interfacce di rete sia eth0 che ppp, avremo impostato il nuovo valore per l'MTU sperando di aver eliminato i malfunzionamenti.


=Test=
== Test ==
Finalmente siamo arrivati al momento di testare la nostra rete domestica.
Finalmente siamo arrivati al momento di testare la nostra rete domestica.


Riga 295: Riga 295:
{{Warningbox| L'eseguibile <code>/bin/ping</code> deve avere il bit suid impostato per funzionare da utente normale. }}
{{Warningbox| L'eseguibile <code>/bin/ping</code> deve avere il bit suid impostato per funzionare da utente normale. }}


==Comunicazione tra router e client==
=== Comunicazione tra router e client ===
Prima di tutto annotiamo l'indirizzo IP del client (in questo esempio: 192.168.0.2).
Prima di tutto annotiamo l'indirizzo IP del client (in questo esempio: 192.168.0.2).


Riga 340: Riga 340:
* che le schede di rete segnalino la presenza del segnale elettrico (ethernel link);
* che le schede di rete segnalino la presenza del segnale elettrico (ethernel link);


==Comunicazione tra client e router==
=== Comunicazione tra client e router ===
Il traffico della nostra rete deve essere necessariamente di tipo bidirezionale: dobbiamo quindi assicurarci che dal client sia possibile raggiungere il router.
Il traffico della nostra rete deve essere necessariamente di tipo bidirezionale: dobbiamo quindi assicurarci che dal client sia possibile raggiungere il router.


Ripetiamo le operazioni del punto precedente, questa volta, però, operando dal client in direzione del router.
Ripetiamo le operazioni del punto precedente, questa volta, però, operando dal client in direzione del router.


==Risoluzione dei nomi==
=== Risoluzione dei nomi ===
Verifichiamo che il nostro client sia in grado di risolvere i nomi degli host (di qui in seguito [[FQDN]]): questo significa che deve essere in grado di poter identificare un computer presente in internet non solo in base al suo indirizzo IP, ma anche in base ad un nome facilmente memorizzabile.
Verifichiamo che il nostro client sia in grado di risolvere i nomi degli host (di qui in seguito [[FQDN]]): questo significa che deve essere in grado di poter identificare un computer presente in internet non solo in base al suo indirizzo IP, ma anche in base ad un nome facilmente memorizzabile.


Riga 371: Riga 371:
</pre>
</pre>


= Conclusioni =
== Conclusioni ==
Se siete giunti fino in fondo dovreste essere in grado di condividere la connessione ad internet in semplici LAN domestiche e risolvere i principali problemi che possono insorgere.
Se siete giunti fino in fondo dovreste essere in grado di condividere la connessione ad internet in semplici LAN domestiche e risolvere i principali problemi che possono insorgere.


1 508

contributi