Red Hat Enterprise Linux 3: Reference Guide | ||
---|---|---|
Indietro | Capitolo 12. BIND (Berkeley Internet Name Domain) | Avanti |
Il file /etc/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, infatti, sovrascritte al successivo utilizzo del Tool di configurazione del servizio del nome del dominio. |
Un file tipico named.conf é organizzato in modo del tutto simile al seguente esempio:
<statement-1> ["<statement-1-name>"] [<statement-1-class>] { <option-1>; <option-2>; <option-N>; }; <statement-2> ["<statement-2-name>"] [<statement-2-class>] { <option-1>; <option-2>; <option-N>; }; <statement-N> ["<statement-N-name>"] [<statement-N-class>] { <option-1>; <option-2>; <option-N>; }; |
I seguenti tipi di struzioni sono usati comunemente in /etc/named.conf:
L'istruzione acl (o commento di controllo di accesso) definisce il gruppo o gli host permessi o meno all'accesso al server dei nomi.
Una istruzione acl ha la seguente forma:
acl <acl-name> { <match-element>; [<match-element>; ...] }; |
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 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:
acl black-hats { 10.0.2.0/24; 192.168.0.0/24; }; acl red-hats { 10.0.1.0/24; }; options { blackhole { black-hats; }; allow-query { red-hats; }; allow-recursion { red-hats; }; } |
Questo esempio contiene due elenchi di controllo accesso, black-hats e red-hats. Gli host nell'elenco black-hats vengono rifiutati l'accesso al server dei nomi, mentre viene a loro dato nell'elenco red-hats.
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.
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 query permesse 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 dei nomi. Per default, tutti gli host sono autorizzati. Un elenco di controllo accessi 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 nelladirettiva forwarders vengano interrogati prima che named tenti di risolvere il nome da solo.
only — Specifica che named non tenti 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.
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 in la Sezione 12.7.1 e la pagina man per bind.conf per maggiori informazioni.
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. Quessto 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, dato che esso é il valore di default assegnato per la direttiva $ORIGIN usata all'interno il corrispondente file zone posizionato nella directory 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 che sono permessi 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:
forward — chiede al server dei nomi di reindirizzare ad altri server tutte le richieste di informazioni su questa zona.
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 aquesta zona, scrivendole nella posizione di default (/var/named/named.stats) o nel file elencato nell'opzione statistics-file nell'istruzione server. Consultare la Sezione 12.2.2 per maggiori informazioni inerenti al server.
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.
I seguenti sono una lista di cistruzioni meno usati disponibili in named.conf
controls — Configura vari requisiti di sicurezza necessari all'uso del comando rndc per amministrare il servizion named.
Consultare la Sezione 12.4.1 per saperne di più su come l'istruzione controls è strutturato,incluso le opzioni che possono essere disponibili.
key "<key-name>" — definisce una chiave particolare per nome. Le chiavi sono usate per autenticare azioni varie, come ad esempio aggiornamenti sicuri o l'uso del comando rndc. Due opzioni sono usate con key:
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 istruzioni su come scrivere un commento 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é 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.
Personalizzando il processo di log in, puó rappresentare un una fase molto articolata, e va oltre lo scopo prefisso in questo capitolo. Per maggiori informazioni sulla creazione dei log BIND personali, consultare il BIND 9 Administrator Reference Manual in la Sezione 12.7.1.
server — Specifica le opzioni che influenzanoil comportamento di named rispetto ai nameserver remoti, in particolar modo nei confronti delle notifiche e dei trasferimenti di zona.
L'opzione transfer-format controlla se una risorsa record é inviata con ogni messaggio (one-answer) oppure 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 inerenti la sicurezza di BIND.
view "<view-name>" — Crea visuali speciali a seconda della rete sulla quale viene effettuata l'interrogazione da parte dell'host al nameserver.Questo permette ad alcuni host di ricevere una risposta inerente ad una zona particolare, mentre altri host riceveranno delle informazioni totalmente diverse. Alternativamente, alcune zone vengono rese disponibili a degli host sicuri mentre quelli non sicuri possono solo effettuare delle richieste ad altre zone.
Visuali multiple possono essere usate fino a quando i loro 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, in quanto il primo commento view idoneo ad un particolare indirizzo IP del client, viene usato.
Consultare la Sezione 12.5.2 per maggiori informazioni inerenti l'istruzione view.
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.