Segue un esempio di configurazione del server DNS Bind con il supporto delle View per risolvere gli indirizzi del dominio "miodominio.it" in diverso modo a seconda se i client hanno IP 192.168.0.0/24 o no.
Ovviamente l'esempio č configurabile ed adattabile a diversi casi, sono inoltre inclusi settaggi particolari, adatti per ogni occasione, per il logging e la gestione di chi puņ eseguire query sul server.
Sono evidenziati i parametri che vanno cambiati e adattati al proprio caso, altri parametri non usati sono generalmente validi ma possono comunque essere rifiniti.
Esempio di /ETC/NAMED.CONF
options {
// Directory di default in cui vanno scritti i file di zona e altri dati. DA SPECIFICARE
directory "/var/named";
// Eventuale Indirizzo IP del server DNS a cui il server locale rivolge tutte le query (commentato)
// forwarders {
// 10.42.42.1;
// };
// File in cui viene registrato il dump della cache quando si esegue "rndc dump"
dump-file "/var/named/dumpdb";
// File in cui sono scritte varie statistiche quando si esegue "rndc stat"
statistics-file "/var/named/stats";
// IP da cui di DEFAULT si accettano query DNS
// Attenzione: Per domini di cui si è autoritativi, si deve accettare query da ogni IP
allow-query {
10.42.42.0/24;
192.168.0.0/24;
};
// IP da cui si accettano query ricorsive: il server locale effettua query in rete per conto del client
allow-recursion {
10.42.42.0/24;
192.168.0.0/24;
};
// IP di default da cui si accettano zone-transfer: sono gli IP dei server secondari
allow-transfer {
10.42.42.1;
};
// Notifica ai server secondary eventuali modifiche ai file di zone per cui si è primari
notify yes;
// Modifica la visualizzazione della versione di Bind (possibile tramite query tipo:
dig @ns.miodominio.it version.bind chaos txt . In questo caso non si visualizza nulla
version "" ;
};
// Abilita il logging di TUTTE le query DNS sul file /var/log/named-query.log e di ogni informazioni relative la sicurezza (in particolare zone transfer negati) su /var/log/named-auth.log
logging {
channel "security_info" {
file "/var/log/named-auth.log" versions 3 size 20m;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
channel "query_logging" {
file "/var/log/named-query.log" versions 3 size 20m;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category "security" { "security_info"; };
category "queries" { "query_logging"; };
};
// View per client Pubblici - Usa un file di zona con gli IP pubblici: /var/named/miodominio.it-public
// Si applica a tutti gli IP esclusi 192.168.0.0/24
// Include, come la view private, un file di configurazione con impostazioni comuni
view public {
match-clients {
! 192.168.0.0/24 ;
any;
};
zone "miodominio.it" {
type master;
file "/var/named/miodominio.it-public";
allow-query {
0/0;
};
};
include "/etc/named.common" ;
};
// View per client Interni - Usa un file di zona separato: /var/named/miodominio.it-private
view inter {
match-clients {
192.168.0.0/24;
};
zone "miodominio.it" {
type master;
file "/var/named/miodominio.it-private";
};
};
include "/etc/named.common" ;
};
Esempio di file di configurazione che viene incluso (in comune alle diverse view): /ETC/NAMED.COMMON
zone "." {
type hint;
file "/var/named/db.cache";
};
zone "localhost" {
type master;
file "localhost";
allow-update{none;};
};
zone "0.0.127.in-addr.arpa" {
type master;
file "localhost.reverse";
allow-update{none;};
};
Esempio di file di zona /VAR/NAMED/MIODOMINIO.IT-PUBLIC
Questo è un esempio di file di zona, configurato per la view pubblica. Da notare:
- I due server NS autoritativi sono su due reti separate per migliore ridondanza
- I CNAME (alias) e gli altri record in cui si usa un hostname, hanno un punto alla fine del nome dell'hostname
- Tutti i parametri relativi a nomi di host, dominio e indirizzi IP vanno ovviamente modificati e adattati al proprio caso
$ORIGIN .
$TTL 86400 ; 1 day
miodominio.it IN SOA ns.miodominio.it. root.miodominio.it. (
2004102501 ; serial
86400 ; refresh (1 day)
7200 ; retry (2 hours)
2592000 ; expire (4 weeks 2 days)
86400 ; minimum (1 day)
)
NS ns.miodominio.it.
NS ns2.miodominio.it.
MX 10 mail.miodominio.it.
MX 20 mailbackup.miodominio.it.
$ORIGIN miodominio.it.
ftp CNAME www.miodominio.it.
www A 213.215.144.244
ns A 213.215.144.245
ns2 A 217.56.35.9
mail A 213.215.144.242
mailbackup CNAME ns.miodominio.it.
Esempio di file di zona /VAR/NAMED/MIODOMINIO.IT-PRIVATE
Analogo al file di zona precedente, quello che segue risolve alcuni hst con indirizzi diversi (potrebbero essere IP privati che vengono nattati con gli IP pubblici precedentemente indicati.
$ORIGIN .
$TTL 86400 ; 1 day
miodominio.it IN SOA ns.miodominio.it. root.miodominio.it. (
2004102501 ; serial
86400 ; refresh (1 day)
7200 ; retry (2 hours)
2592000 ; expire (4 weeks 2 days)
86400 ; minimum (1 day)
)
NS ns.miodominio.it.
NS ns2.miodominio.it.
MX 10 mail.miodominio.it.
MX 20 mailbackup.miodominio.it.
$ORIGIN miodominio.it.
ftp CNAME www.miodominio.it.
www A 192.168.0.244
ns A 192.168.0.245
ns2 A 217.56.35.9
mail A 192.168.0.242
mailbackup CNAME ns.miodominio.it.