Condividere la connessione a internet: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(→‎Masquerading: salvare regole iptables)
m (→‎Server DNS: corretto path della configurazione)
Riga 1: Riga 1:
{{stub}}
{{stub}}
==Premessa==
==Premessa==
Oggi che la maggior parte degli utenti domestici ha la possibilit� di accede 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 computers 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 accede 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 computers 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.


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.
Riga 12: Riga 12:
==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 Adrees 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 Adrees 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===
===Masquerading===
Riga 30: Riga 30:
</pre>
</pre>


Questo comando si pu� inserire in uno script di avvio come /etc/init.d/bootmisc, forse � pi� logico inserirlo in /etc/init.d/networking anche perch�, in tal modo, riavviando la rete vengono anche reimpostate le regole di iptables. Per inserire il comando in /etc/init.d/networking scorrete il file fino a quasi la fine dove troverete le seguenti righe:
Questo comando si può inserire in uno script di avvio come /etc/init.d/bootmisc, forse è più logico inserirlo in /etc/init.d/networking anche perché, in tal modo, riavviando la rete vengono anche reimpostate le regole di iptables. Per inserire il comando in /etc/init.d/networking scorrete il file fino a quasi la fine dove troverete le seguenti righe:


<pre>
<pre>
Riga 43: Riga 43:
</pre>
</pre>


si potr� inserire questo codice (al posto del singolo comando) per maggiore eleganza:
si potrà inserire questo codice (al posto del singolo comando) per maggiore eleganza:


<pre>
<pre>
Riga 54: Riga 54:
</pre>
</pre>
   
   
in questo modo la regola verr� caricata ad ogni avvio del sistema, senza che sia necessario digitarla nuovamente, e solo se il file /etc/iptables-save 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 /etc/iptables-save 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 routers] 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 routers] 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 paramentro del kernel che regola questa funzione: l' '''ip-forwarding'''.
Dato che per noi è fondamentale abilitare questa possibilità, dobbiamo agire su un paramentro del kernel che regola questa funzione: l' '''ip-forwarding'''.


L' ip-forwarding abilitabile "al volo", semplicemente impostando a "1" la relativa variabile del kernel,  con il comando:
L' ip-forwarding è abilitabile "al volo", semplicemente impostando a "1" la relativa variabile del kernel,  con il comando:
<pre># echo 1 > /proc/sys/net/ipv4/ip_forward</pre>
<pre># echo 1 > /proc/sys/net/ipv4/ip_forward</pre>
cos� facendo per�, ad ogni riavvio dovremo reimpostare la variabile.
così facendo però, ad ogni riavvio dovremo reimpostare la variabile.


E' possibile creare scripts appositi che impostano a "1" l' ip-forwarding, ma il sistema che presumibilmente � pi� comodo, consiste nell' associare questo comando alla creazione delle interfacce di rete, in fase di boot.
E' possibile creare scripts appositi che impostano a "1" l' ip-forwarding, ma il sistema che presumibilmente è più comodo, consiste nell' associare questo comando alla creazione delle interfacce di rete, in fase di boot.


Per prima cosa, apriamo con il nostro editor preferito il file '''/etc/network/interfaces''' e cerchiamo la sezione relativa alla nostra scheda di rete.<br>
Per prima cosa, apriamo con il nostro editor preferito il file '''/etc/network/interfaces''' e cerchiamo la sezione relativa alla nostra scheda di rete.<br>
Riga 83: Riga 83:
broadcast 192.168.0.255  
broadcast 192.168.0.255  
         pre-up /etc/network/iface-secure</pre>
         pre-up /etc/network/iface-secure</pre>
Questo comando dice allo script che si occupa di configurare la scheda di rete di lanciare un' altro script, e cio� '''/etc/network/iface-secure''', che provvediamo subito a creare con il comando:
Questo comando dice allo script che si occupa di configurare la scheda di rete di lanciare un' altro script, e cioè '''/etc/network/iface-secure''', che provvediamo subito a creare con il comando:
<pre># touch /etc/network/iface-secure</pre>
<pre># touch /etc/network/iface-secure</pre>
All' interno di questo file scriveremo il nostro comando per abilitare l' ip-forwarind:
All' interno di questo file scriveremo il nostro comando per abilitare l' ip-forwarind:
Riga 101: Riga 101:
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
</pre>
</pre>
Oltre a queste regole Debian imposta per default la protezione dallo [http://it.wikipedia.org/wiki/IP_spoofing spoofing] degli indirizzi, che quindi non abbiamo necessit� di inserire nello script.Per completezza di informazione, comunque, questa regola risulta essere la seguente:
Oltre a queste regole Debian imposta per default la protezione dallo [http://it.wikipedia.org/wiki/IP_spoofing spoofing] degli indirizzi, che quindi non abbiamo necessità di inserire nello script.Per completezza di informazione, comunque, questa regola risulta essere la seguente:
<pre>
<pre>
### Protezione anti spoofing  
### Protezione anti spoofing  
Riga 108: Riga 108:


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


Un modo per fare questo consiste nell' impostare per ciascuno dei nostri PC i server DNS forniti dal nostro provider.  
Un modo per fare questo consiste nell' impostare per ciascuno dei nostri PC i server DNS forniti dal nostro provider.  


Esiste tuttavia un' alternativa molto pi� comoda e performante: creare un nostro server DNS ed utilizzarlo in sostituzione di quelli del provider. Questa soluzione porta ad alcuni vantaggi:
Esiste tuttavia un' alternativa molto più comoda e performante: creare un nostro server DNS ed utilizzarlo in sostituzione di quelli del provider. Questa soluzione porta ad alcuni vantaggi:
* sui pc della LAN dovremo configurare sempre un solo server DNS immutabile e che conosciamo bene (senza faticose ricerche);
* sui pc della LAN dovremo configurare sempre un solo server DNS immutabile e che conosciamo bene (senza faticose ricerche);
* i tempi di risposta sono nettamente pi� performanti rispetto a server esterni alla LAN, sia perch� il server raggiungibile direttamente (senza instradamento attraverso internet), sia perch� sfrutta un sistema di cache (se 10 pc chiedono l' indirizzo di debian.org, ad esempio, il nostro DNS effetter� la richiesta solo la prima volta e per le restanti 9 utilizzer� le informazioni memorizzate nella propria cache);
* i tempi di risposta sono nettamente più performanti rispetto a server esterni alla LAN, sia perchè il server è raggiungibile direttamente (senza instradamento attraverso internet), sia perchè sfrutta un sistema di cache (se 10 pc chiedono l' indirizzo di debian.org, ad esempio, il nostro DNS effetterà la richiesta solo la prima volta e per le restanti 9 utilizzerà le informazioni memorizzate nella propria cache);
* grazie a questo meccanismo di caching i dns del provider sono meno stressati e quindi pi� performanti a loro volta.
* grazie a questo meccanismo di caching i dns del provider sono meno stressati e quindi più performanti a loro volta.


Per realizzare il nostro server useremo '''bind''', probabilmente il miglior software esistente per questo compito.
Per realizzare il nostro server useremo '''bind''', probabilmente il miglior software esistente per questo compito.
Riga 121: Riga 121:
Per prima cosa installiamo bind9 ed alcuni strumenti utili:
Per prima cosa installiamo bind9 ed alcuni strumenti utili:
<pre># apt-get install bind9 bind9-host dnsutils</pre>
<pre># apt-get install bind9 bind9-host dnsutils</pre>
Ora configuriamo il server in modo che faccia le sue richieste ai server DNS che vogliamo noi anzich� ai ROOT SERVERS (sono pochi in tutto il mondo, molto stressati e aggiornati pi� lentamente di altri). Tutto quello che dobbiamo fare editare la sezione '''options''' del file '''/etc/bind9/named.conf.options''':
Ora configuriamo il server in modo che faccia le sue richieste ai server DNS che vogliamo noi anzichè ai ROOT SERVERS (sono pochi in tutto il mondo, molto stressati e aggiornati più lentamente di altri). Tutto quello che dobbiamo fare è editare la sezione '''options''' del file '''/etc/bind/named.conf.options''':
<pre>options {
<pre>options {
directory "/var/cache/bind";
directory "/var/cache/bind";
Riga 140: Riga 140:
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>
# ifconfig eth0 192.168.0.2 up
# ifconfig eth0 192.168.0.2 up
</pre>
</pre>
dove 192.168.0.2 l'indirizzo arbitrario che si scelto per la particolare macchina.<br>
dove 192.168.0.2 è l'indirizzo arbitrario che si è scelto per la particolare macchina.<br>
Il comando '''ifconfig''' permette di specificare molti pi� parametri, ma utilizzando l' indirizzo dell' esempio, questi verranno preconfigurati automaticamente.
Il comando '''ifconfig''' permette di specificare molti più parametri, ma utilizzando l' indirizzo dell' esempio, questi verranno preconfigurati automaticamente.
Per non riscrivere questo comando ad ogni boot, si pu� inserire in /etc/network/interfaces:
Per non riscrivere questo comando ad ogni boot, si può inserire in /etc/network/interfaces:
<pre>
<pre>
auto eth0
auto eth0
Riga 163: Riga 163:
# route add default gw 192.168.0.1
# route add default gw 192.168.0.1
</pre>
</pre>
Per non dover scrivere questo comando ad ogni riavvio, sufficiente aggiungere al file /etc/network/interfaces, subito al di sotto della direttiva ''''broadcast ...'''' la seguente linea:
Per non dover scrivere questo comando ad ogni riavvio, è sufficiente aggiungere al file /etc/network/interfaces, subito al di sotto della direttiva ''''broadcast ...'''' la seguente linea:
<pre>
<pre>
   gateway 192.168.0.1
   gateway 192.168.0.1
Riga 169: Riga 169:


===Impostare il server DNS===
===Impostare il server DNS===
Esistono due possibilit� per impostare il server DNS che i nostri PC useranno:
Esistono due possibilità per impostare il server DNS che i nostri PC useranno:
*inserire nel file '''/etc/resolv.conf''' la seguente linea:
*inserire nel file '''/etc/resolv.conf''' 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 ''(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 ''(ordine con cui il sistema interroga i DNS è identico a quello in cui compaiono in /etc/resolv.conf)''
*inserire all'interno del file /etc/network/interfaces, subito al di sotto della direttiva '''gateway ...''' la seguente linea:
*inserire all'interno del file /etc/network/interfaces, subito al di sotto della direttiva '''gateway ...''' la seguente linea:
<pre>
<pre>
   dns-nameservers 192.168.0.1
   dns-nameservers 192.168.0.1
</pre>
</pre>
{{box|Nota Bene|Entrambe le modalit� hanno la medesima efficacia: usarle entrambe non porta ad alcun conflitto}}
{{box|Nota Bene|Entrambe le modalità hanno la medesima efficacia: usarle entrambe non porta ad alcun conflitto}}
===Riassumendo===
===Riassumendo===
Al termine della configurazione il vostro file /etc/network/interfaces dovrebbe essere simile a questo esempio:
Al termine della configurazione il vostro file /etc/network/interfaces dovrebbe essere simile a questo esempio:
Riga 192: Riga 192:
ed il vostro file /etc/resolv.conf dovrebbe essere composto dall' unica linea:
ed il vostro file /etc/resolv.conf dovrebbe essere composto dall' unica linea:
<pre>nameserver 192.168.0.1</pre>
<pre>nameserver 192.168.0.1</pre>
===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).
==Test==
==Test==
==Conclusioni==
==Conclusioni==

Versione delle 08:08, 27 mag 2005

Document-page-setup.png Attenzione: questo articolo è ancora incompleto e in fase di scrittura da parte del suo autore.

Sentitevi liberi di contribuire, proponendo modifiche alla guida tramite l'apposita pagina di discussione, in modo da non interferire con il lavoro portato avanti sulla voce. Per altre informazioni si rimanda al template.


Premessa

Oggi che la maggior parte degli utenti domestici ha la possibilità di accede ad internet con connessioni a banda larga (ad esempio ADSL) e che è sempre più frequente avere a disposizione almeno un paio di computers 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 router sul mercato fanno uso di GNU/Linux come sistema operativo, perchè non farlo anche noi ?

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.

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

Per fare in modo che Debian faccia da gateway tra i pc della LAN e internet dobbiamo utilizzare il NAT (Network Adrees Translation).
Il tipo di NAT che ci interessa in questa guida è chiamato masquerading (mascheramento) degli indirizzi locali.
Il motivo è semplice: per accedere a internet è necessario avere un 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

Loghiamoci come utente root e digitiamo il seguente comando:

# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

questo abilita il mascheramento degli indirizzi privati.

Per caricare queste regole di iptable ad ogni avvio conviene salvarle una volta e per tutte con iptables-save e caricarle ad ogni avvio con iptables-restore. Questi comandi leggono e scrivono su STDIN e STDOUT quindi bisogna usare la redirezione di shell.

Per salvare le regole correnti di iptables basta scrivere da root:

# iptables-save > /etc/iptables-save

Poi ad ogni avvio dovremo richiamare il seguente comando:

# cat /etc/iptables-save | iptables-restore 

Questo comando si può inserire in uno script di avvio come /etc/init.d/bootmisc, forse è più logico inserirlo in /etc/init.d/networking anche perché, in tal modo, riavviando la rete vengono anche reimpostate le regole di iptables. Per inserire il comando in /etc/init.d/networking scorrete il file fino a quasi la fine dove troverete le seguenti righe:

case "$1" in
    start)

ora appena prima di

;;
stop)

si potrà inserire questo codice (al posto del singolo comando) per maggiore eleganza:

        # Carica le regole di iptables salvate
	if [ -r /etc/iptables-save ]; then
	    echo -en " * Loading iptables saved state ... "
	    cat /etc/iptables-save | iptables-restore &&\
	    echo "[ OK ]"
	fi

in questo modo la regola verrà caricata ad ogni avvio del sistema, senza che sia necessario digitarla nuovamente, e solo se il file /etc/iptables-save esiste ed è leggibile.

Ip Forwarding

Configurare iptables non è però sufficiente. I comuni pc, infatti, non devono essere in grado di comportarsi come i routers e cioè non devono poter instradare pacchetti da una rete all' altra.
Dato che per noi è fondamentale abilitare questa possibilità, dobbiamo agire su un paramentro del kernel che regola questa funzione: l' ip-forwarding.

L' ip-forwarding è abilitabile "al volo", semplicemente impostando a "1" la relativa variabile del kernel, con il comando:

# echo 1 > /proc/sys/net/ipv4/ip_forward

così facendo però, ad ogni riavvio dovremo reimpostare la variabile.

E' possibile creare scripts appositi che impostano a "1" l' ip-forwarding, ma il sistema che presumibilmente è più comodo, consiste nell' associare questo comando alla creazione delle interfacce di rete, in fase di boot.

Per prima cosa, apriamo con il nostro editor preferito il file /etc/network/interfaces e cerchiamo la sezione relativa alla nostra scheda di rete.
Dovreste individuare qualcosa di simile a:

auto eth0
iface eth0 inet static
	address 192.168.0.1
	netmask 255.255.255.0
	network 192.168.0.0
	broadcast 192.168.0.255

A questo punto, nella riga immediatamente successiva a "broadcast ...", inseriamo questa direttiva:

auto eth0
iface eth0 inet static
	address 192.168.0.1
	netmask 255.255.255.0
	network 192.168.0.0
	broadcast 192.168.0.255 
        pre-up /etc/network/iface-secure

Questo comando dice allo script che si occupa di configurare la scheda di rete di lanciare un' altro script, e cioè /etc/network/iface-secure, che provvediamo subito a creare con il comando:

# touch /etc/network/iface-secure

All' interno di questo file scriveremo il nostro comando per abilitare l' ip-forwarind:

### Abilita il forwarding di pacchetti non locali - FONDAMENTALE
echo 1 > /proc/sys/net/ipv4/ip_forward

E' opportuno impostare anche alcune misure di sicurezza:

### Non risponde ai ping inviati al browadcast della subnet
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

### Ignora finti messaggi di errore ICMP
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

### Non accetta pacchetti ICMP di route redirection
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

Oltre a queste regole Debian imposta per default la protezione dallo spoofing degli indirizzi, che quindi non abbiamo necessità di inserire nello script.Per completezza di informazione, comunque, questa regola risulta essere la seguente:

### Protezione anti spoofing 
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter

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 indiritti IP.

Un modo per fare questo consiste nell' impostare per ciascuno dei nostri PC i server DNS forniti dal nostro provider.

Esiste tuttavia un' alternativa molto più comoda e performante: creare un nostro server DNS ed utilizzarlo in sostituzione di quelli del provider. Questa soluzione porta ad alcuni vantaggi:

  • sui pc della LAN dovremo configurare sempre un solo server DNS immutabile e che conosciamo bene (senza faticose ricerche);
  • i tempi di risposta sono nettamente più performanti rispetto a server esterni alla LAN, sia perchè il server è raggiungibile direttamente (senza instradamento attraverso internet), sia perchè sfrutta un sistema di cache (se 10 pc chiedono l' indirizzo di debian.org, ad esempio, il nostro DNS effetterà la richiesta solo la prima volta e per le restanti 9 utilizzerà le informazioni memorizzate nella propria cache);
  • grazie a questo meccanismo di caching i dns del provider sono meno stressati e quindi più performanti a loro volta.

Per realizzare il nostro server useremo bind, probabilmente il miglior software esistente per questo compito.

Per prima cosa installiamo bind9 ed alcuni strumenti utili:

# apt-get install bind9 bind9-host dnsutils

Ora configuriamo il server in modo che faccia le sue richieste ai server DNS che vogliamo noi anzichè ai ROOT SERVERS (sono pochi in tutto il mondo, molto stressati e aggiornati più lentamente di altri). Tutto quello che dobbiamo fare è editare la sezione options del file /etc/bind/named.conf.options:

options {
directory "/var/cache/bind";

forward first;
forwarders {
INDIRIZZO IP DNS PRIMARIO; #varia a seconda del provider
INDIRIZZO IP DNS SECONDARIO; #varia a seconda del provider
};

auth-nxdomain no; # conform to RFC1035
};

Ora non ci resta che riavviare bind con il comando:

# /etc/init.d/bind9 restart

e configurarlo come DNS sui pc della nostra rete.

Configurazione LAN

Passiamo ora alla configurazione degli altri PC della nostra rete domestica.

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.
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

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:

# ifconfig eth0 192.168.0.2 up

dove 192.168.0.2 è l'indirizzo arbitrario che si è scelto per la particolare macchina.
Il comando ifconfig permette di specificare molti più parametri, ma utilizzando l' indirizzo dell' esempio, questi verranno preconfigurati automaticamente. Per non riscrivere questo comando ad ogni boot, si può inserire in /etc/network/interfaces:

auto eth0
iface eth0 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255 

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:

# route add default gw 192.168.0.1

Per non dover scrivere questo comando ad ogni riavvio, è sufficiente aggiungere al file /etc/network/interfaces, subito al di sotto della direttiva 'broadcast ...' la seguente linea:

   gateway 192.168.0.1

Impostare il server DNS

Esistono due possibilità per impostare il server DNS che i nostri PC useranno:

  • inserire nel file /etc/resolv.conf la seguente linea:
nameserver 192.168.0.1

assicurandoci di scriverlo nella prima riga del file (ordine con cui il sistema interroga i DNS è identico a quello in cui compaiono in /etc/resolv.conf)

  • inserire all'interno del file /etc/network/interfaces, subito al di sotto della direttiva gateway ... la seguente linea:
   dns-nameservers 192.168.0.1
Info.png Nota Bene
Entrambe le modalità hanno la medesima efficacia: usarle entrambe non porta ad alcun conflitto

Riassumendo

Al termine della configurazione il vostro file /etc/network/interfaces dovrebbe essere simile a questo esempio:

auto eth0
iface eth0 inet static
        address 192.168.0.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 192.168.0.1

ed il vostro file /etc/resolv.conf dovrebbe essere composto dall' unica linea:

nameserver 192.168.0.1

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).

Test

Conclusioni


Autore: Debianizzati.Org
Revisione: keltik
Revisione: The Noise