20.4. Il file di configurazione /etc/named.conf

Tutte le impostazioni del server dei nomi BIND sono contenute nel file /etc/named.conf. Tuttavia, i dati delle zone del dominio da gestire, che comprendono i nomi degli host, gli indirizzi IP e così via, sono contenuti in un altro file nella directory /var/lib/named, come descritto in dettaglio di seguito.

/etc/named.conf è diviso in due aree. Una è la sezione options che contiene le impostazioni generali, mentre l'altra comprende le voci zone per i singoli domini. Le voci logging e acl (Access Control List) sono opzionali. Le righe dei commenti iniziano con il simbolo # o //. Un esempio di file di configurazione /etc/named.conf di base è mostrato nell'Esempio 20.2, "File di configurazione di base /etc/named.conf".

Esempio 20.2. File di configurazione di base /etc/named.conf

options { 
        directory "/var/lib/named"; 
        forwarders { 10.0.0.1; };
        notify no;
};

zone "localhost" in {
       type master;
       file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" in {
        type master;
        file "127.0.0.zone";
};

zone "." in {
        type hint;
        file "root.hint";
};

20.4.1. Opzioni di configurazione importanti

directory "nome file";

Specifica la directory in cui BIND può trovare i file che contengono i dati relativi alle zone. Generalmente i file sono contenuti nella directory /var/lib/named.

forwarders { ip-address; };

Specifica i server dei nomi (generalmente del provider) a cui devono essere inoltrate le richieste del server DNS se non possono essere risolte direttamente. Sostituire ip-address con un indirizzo IP come 10.0.0.1.

forward first;

Inoltra le richieste del server DNS prima che vengano risolte tramite i server dei nomi root. Anzichè forward first, è possibile anche specificare forward only per fare in modo che vengano inoltrate tutte le richieste e che nessuna di queste venga inviata ai server dei nomi root. Questa opzione può essere utile per le configurazioni dei firewall.

listen-on port 53 { 127.0.0.1; ip-address; };

Indica a BIND le interfacce di rete e la porta da cui può accettare query client. L'opzione port 53 non deve essere specificata esplicitamente perché 53 è la porta di default. Immettere 127.0.0.1 per permettere le richieste dall'host locale. Se questa voce viene ignorata, per default vengono usate tutte le interfacce.

listen-on-v6 port 53 {any; };

Indica a BIND quale porta ascoltare per le richieste client IPv6. L'unica alternativa a any è none. Per IPv6, il server accetta solo indirizzi con caratteri jolly.

query-source address * port 53;

Questa voce è necessaria se si utilizza un firewall per bloccare le richieste DNS in uscita. Indica a BIND di inviare le richieste esternamente alla porta 53 e di non usare porte con numeri superiori a 1024.

query-source-v6 address * port 53;

Indica a BIND quale porta usare per le query IPv6.

allow-query { 127.0.0.1; net; };

Definisce le reti su cui i client possono pubblicare richieste DNS. Sostituire net con i dati dell'indirizzo come 192.168.1/24. Il numero /24 alla fine è l'abbreviazione della maschera di rete; in questo caso 255.255.255.0.

allow-transfer ! *;;

Specifica quali host possono richiedere il trasferimento di zone. Nell'esempio queste richieste sono escluse, come indica il simbolo ! *. Se questa voce non viene specificata, i trasferimenti di zone possono essere richiesti da qualunque punto senza limitazioni.

statistics-interval 0;

Se questa voce non è specificata, BIND genera più righe di informazioni statistiche all'ora in/var/log/messages. Impostare questa voce su 0 per eliminare completamente le statistiche oppure impostare un intervallo in minuti.

cleaning-interval 720;

Questa opzione specifica con quale frequenza BIND cancella la cache. L'esecuzione di questa operazione provoca la scrittura di una voce in /var/log/messages. La frequenza deve essere specificata in minuti. L'impostazione di default è 60 minuti.

interface-interval 0;

BIND ricerca regolarmente interfacce nuove o inesistenti nelle interfacce di rete. Se questo valore è impostato a 0, l'operazione non viene eseguita e BIND ascolta solo le interfacce rilevate al momento dell'avvio. In alternativa, è possibile anche definire un intervallo in minuti. L'intervallo di default è sessanta minuti.

notify no;

no evita che le modifiche alle zone e il riavvio del server dei nomi vengano segnalati ad altri server di nomi.

20.4.2. Registrazione

BIND consente di specificare in dettaglio cosa deve essere registrato e come e quando devono essere effettuate le registrazioni. Generalmente, è sufficiente usare le impostazioni di default. L'Esempio 20.3, "Voce per la disabilitazione della registrazione" mostra l'impostazione più semplice, che si riferisce al caso in cui non venga effettuata nessuna registrazione.

Esempio 20.3. Voce per la disabilitazione della registrazione

logging {
        category default { null; };
};

20.4.3. Voci delle zone

Esempio 20.4. Voce zona per my-domain.de

zone "my-domain.de" in {
      type master;
      file "my-domain.zone";
      notify no;
};

Dopo zona specificare il nome del dominio da amministrare (my-domain.de) seguito da in e un blocco di opzioni rilevanti racchiuse da parentesi graffe, come mostrato nell'Esempio 20.4, "Voce zona per my-domain.de". Per definire una zona slave, impostare tipo suslave e specificare il server dei nomi che amministra la zona come master, che a sua volta deve essere un server slave di un altro server master, come mostrato nell'Esempio 20.5, "Voce zona per other-domain.de".

Esempio 20.5. Voce zona per other-domain.de

zone "other-domain.de" in {
      type slave;
      file "slave/other-domain.zone";
      masters { 10.0.0.1; }; 
};

Opzioni zone:

type master;

Specificare master per informare BIND che la zona è già gestita da un altro server di nomi locale. Ciò è possibile solo se il file delle zone è stato creato nel formato corretto.

type slave;

Questa zona è trasferita da un altro server di nomi e deve essere usato insieme a master.

type hint;

La zona. del tipo suggerimento viene usata per impostare i server dei nomi root. Questa definizione di zona può essere lasciata così com'è.

file my-domain.zone o "slave/other-domain.zone";

Questa voce specifica il file che contiene i dati delle zone per il dominio. Il file non è richiesto per i server slave, perché in questo caso i dati vengono acquisiti da un altro server di nomi. Per differenziare i server master e slave, usare la directory slave per i file dei server slave.

masters { server-ip-address; };

Questa voce è necessaria solo per le zone slave. Specifica da quale server di nomi deve essere trasferito il file della zona.

allow-update {! *; };

Questa opzione controlla l'accesso in scrittura esterno, che permette ai clienti di scrivere voci DNS. Questa operazione non è generalmente permessa per motivi di sicurezza. Se questa voce non viene specificata, gli aggiornamenti delle zone non sono permessi. La voce nell'esempio ha lo stesso effetto perché ! * vieta questo tipo di operazione.