BIND (Berkeley Internet Name Domain) è il server DNS più comune per i sistemi Unix. Nel corso degli anni sono state rilasciate diverse versioni, la più recente delle quali è la versione 9.
Poiché BIND è disponibile per quasi tutti i sistemi Unix e funziona in modo identico indipendentemente dal sistema operativo, le istruzioni in questo capitolo si applicano non solo al Raspberry ma anche ad altre versioni di Linux.
La maggior parte delle versioni di Unix e Linux include BIND 8 o 9 come pacchetto standard, quindi è raramente necessario installarlo.
Il file di configurazione principale di BIND è /etc/named.conf, che contiene tutte le zone che il server ospita e le impostazioni di configurazione globali che si applicano a tutte le zone.
I record in ogni zona sono memorizzati in file separati, di solito si trovano nella directory /var/named.
PRE-REQUISITI
Raspberry PI 2
Webmin Installato e aggiornato all’ultima versione disponibile
INSTALLAZIONE DI BIND TRAMITE WEBMIN
Aprire webmin con un qualsiasi browser
Lanciamo il link https://IP_RASPBERRY:10000
Cliccare su Un-used Modules quindi selezionare BIND DNS Server
Per installare BIND clicchiamo sul pulsante Click here come mostrato nell’immagine sovrastante
Attendiamo quindi qualche secondo fino al termine dell’installazione. Se è andato tutto a buon fine dovremmo vedere una schermata come quella sovrastante.
Cliccare quindi sul pulsante in fondo Return to BIND DNS SERVER per andare alla pagina di configurazione
Questa è la pagina web di configurazione del nostro BIND
CONFIGURAZIONE DI BIND
A questo punto possiamo procedere alla configurazione delle Zone con i relativi record DNS.
Andiamo nella Home Page di Webmin
Cliccare su Server quindi BIND DNS Server
Da questa interfaccia è possibile eseguire le operazioni elencate:
Aggiungere altri DNS Server
Tracciatura dei LOG
Impostazioni delle ACL
Impostazione del Forwarding
Impostazione delle Zone di Default
Configurazione Cluster Servers
Editare da riga di comando i file di configurazione
Check della configurazione di BIND
Creazione Zone Master
Creazione Zone Slave
Creazione Zone Stub
Creazione Zone di Forward
Creazione di Zone Delegate
Creazione di Zone tramite un batch file (utile per importare zone intere da altri DNS)
CONFIGURAZIONE DEL CACHING SU BIND
Innanzitutto, vedremo come configurare Bind in modo che funga da server DNS di memorizzazione nella cache.
Questa configurazione costringerà il server a cercare ricorsivamente le risposte da altri server DNS quando un client invia una query.
Ciò significa che sta facendo il lavoro di interrogare ogni server DNS correlato a sua volta finché non trova l’intera risposta.
I file di configurazione di Bind sono mantenuti per impostazione predefinita nella directory /etc/bind.
Spostiamoci nella cartella /etc/bind con il comando:
0 |
cd /etc/bind |
Editiamo il file named.conf.options con il comando:
0 |
sudo nano named.conf.options |
Di seguito la configurazione base del file:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== options { directory "/var/cache/bind"; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; }; |
Per configurare la memorizzazione nella cache, il primo passaggio consiste nell’impostare un elenco di controllo di accesso o ACL.
Come server DNS che verrà utilizzato per risolvere le query ricorsive, non vogliamo che il server DNS venga abusato da utenti malintenzionati.
Per evitare la possibilità che il server venga utilizzato per scopi dannosi, configureremo un elenco di indirizzi IP o intervalli di reti di fiducia.
Sopra il blocco delle opzioni, creeremo un nuovo blocco chiamato acl. Creare un’etichetta per il gruppo ACL che si sta configurando. In questa guida chiameremo il gruppo clientok.
0 1 2 3 4 |
acl clientok { 192.168.100.0/24; # Subnet o IP a cui vogliamo permettere l'accesso DNS localhost; localnets; }; |
Configurato il blocco della ACL, possiamo configurare tali funzionalità nel blocco delle opzioni.
All’interno di questo blocco, aggiungere le seguenti righe sotto Directory
0 1 2 3 4 |
options { directory "/var/cache/bind"; recursion yes; allow-query { clientok; }; |
Chiudere e salvare il file di configurazione.
Abbiamo attivato la ricorsione in modo esplicito e quindi configurato il parametro allow-query per utilizzare l’ACL creata.
NOTA BENE: se allow-recursion non è impostato, Bind ricade sull’elenco allow-query-cache, quindi su allow-query list e infine su default localnet e localhost.
Dato che stiamo configurando un server di sola cache (non ha zone autorevoli proprie e non inoltra richieste), l’elenco allow-query si applicherà sempre solo alla ricorsione.
CONFIGURAZIONE DEL FORWARD SU BIND
Per prima cosa, creiamo un blocco all’interno dei server di inoltro chiamati che contiene gli indirizzi IP dei server dei nomi ricorsivi ai quali vogliamo inoltrare le richieste.
In questa guida sono utilizzati i server DNS pubblici di Google (8.8.8.8 e 8.8.4.4)
Lanciamo il seguente comando per editare il file di configurazione:
0 |
sudo nano named.conf.options |
Quindi aggiungiamo le seguenti righe:
0 1 2 3 4 5 6 7 8 9 |
allow-query { clientok; }; forwarders { 8.8.8.8; 8.8.4.4; }; forward only; dnssec-enable yes; dnssec-validation yes; |
Salvare il file di configurazione e chiuderlo.
TEST DELLA CONFIGURAZIONE DI BIND
Al termine di tutte le configurazioni il file named.conf.options dovrebbe avere questo contenuto:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
// If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== acl clientok { 192.168.100.0/24; localhost; localnets; }; options { directory "/var/cache/bind"; recursion yes; allow-query { clientok; }; forwarders { 8.8.8.8; 8.8.4.4; }; forward only; dnssec-enable yes; dnssec-validation yes; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; }; |
Ora che il tuo server Bind è configurato come server DNS di memorizzazione nella cache o server DNS di inoltro, siamo pronti ad attuare le nostre modifiche.
Prima di fare il grande passo e riavviare il server Bind sul nostro sistema, dovremmo usare gli strumenti inclusi di Bind per verificare la sintassi dei nostri file di configurazione.
Possiamo farlo facilmente con il comando:
0 |
sudo named-checkconf |
Se non ci sono errori di sintassi nella configurazione, il prompt della shell tornerà immediatamente senza visualizzare alcun output.
Per applicare le modifiche riavviamo Bind con il comando:
0 |
sudo service bind9 restart |
A questo punto il server DNS è funzionante e per tutte le richieste di Zone Interne risponderà lui invece per la risoluzione di zone esterne girerà le richiesta ai DNS di Google che abbiamo impostato.
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
0 Comments