Rekursiivse resolveri Unbound kasutamine
Sisukord
- 1 Sissejuhatus
- 2 Unbound paigaldamine
- 3 Unbound seadistamine
- 4 Unbound käivitamine
- 5 Unbound kasutamine
- 6 Nimepäringu vastuste valideerimine
- 7 Lokaalsed nimekirjeldused
- 8 Stub tsoon
- 9 Forward tsoon
- 10 AS112 tsoonid
- 11 Jõudlus
- 12 Klientprogrammi unbound-host kasutamine
- 13 Haldusprogramm unbound-control
- 14 Kasulikud lisamaterjalid
Sissejuhatus
Üks võimalus liigitada nimeservereid või nimeserverite tarkvara on selle järgi, millised päringuid teenindatakse
- autoriteetne (ingl. k. authoritative) - vastab päringutele ainult nimeserveri tsoonifailis kirjeldatud andmete alusel; autoriteetsed nimeserverid teenindavad reeglina resolverite päringuid
- rekursiivne (ingl. k. recursive) - rekursiivne nimeserver ei sisalda nö oma tsoonifaili, st ta ei ole mingite vastuste osas autoriteetne; rekursiivne nimeserver teenindab mingi piiratud hulga klientide päringuid lahendades neid autoriteetsete nimeserverite abil ja seetõttu nimetatakse rekursiivset nimeserverit tihti resolveriks (ingl. k. to resolve - lahendama)
Unbound http://www.unbound.net/ resolveril on selliseid omadused
- rekursiivne - lahendab nö lõppkasutaja esitatud päringuid, nt sobib seadistada töökohaarvuti nimeserveriks
- vaheladustav (ingl. k. caching) - Unbound peab kord lahendatud vastust mõnda aega meeles, mis tähendab, et järgmisele samale päringule vastab ta kliendile kohe ja ei pea omakorda pöörduma vastuse saamiseks autoriteetsete nimeserverite poole
- valideeriv - toetab DNSSEC kasutamist
- IPv6 tugi
Rekursiivse resolveri vastutus on parimal võimalikul moel anda kliendi esitatud päringule vastus, seejuures
- anda õige vastus - nt mitte ennast lasta eksitada cache poisoning tehnikatest, võimalusel kasutada DNSSEC vahendeid
- vastata kiiresti
Unbound paigaldamine
2010 aastal leidub paljude operatsioonisüsteemide paketihalduses Unbound tarkvara.
Debian
Debian Lenny sisaldab versiooni 1.0.2 ja paigaldamiseks sobib öelda
# apt-get install unbound
OpenBSD
OpenBSD 4.7 sisaldab binaarse paketina versiooni 1.4.1 ja paigaldamiseks sobib öelda
--- +unbound-1.4.1 ------------------- You should add: syslogd_flags="${syslogd_flags} -a /var/unbound/dev/log" to /etc/rc.conf.local to create a syslog socket in the unbound chroot. You may also want to add the following to /etc/rc.local to start unbound at boot: if [ -x /usr/local/sbin/unbound ]; then echo -n ' unbound'; /usr/local/sbin/unbound fi
Unbound seadistamine
Resolveri seadistusfailis tuleb näidata muu hulgas
- juurnimeserverite aadressid
- millisel aadressil resolver päringuid teenindab
- millised kliendid saavad resolverit kasutada, tavaliselt kliendi src ip aadressi täpsusega
Unbound tööd juhib seadistusfail unbound.conf
- /etc/unbound/unbound.conf - Debian
- /var/unbound/etc/unbound.conf - OpenBSD
Lihtsamal juhul võib kasutada nt sellise sisuga seadistusfaili
server: interface: 192.168.10.190 outgoing-interface: 192.168.10.190 access-control: 192.168.10.0/24 allow root-hints: "/var/unbound/etc/named.cache"
kus
- interface - millisel aadressil arvuti Unbound resolveri kliente teenindab
- outgoing-interface - milliselt aadressilt resolveri päringud autoriteetsetele nimeserveritele väljuvad
- access-control - millistelt ip aadressidelt saab Unbound resolverit kasutada
- root-hints - resolver peab alati teadma interneti juurnimeserverite aadresse
Juurnimeserverite aadresse saab küsida mõnes juba seadistatud resolveriga arvutis
$ dig . ns
või kopeerida aadressilt
$ ftp ftp://FTP.INTERNIC.NET/domain/named.cache
Unbound käivitamine
Unbound resolver teenindab päringuid portidel 53/udp ja 53/tcp.
Debian
Käivitamiseks tuleb öelda
# /etc/init.d/unbound start | stop
OpenBSD
Vaikimisi töötab Unbound OpenBSD all chroot keskkonnas kataloogis /var/unbound kasutajana _unbound. Selleks, et chroot keskkonnas töötav Unbound saaks logida syslog'i tuleb syslog käivitamisel lisaks kasutada '-a /var/unbound/dev/log'
# syslogd -a /var/www/dev/log -a /var/empty/dev/log -a /var/unbound/dev/log
/etc/rc.conf.local failis sobib kasutada rida
syslogd_flags="${syslogd_flags} -a /var/unbound/dev/log"
Unbound töö lõpetamiseks sobib öelda
# pkill unbound
Unbound kasutamine
Unbound resolveri kasutajateks on tavaliselt arvutid, mis vajavad nimelahendust, nt kohtvõrgu arvutid, eposti serverid jt. Linux keskkonnas sobib näidata nimeserveri aadress staatiliselt arvuti /etc/resolv.conf failis nt reaga
nameserver 192.168.10.190
Unbound resolveri tööd saab kontrollida nt öeldes mõnes arvutis, kus peab kõnealust resolverit saama kasutada
$ dig @192.168.10.190 kuutorvaja.eenet.ee a
ja vastus peaks sisaldama sarnaseid ridu rida
... ;; QUESTION SECTION: ;kuutorvaja.eenet.ee. IN A ;; ANSWER SECTION: kuutorvaja.eenet.ee. 83840 IN A 193.40.0.7 ..
Nimepäringu vastuste valideerimine
Nimepäringute vastuste valideerimiseks kasutatakse üldiselt DNSSEC tehnikat. 2010 aastal on selleks mitmeid võimalusi, üks populaarne viis on DLV (DNSSEC Look-aside Validation). DLV seadistamiseks tuleb
- kopeerida trust anchor fail kataloogi /var/unbound/etc
# cd /var/unbound/etc # ftp http://ftp.isc.org/www/dlv/dlv.isc.org.key
- Unbound seadistusfailis kasutada rida
dlv-anchor-file: "dlv.isc.org.key
Valideeritud nimepäringu vastus näeb välja nt selline
$ dig www.kaminskybug.se a +dnssec +multiline ; <<>> DiG 9.5.1-P3 <<>> www.kaminskybug.se a +dnssec +multiline ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56069 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 4, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;www.kaminskybug.se. IN A ;; ANSWER SECTION: www.kaminskybug.se. 3590 IN CNAME fou.iis.se. www.kaminskybug.se. 3590 IN RRSIG CNAME 5 3 3600 20100205210001 ( 20100126210001 13358 kaminskybug.se. goEav1vWK49WEvGY/G1EBKOgekQk11JvjsQxE7chH6Kg OwZNpOXwomE1z9zvLcwkD60CQAZWC9psA1z01iIwtOrt Yq6L+2A0PLVAAuRYeY3CQnbHoHRYClCUz0dIkxhtz9f/ Um1AuC3FtqV6t9q8lLb4ooav0Ex64KuwoPPxqqs= ) fou.iis.se. 3590 IN A 212.247.204.242 fou.iis.se. 3590 IN RRSIG A 5 3 3600 20100209131501 ( 20100130131501 56315 iis.se. BOPpSETDBKu6CjOcz2ULnOnfRVoXfOXj9OjW4zwjPuWl 7vJ8630yXsuSEe89RuH/ZsuOGbeJnumQ/XmD6ftWL9yM MPUF1ZYxCtExaBcIxhxDIFJv4E4RZAOkbb9ZdYKTglIL zDleOOms0iVgCAnnWJSnmDpzhfvr8xoTGlh7myE= ) ;; AUTHORITY SECTION: iis.se. 3590 IN NS ns.nic.se. iis.se. 3590 IN NS ns3.nic.se. iis.se. 3590 IN NS ns2.nic.se. iis.se. 3590 IN RRSIG NS 5 2 3600 20100209131501 ( 20100130131501 56315 iis.se. B3SheLIv8ouVPpFGjvM8q5fl9ZMnnPWR8x9QDD0uSxoH iV2fYHjiKC5a2+8Znsi4zSdO2AmH+reUCP74qvYpkl1K +NbEzndzzrJQ0XlT1icy3MC6vdvgdE7Opqjab/7iIiYV X9UjZpHKR284EljSrKJ0z53/T+12P3K0VU/dRFE= ) ;; Query time: 1 msec ;; SERVER: 10.53.67.69#53(10.53.67.69) ;; WHEN: Sun Jan 31 00:25:39 2010 ;; MSG SIZE rcvd: 648
kus ad lipp annab tunnistust, et vastus on valideeritud
flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 4, ADDITIONAL: 1
Lokaalsed nimekirjeldused
Lisaks sellele, et Unboundi kasutab nimede lahendamisel võrgus töötavaid autoriteetseid nimeservereid, saab kirjeldada seadistusfailis päri- ja pöördteisendusi
local-data: "loomaaed.tartu.ee A 192.168.10.100" local-data-ptr: "192.168.10.100 loomaaed.tartu.ee"
kus
- local-data - päriteisendus
- local-data-prt - pöördteisendus
Unbound lahendab vaikimisi mõlemas suunas localhost - 127.0.0.1 teisendust.
Stub tsoon
Stub tsooni abil saab öelda, millist autoriteetset nimeserverit kasutada mõne domeeni nimelahenduseks. Praktiliselt võiks seda vaja minna kui asutuses on nt kasutusel mitte-avalik autoriteetne nimeserver ja domeeni 'auul.' nimede lahendamiseks tuleks kasutada seda; vastasel korral püüaks Unbound neid nimesid lahendada pöördudes interneti juurnimeserverite poole.
Seadistusfailis kirjeldatakse stub tsoon selliselt
stub-zone: name: "auul" stub-addr: 192.168.1.251
kus
- name - domeeni nimi
- stub-addr - domeeni autoriteetne nimeserver
Forward tsoon
Forward tsooni abil saab öelda, millist rekursiivset nimeserverit kasutada mõne domeeni nimelahenduseks. Seadistusfailis kirjeldatakse forward tsoon selliselt
forward-zone: name: "loomla.tartu.ee" forward-addr: 10.172.20.10
kus
- name - domeeninimi
- forward-addr - rekursiivse nimeserveri aadress
Selleks, et suunata kõik päringud lahendamiseks edasi sobib kasutada
forward-zone: name: "." forward-addr: 10.172.20.10
AS112 tsoonid
Selleks, et asutuse lokaalses autoriteetses nimeserveris kirjeldatud privaatsete aadresside pöördteisendused töötaksid tuleb kasutada
server: ... local-zone: "168.192.in-addr.arpa." nodefault
ning nt 192.168.1 võrgu puhul
stub-zone: name: "1.168.192.in-addr.arpa." stub-addr: 192.168.1.251
Jõudlus
- Unbound oskab kasutada mitut protsessorit ja nö keskpärasel riistvaral suudab teenidada kümneid tuhandeid päringuid sekundis.
- Unbound on 2-3 korda kiirem kui Bind.
Klientprogrammi unbound-host kasutamine
Klientprogramm unbound-host võimaldab nt kontrollida, kas nimelahenduse valideerimine töötab
# unbound-host -C unbound.conf -t A -v www.kaminskybug.se [1264938168] libunbound[2566:0] notice: init module 0: validator [1264938168] libunbound[2566:0] notice: init module 1: iterator www.kaminskybug.se is an alias for fou.iis.se. (secure) fou.iis.se has address 212.247.204.242 (secure)
Haldusprogramm unbound-control
Haldusprogrammiga unbound-control saab juhtida Unbound resolveri tööd ja küsida statistikat. Kuna unbound-control võimaldab resolveri töötamist oluliselt mõjutada, nt laadida cache sisu tekstifailist või resolveri seisata, siis peab hoolega jälgima, et unbound-control kasutamisele oleks seatud vajalikud piirangud.
Unbound resolveri ettevalmistamine
unbound-control suhtleb Unbound serveriga vaikimisi üle 953/tcp pordi. Osaliste autentimiseks kasutatakse avaliku-võtme tehnikat, vajalike võtmete genereerimiseks sobib kasutada unbound-control-setup utiliiti
# unbound-control-setup
Tulemusena tekivad /var/unbound/etc kataloogi neli võtit, kask serveri ja kaks kliendi jaoks
unbound_control.key unbound_control.pem unbound_server.key unbound_server.pem
unbound-control kasutamiseks tuleb vastav funktsionaalsus Unbound serveris sisse lülitada nt sektsiooniga
remote-control: control-enable: yes control-interface: 127.0.0.1
unbound-control kasutamine
Vaikimisi kasutab unbound-control Unbound serveri seadistusfaili, nt sobib alustuseks kasutada unbound serverit ja unbound-control utiliiti samas arvutis.
- Unbound resolveri oleku küsimine
# unbound-control status version: 1.3.0 verbosity: 1 threads: 1 modules: 2 [ validator iterator ] uptime: 1184 seconds unbound (pid 23298) is running...
- Resolveri cacheist tsooni loomaaed.tartu.ee andmete kustutamine
# unbound-control flush_zone loomaaed.tartu.ee ok removed 3 rrsets, 2 messages and 0 key entries
- Cache sisu esitamine
# unbound-control dump_cache
Resolveri kastutusstatistika
Üks unbound-control kasutusjuht on koguda resolveri kasutusstatistikat
# unbound-control stats_noreset
Praktiliselt on seda sobiv automatiseerida Munin või Cacti tarkvaraga, mida on kirjeldatud aadressil http://www.unbound.net/documentation/howto_statistics.html.
Kasulikud lisamaterjalid
- http://unbound.net/
- http://unbound.nlnetlabs.nl/pipermail/unbound-users/
- http://www.howtoforge.com/installing-using-unbound-nameserver-on-debian-etch
- http://www.nlnetlabs.nl/publications/dnssec_howto/index.html
- http://secspider.cs.ucla.edu/islands.html
- https://itar.iana.org/
- https://ns.iana.org/dnssec/status.html
- https://dlv.isc.org/
- http://en.wikipedia.org/wiki/AS112
- Autoriteetse nimeserveri NSD kasutamine