NSA uke 44 Mer om named Case: Caching name server
Kort repetisjon: En navnetjener oversetter domenenavn til IP adresser og IP adresser til domenenavn (og utfører også noen andre ting). Standard systemet på UNIX er BIND (Berkeley Internet Name Domain) og daemonen for kjøres heter named. Navnetreet er delt inn i soner, hvor en navnetjener er ansvarlig for en sone. Ansvarsområdet kan delegeres til navnetjenere i en påfølgende sone lenger ned i navnetreet. Informasjon om sonen holdes i records, kalt RR, resource records.
Konfigurasjonsfiler for named (standard oppsett): /etc/named.conf: Hovedkonfigurasjonsfil for named. Filen også andre datafilers plassering i filtreet. /var/named/root.hints: Filen angir rottjenerne i navnetreet. Filen er også kjent under navnene named.cache og named.root. /var/named/pz/domene.land: Filen holder alle data for den sonen navnetjeneren er ansvarlig for, som vertsnavn og IP adresse for disse, alias for vertsnavn og mail routing informasjon. /var/named/pz/subnet: Filen(e) inneholder data for til å overføre IP adresser til navn.
Eksempel på en lokal navnetjener. Denne navnetjeneren skal kun være lokalt på 127.0.0 og 10.0.0 nettene, og kun være en caching tjener. Vi trenger: /etc/named.conf /etc/rndc.conf /var/named/root.hints /var/named/pz/127.0.0 Vi har altså ikke en egen sonefil. Kan med hell brukes bak ADSL router.
Kommandoer for å generere noen av konfiguarasjonsfilene: Rot tjenere: # dig @e.root serves.net. ns > root.hints.update Hemmelighet i /etc/rndc.conf: # /usr/local/sbin/rndc confgen De andre filene kan vi lage i en editor.
Vår nye /etc/resolv.conf: search iu.hio.no nameserver 127.0.0.1 Det er greit å bytte opprinnelig resolv.conf fil ut ved oppstart av vår lokale navnetjener i selve oppstartscriptet. Vi bør også sørge for å legge tilbake opprinnelig fil når vi stopper vår lokale navnetjener.
Vi kompilerer og installerer BIND pakken på vanlig måte: # tar zxvf bind 9.2.3.tar.gz # cd bind 9.2.3 #./configure # make # make install Sakene blir installert i /usr/local /etc/named.conf og /etc/rndc.conf er hardkodet.
Oppstartsmeldinger fra syslog (suksess): Mar 5 01:46:25 bluemaster named[4304]: starting BIND 9.2.3 Mar 5 01:46:25 bluemaster named[4304]: using 1 CPU Mar 5 01:46:25 bluemaster named[4304]: loading configuration from '/etc/named.conf' Mar 5 01:46:25 bluemaster modprobe: FATAL: Module net_pf_10 not found. Mar 5 01:46:25 bluemaster named[4304]: no IPv6 interfaces found Mar 5 01:46:25 bluemaster named[4304]: listening on IPv4 interface eth0, 10.0.0.3#53 Mar 5 01:46:25 bluemaster named[4304]: listening on IPv4 interface lo, 127.0.0.1#53 Mar 5 01:46:25 bluemaster named[4304]: command channel listening on 127.0.0.1#953 Mar 5 01:46:25 bluemaster named[4304]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1 Mar 5 01:46:25 bluemaster named[4304]: running Oppstartsmeldinger fra syslog (feil i konfigurasjon): Mar 5 00:52:11 bluemaster named[4043]: starting BIND 9.2.3 Mar 5 00:52:11 bluemaster named[4043]: using 1 CPU Mar 5 00:52:11 bluemaster named[4043]: loading configuration from '/etc/named.conf' Mar 5 00:52:11 bluemaster named[4043]: /etc/named.conf:10: unknown option 'key' Mar 5 00:52:11 bluemaster named[4043]: /etc/named.conf:15: unknown option 'zone' Mar 5 00:52:11 bluemaster named[4043]: /etc/named.conf:20: unknown option 'zone' Mar 5 00:52:11 bluemaster named[4043]: /etc/named.conf:24: '}' expected near end of file Mar 5 00:52:11 bluemaster named[4043]: loading configuration: unexpected token Mar 5 00:52:11 bluemaster named[4043]: exiting (due to fatal error)
Eksempel på /etc/named.conf: // Configuration file for a caching nameserver acl "mylocalnets" { 10.0.0.0/24; 127.0.0.0/24; }; options { directory "/var/named"; allow-query { "mylocalnets"; }; listen-on-v6 { none; }; }; key "rndc-key" { algorithm hmac-md5; secret "iacn/9bmangmclgu/n75nw=="; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; };
Eksempel på /etc/rndc.conf: key "rndc-key" { algorithm hmac-md5; secret "iacn/9bmangmclgu/n75nw=="; }; options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; };
Eksempel på /var/named/root.hints:. 6D IN NS H.ROOT-SERVERS.NET.. 6D IN NS C.ROOT-SERVERS.NET.. 6D IN NS G.ROOT-SERVERS.NET.. 6D IN NS F.ROOT-SERVERS.NET.. 6D IN NS B.ROOT-SERVERS.NET.. 6D IN NS J.ROOT-SERVERS.NET.. 6D IN NS K.ROOT-SERVERS.NET.. 6D IN NS L.ROOT-SERVERS.NET.. 6D IN NS M.ROOT-SERVERS.NET.. 6D IN NS I.ROOT-SERVERS.NET.. 6D IN NS E.ROOT-SERVERS.NET.. 6D IN NS D.ROOT-SERVERS.NET.. 6D IN NS A.ROOT-SERVERS.NET. ;; ADDITIONAL SECTION: H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53 C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12 G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4 F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241 B.ROOT-SERVERS.NET. 5w6d16h IN A 192.228.79.201 J.ROOT-SERVERS.NET. 5w6d16h IN A 192.58.128.30 K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129 L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12 M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33 I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17 E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10 D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90 A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.
Eksempel på /var/named/pz/127.0.0: $TTL 3D @ IN SOA ns.linux.local. torejo.linux.local. ( 1 ; Serialnumber 8H ; Refresh 2H ; Retry 4W ; Expire 1D) ; Minimum TTL NS ns.linux.local. 1 PTR localhost.
Eksempel på oppstart i /etc/init.d/localnamed: #!/bin/bash ###################################### ## Start and stop named ## Uses SuSE's startproc and killproc ## Use start-stop-daemon in Debian ###################################### MYNS=/usr/local/sbin/named case "$1" in start) echo "Starting my chaching named..." ## Shuold save /etc/resolv.conf cp /etc/resolv.conf /etc/resolv.conf.named-saved cp /etc/resolv.conf.mynamed /etc/resolv.conf startproc $MYNS ;; stop) echo "Shuting down local named..." killproc $MYNS ## Restore /etc/resolv.conf cp /etc/resolv.conf.named-saved /etc/resolv.conf ;; restart) $0 stop $0 start ;; *) echo "Usage: mynamed : start stop restart" ;; esac
Litt om filgrammatikk i named.conf: /* Kommentar C stil */ // Kommentar C++ stil # Kommentar shell og perl stil acl definerer en IP adresse liste for blant annet tilgangskontroll. controls definerer kontrolkanaler for rndc. include inkluderer en fil. key spesifiserer nøkkelinformasjon for autentifisering. logging spesifiserer hva serveren logger og hvor.
options kontrollerer global server konfigurasjon. Her settes også default saker for andre utsagn. server server spesifikke opsjoner, for eksempel for å luke ut andre servere som leverer bogus data. trusted keys definerer DNSSEC nøkler vi stoler på. view ny sak i BIND 9 som lar serveren svare forskjellig avhengig av hvem som spør. zone definerer en sone. Se BIND 9 Configuration Reference for detaljer, og for noen eksempler i vår fil /etc/named.conf.