NOTE: CentOS Enterprise Linux is built from the Red Hat Enterprise Linux source code. Other than logo and name changes CentOS Enterprise Linux is compatible with the equivalent Red Hat version. This document applies equally to both Red Hat and CentOS Enterprise Linux.
Linuxtopia - CentOS Enterprise Linux Reference Guide - /etc/named.conf
Il file named.conf � un insieme di istruzioni che utilizza opzioni nidificate tra parentesi graffe { }. Gli amministratori devono prestare attenzione nel modificare named.conf, in quanto piccoli errori di sintassi impediscono la partenza del servizio named.
Avvertenza
Non modificate manualmente il file /etc/named.conf o qualsiasi file nella directory /var/named/, se state utilizzando l'applicazione Tool di configurazione del servizio del nome del dominio. Tutte le modifiche manuali apportate a questi file, verranno sovrascritte al successivo utilizzo di Tool di configurazione del servizio del nome del dominio.
Un file tipico named.conf � organizzato in modo del tutto simile al seguente esempio:
In questa istruzione, sostituire <acl-nome> con il nome della lista di controllo accesso e sostituire <elemento-corrispondente> con una serie di indirizzi IP separati da un punto e virgola. La maggior parte delle volte vengono utilizzati gli indirizzi IP individuali o le notazioni di rete IP (come 10.0.1.0/24) per identificare gli indirizzi IP all'interno del commento acl.
Le seguenti liste di controllo per gli accessi sono gi� definite come parole chiavi per semplificare la configurazione:
any — corrisponde a ogni indirizzo IP.
localhost — corrisponde a qualsiasi indirizzo IP in uso nel sistema locale.
localnets — corrisponde a qualsiasi indirizzo IP in qualsiasi rete a cui il sistema locale � connesso.
none — non corrisponde a nessun indirizzo IP.
Se utilizzato con altre istruzioni (come ad esempio options), i commenti acl possono essere molto utili nel prevenire l'uso improprio di un server dei nomi BIND.
Il seguente esempio definisce due liste di controllo di accesso e usa una istruzione options per definire come vengono trattate dal server:
Questo esempio contiene due elenchi di controllo per l'accesso, black-hats e red-hats. Gli host nell'elenco black-hats non vengono accettati nel server dei nomi, mentre vengono accettati nell'elenco red-hats.
12.2.1.2. L'istruzione include
L'istruzione include permette ai file di essere inclusi in un file named.conf. In questo modo i dati importanti di configurazione (come ad esempio keys), possono essere posizionati in un file separato con permessi restrittivi.
Una istruzione include assume la seguente forma:
include "<file-name>"
In questa istruzione, <nome-file> viene sostituito con un path assoluto per un file.
12.2.1.3. Istruzione options
L'istruzione options definisce le opzioni di configurazione globale del server e imposta i default per altri commenti. Pu� essere usato per specificare la posizione della directory di lavoro named i tipi di interrogazione permessi e molto altro.
L'istruzione options assume la seguente forma:
options {
<option>;
[<option>; ...]
};
In questa istruzione, le direttive <option> sono sostituite con una opzione valida.
Le seguenti sono opzioni usate comunemente:
allow-query — specifica gli host autorizzati a interrogare questo server. Per default, tutti gli host sono autorizzati. Un elenco di controllo dell'accesso o un insieme degli indirizzi o reti IP pu� essere utilizzato, in questo caso, solo per autorizzare degli host particolari a interrogare il server dei nomi.
allow-recursion — simile a allow-query, tranne per il fatto che viene utilizzato per richieste ricorsive. Per default, tutti gli host sono autorizzati ad effettuare richieste ricorsive ai server dei nomi.
blackhole — Specifica quali host non possono interrogare i server.
directory — Specifica la directory di lavoro named se diversa dal valore di default /var/named/.
forward — Specifica il modo in cui avviene l'inoltro da parte di una direttiva forwarders.
Sono accettate le seguenti opzioni:
first — Specifica che i nameserver elencati nella direttiva forwarders vengano interrogati prima che named tenti di risolvere il nome da solo.
only — Specifica che named non cerchi di eseguire la risoluzione del nome da solo, nel caso in cui le interrogazioni ai nameserver specificati nella direttiva forwarders falliscano.
forwarders — Specifica un elenco di indirizzi IP validi per i server dei nomi a cui inviare le richieste di risoluzione.
listen-on — specifica l'interfaccia di rete che named utilizza per ricevere le interrogazioni. Per default, vengono utilizzate tutte le interfacce.
Usando questa direttiva su di un server DNS, il quale funge da gateway, BIND pu� essere configurato in modo da rispondere solo alle domande originate da una delle reti.
Una direttiva listen-on somiglia al seguente esempio:
options {
listen-on { 10.0.1.1; };
};
In questo esempio, vengono accettate solo le richieste che provengono dall'interfaccia di rete che serve la rete privata (10.0.1.1).
notify — Controlla se named notifica i server slave quando si aggiorna una zona. Accetta le seguenti opzioni:
yes — Notifica i server slave.
no — Non notifica i server slave.
explicit — Notifica solo i server slave specificati in un elenco also-notify all'interno di una istruzione di zona.
pid-file — vi consente di specificare la posizione del file di processo ID creato da named.
root-delegation-only — Abilita la forzatura delle propriet� di delega nei top-level domains (TLD), e nelle zone root con un elenco di esclusione opzionale. Delega � quel processo di separazione di una singola zona in sottozone multiple. Per poter creare una zona delegata, vengono usati gli oggetti conosciuti come record NS. I record NameServer (record di delega) annunciano i nameserver principali per una zona particolare.
L'esempio root-delegation-only seguente, specifica un elenco di esclusione di TLD, dai quali si prevedono delle risposte non delegate fidate:
statistics-file — Vi consente di specificare la posizione in cui � stato salvato il file delle statistiche. Per default, le statistiche di named vengono salvate in /var/named/named.stats.
Sono inoltre disponibili decine di altre opzioni, molte delle quali dipendono l'una dall'altra per poter funzionare correttamente. Per maggiori informazioni, consultate il Manuale BIND 9 di riferimento per l'amministratore nella Sezione 12.7.1 e la pagina man per bind.conf per maggiori informazioni.
12.2.1.4. Istruzione zone
Una istruzione zone definisce le caratteristiche di una zona come ad esempio la posizione dei propri file di configurazione e le opzioni specifiche di zona. Questo commento pu� essere usato per sovrascrivere i commenti globali options.
Una istruzione zone assume la seguente forma:
zone <zone-name><zone-class> {
<zone-options>;
[<zone-options>; ...]
};
In questa istruzione, <nome-zona> � il nome della zona, <classe-zona> � la zona facoltativa della zona, e <opzioni-zona> � un elenco di opzioni che caratterizzano la zona.
L'attributo <nome-zona> per l'istruzione della zona, � particolarmente importante. Esso � il valore di default assegnato per la direttiva $ORIGIN, usata all'interno delfile zone corrispondente posizionato nella directory /var/named/. Il demone named conferisce il nome della zona a qualsiasi nome del dominio non qualificato elencato nel file zone.
Per esempio, se una istruzione zone definisce lo spazio del nome per example.com, usare example.com come <zone-name> cos� da posizionarlo alla fine dell'hostname all'interno del file zone example.com.
Per maggiori informazioni sui file zone, consultare la Sezione 12.3.
Le opzioni pi� comuni della zone include quanto segue:
allow-query — Specifica i client abilitati a richiedere informazioni inerenti questa zona. Per default tutte le richieste vengono permesse.
allow-transfer — Specifica i server slave abilitati a richiedere un trasferimento delle informazioni della zona. Il default � di permettere tutte le richieste di trasferimento.
allow-update — Specifica gli host che sono permessi ad aggiornare dinamicamente le informazioni nella loro zona. Il default � di negare tutte le richieste di aggiornamento dinamico.
Fare attenzione a permettere agli host di aggiornare le informazioni inerenti le loro zone. Non abilitare questa funzione se l'utente non � fidato. In generale, � meglio avere un amministratore che aggiorni manualmente le informazioni e ricaricare il servizio named.
file — Specifica il nome del file nella directory di lavoro che contiene i dati di configurazione della zona. Il default � la directory /var/named/.
masters — Specifica gli indirizzi IP dai quali si effettua la richiesta di informazioni della zona autoritaria, usatosolo se la zona � definita come type eslave.
notify — Specifica se named effettua la notifica ai server slave quando si aggiorna una zona. Questa direttiva accetta le seguenti opzioni:
yes — Notifica i server slave.
no — Non notifica i server slave.
explicit — Notifica solo i server slave specificati in un elenco also-notify all'interno di una istruzione di zona.
type — Definisce il tipo di zona.
Di seguito viene riportata una lista di opzioni valide:
delegation-only — Forza lo stato di delega delle zone dell'infrastruttura, come ad esempio COM, NET oppure ORG. Qualsiasi risposta ricevuta senza una delega implicita o esplicita, viene trattata come NXDOMAIN. Questa opzione viene applicata solo in TLD, o nelle zone root utilizzate con implementazioni caching o ricorsive.
forward — Inoltra tutte le richieste di informazioni di una zona in particolare ad altri server dei nomi.
hint — tipo speciale di zona usato per fare riferimento ai server dei nomi root, utilizzati per risolvere richieste quando una zona � sconosciuta. In genere non � necessario configurare una zona del tipo hint.
master — Definisce il server dei nomi autorevole per questa zona. Occorre impostare una zona del tipo master se nel vostro sistema vi sono i file di configurazione della zona.
slave — Definisce il server come slave per questa zona. Specifica anche l'indirizzo IP del server dei nomi per la zona.
zone-statistics — Configura named in modo da conservare le statistiche relative a questa zona, scrivendole nella posizione di default (/var/named/named.stats), o nel file elencato nell'opzione statistics-file nell'istruzione server. Consultate la Sezione 12.2.2 per maggiori informazioni riguardanti l'istruzione server.
12.2.1.5. Istruzione zone: esempi
La maggior parte delle modifiche al file /etc/named.conf di un server dei nomi master o slave riguarda l'aggiunta, la modifica o la cancellazione di istruzioni zone. Sebbene queste istruzioni possano contenere molte opzioni, quasi tutti i server dei nomi ne usano solo alcune. I commenti zone che seguono sono alcuni esempi di base da utilizzare in una relazione master/slave.
Quello riportato di seguito � un esempio di istruzionezone per il server dei nomi primario con dominio example.com (192.168.0.1):
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
All'interno dell'istruzione la zona � identificata come example.com, il tipo � impostato su master e il servizio named legge il file /var/named/example.com.zone. Indica inoltre a named di non consentire l'aggiornamento da parte di nessun altro host.
Una istruzione zone di un server slave per example.com � leggermente diverso dall'esempio precedente. Per un server slave il tipo � impostato su slave e invece della riga allow-update � presente una direttiva che indica a named l'indirizzo IP del server master.
Quello riportato di seguito � un esempio di istruzione zonedel server slave, per la zona example.com:
zone "example.com" {
type slave;
file "example.com.zone";
masters { 192.168.0.1; };
};
Questa istruzione zone configuranamed sul server slave, in modo da interrogare il server master all'indirizzo IP 192.168.0.1, per informazioni inerenti la zona example.com. Le informazioni che il server slave riceve dal server master vengono salvate in /var/named/domain.com.zone.
12.2.2. Altri tipi di istruzione
Ecco riportata una lista di istruzioni meno usate, disponibili in named.conf
controls — Configura vari requisiti di sicurezza necessari all'uso del comando rndc per amministrare il servizion named.
Consultate la Sezione 12.4.1 per saperne di pi� su come � strutturata l'istruzione controls, incluso le opzioni disponibili.
key "<key-name>" — definisce una chiave particolare per il nome. Le chiavi sono usate per autenticare azioni varie, come ad esempio aggiornamenti sicuri o l'uso del comando rndc. Con key vengono utilizzate due opzioni:
algorithm <algorithm-name> — Il tipo di algoritmo usato, come ad esempio dsa o hmac-md5.
secret "<key-value>" — La chive cifrata.
Consultate la Sezione 12.4.2 per informazioni su come scrivere una istruzione key.
logging — Permette l'uso di tipi di log multipli chiamati canali. Usando l'opzione channel all'interno dell'istruzione logging, un tipo di log personalizzato, con il proprio nome del file (file), misura limite (size), versione (version), e livello d'importanza (severity), pu� essere costruito. Una volta definito un canale personalizzato, una opzione category viene usata per categorizzare il canale e iniziare il logging quando si avvia named.
Per default, named effettua una registrazione di messaggi standard per il demone syslog, inviandoli in /var/log/messages. Ci� accade perch� diversi canali standard sono stati costruiti in BIND con diversi livelli di severit�, come ad esempio il supporto di messaggi di logging (default_syslog), oppure il supporto specifico dei messaggi di debug (default_debug). Una categoria di default, chiamata default, usa i canali (del tipo built-in) per effettuare un logging normale senza alcuna configurazione speciale.
Personalizzare un processo di log in, pu� rappresentare un una fase molto articolata, e va oltre lo scopo di questo capitolo. Per maggiori informazioni sulla creazione dei log BIND personali, consultare BIND 9 Administrator Reference Manual nella Sezione 12.7.1.
server — Specifica le opzioni che influenzano il comportamento di named rispetto ai server dei nomi remoti, in particolar modo nei confronti delle notifiche e dei trasferimenti di zona.
L'opzione transfer-format controlla se una risorsa record viene inviata con ogni messaggio (one-answer) oppure se vengono inviate risorse record multiple sono inviate con ogni messaggio (many-answers). Mentre many-answers � pi� efficiete, solo i server dei nomi BIND pi� recenti lo possono comprendere.
trusted-keys — Contiene diverse chiavi pubbliche usate per rendere sicuro DNS (DNSSEC). Consultare la Sezione 12.5.3 per maggiori informazioni sulla sicurezza di BIND.
view "<view-name>" — Crea una visuale speciale a seconda della rete sulla quale viene effettuata l'interrogazione da parte dell'host al server dei nomi.Questo permette ad alcuni host di ricevere una risposta riguardante una zona particolare, mentre altri host riceveranno delle informazioni totalmente diverse. Alternativamente, alcune zone vengono rese disponibili ad alcuni host sicuri mentre quelli non sicuri possono solo effettuare delle richieste ad altre zone.
Visuali multiple possono essere usate fino a quando i nomi sono unici. L'opzione match-clients specifica gli indirizzi IP idonei ad una visuale particolare. Qualsiasi istruzione options pu� essere usato all'interno di una visuale, sovrascrivendo le opzioni globali gi� configurate per named. Molti commenti view contengono commenti multipli zone idonei all'elenco match-clients. L'ordine con il quale i commenti view vengono elencati � molto importante, poich� viene usato il primo commento view idoneo ad un particolare indirizzo IP del client.
Consultate la Sezione 12.5.2 per maggiori informazioni sull'istruzione view.
12.2.3. Tag di commento
Il seguente � un elenco di tag di commento validi usati all'interno di named.conf:
// — Quando posizionato all'inizio di una riga, la stessa viene ignorata da named.
# — Quando posizionato all'inizio di una riga, la stessa viene ignorata da named.
/* e */ — Quando il testo viene contenuto in queste etichette, lo stesso viene ignorato da named.