En fungerende navnetjener er en av byggeklossene i infrastrukturen for et IT system. Du skal i denne laboppgaven installere din egen navnetjener på din VMware Linux. Denne navnetjeneren skal benyttes av deg videre i dette semesteret, det er defor ikke mulig å hoppe over denne oppgaven da senere laboppgaver vil være avhengig av en velfungerende DNS tjener. En navnetjener må ha en fast IP adresse, vi benytter derfor nettverket 192.168.200.0/24 konsekvent på UITs datalabber, se forøvrig oppgaven om forberedleser til DNS lab for hvordan sette opp fast IP adresse.
Første del av oppgaven går ut på å sette opp en navnetjener på eget system, deretter skal dere på gruppebasis sette opp en navnetjener for en egen sone under nnth.org. Dette gjøres på en tjener som gruppen tildeles på HiN.
Den mest benyttede utgaven av navnetjeneren DNS heter bind denne kommer fra http://www.isc.org/. Programvaren heter bind, mens prosessen som opprettes på systemet heter named
Du kan selv velge om du vil foreta en binær eller
kildekode basert installasjon. Etterhver bør du
beherske begge typer. Vi installerer ved hjelp av apt.
Pakkebasert installasjon anbefales da en får mye ferdig her. Alle kommandoer kjøres som superbruker, benytt kommando sudo bash for å få et shell med root tilgang før du starter opp.
Kjør kommandoen apt-get update
Installer bind9 ved hjelp av apt-get install bind9.
> dig @127.0.0.1 www.hin.no
Dersom alt er satt opp riktig skal navnetjeneren være
fullt operativ, prøv gjerne andre navn for å verifisere dette. 127.0.0.1 er IP adressen for ditt eget system (den interne adressen) så kommandoen angir at du skal benytte din egen navnetjener og ikke den som systemet ditt er satt opp med.
Du skal i det følgende konfigurere bind til å være ansvarlig for en primær navnesone som du selv bestemmer navnet på, men den skal tilhøre navnetreet dt.hin.no. Navnetjeneren skal også settes opp til å være sekundær for sonen dt.hin.no. Velg et ikke støtende navn for din sone, erstatt.xxx videre i oppgaven med dette navnet. I katalogen http://kark.hin.no/sysadm/lab1/bind/ ligger maler som kan benyttes ved oppsett av konfig filene.
> dig @127.0.0.1 xxx.dt.hin.no ns
Dersom alt er satt opp riktig skal navnetjeneren returnere
informasjon om sonen xxx.dt.hin.no og vise bl.a. hvilket
system som er navnetjener for sonen.
Dersom navnetjeneren ikke returnerer det du forventer, ikke svarer eller liknende er det trolig feil i en eller flere av sonefilene. Systemloggen er der navnetjeneren logger meldinger, denne ligger i filen /var/log/syslog på Ubuntu. Kjør kommandoen tail /var/log/syslog da får du se de siste postene i denne. Feil ved lasting av en sonefil vil stå her, dersom alt går bra står det også i denne filen. Alle sonefilene må være 100% syntaktisk riktige, hvis ikke vil ikke navnetjeneren kunne lese disse korrekt. Dersom du plages finnes det to skript som kan være til hjelp:
En DNS tjener må også kunne ta imot og håndtere revers oppslag, det vil si forespørsler der det angis et IP nummer og DNS tjeneren skal returnere det korresponderende DNS navnet tilbake. For at en DNS tjener skal kunne gjøre dette må den ha konfigurert en Reverse Lookup Zone, og IP adressene må være registrert her. Dette er såkalte PTR poster i DNS.
Foreta et reversoppslag mot din DNS tjener etter navnet for ditt system og systemet du registrerte manuelt tidligere ved å angi IP adressen. DNS tjeneren skal returnere deg DNS navnet. Opsjonen -x til dig gjør at den forventer en IP adresse og ikke et navn som parameter.
Benytt kommando:
> dig @127.0.0.1 -x "IP-nummer"
Dette gjøres ved å editere den korrespondernde sonefilen, legg til et navn til IP mapping ( en A-post) og et alias (en CNAME post) , oppdater serienummeret i sonefilen. Du kan for eksempel registrere et annet system du har tilgjengelig med navn og IP adresse, på skolen kan du jo legge inn naboens system i din sone. Foreta også en registrering i reversoppslagsfilen for sonen systemet ditt tilhører og registrer en PTR post, dette er en IP-nummer til navn mapping. Husk oppdatering av serienummeret og rndc reload for å lese inn sonefilene på nytt. Test av nytt aliasnavn: Foreta en spørring etter det aliasnavnet du opprettet over ved hjelp av dig. Husk å benytte ditt eget system som navnetjener,
Det er viktig at navnetjeneren ikke kan benyttes av andre enn klientene på de nettverkene som er definert. Begrensning av aksess gjøres ved å sette opp en ACL (Access Control List) med de IP nettverkene som skal ha aksess, deretter spesifiseres direktivene allow-query, allow-transfer, allow-recursion der en angir hvilke systemer skal tillates. Dersom du ikke gjør denne er navnetjeneren åpen for alle, dette tillates ikke av sikkerhetshensyn. Legg inn allow-recursion{ IP-list
}, der IP-list er de IP nettverkene som skal ha aksess og kunne benytte navnetjeneren. Dette legges inn i filen named.conf.options.
Vi benytter fast statisk IP adresse, DHCP skal dermed ikke benyttes, det er denne som normalt setter opp hvem som skal være navnetjener. I Linux er navnetjener registrert i filen /etc/resolv.conf, denne kan ha opptil 3 navnetjenere definert i prioritert rekkefølge. Legg inn din egen navnetjener på toppen i listen i filen med adresse 127.0.0.1, alternativt gjør dette i filen /etc/network/interfaces
For at din navnetjener skal kunne finne andre systemer definert i andre soner må disse sonene og den tilhørende navnetjeneren defineres i DNS. Alle soner under dt.hin.no må defineres på navnetjeneren for dt.hin.no. Dette gjøres med såkalte "Glue records". Lærermaskinen kjører navnetjener for dt.hin.no, glue records for alle barnesonene må settes opp på denne, dette gjør vi i labtimene så snart din DNS tjener er klar. Definer din egen sone xxx.dt.hin.no med navn på navnetjener (NS post) og IP adresse for navnetjener. Prøv deretter å spørre navnetjeneren for dt.hin.no om et system i din egen sone, benytt dig for å demonstrere dette for faglærer.
Beskriv i besvarelsen hva som skal til for å definere sonene.
Etter registreringen på navnetjener for dt.hin.no bør du sette opp din egen navnetjener til å være slavenavnetjener for denne sonen, dermed vil din navnetjener få tilgang til alle postene i dt.hin.no.
Den øvelsen du nå har gått igjennom har lært deg hva som skal til for å sette opp en ny DNS tjener med egen sone og slavesone. Dette er imidlertid gjort på et privat IP nettverk (for de fleste). Det er nå tid for å sette opp en egen navnetjener for en barnesone under nnth.org. Hver barnesone under nnth.org får sin egen navnetjener, dette er en Linux tjener som er på nett 24/7 på HiN. Det er imidlertid begrenset antall av disse tjenerne så hver tjener må betjenes av en gruppe studenter, 2 på hver gruppe. På tjeneren som tildeles vil hver gruppe ha ansvar for oppset av DNS tjeneren som barnesone under nnth.org, samt sikring av tjeneren i og med at den vil være tilgjengelig utenfra. Denne tjeneren vil gruppen disponere hele semesteret og tjeneren vil senere benyttes for Epost, web etc. Se eget notat (som kommer) om tildeling av tjener på ITSL.
På denne tjeneren er det svært viktig at aksessen utenfra for rekursive forespørsler begrenses.
zone "xxx.nnth.orgs" { allow-query { any; }; ...... };
En labrapport i PDF format om skal inneholde en kort beskrivelse av DNS prinsipp og deretter en beskrivelse av installasjonen med eventuelle problemer/utfordringer. For tjener under nnth.org må det vektlegges spesielt hvilke tiltak som er iverksatt for å beskytte tjeneren mot angrep utenfra. Labrapporten skal inneholde et utdrag av de filene du har opprette/endret med de mest relevante endringene og tilleggene.