Administrace Unixu (DNS) 1. Konfigurace DNS serveru Důležité pojmy: doména: podstrom v DNS hierarchii. (např. cuni.cz se všemi poddoménami). zóna: jeden uzel v DNS hierarchii. (např. cuni.cz bez poddomén). reverzní doména/zóna: pro překlad z IP adresy na DNS jméno. (např. 168.192.in-addr.arpa) Označení nameserverů: –
autoritativní nameserver: server odpovědný za data určité zóny.
–
primární nameserver: získává data z konfiguračního souboru.
–
sekundární nameserver: získává data z primárního nameserveru.
–
rekurzivní nameserver: při řešení dotazu prochází DNS hierarchii od kořene.
–
forwarding nameserver: všechny dotazy přeposílá na jiný nameserver (odpovědi většinou ukládá do cache).
Každý nameserver může sloužit ve více rolích.
Zdroj: http://cs.wikipedia.org/wiki/Domain_Name_System
Poslední změna: 31.10.2011 13:28
2. Konfigurace master dns serveru (bind) Konfigurační soubory a adresáře: –
/var/named/etc/namedb/named.conf - hlavní konfigurační soubor.
–
/var/named/etc/namedb/master/ - adresář pro ukládání zónových souborů masteru.
–
/var/named/etc/namedb/slave/ - adresář pro ukládání zónových souborů slave.
1. Definovat zónu. > /var/named/etc/named.conf zone “myzone.swi“ { type master; file “master/myzone.swi“; };
2. Vytvořit zónový soubor > /var/named/master/myzone.swi $TTL 86400 ; 24 hours could have been written as 24h or 1d $ORIGIN myzone.swi. @ IN SOA ns1.myzone.swi. hostmaster.myzone.swi. ( 2009031201 ; serial 3H ; refresh 180 ; retry 1w ; expire 3h ; minimum ) IN NS ns1.myzone.swi. ; authoritative nameservers IN NS ns2.myzone.swi. ; server host definitions ; name ttl rr data ns1 IN A XX.XX.XX.XX ; name server definition alpha IN A XX.XX.XX.XX wwww IN CNAME alpha.myzone.swi. ; www server definition ...
Formát záznamu: name ttl
class rr
data
3. Start dns serveru > /etc/rc.conf named_enable=“YES“
Poslední změna: 31.10.2011 13:28
Úkol: Na VPC D si nakonfigurujte primární DNS pro vaši doménu. Jméno domény je libovolné ale pod TLD swi. Pro každé vaše VPC vytvořte v doméně A záznam. 4. Testování a detekce problémů –
zkontrolovat logy jestli server korektně naběhl ( /var/log/daemon )
–
ověřit přes netstat nebo lsof jestli server naslouchá na síti
–
dotazem přes program dig
$ dig [@
] [-t ] jmeno
Pokud už bind běží lze ho ovládat programem rndc ( /etc/rndc.key a /var/named/etc/rndc.key).
Poslední změna: 31.10.2011 13:28
3. Konfigurace slave dns serveru (bind) Definovat zónu. > /var/named/etc/namedb/named.conf zone “myzone.swi“ { type slave; file “slave/myzone.swi“; masters { 192.168.56.81; }; };
Zónový soubor je automaticky stažen z master DNS, není třeba ho vytvářet. Úkol: Nakonfigurujte slave DNS server pro vaši doménu na VPC B. Ověřte, že se zóna zkopírovala z master serveru a že každá změna v master DNS je okamžitě promítnuta na slave.
Jak funguje transfer z masteru na sekundár? AXFR – Zone transfer. IXFR – Incremental zone transfer. Notify – master explicitně upozorní slave, že nastala změna. Manuál bindu: http://www.zytrax.com/books/dns/ Defalutní chování povoluje zone transfer pro libovolný uzel. dig -t axfr domena.swi dig -t ifxr=n domena.swi
DNS záznamy jsou sice z principu veřejné, přesto nechceme aby mohl každý vypsat všechny záznamy v doméně. options { .... // ban everyone by default allow-transfer { none;}; }; ... zone "example.com" { .... // explicity allow the slave(s) in each zone allow-transfer { XX.XX.XX.XX; }; };
Úkol: Zabezpečte své zóny tak, aby pouze slave servery mohly provést transfer zóny. Poslední změna: 31.10.2011 13:28
4. Rekurzivní nameserver Volba v sekci options: allow-recursion { address_match_list };
specifikuje klienty pro které server funguje jako rekurzivní nameserver. Pro funkčnost rekurzivního nameserveru je potřeba aby měl server specifikované kořenové nameservery. Internetové kořenové servery jsou specifikovány v souboru /var/named/etc/root.hint zone “.“ { type hint; file “etc/root.hint“; };
Úkol: Na VPC R si nakonfigurujte rekurzivní nameserver pro potřebu vašich sítí. To znamená, že by neměl umožňovat rekurzi pro počítače z jiných než z vašich sítí. Zapojení domény TLD swi do DNS hierarchie Problém: Kořenové nameservery neznají naši TLD swi. Řešení: Náš rekurzivní server bude zároveň autoritativní pro doménu swi. zone "swi" { type slave; file "slave/swi.slave"; masters { 172.17.0.2; }; };
Na adrese 172.17.0.2 běží primární autoritativní nameserver pro TLD swi, který má povolený zone transafer. Obdobný „trik“ využijeme pokud chce mít pouze lokálně viditelnou doménu. Typicky firma.cz je veřejná doména a hide.firma.cz nebo in.firma.cz je pouze lokálně viditelná doména. Úkol: U cvičícího si zaregistrujte DNS servery pro svou doménu. Nastavte váš rekurzivní DNS server tak, aby dokázal resolvovat i jména z domény swi. Úkol: všechny své VPC nastavte tak aby:
Poslední změna: 31.10.2011 13:28
–
hostname se shodovalo se jménem v DNS.
–
používal se váš rekurzivní nameserver.
–
za resolvovaná jména se automaticky doplňovala vaše doména. Např. Příkaz: “ping www“ fungoval stejně jako “ping www.myzone.swi“.
5. Forwarding nameserver Dotazy jsou přesměrovány na jiný nameserver. Lze udělat i na úrovni zóny. Options { forward only; forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; } zone “somezone.tld“ { type forward; forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; }
Využití: –
Využíváme rekurzivní nameserver od ISP a chceme pouze přidat další cache.
–
Využíváme rekurzivní nameserver od ISP a chceme udělat odbočku (naší doménu).
Poslední změna: 31.10.2011 13:28
6. Delegace poddomény $ORIGIN myzone.swi. @ IN SOA ns1.myzone.swi.
hostmaster.myzone.swi. (
… subdomain
IN IN
ns.subdomain
NS NS
ns1.otherzone.swi. ns.subdomain.myzone.swi.
IN
A
XX.XX.XX.XX
; GLUE ZAZNAM.
V nadřazené doméně vytvoříme NS záznamy pro poddoménu. Pokud nějaký NS záznam se odkazuje na jméno v delegované subdoméně, musíme vytvořit glue záznam. Nevytvářejte glue záznamy zbytečně !! Úkol: Delegujte část své domény svému kolegovi a nastavte DNS servery pro doménu, kterou vám delegoval váš kolega.
Poslední změna: 31.10.2011 13:28
7. Reverzní domény Pro adresu U.X.Y.Z je v DNS hledán PTR záznam Z.Y.X.U.in-addr.arpa. Jinak stejně jako dopředná zóna. Pro adresu 192.168.24.66 je v DNS hledán PTR záznam 66.24.168.192.in-addr.arpa. Ukázka reverzní zóny: $ORIGIN 24.168.192.in-addr.arpa. @ IN SOA ns1.myzone.swi.
hostmaster.myzone.swi. (
… 66
IN
PTR
jmeno.myzone.swi.
V reverzní doméně nemají záznamy typu A smysl. Stejně jako záznamy typu PTR v dopředné doméně !! Úkol: Nakonfigurujte si na VPC D a B reverzní domény pro IP rozsahy, které máte přidělené. Do rekurzivního nameserveru přidejte i domény 168.192.in-addr.arpa, 16.172.in-addr.arpa a 17.172.inaddr.arpa – stejný trik jako u domény swi. Jak otestovat funkčnost reverzní domény: host 192.168.24.66 dig -t ptr 66.24.168.192.in-addr.arpa dig -x 192.168.24.66
Poslední změna: 31.10.2011 13:28
Problém: Jak delegovat poddoménu pro adresový rozsah např. 192.168.24.64/28 ? Řešení: Nepěkný ošklivá věc. Pro podsíť 192.168.24.64/28 vytvoříme zónu 64/28.24.168.192.in-addr.arpa. Pro každou adresu v této podsíti vytvoříme alias: XX.24.168.192.in-addr.arpa
IN
CNAME XX.64/28.24.168.192.in-addr.arpa
V doméně 66.24.168.192.in-addr.arpa je tedy nutno vytvořit 14 záznamů. $TTL 2d # 172800 seconds $ORIGIN 24.168.192.IN-ADDR.ARPA. @ IN SOA ns1.myzone.swi. hostmaster.myzone.swi. ( 2009031901 ; serial number 3h ; refresh 15m ; update retry 3w ; expiry 3h ; minimum ) .... ; definition of our target 192.168.24.64/28 subnet 64/28 IN NS ns1.example.com. 64/28 IN NS ns2.example.com. ; IPs addresses in the subnet - all need to be defined ; except 64 and 79 since they are the subnets ; broadcast and multicast addresses not hosts/nodes 65 IN CNAME 65.64/28 66 IN CNAME 66.64/28 67 IN CNAME 67.64/28 .... 78 IN CNAME 79.64/28 ; end of 192.168.24.64/28 subnet
Poslední změna: 31.10.2011 13:28
8. Load balancing přes DNS Přes více záznamů stejného typu. Bind defalutně vrací záznamy stejného typu v pořadí round-robin. Chování je možno změnit directivou rrset-order v options.
9. Dynamický update zone “myzone.swi“ { … allow-update { 127.0.0.1; } } $ > > > >
nsupdate server 127.0.0.1 zone myzone.swi update add new.myzone.swi 86400 IN send
A 192.168.0.1
Poznámky: –
Při prvním updatu si bind vytváří journal file (zónový soubor + .jnl ). V OpenBSD ale proces named nemá práva na jeho vytvoření.
–
Pokud chceme ručně editovat dynamicky spravovanou zónu musíme ji nejprve zmrazit ( rndc freeze ) a po editaci opět rozmrazit (rndc unfreeze ).
–
Pro praktické použití je vhodné to doplnit a nějakou formu autentizace.
Využití: –
počítače v síti se mohou zaregistrovat do DNS (většinou ve spolupráci s DHCP serverem).
–
Služby v sítí se mohou zaregistrovat do DNS (záznam typu SRV).
Poslední změna: 31.10.2011 13:28
10. Jak v IPv6 Místo A záznamu se pro IPv6 adresy používají AAAA záznamy. Pro reverzní záznamy se používá doména ip6.arpa. Dělení po jednotlivých číslicích + vyhneme se triku, který byl nutný v IPv4 - záznam je poměrně dlouhý. $ORIGIN 8.0.3.0.e.1.8.1.7.0.1.0.0.2.ip6.arpa. 0.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0 PTR
www.ksi.ms.mff.cuni.cz.
11. Bezpečnost
Komunikační kanály je potřeba kryptograficky zabezpečit. V DNS se používají dva typy: –
TSIG: Zabezpečení sdíleným klíčem - symetrická kryptografie. (2) a (3).
–
DNSSEC: Digitální podpisy – asymetrická kryptografie. (4) a (5).
Poslední změna: 31.10.2011 13:28