Gentoo Logo

Guida a BIND in Gentoo

Indice:

1.  Introduzione

Questo tutorial spiega come installare e configurare BIND, il server DNS più utilizzato su internet. bind verrà configurato per il proprio dominio utilizzando configurazioni differenti, una per la propria rete locale ed una per il resto del mondo. Per fare questo verranno utilizzate le viste. Una per la zona interna (la propria rete locale) ed un'altra per la zona esterna (il resto del mondo).

2.  Dati utilizzati nell'esempio

Keyword Spiegazione Esempio
DOMINIO Il proprio nome dominio gentoo.org
INDIRIZZO_IP L'indirizzo ip pubblico assegnato dall'ISP 204.74.99.100
IP_LOCALE L'indirizzo ip locale 192.168.1.5
RETE_LOCALE La propria rete locale 192.168.1.0/24
SERVER_DNS_SLAVE L'indirizzo ip del server DNS slave per il proprio dominio. 209.177.148.228
ADMIN Il nome dell'amministratore del server DNS. root
MODIFICA La data di modifica del file di zona, con l'aggiunta di un numero 2009062901

Figura 2.1: Esempio di rete

Fig. 1: network

3.  Configurazione di BIND

Installazione

Per prima cosa, installare net-dns/bind.

Codice 3.1: Installazione di bind

# emerge net-dns/bind

Configurazione di /etc/bind/named.conf

La prima cosa da configurare è il file /etc/bind/named.conf. La prima parte di questo passo consiste nello specificare la directory radice di bind, la porta di ascolto con gli indirizzi IP, il file pid, ed una riga relativa al protocollo ipv6.

Codice 3.2: Sezione options

options {
        directory "/var/bind";

        listen-on-v6 { none; };
        listen-on port 53 { 127.0.0.1; IP_LOCALE; };

        pid-file "/var/run/named/named.pid";
};

La seconda parte di named.conf è la vista interna utilizzata per la propria rete locale.

Codice 3.3: Vista interna

view "internal" {
        match-clients { RETE_LOCALE; localhost; };
        recursion yes;

        zone "DOMINIO" {
                type master;
                file "pri/DOMINIO.internal";
                allow-transfer { any; };
        };
};

La terza parte di named.conf è la vista esterna utilizzata per risolvere il proprio nome dominio per il resto del mondo e per risolvere tutti gli altri nomi domini per il proprio host (e per chiunque voglia utilizzare questo server DNS).

Codice 3.4: Vista esterna

view "external" {
        match-clients { any; };
        recursion no;

        zone "." IN {
                type hint;
                file "named.ca";
        };

        zone "127.in-addr.arpa" IN {
                type master;
                file "pri/127.zone";
                allow-update { none; };
                notify no;
        };

        zone "DOMINIO" {
                type master;
                file "pri/DOMINIO.external";
                allow-query { any; };
                allow-transfer { SERVER_DNS_SLAVE; };
        };
};

La parte finale di named.conf è la politica di logging.

Codice 3.5: Vista esterna

logging {
        channel default_syslog {
                file "/var/log/named/named.log" versions 3 size 5m;
                severity debug;
                print-time yes;
                print-severity yes;
                print-category yes;
        };
       category default { default_syslog; };
};

La cartella /var/log/named deve esistere ed essere inclusa in named:

Codice 3.6: Creazione del file di log

# mkdir -p /var/log/named/
# chmod 770 /var/log/named/
# touch /var/log/named/named.log
# chmod 660 /var/log/named/named.log
# chown -R named /var/log/named/
# chgrp -R named /var/log/named/

Creazione del file per la zona interna

Saranno utilizzati i nomi host e gli indirizzi IP nell'immagine della rete di esempio. C'è da notare che quasi tutti (non tutti) i domini finiscono con "." (punto).

Codice 3.7: /var/bind/pri/DOMINIO.internal

$TTL 2d
@       IN SOA  ns.DOMINIO.     ADMIN.DOMINIO. (
        MODIFICATION    ; serial
        3h      ; refresh
        1h      ; retry
        1w      ; expiry
        1d )    ; minimum

DOMINIO.                IN MX   0 mail.DOMINIO.
DOMINIO.                IN TXT  "v=spf1 ip4:YOUR_PUBLIC_IP/32 mx ptr mx:mail.DOMINIO ~all"
DOMINIO.                IN NS   ns.DOMINIO.
DOMINIO.                IN NS   SERVER_DNS_SLAVE
www.DOMINIO.            IN A    192.168.1.3
ns.DOMINIO.             IN A    192.168.1.5
posta.DOMINIO.          IN A    192.168.1.3
router.DOMINIO.         IN A    192.168.1.1
hell.DOMINIO.           IN A    192.168.1.3
heaven.DOMINIO.         IN A    192.168.1.5
desktop.DOMINIO.        IN A    192.168.1.4

Creazione del file per la zona esterna

Ora qui ci sono soltanto i sottodomini da utilizzare per i client esterni (www, posta e ns).

Codice 3.8: /var/bind/pri/DOMINIO.external

$TTL 2d
@       IN SOA  ns.DOMINIO.     ADMIN.DOMINIO. (
        MODIFICATION    ;serial
        3h      ;refresh
        1h      ;retry
        1w      ;expiry
        1d )    ;minimum

DOMINIO.                IN MX   0 mail.DOMINIO.
DOMINIO.                IN TXT  "v=spf1 ip4:IP_PUBBLICO/32 mx ptr mx:mail.DOMINIO ~all"
DOMINIO.                IN NS   ns.DOMINIO.
DOMINIO.                IN NS   SERVER_DNS_SLAVE
www.DOMINIO.            IN A    IP_PUBBLICO
ns.DOMINIO.             IN A    IP_PUBBLICO
posta.DOMINIO.          IN A    IP_PUBBLICO

Completamento della configurazione

Il servizio named va aggiunto al runlevel di default:

Codice 3.9: Aggiunta al runlevel di default

# rc-update add named default

4.  Configurazione dei client

Ora è possibile utilizzare il proprio server DNS su tutte le macchine della propria rete locale per risolvere i nomi domini. È necessario modificare il file /etc/resolv.conf su tutte le macchine della propria rete locale.

Codice 4.1: Modifica del file /etc/resolv.conf

search DOMINIO
nameserver IP_SERVER_DNS

Notare che IP_SERVER_DNS è lo stesso di IP_LOCALE utilizzato in questo documento. Nell'immagine l'esempio è 192.168.1.5.

5.  Verifica

Possiamo finalmente testare il nostro nuovo server DNS. Per prima cosa, avviare il servizio.

Codice 5.1: Avvio manuale del servizio

# /etc/init.d/named start

Verrà invocato diverse volte il comando host su alcuni domini. È possibile utilizzare qualsiasi computer della propria rete locale per effettuare questo test. Se net-dns/host non è installato è possibile utilizzare al suo posto ping. Altrimenti, eseguire prima emerge host.

Codice 5.2: Esecuzione del test

$ host www.gentoo.org
www.gentoo.org has address 209.177.148.228
www.gentoo.org has address 209.177.148.229

$ host hell
hell.DOMINIO has address 192.168.1.3

$ host router
router.DOMINIO has address 192.168.1.1

6.  Protezione del server con iptables

Se si utilizza iptables per proteggere il proprio server, è possibile aggiungere queste regole per il servizio DNS.

Codice 6.1: Regole iptables

iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT


Stampa

Aggiornato il 21 agosto 2009

La versione originale di questo documento non è più mantenuta

Oggetto: Questa guida vuole insegnare come installare e configurare BIND per il proprio dominio e per la propria rete locale.

Vicente Olivert Riera
Autore

Joshua Saddler
Redazione

Marco Paolone
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.