Product SiteDocumentation Site

10.7. Domenenavntjenere (DNS)

Domain Name Service (DNS) er en fundamental del av Internettet: den kartlegger vertsnavn til IP-adresser (og vice versa), som tillater bruk av www.debian.org i stedet for 130.89.148.77 eller 2001:67c:2564:a119::77.
DNS-oppføringer er organisert i soner; hver sone svarer enten til et domene (eller et underdomene), eller et IP-adresseområde (siden IP-adresser generelt tildeles fortløpende i rekkefølge). En primærtjener er autoritativ når det gjelder innholdet i en sone; sekundære tjenere, som vanligvis ligger på separate maskiner, gir jevnlig oppdaterte kopier av primærsonen.
Hver sone kan inneholde registreringer av ulike slag (Resource Records): her er noen av de mest vanlige:

10.7.1. DNS software

Referansenavnetjeneren, Bind, ble utviklet og vedlikeholdt av ISC (Internet Software Consortium). I Debian er den tilgjengelig i bind9-pakken. Versjon 9 bringer to store endringer i forhold til tidligere versjoner. Først nå kan DNS-tjeneren kjøre under en ikke-privilegert bruker, slik at et sikkerhetsproblem i tjeneren ikke gir rot-tilgang til angriperen (som forekom gjentatte ganger med versjoner 8.x).
Videre støtter Bind DNSSEC-standarden for signering (og dermed autentisering) av DNS-opptak, som tillater blokkering av all forfalskning av data under man-in-the-middle angrep.

10.7.2. Oppsett av bind

Oppsettsfiler for bind, uavhengig av versjon, har den samme strukturen.
Falcots administratorer opprettet en primær falcot.com-sone for å lagre informasjon relatert til dette domenet, og en 168.192.in-addr.arpa-sone for reversert kartlegging av IP-adresser i de lokale nettverkene.
Det følgende oppsettsutdraget, hentet fra Falcot-filene, kan tjene som utgangspunkt for oppsett av en DNS-tjener:

Eksempel 10.12. Utdag av /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; };
};

Eksempel 10.13. Utdrag av /etc/bind/db.falcot.com

; falcot.com-sonen
; admin.falcot.com. => zone contact: admin@falcot.com
$TTL    604800
@       IN      SOA     falcot.com. admin.falcot.com. (
                        20040121        ; Seriellnummer
                         604800         ; Fornying
                          86400         ; Nytt forsøk
                        2419200         ; Utløp
                         604800 )       ; Negativ mellomglagrings-TTL
;
; @ refererer til sonenavnet ("falcot.com" her)
; eller til $ORIGIN hvis det uttrykket har vært brukt
;
@       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

Eksempel 10.14. Utdrag fra /etc/bind/db.192.168

; Reverssone for 192.168.0.0/16
; admin.falcot.com. => zone contact: admin@falcot.com
$TTL    604800
@       IN      SOA     ns.internal.falcot.com. admin.falcot.com. (
                        20040121        ; Seriellnummer
                         604800         ; Fornying
                          86400         ; Nytt forsøk
                        2419200         ; Utløp
                         604800 )       ; Negativ mellomlagrings-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.