DNS

Sebastian Kunec, 359587(@)mail.muni.cz

Obsah

História

Ako funguje DNS

Doménové meno sa skladá z častí (domén, subdomén) oddelených bodkou.
Doména môže obsahovať znaky "A-Z", "a-z", "0-9", "-" a "_".

TTL (Time To Live) je čas, počas ktorého klient považuje informáciu o doménach/adresách za platnú. Po uplynutí tohto času si opäť obnovuje informácie z DNS.

Stromové riešenie
       com        edu    ... cz
       / \         |          \
      /   \        |           \
  google  sun  washington     muni
    /      |       |          /   \
  www     www     www       fi    esf
                            /      \  
                          www      www
  
Typy DNS


Riešenie dotazu pre "server.mojadomena.sk"
Koncový počítač má v operačnom systéme definové DNS servery.
V unix-like systémoch je to /etc/resolv.conf.
Dotaz sa môže riešiť rekurzívne alebo nerekurzívne.
Rekurzívne sa správajú zvyčajne lokálne servery, kvoli záťaži.
Nerekurzívne sa správajú napr. koreňové servery, tie len odkazujú na servery v stromovej štruktúre pod nimi.
  1. počítač kontaktuje váš DNS server
  2. ak je váš DNS server primárnym DNS serverom pre doménu "mojadomena.sk", obslúži požiadavku a vráti IP adresu
  3. ak je váš DNS server sekundárnym DNS serverom pre doménu "mojadomena.sk", poskytne údaje o adrese "server.mojadomena.sk" zo svojej kópie zónového súboru.
  4. ak váš DNS server používa nadradené DNS servery, kontaktuje ich a odovzdá im požiadavku. Toto sa opakuje pre všetky DNS servery, ktorými požiadavka prechádza.
  5. ak DNS nemá definované nadradené servery, kontaktuje náhodne vybraný koreňový DNS server a získa adresu DNS servera pre doménu "sk"
  6. DNS server kontaktuje DNS server pre doménu "sk" a získa adresu DNS servera pre doménu "mojadomena.sk"
  7. DNS server kontaktuje DNS server domény "mojadomena.sk" a získa adresu pre záznam "server.mojadomena.sk"
  8. odpoveď sa vracia postupne cez všetky DNS servery až na počitač, z ktorého bola vyslaná

Typy DNS záznamov

Resolver a jeho konfigurácia

Používa sa na konfiguráciu prístupu klienta k DNS.
Súbor definuje ktoré DNS serverz použiť.

Umiestnenie /etc/resolv.conf

BIND

Najpopulárnejší DNS server, obsahuje zónové súbory.
Vyvýjaný už od 1985. Súčasná verzia 9.9.2-P1.
Do súboru named.conf sú naincludovány súbory: named.rfc1912.zones, v ktorom sú definované zóny
a /etc/named.root.key kde je DNS kľúč pre root zónu.
typy zón: Ukážka definice zóny
zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};
Príklad zónového súboru:
$ORIGIN domena.cz.
@             IN   SOA  @ root.domena.cz. (2002101000 3H 15M 2W 1D)
              IN   NS   ns               ; autoritativne name servery
              IN   NS   ns.provider.cz.
              IN   MX   0 mailserver.domena.cz.
www           IN   A    12.34.56.78      ; info. o pocitacoch
ftp           IN   A    12.34.56.79      ; v tejto domene
news          IN   CNAME  odyseus.domena.cz.
...

Reverzný záznam pre podsieť 12.34.56.0:

$ORIGIN 56.34.12.in-addr.arpa.
@             IN  SOA  @ root.domena.cz. (2002101000 3H 15M 2W 1D)
              IN  NS   ns.domena.cz.
              IN  NS   ns.provider.cz.
78            IN  PTR  www.domena.cz.
79            IN  PTR  ftp.domena.cz.
...                       
Prehľad DNS serverov a ich vlastností

Nástroje - overenie funkčnosti

Bezpečnosť

BIND by nemal byť spúšťaný pod root užívateľom.
Chrootovaním dosiahneme to, že bind je "uväznený" v určitom adresári, takže nemôže pristupovať alebo čítať súbory mimo tohoto adresára.
Je dobré tiež umiestniť ho do samostatného koreňového adresára /chroot/named.
Inštalácia zahŕňa aj vytvorenie užívateľa named.

DNSSEC

Zavádza asymetrickú krypotografiu pre zaručenie integrity a autenticity prijatých odpovedí.
Držiteľ domény vygeneruje súkromný a verejný klúč.
Jednotlivé domény svojím privátnym kľúčom podpisujú svoje záznamy.
Ich verejný klúč je následne podpísan nadradenou doménou.
Do options BINDu stačí pridať dva riadky: dnssec-enable yes; dnssec-validation yes;
BIND od verzie 9.5 má DNSSEC zapnutý implicitne.

Útoky na DNS

Obrana

Hashlimit a IPv6

Hashlimit dokáže také pracovat se sdíleným vědrem pro určitý společný prefix.
Utočník by mohl generovat pro každý dotaz jinou adresu z 64bitového prefixu.
Obrana přidáním volby --hashlimit-srcmask 64, samozřejmě při použití ip6tables

Literatura