Product SiteDocumentation Site

10.7. Servidors de noms de domini (DNS)

El «Domain Name Service» o “Servei de noms de domini” (DNS) és un component fonamental d'Internet: assigna noms d'amfitrió a adreces IP (i viceversa), que permet l'ús de www.debian.org en lloc de 130.89.148.77 o 2001:67c:2564:a119::77.
Els registres DNS s'organitzen en zones; cada zona coincideix o bé amb un domini (o un subdomini) o amb un interval d'adreces IP (ja que les adreces IP generalment s'assignen en intervals consecutius). Un servidor primari és autoritatiu en el contingut d'una zona; els servidors secundaris, normalment allotjats en màquines separades, proporcionen còpies regularment refrescades de la zona primària.
Cada zona pot contenir registres de diversos tipus («Resource Records» o “registres de recursos”), aquests són alguns dels més comuns:

10.7.1. Programari DNS

El servidor de noms de referència, Bind, fou desenvolupat i és mantingut per l'ISC (l'Internet Software Consortium). És proporcionat a Debian pel paquet bind9. La versió 9 aporta dos canvis importants en comparació amb les versions anteriors. En primer lloc, el servidor DNS ara pot funcionar sota un usuari sense privilegis, de manera que una vulnerabilitat de seguretat en el servidor no concedeix privilegis d'arrel a l'atacant (com es va veure repetidament amb les versions 8.x).
A més, Bind dona suport a l'estàndard DNSSEC per signar (i per tant autenticar) registres de DNS, fet que permet bloquejar qualsevol espoli d'aquestes dades en atacs de tipus «man-in-the-middle».

10.7.2. Configurant bind

Els arxius de configuració de bind, independentment de la versió, tenen la mateixa estructura.
Els administradors de Falcot han creat una zona primària falcot.com per emmagatzemar informació relacionada amb aquest domini, i una zona 168.192.in-addr.arpa per a l'assignació inversa d'adreces IP a les xarxes locals.
Els següents extractes de configuració, extrets dels arxius de Falcot, poden servir com a punts de partida per configurar un servidor DNS:

Exemple 10.12. Extracte de /etc/bind/named.conf.local

zone "falcot.com" {
        type master;
        file "/etc/bind/db.falcot.com";
        allow-query { any; };
        allow-transfer {
                195.20.105.149/32 ; // ns0.xname.org
                193.23.158.13/32 ; // ns1.xname.org
        };
};

zone "internal.falcot.com" {
        type master;
        file "/etc/bind/db.internal.falcot.com";
        allow-query { 192.168.0.0/16; };
};

zone "168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.192.168";
        allow-query { 192.168.0.0/16; };
};

Exemple 10.13. Extracte de /etc/bind/db.falcot.com

; Zona falcot.com 
; admin.falcot.com. => contacte per a la zona: admin@falcot.com
$TTL    604800
@       IN      SOA     falcot.com. admin.falcot.com. (
                        20040121        ; Sèrie
                         604800         ; Refrescar
                          86400         ; Reintentar
                        2419200         ; Expirar
                         604800 )       ; TTL per a la caché negativa
;
; El @ fa referència al nom de la zona ("falcot.com" aquí)
; o a $ORIGIN si la directiva ha estat usada
;
@       IN      NS      ns
@       IN      NS      ns0.xname.org.

internal IN      NS      192.168.0.2

@       IN      A       212.94.201.10
@       IN      MX      5 mail
@       IN      MX      10 mail2

ns      IN      A       212.94.201.10
mail    IN      A       212.94.201.10
mail2   IN      A       212.94.201.11
www     IN      A       212.94.201.11

dns     IN      CNAME   ns

Exemple 10.14. Extracte de /etc/bind/db.192.168

; Zona inversa per 192.168.0.0/16
; admin.falcot.com. => contacte de zona: admin@falcot.com
$TTL    604800
@       IN      SOA     ns.internal.falcot.com. admin.falcot.com. (
                        20040121        ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL

        IN      NS      ns.internal.falcot.com.

; 192.168.0.1 -> arrakis
1.0     IN      PTR     arrakis.internal.falcot.com.
; 192.168.0.2 -> neptune
2.0     IN      PTR     neptune.internal.falcot.com.

; 192.168.3.1 -> pau
1.3     IN      PTR     pau.internal.falcot.com.