Un server DNS e DHCP su Debian: differenze tra le versioni

m
nessun oggetto della modifica
mNessun oggetto della modifica
 
(21 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|}}
{{Versioni compatibili|Squeeze|Wheezy}}{{Gateway-Router}}
<br/>
{{Warningbox|Per le versioni supportate di Debian si vedano le seguenti guide: [[Bind]] e [[ISC DHCP]]}}
 
== Introduzione ==
== Introduzione ==
In una rete locale con un server Linux e client Windows "recenti" (quindi da Windows 2000 in poi), per far sì che le comunicazioni di rete avvengano in modo efficiente, è necessario avere un server DNS che sia in grado di risolvere i nomi host dei vari PC in rete. Linux risponde benissimo a quest'esigenza col pacchetto Bind, che è appunto il server DNS più utilizzato in ambiente Linux. Il problema però è che se abbiamo una rete abbastanza estesa e con cambi frequenti, dovremmo aggiornare a mano i record A e PTR del server DNS, cosa alquanto scomoda per ovvi motivi, senza considerare che un inserimento manuale si presta benissimo ad errori di digitazione.
In una rete locale con un server Linux e client Windows "recenti" (quindi da Windows 2000 in poi), per far sì che le comunicazioni di rete avvengano in modo efficiente, è necessario avere un server DNS che sia in grado di risolvere i nomi host dei vari PC in rete. Linux risponde benissimo a quest'esigenza col pacchetto Bind, che è appunto il server DNS più utilizzato in ambiente Linux. Il problema però è che se abbiamo una rete abbastanza estesa e con cambi frequenti, dovremmo aggiornare a mano i record A e PTR del server DNS, cosa alquanto scomoda per ovvi motivi, senza considerare che un inserimento manuale si presta benissimo ad errori di digitazione.
Riga 138: Riga 141:
* IN e SOA indicano che il server è un SOA e un DNS per internet
* IN e SOA indicano che il server è un SOA e un DNS per internet
* primary nameserver - è il nome di dominio del server che stiamo installando
* primary nameserver - è il nome di dominio del server che stiamo installando
* email address of admin - l'email dell'amministratore del server
* email address of admin - l'email dell'amministratore del server, in cui il simbolo @ è sostituito da un .
* serial number - è il valore utilizzato dai server DNS slave per determinare se sono occorsi cambiamenti dall'ultima volta che hanno contattato il master DNS. È del tutto arbitrario (valore minimo 1, valore massimo molto grande) e nel caso di IP statici deve essere modificato manualmente dall'amministratore ogni volta che compie delle modifiche. In questa guida si è scelto un formato del tipo anno-mese-giorno-numero.
* serial number - è il valore utilizzato dai server DNS slave per determinare se sono occorsi cambiamenti dall'ultima volta che hanno contattato il master DNS. È del tutto arbitrario (valore minimo 1, valore massimo molto grande) e nel caso di IP statici deve essere modificato manualmente dall'amministratore ogni volta che compie delle modifiche. In questa guida si è scelto un formato del tipo anno-mese-giorno-numero.
* refresh - è l'intervallo di tempo che deve trascorrere prima che un server slave ricontatti il proprio master
* refresh - è l'intervallo di tempo che deve trascorrere prima che un server slave ricontatti il proprio master
Riga 192: Riga 195:
;
;
$TTL    604800
$TTL    604800
@      IN      SOA    test.lan.      hostmaster.test.lan. (
@      IN      SOA    ns1.test.lan.      hostmaster.test.lan. (
                                 2007081501  ; serial
                                 2007081501  ; serial
                                 604800      ; refresh
                                 604800      ; refresh
Riga 270: Riga 273:
# apt-get install isc-dhcp-common isc-dhcp-server
# apt-get install isc-dhcp-common isc-dhcp-server
</pre>
</pre>
{{Warningbox|Il server DHCP appena installato tenterà subito di avviarsi, ma fallirà, non essendo ancora stato configurato. Non spaventatevi quindi se subito dopo l'installazione ricevete il messaggio "<code>Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. ... failed!</code>".<br/>Basta proseguire nella lettura della guida e tutto andrà a posto}}


=== Configurazione ===
=== Configurazione ===
Riga 349: Riga 353:
};
};
</pre>
</pre>
Il file completo dovrebbe avere questo contenuto:
Il file completo, dopo l'aggiunta delle ACL per la gestione del traffico interno e esterno, dovrebbe avere questo contenuto:
<pre>
<pre>
acl internals {
acl internals {
Riga 380: Riga 384:
};
};
</pre>
</pre>
Poichè nel file <tt>/etc/bind/named.conf.local</tt> abbiamo utilizzato la direttiva <tt>view</tt>, è necessario che tutte le zone di Bind siano configurate all'interno di una propria <tt>view</tt>. Perciò dobbiamo modificare anche il file <tt>/etc/bind/named.conf.default-zones</tt> aggiungendo all'inizio del file le righe:
Poichè nel file <code>/etc/bind/named.conf.local</code> abbiamo utilizzato la direttiva <code>view</code>, è necessario che tutte le zone di Bind siano configurate all'interno di una propria <code>view</code>. Perciò dobbiamo modificare anche il file <code>/etc/bind/named.conf.default-zones</code> aggiungendo all'inizio del file le righe:
<pre>
<pre>
view "external" {
view "external" {
Riga 502: Riga 506:
* abilitiamo la navigazione sui siti web interni alla LAN senza passare dal proxy
* abilitiamo la navigazione sui siti web interni alla LAN senza passare dal proxy
* per la navigazione al di fuori della LAN configuriamo automaticamente il proxy con indirizzo IP 192.168.1.1 e in ascolto sulla porta 3128
* per la navigazione al di fuori della LAN configuriamo automaticamente il proxy con indirizzo IP 192.168.1.1 e in ascolto sulla porta 3128
Aggiungiamo un puntatore nel file di configurazione della zona di Bind:
<pre>
server        A      192.168.1.1
wpad          CNAME  server
</pre>
A questo punto dobbiamo configurare il server DHCP, agendo sul suo file di configurazione:
A questo punto dobbiamo configurare il server DHCP, agendo sul suo file di configurazione:
<pre>
<pre>
# nano /etc/dhcp/dhcpd.conf
# nano /etc/dhcp/dhcpd.conf
</pre>
</pre>
e aggiungendo l'opzione:
e aggiungendo le opzioni:
<pre>
<pre>
     option local-pac-server code 252 = text;
     option local-proxy-config code 252 = text;
    option local-proxy-config "http://server/wpad.dat";  
</pre>
</pre>
nella sezione generale del file, e l'opzione
nella sezione generale del file.
<pre>
    option local-pac-server "http://192.168.1.1/wpad.dat";
</pre>
nella sezione della Subnet.
<br/>
<br/>
Infine facciamo in modo che Apache sappia servire il MIME corretto quando vengono richiamati i file PAC, modificando il file di configurazione:
Infine modifichiamo il file <code>/etc/mime.types</code> affinchè Apache serva correttamente il file, aggiungendo la riga:
<pre>
# nano /etc/apache2/apache.conf
</pre>
e aggiungendo le righe:
<pre>
<pre>
AddType application/x-ns-proxy-autoconfig .dat
application/x-ns-proxy-autoconfig               pac dat
AddType application/x-ns-proxy-autoconfig .pac
</pre>
</pre>


Riga 538: Riga 539:
* i clock non sono sincronizzati
* i clock non sono sincronizzati
* la chiave non è valida
* la chiave non è valida
=== Bind non riparte dopo un aggiornamento di sistema ===
Digitare:
<pre># journalctl -xe</pre>
Se compare questo errore:
<pre>
/etc/bind/named.conf.local:5: open: /etc/bind/rndc.key: permission denied
loading configuration: permission denied
exiting (due to fatal error)
</pre>
È probabile che si siano cambiato il proprietario del file <code>/etc/bind/rndc.key</code>. Verificare che il proprietario sia root e che il gruppo sia bind. Verificare inoltre che i permessi del file siano 640.


=== Errori in /var/log/syslog ===
=== Errori in /var/log/syslog ===
Riga 585: Riga 596:


==== error (no valid RRSIG) resolving nome.dominio ====
==== error (no valid RRSIG) resolving nome.dominio ====
Il problema è nella funzione DNSSEC di Bind, che fa in modo che il server rifiuti di restituire risposte non validate. Per eliminare l'errore è sufficiente aggiungere al file <tt>/etc/bind/named.conf.options</tt> aggiungendo le linee:
Il problema è nella funzione DNSSEC di Bind, che fa in modo che il server rifiuti di restituire risposte non validate. Per eliminare l'errore è sufficiente aggiungere al file <code>/etc/bind/named.conf.options</code> aggiungendo le linee:
<pre>
<pre>
dnssec-enable no;
dnssec-enable no;
Riga 664: Riga 675:
Jul  3 21:02:22 eyrie named[3095]: client X.X.X.X#32790: query 'eyrie.raptor.loc/A/IN' denied
Jul  3 21:02:22 eyrie named[3095]: client X.X.X.X#32790: query 'eyrie.raptor.loc/A/IN' denied
</pre>
</pre>
Questo indica un problema con la direttiva <code>allow-query { }</code> in <code>/etc/bind/named.conf.options</code>.
Questo indica un problema con la direttiva <code>allow-query { }</code> in <code>/etc/bind/named.conf.options</code>, ad esempio è indicato male il range di IP della nostra LAN.


== Troubleshooting dhcpd ==
== Troubleshooting dhcpd ==
=== isc-dhcp-server non riparte dopo un aggiornamento di sistema ===
Digitare da terminale:
<pre># systemctl status isc-dhcp-server.service</pre>
Se compaiono uno o più dei seguenti errori
<pre>No subnet declaration for ...</pre>
oppure
<pre>No subnet6 declaration for ...</pre>
e voi siete sicuri che la prima o entrambe (se usate anche IPv6) le dichiarazioni sono presenti, allora è necessario controllare il file <code>nano /etc/default/isc-dhcp-server</code> assicurandosi che sia presente (e non commentata) in coda la seguente dichiarazione (valida per IPv4):
<pre>INTERFACESv4="nome_interfacce"</pre>
dove nome_interfaccia è appunto il nome dell'interfaccia di rete su cui dhcpd deve rimanere in ascolto, ad es. "eth0" (NON omettere i doppi apici!). Si noti che è <code>INTERFACESv4</code> e non semplicemente <code>INTERFACES</code> come per le versioni più vecchie.
Prima di riavviare il demone digitare anche:
<pre># journalctl -xe</pre>
Se nel log compaiono sia <code>Failed to start LSB: DHCP server.</code> che <code>Starting ISC DHCPv4 server: dhcpddhcpd service already running (pid file /var/run/dhcpd.pid currenty exists) ... failed!</code> è necessario:
# arrestare il server
# eliminare manualmente il file <code>/var/run/dhcpd.pid</code>
A questo punto riavviare il demone e gli errori dovrebbero scomparire.


=== dhcp3 ===
=== dhcp3 ===
Riga 699: Riga 731:


== Esempi ==
== Esempi ==
=== Comandi utili ===
Elencare gli indirizzi IP dati in prestito da bind9:
<pre># dhcp-lease-list --lease /var/lib/dhcp/dhcpd.leases</pre>


=== Piccola LAN ===
=== Piccola LAN ===
Riga 916: Riga 952:
: [[Utente:Wtf|Wtf]]
: [[Utente:Wtf|Wtf]]
: [[Utente:gmc|gmc]]
: [[Utente:gmc|gmc]]
|Numero_revisori = 2
: [[Utente:fexice|fexice]]
|Numero_revisori = 3
}}
}}


[[Categoria:DNS e DHCP]]
[[Categoria:DNS e DHCP]]
3 155

contributi