Split DNS: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 25: Line 25:


<pre>
<pre>
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";


zone "tsooni_nimi.zz" {
zone "tsooni_nimi.zz" {

Revision as of 14:49, 10 June 2015

Autor: Deniss Krajuhhin, AK31

Mis on Split DNS

Split DNS-i (ka Split-horizon DNS, split-view DNS, split-brain DNS) võiks eesti keeles nimetada jagatud DNS-iks, mille eesmärk on loogiliselt või füüsiliselt üks teisest eraldada DNS päringud ja vastused samade ressursside kohta lähte IP-aadressi alusel. Ehk teisi sõnu saab üks teisest eraldada oma sisevõrgu ja väljast poolt, Internetist, tulevad DNS päringud, mis oluliselt tõstab oma IT infrastruktuuri turvalisust.

Jagatud DNS-i juurutamiseks võib kasutada järgmisi arhitektuurilisi lähenemisi: eraldiseisev DNS server väliste teenuste tarbeks (näiteks DMZ-i paigaldatuna), üks DNS server kahe eraldi võrguliidesega väliste ja sisemiste ühenduste jaoks ning üks ühe võrguliidesega DNS server. Viimase kahe puhul kasutatakse välise ja sisemise tsooni loogilist eraldamist.

Antud artikkel käsitleb ühe võrguliidesega ühe jagatud DNS-i lahenduse rakendamist.

NB! Jagatud DNS-i rakendamisel production keskkonnas tuleb lähtuda organisatsiooni infoturbepoliitikast või selle puudumisel rakendada piisavad abinõud oma DNS serveri kaitsmiseks (tulemüüri taha paigutamine, NAT-i kasutamine, oma nimeserveri mitte OpenResolever-iks konfigureerimine jms.).

Eeldused

Antud lahenduse rakendamise eelduseks on IT infrastruktuuri teenuste DNS labori edukas kaitsmine või vastaval tasemel BIND9 nimeserveri seadistamise ja haldamise tundmine. Siin kasutatud näited põhinevad Ubuntu Server versioonil 14.04.1 ning lähtekohaks on võetud IT infrastruktuuri teenuste aine Labor 2 (DNS labor) lõppseis.


Lähtekoht

Labor 2 -es failis /etc/bind/named.conf.local me kirjeldasime ära kõik tsoonid, kuhu meie poolt paigaldatud nimeserveri kaudu on võimalik saada:

sudo /etc/bind/named.conf.local

Faili etc/bind/named.conf.local konfiguratsioon:


zone "tsooni_nimi.zz" {
        type master;
        file "/var/lib/bind/tsooni_nimi.zz";
};

zone "56.168.192.in-addr.arpa" {
        type master;
        file "/var/lib/bind/rev.tsooni_nimi.zz";
};

zone "sõbratsoon.zz" {
        type slave;
        file "/var/lib/bind/sõbra_tsoon.zz";
        allow-notify {sõbra_dns_ip;};
        masters {sõbra_dns_ip;};
};

Failis /etc/bind/named.conf.options aga sai konfigureeritud kontrollnimekiri,acl, mille alusel sai defineeritud, millistest võrkudest ja mis õigustega on lubatud päringud meie nimeserveri vastu.

sudo /etc/bind/named.conf.options

Faili etc/bind/named.conf.options konfiguratsioon:

acl suvaline_nimi {192.168.56.0/24;10.1.0.0/16;};

options {
        directory "/var/cache/bind";

        forwarders {
                172.16.0.105;
                8.8.8.8;
                8.8.4.4;
        };

        allow-recursion {suvaline_nimi;};
        allow-transfer {suvaline_nimi;};
        allow-query {suvaline_nimi;};
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

Jagatud DNS-i seadistamine

Antud näites jagatud DNS-i seadistamiseks kasutame BIND9 funktsionaalsuse View, mille rakendame BIND9 konfiguratsioonifaili /etc/bind/named.conf.local kaudu. View võimaldab suunata kliente neile lubatud ressursidele selles kirjeldatud parameetrite alusel.

sudo /etc/bind/named.conf.local

Kirjeldame erinevad View-d failis /etc/bind/named.options acl-i alusel:

view "sise" {
    match-clients { sisev6rk; };
    zone "example.com" {
        type master;
        file "/etc/bind/internals/db.example.com";
    };
};
view "external" {
    match-clients { any; };
    zone "example.com" {
        type master;
        file "/etc/bind/externals/db.example.com";
        allow-transfer { slaves; };
    };
};