380 likes | 502 Views
DOMAIN NAME SYSTEM. Ville Haanperä. Käyttötarkoitus. IP-osoitteita on vaikea muistaa. Muunnos domain-nimestä IP-osoitteeseen Jokaisella Internetiin liittyneellä koneella oma IP-osoite Osoitteita on valtava määrä Ratkaisuna hajautettu tietokanta
E N D
DOMAIN NAME SYSTEM Ville Haanperä
Käyttötarkoitus • IP-osoitteita on vaikea muistaa. • Muunnos domain-nimestä IP-osoitteeseen • Jokaisella Internetiin liittyneellä koneella oma IP-osoite • Osoitteita on valtava määrä • Ratkaisuna hajautettu tietokanta • Osoiteavaruus on jaettu paikallisesti hallinnoituun puu-rakenteeseen
Käyttötarkoitus • IP-osoitteita on vaikea muistaa. • Muunnos domain-nimestä IP-osoitteeseen • Jokaisella Internetiin liittyneellä koneella oma IP-osoite • Osoitteita on valtava määrä • Ratkaisuna hajautettu tietokanta • Osoiteavaruus on jaettu paikallisesti hallinnoituun puu-rakenteeseen
Käyttötarkoitus • IP-osoitteita on vaikea muistaa. • Muunnos domain-nimestä IP-osoitteeseen • Jokaisella Internetiin liittyneellä koneella oma IP-osoite • Osoitteita on valtava määrä • Ratkaisuna hajautettu tietokanta • Osoiteavaruus on jaettu paikallisesti hallinnoituun puu-rakenteeseen
Toiminta • DNS-nimi osoittaa yleensä yhteen IP-osoitteeseen • Samalla osoitteella voi olla useita nimiä • Yksi nimi on varsinainen ja muut aliaksia • DNS-nimet ovat hierarkkisia • Jokaisella solmulla on oma nimensä • Alemman tason FQDN sisältää ylempien tasojen nimet juurisolmuun asti. • esimerkiksi elina.pc.lut.fi.
Toiminta • DNS-nimi osoittaa aina yhteen IP-osoitteeseen • Samalla osoitteella voi olla useita nimiä • Yksi nimi on varsinainen ja muut aliaksia • DNS-nimet ovat hierarkkisia • Jokaisella solmulla on oma nimensä • Alemman tason FQDN sisältää ylempien tasojen nimet juurisolmuun asti. • esimerkiksi elina.pc.lut.fi.
Reverse DNS • Käänteinen DNS-kysely selvittää domain-nimen tiedettäessä IP-osoite • Toteutus yhteensopiva normaalien kyselyiden kanssa • Käyttää aiemmin käytöstä poistettua ARPA. -domain-nimeä • IP-osoite käsitellään käänteisenä, jotta hierarkkisuus toteutuu, esimerkiksi 17.1.168.192.in-addr.arpa.
Resource records • DNS-palvelimelle voi tehdä taulukon mukaisia kyselyitä
DNS-palvelimet • Master-palvelin ja slave-palvelin • Useita palvelimia tarvitaan • Luotettavuus ja kuormantasaus • Master-palvelin • Sisältää aluetietokannan • Kaikki muutokset tehdään tänne • Slave-palvelin • Kopioi aluetietokannan Master-palvelimelta
DNS-palvelimet • Master-palvelin ja slave-palvelin • Useita palvelimia tarvitaan • Luotettavuus ja kuormantasaus • Master-palvelin • Sisältää aluetietokannan • Kaikki muutokset tehdään tänne • Slave-palvelin • Kopioi aluetietokannan Master-palvelimelta
DNS-palvelimet • Master-palvelin ja slave-palvelin • Useita palvelimia tarvitaan • Luotettavuus ja kuormantasaus • Master-palvelin • Sisältää aluetietokannan • Kaikki muutokset tehdään tänne • Slave-palvelin • Kopioi aluetietokannan Master-palvelimelta • Toiminnallisesti ei eroa Master-palvelimesta
Tietoturva? • DNS-palvelimet yleinen hyökkäysten kohde • Jos murtaa DNS-palvelimen voi mielivaltaisesti ohjata nimiä uudelleen • Vanhoissa versioissa useita reikiä • Käytä mahdollisimman uutta versiota • Piilota versio-numero, jottei voi suoraan päätellä mitä skriptaa käyttää
Tietoturva? • DNS-palvelimet yleinen hyökkäysten kohde • Jos murtaa DNS-palvelimen voi mielivaltaisesti ohjata nimiä uudelleen • Vanhoissa versioissa useita reikiä • Käytä mahdollisimman uutta versiota • Piilota versio-numero, jottei voi suoraan päätellä mitä skriptaa käyttää
Tietoturva? • Aluetietokantojen päivityksessä voidaan käyttää TSIG-suojausta • Vain avaimen haltija pystyy siirtämään • DNS-palvelimen ajaminen rajoitetuilla oikeuksilla • Bind-käyttäjä • Nimipalvelimelle CHROOT • Tehdään nimipalvelimelle oma hakemistorakenne
Tietoturva? • Aluetietokantojen päivityksessä voidaan käyttää TSIG-suojausta • Vain avaimen haltija pystyy siirtämään • DNS-palvelimen ajaminen rajoitetuilla oikeuksilla • Bind-käyttäjä • Nimipalvelimelle CHROOT • Tehdään nimipalvelimelle oma hakemistorakenne
Tietoturva? • Aluetietokantojen päivityksessä voidaan käyttää TSIG-suojausta • Vain avaimen haltija pystyy siirtämään • DNS-palvelimen ajaminen rajoitetuilla oikeuksilla • Bind-käyttäjä • Nimipalvelimelle CHROOT • Tehdään nimipalvelimelle oma hakemistorakenne
BIND9-asennus • apt-get install bind9 • Asentaa nimipalvelimen • Suorittaa perusasetukset • Käynnistää nimipalvelimen kun asennus valmis • Periaatteessa ei vaadi kuin aluetietokannan lisäämisen
Käynnistys • /etc/init.d/bind9 start • Sisältää asetetut perusparapetrit • named -ubind -t /var/lib/named/ • Kirjoittaa suoraan logiin • tail /var/log/syslog • named -g -ubind -t /var/lib/named/ • Käynnistyy etualalle ja tulostaa ruudulle
Käynnistys • named -f -ubind -t /var/lib/named/ • Käynnistyy etualalle, muttei tulosta ruudulle • -v parametrilla tulostaa BIND-version • -p parametrilla valitaan portti • -c parametrilla eri konfiguraatio • -d parametrilla valitaan debug-taso • -n parametrilla CPU:iden määrä
Sammuttaminen • kill -2 (pid) • INT eli interrupt signaali sammuttaa palvelimen siististi • Vastaavasti ctrl-c jos käynnistetty -f / -g • /etc/init.d/bind9 stop • Kannattaa tarkistaa syslog myös sammuttamisen jälkeen
Asetukset:chroot • Ensimmäiseksi chroot • Sammuta nimipalvelin • mkdir -p /var/lib/named/etc • mkdir /var/lib/named/dev • mkdir -p /var/lib/named/var/cache/bind • mkdir -p /var/lib/named/var/run/bind/run • mv /etc/bind /var/lib/named/etc • ln -s /var/lib/named/etc/bind /etc/bind
Asetukset:chroot • mknod /var/lib/named/dev/null c 1 3 • mknod /var/lib/named/dev/random c 1 8 • chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random • chown -R bind:bind /var/lib/named/var/* • chown -R bind:bind /var/lib/named/etc/bind
Asetukset:chroot • /etc/init.d/sysklogd • SYSLOGD="-a /var/lib/named/dev/log" • /etc/init.d/sysklogd restart • /etc/default/bind9 • OPTS="-u bind -t /var/lib/named" • Nyt BIND9 käyttää omaa hakemistoaan
Asetukset:named.conf • named.conf • Asetustiedosto, jossa on perusasetukset • Tätä ei tarvitse muuttaa • Käyttää seuraavia tiedostoja • named.conf.local • Paikallisen verkon alueiden asetukset • named.conf.options • Optiot säädetään täällä
named.conf.local • zone "3.168.192.in-addr.arpa" in { • type slave; • file "/etc/bind/bak.192.168.3"; • masters { 192.168.1.17;}; • }; • key lahi1-lahi2.lahiverkot. { • algorithm hmac-md5; • secret "ozr0ZjN36peFSuC+eR/vTg=="; • };
named.conf.options • options { • directory "/var/cache/bind"; • auth-nxdomain no; #RFC1035 • allow-query{ 192.168.1/24; }; • allow-transfer{ none; }; • allow-recursion{ 192.168.1/24; }; • version ""; • };
Asetukset:resolv.conf • Tämä tiedosto sisältää nimipalvelin-asetukset kyseiselle tietokoneelle • Tätä luetaan aina ennen DNS-kyselyiden tekemistä • Nameserver rivit kertovat nimipalvelimet • Search rivi kertoo kuinka epätäydellisiä domain-nimiä yritetään täydentää haettaessa • resolv.conf-tiedoston sisältö saadaan halutessa DHCP-palvelimelta, jolloin asetukset asetetaan DHCP-palvelimen asetuksiin
resolv.conf • search lahiverkot. • nameserver 192.168.1.17 • nameserver 192.168.1.13
Asetukset:aluetietokannat • Ns. zone-tiedostot • Sisältävät Nimet ja osoitteet ja näiden väliset yhteydet. • Täältä löytyy vastaus kyselyihin • Käänteiset DNS tiedot talletetaan erilliseen tiedostoon. • Tällä alueella: db.lahiverkot, db.192.168.1, db.192.168.3
Aluetietokanta esimerkki • $TTL 3h • lahiverkot. IN SOA lahi1.lahiverkot. root.lahi1.lahiverkot. ( • 2 ;serial • 3h;refresh after • 1h;retry after • 1w;expire after • 1h;negative caching ttl • ) • ;nameservers • lahiverkot. IN NS lahi1.lahiverkot. • ;hosts • lahi1.lahiverkot. IN A 192.168.1.17
rndc • Rndc on komentoriviohjelma, jolla voi hallita nimipalvelinta etänä • Tulee BIND9 paketin mukana • Käyttää avainta tunnistautumiseen • Vaatii kontrolliasetusten säätämistä named.conf.local-tiedostossa • rndc status | refresh | flush | reload [zone]
Ylläpito • Nimipalvelun ylläpito varsin yksinkertaista • Usean palvelimen käyttö takaa palvelun toimivuuden • Slave-palvelimilla asetuksia ei tarvitse muuttaa, vaikka verkossa tapahtuisi muutoksia
DNSSEC TSIG • Avaimen käyttö aluesiirtojen allekirjoittamiseen • Varmistaa, että slave-palvelimet saavat master-palvelimelta tiedostot muuttamattomina • Vaatii avaimen käyttämistä • Säädetään palvelimelle allow-transfer avaimen mukaan.
Dns notify • Master-palvelin lähettää huomautuksen slave-palvelimille, kun aluetietokannan sarjanumero kasvaa • Slave-palvelin tietää tämän jälkeen, että on syytä päivittää aluetietokanta • Vältetään timeouttien odottaminen tai manuaalinen reload päivitysten jälkeen
Dynamic update • Tarkoitettu DHCP-palvelimen kanssa käytettäksi • DHCP-palvelimen tarjotessa IP:n uudelle asiakkaalle se lähettää IP-osoitteen ja domain-nimen sekä alueen tiedot DNS-palvelimelle
IXFR • Incremental zone transfer • Normaalisti aluetietokannat siirretään aina kokonaisina • Suuressa dynaamisessa verkossa tämä aiheuttaa suuren liikenteen • IXFR-siirroissa lähetetään vain muutokset vanhaan tietokantaan verrattuna.
IPv6? • IPv6-osoitteet 128-bittisiä • Näiden muistaminen erittäin vaikeaa, joten nimipalvelu erittäin tarpeellinen • Ei vaadi suuria muutoksia DNS:ltä • Uudet osoitetyypit