Nov 5, 2023

BIND DNS servis

 BIND (Berkeley Internet Name Domain) je najčešće korišćen DNS (Domain Name System) server na svetu. DNS je ključna komponenta internetskog infrastrukturnog sloja i omogućava prevodjenje ljudski čitljivih imena domena (npr. www.example.com) u IP adrese koje su neophodne za identifikaciju računara i servera na internetu.

BIND je besplatan i otvoren izvor i razvija se kao open-source projekat. Kao DNS server, BIND ima nekoliko ključnih funkcija:

  1. Prevođenje domenskih imena u IP adrese (resolving).
  2. Održavanje distribuirane baze podataka sa informacijama o domenama i njihovim IP adresama.
  3. Autorizacija i autentifikacija DNS upita i odgovora.
  4. Održavanje sigurnosnih funkcija kao što su DNSSEC (Domain Name System Security Extensions) zaštita.
  5. Omogućava konfiguraciju DNS zona i rekordima.

BIND je dostupan za različite operativne sisteme i koristi se širom sveta za različite primene, uključujući rukovanje domenima, upravljanje DNS infrastrukturom, i podršku za web hosting provajdere.

Važno je napomenuti da, iako je BIND veoma moćan, njegova konfiguracija i održavanje može biti kompleksno. Za manje zahteve, postoje i jednostavniji DNS serveri koji su lakši za postavljanje.

Instalacija i konfiguracija

Instalacija i konfiguracija BIND DNS servera može biti složena, ali evo osnovnih koraka koje treba preduzeti:

  1. Instalacija BIND-a: Prvo, morate instalirati BIND DNS server na vašem serveru. Koraci se razlikuju zavisno o distribuciji Linuxa koju koristite. Na primer, na Debian ili Ubuntu sistemu to možete uraditi sa sledećim komandama:

    sudo apt update
    sudo apt install bind9

    Na CentOS ili Red Hat sistemima, koristite yum:

    sudo yum install bind
  2. Konfiguracija BIND-a: Konfiguracija se vrši putem konfiguracionih fajlova. Osnovni konfiguracioni fajl se zove named.conf ili named.conf.options. Možete ga pronaći u direktorijumu /etc/bind/ (za Debian/Ubuntu) ili /etc/named/ (za CentOS/Red Hat).

    Ovde možete konfigurisati osnovne parametre kao što su zone, forwarders, listen adrese i mnoge druge opcije.

  3. Konfiguracija zona: Da biste mapirali domenska imena na IP adrese, morate konfigurisati DNS zone. Na primer, evo kako biste konfigurisali primarnu zonu za vašu domenu example.com:


    zone "example.com" {
        type master;
        file "/etc/bind/zones/db.example.com";
    };
    

    Ovde se koristi fajl db.example.com za definisanje rekorda u toj zoni.

  4. Kreiranje zona fajlova: Kreirajte fajlove zona za svaku definisanu zonu. Na primer, za zonu example.com, kreirajte fajl /etc/bind/zones/db.example.com sa odgovarajućim DNS rekordima.

    Primer fajla zone:

    $TTL 86400
    @   IN  SOA     ns1.example.com. admin.example.com. (
            2023102701 ; Serial
            3600        ; Refresh
            1800        ; Retry
            604800      ; Expire
            86400 )     ; Negative Cache TTL
    ;
    @       IN  NS  ns1.example.com.
    @       IN  NS  ns2.example.com.
    @       IN  A   192.168.1.100
    www     IN  A   192.168.1.101
    
  5. Testiranje i pokretanje BIND-a: Pre nego što pokrenete BIND, testirajte svoju konfiguraciju na greške:

    named-checkconf /etc/bind/named.conf
    named-checkzone example.com /etc/bind/zones/db.example.com

    Ako nema grešaka, pokrenite BIND:

    sudo systemctl start bind9 # Na Debian/Ubuntu
    sudo systemctl start named # Na CentOS/Red Hat
  6. Konfiguracija automatskog pokretanja: Da biste omogućili automatsko pokretanje BIND-a pri pokretanju sistema, izvršite sledeće komande:

    sudo systemctl enable bind9 # Na Debian/Ubuntu
    sudo systemctl enable named # Na CentOS/Red Hat

Ovo su osnovni koraci za instalaciju i konfiguraciju BIND DNS servera. Dalje, možete konfigurisati dodatne opcije kao što su sigurnosne postavke, tzv. "view-ovi" i mnoge druge. Važno je obratiti pažnju na bezbednost i nadogradnju BIND servera kako biste osigurali siguran i stabilan DNS sistem.

caching-only DNS

Da biste konfigurisali samo "caching-only" DNS server koristeći BIND, možete slediti sledeće korake:

  1. Instalacija BIND-a: Prvo instalirajte BIND DNS server kao što je opisano u prethodnom odgovoru.

  2. Konfiguracija BIND-a: Konfiguracija se vrši putem named.conf datoteke. Otvorite ovu datoteku u svom omiljenom tekstualnom uređivaču. Na Debian/Ubuntu sistemima, datoteka se obično nalazi u /etc/bind/named.conf, dok se na CentOS/Red Hat sistemima može nalaziti u /etc/named.conf.

  3. Konfiguracija osnovnih postavki: Postavite osnovne parametre za "caching-only" DNS server. Evo primera kako to može izgledati:

    options {
        directory "/var/cache/bind";
        recursion yes; // Dozvoli rekuzivne upite
        allow-query { any; }; // Dozvoli upite od svih
    };
    

    Ovde se konfiguriše direktorijum za kesiranje (cache) i dozvoljava se rekuzivno traženje koje će omogućiti da vaš DNS server traži od drugih DNS servera kad nema lokalno kesiranih informacija.

  4. Konfiguracija kesiranja (caching): Konfigurišite kesiranje sa dodatnim postavkama kao što su root DNS serveri. Ovako možete omogućiti vašem DNS serveru da zapamti češće korišćene informacije:

    zone "." {
        type hint;
        file "/etc/bind/db.root";
    };
    

    Kreirajte fajl /etc/bind/db.root i dodajte informacije o root DNS serverima u njemu. Ovaj fajl možete preuzeti sa ovde i sačuvati u pomenutom direktorijumu.

  5. Zabrana rekuzivnih upita sa drugih mreža: Kako biste ograničili pristup "caching-only" DNS serveru sa drugih mreža, možete dodati sledeće:

    acl localnet {
        192.168.0.0/16;
        10.0.0.0/8;
    };
    allow-recursion { localnet; };
    allow-query { localnet; };
    

    Ovo ograničava rekuzivne upite i upite samo na određenim lokalnim mrežama.

  6. Testiranje i pokretanje BIND-a: Testirajte svoju konfiguraciju i pokrenite BIND server kako je opisano u prethodnom odgovoru.

  7. Automatsko pokretanje: Omogućite automatsko pokretanje BIND-a pri pokretanju sistema kao što je opisano ranije.

Nakon ovih koraka, vaš DNS server će biti konfigurisan kao "caching-only" DNS server i odgovaraće na upite za kesirane informacije. Obratite pažnju na sigurnosne postavke kako biste osigurali da je vaš server bezbedan i da ne može biti iskorišćen za DNS amplifikacione napade.

Forwardovanja

Konfiguracija forwardovanja (ili DNS forwarding-a) u BIND DNS serveru omogućava da DNS upiti koje vaš server ne može rešiti lokalno budu prosleđeni drugom DNS serveru, obično DNS serveru vašeg provajdera ili nekom javnom DNS serveru. Ovo je korisno ako želite da koristite lokalni DNS server za kesiranje upita, ali da za stvarna DNS rešenja oslanjate na druge servere. Evo kako to možete konfigurisati:

  1. Otvorite konfiguracionu datoteku: Otvorite konfiguracionu datoteku vašeg BIND servera (obično /etc/bind/named.conf) u tekstualnom uređivaču. Ovo možete uraditi sa superuser privilegijama ili koristeći sudo:

    sudo nano /etc/bind/named.conf
  2. Definišite zone forwardovanja: Dodajte sledeće linije unutar bloka options { } u konfiguracionoj datoteci. Ovde definišete zone forwardovanja i servere na koje će se upiti encirptovati:

    forwarders {
        8.8.8.8;  // Prvi DNS server (možete koristiti Google DNS ili neki drugi)
        8.8.4.4;  // Drugi DNS server (opciono)
    };
    
    forward only;
    

    U gornjem primeru, koristimo Google DNS servere kao forwardere. Možete koristiti i druge javne DNS servere ili DNS servere vašeg provajdera.

  3. Omogućite forwardovanje upita: Postavite forward only; kako biste omogućili samo forwardovanje upita, bez lokalnog rezolvanja. Ovo znači da će BIND server proslediti sve upite serverima navedenim u forwarders bloku, umesto da pokušava da ih rešava lokalno.

  4. Zabrana rekuzivnih upita: Da biste sprečili DNS server da vrši rekuzivne upite i pretražuje čitavu DNS hijerarhiju, dodajte sledeće:

    recursion no;

    Ovim se zabranjuju rekuzivni upiti i vaš DNS server će samo forwardovati upite drugim DNS serverima.

  5. Sačuvajte i izađite: Sačuvajte izmene i zatvorite konfiguracionu datoteku.

  6. Ponovo pokrenite BIND server: Nakon konfigurisanja forwardovanja, ponovo pokrenite BIND server kako bi se primenile izmene:

    sudo systemctl restart bind9 # Na Debian/Ubuntu

    ili

    sudo systemctl restart named # Na CentOS/Red Hat
  7. Testiranje konfiguracije: Testirajte konfiguraciju tako što ćete uputiti DNS upite putem vašeg servera i proveriti da li se upiti encirptuju i prosleđuju forwarderima.

Nakon ovih koraka, vaš BIND DNS server će forwardovati upite drugim DNS serverima umesto da ih rešava lokalno. Ovo je korisno ako želite brže i efikasnije DNS rešenje, a takođe možete koristiti lokalni BIND server za kesiranje upita i ubrzanje odgovora.

No comments:

Post a Comment