Systém DNS(Domain Name Sytem)

Ondřej Drobílek, xdrobil@fi.muni.cz


Obsah


Motivace - proč DNS?

V dnešních sítích se převážně používá adresovaní na bázi IP adres. Tyto jsou obtížně zapamatovatelné a s příchodem IPv6 je zapamatování adresy nemyslitelné. Proto se začal vytvářet soubor HOSTS ( ve světě UN*Xu zpravidla /etc/hosts ), který obsahoval jednoduchou "databázi" názvů strojů a IP adres ve formatu IPadresa FQDN hostname. Toto řesení samozřejmě nemohlo plnohodnotne fungovat, protože databáze se musela často aktualizovat a distribuovat mezi kazdý stroj, což bylo velmi náročné na kapacitu sítě a úsilí správců. Velký rozvoj Internetu a sití obecně si vyžádal vyřešení tohoto problému, čímž byl systém DNS.

Jak to funguje?

Systém DNS je celosvětová distribuovaná databáze umožnující přeložit adresu v doménovém tvaru na odpovídající IP adresu a doručování pošty. Princip fugování je následující: klient se zeptá na překlad primárního DNS serveru pro sít v níž je připojen( pokud ten není dostupný, tak sekundárního, dalsího sekundárního...), a ten pokud má v záznamech tak údaj poskytne a pod ne, tak se sám zeptá jiného serveru, který je v hierarchii DNS výše, ten se může také zeptat výše, atd. Nejvýše se dotaz může dostat k ROOT-DNS serveru. ( Těchto serverů je na světě 13 a tvoří kořen hierarchie DNS. ) Při spravne odpovedi od nadřazeného serveru si kazdy server muze kešovat informace, ktere poskytuje klientum, cím se urychlí dalsí dotazy. Doba, po jakou se muze informace kešovat je jednoznačne dána v konfiruraci serveru, ktery odpovedel. Nastavení klienta v linuxu(resolveru) je uloženo v souboru /etc/resolv.conf.

Konfigurace serveru

Ve svete linuxu jsou nejznámějsí 2 DNS servery: Bind a DJBDNS. První z nich je referenční konfigurací DNS, tak si ho podrobněji popíšeme. Základní konfiguraci Bindu najdeme v souboru /etc/named.conf. Zde ukazka konfigurace ze stroje houmr.huwlan.cz spravujícího menší lokalní sít s VEREJNYMI IP adresy.
options {
	directory "/var/named";
	query-source address * port 53;     # bacha na firewall
  forwarders { 
	62.77.124.149; 
  };
};
controls {
	inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {                        # root servery
	type hint;
	file "named.ca";
};
zone "localhost" IN {                #dopredna zona pro localhost
	type master;
	file "localhost.zone";
	allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {     #reverzni zona pro localhost
	type master;
	file "named.local";
	allow-update { none; };
};
zone "huwlan.cz" IN {                #dopredna zona pro huwlan.cz
        type master;
        file "huwlan.cz.zone";
        allow-update { none; };
};
zone "236.209.62.in-addr.arpa" IN {  #reverzni zona pro huwlan.cz
        type master;
        file "named.cz.huwlan";
        allow-update { none; };
};


$TTL 86400 
@		IN SOA huwlan.cz. root.huwlan.cz. (
			      10 ; Serial
			 604800 ; Refresh
			  86400 ; Retry
			2419200 ; Expire
			 604800 ) ; Minimum
		IN NS houmr
routr IN A 62.209.236.33 
houmr IN A 62.209.236.34
www IN CNAME houmr
jou IN A 62.209.236.35 
jaguar IN A 62.209.236.36 
IN MX 10 houmr

$TTL 86400
@   IN SOA huwlan.cz. root.huwlan.cz. (
			 10 ; Serial
       604800 ; Refresh
       86400 ; Retry
       2419200 ; Expire
       604800 ) ; 
	 IN NS houmr.huwlan.cz.

33 IN PTR routr.huwlan.cz.
34 IN PTR houmr.huwlan.cz.
35 IN PTR jou.huwlan.cz.
36 IN PTR jaguar.huwlan.cz. 

Bezpečnost

Zakladem bezpecnosti je NEMÍT server bežící se superuživatelskými právy. Dalším stupněm bezpečnosti je tzv. Chrootovane prostředí. Jedna se o změněný root adresář, takže pokud dojde k ovládnutí procesu DNS serveru, pak ovládnutí celého stroje je složitejší a náročnější na útočníka. Základem je vytvoření adresáře např. /chroot do kterého nakopírujeme soubory potřebné k běhu bindu a to tak, že respektujeme cesty např. /etc/named.conf nakopírujeme do /chroot/etc/named.conf. Dále je potřeba nakopírovat knihovny nutné pro běh programu ( zjistíme ldconfig -r /chroot/named ), musíme také vytvořit zařízení /chroot/dev/null. Běh bindu v chrootovaném prostředí nemůže zabránit všem bezpecnostním problémům, nicméně omezí rizika na minimum. Skutečností je, že většina útoků na www je realizována změnou dns záznamů.

Zdroje a odkazy

Domovská stránka DJBDNS
Domovská stránka BINDu
Howto chrooted bind