Kas yra BIND ir kaip jis aptarnauja DNS?
Autorius: Domeny.ForSale redakcija Paskelbta
Trumpai: BIND (Berkeley Internet Name Domain) – tai atvirojo kodo DNS serverio programinė įranga, dažniausiai naudojama Linux ir Unix sistemose. Ji gali skelbti informaciją apie domenus arba ieškoti DNS atsakymų naudotojų vardu. BIND praverčia, kai reikia patiems kontroliuoti DNS veikimą, tačiau įprastai svetainei dažniausiai pakanka tiekėjo valdomos DNS paslaugos.
Kam skirtas BIND?
DNS (Domain Name System) – tai domenų vardų sistema: ji, be kita ko, leidžia nustatyti, koks IP adresas atitinka naršyklėje įvestą vardą. Joje saugoma ir kita informacija, pavyzdžiui, domeno pašto serverių adresai ar paslaugoms patvirtinti naudojami duomenys. BIND yra viena iš šią sistemą aptarnaujančių programų, o ne pačios DNS sistemos pavadinimas.
BIND kuria organizacija Internet Systems Consortium (ISC). Dabartinė programinės įrangos versijų šaka yra BIND 9, o pagrindinis jos serverio procesas vadinamas named. Pakete taip pat yra administravimo įrankių, skirtų, be kita ko, konfigūracijai tikrinti ir DNS atsakymams analizuoti.
BIND nesaugo svetainės failų ir neatstoja WWW serverio. Jis taip pat neregistruoja domenų. Jo užduotis – teikti DNS atsakymus, pagal kuriuos naršyklė ar kita programa gali nustatyti, kur jungtis prie reikiamos paslaugos.
Du vaidmenys: autoritetingasis serveris ir vardų sprendiklis
Autoritetingasis serveris teikia patikimus duomenis apie domenus, už kuriuos atsako. Administratorius šiuos duomenis aprašo DNS zonoje, t. y. atskiroje vardų erdvės dalyje. Tokioje zonoje gali būti A ir AAAA įrašai, nurodantys IP adresus, MX įrašai, nukreipiantys el. paštą, ir TXT įrašai, kuriuose saugoma tekstinė informacija.
Rekursinis vardų sprendiklis ieško atsakymų kliento vardu. Jei reikiamos informacijos nėra podėlyje, jis siunčia užklausas atitinkamiems DNS serveriams, kol gauna rezultatą. Tuomet atsakymą gali išsaugoti laikotarpiui, kurį nustato TTL – parametras, nurodantis, kiek laiko atsakymą leidžiama laikyti podėlyje.
BIND gali atlikti abu vaidmenis, tačiau jų prieigos reikalavimai skiriasi. Viešasis autoritetingasis serveris turėtų atsakyti į užklausas apie aptarnaujamas zonas. Įmonės vardų sprendiklis rekursines užklausas turėtų priimti tik iš įgaliotų klientų, pavyzdžiui, vietinio tinklo arba VPN įrenginių.
Viešai prieinamose sistemose šiuos vaidmenis paprastai verta atskirti. Taip lengviau taikyti skirtingas saugumo taisykles ir sumažinti konfigūracijos klaidų padarinius.
Kaip domenas aptarnaujamas praktiškai?
Tarkime, įmonė perkelia svetainę į naują serverį, bet el. paštą palieka pas dabartinį tiekėją. Jei jos zoną aptarnauja BIND, administratorius pakeičia A įrašą, o jei naudojamas IPv6 – ir AAAA įrašą. MX įrašai lieka nepakeisti, nes pašto pristatymo tvarka nesikeičia.
Pakeitimai nebūtinai iš karto bus matomi visiems naudotojams. Vardų sprendikliai gali ir toliau naudoti ankstesnį atsakymą, kol baigsis jo TTL. Prieš planuojamą perkėlimą galima iš anksto sumažinti keičiamų įrašų TTL, tačiau svarbu atminti, kad jau išsaugotiems atsakymams vis dar galioja ankstesnė, ilgesnė reikšmė.
BIND taip pat gali veikti kaip pirminis arba antrinis zonos serveris. Pirminis serveris yra zonos duomenų šaltinis, o antrinis gauna jų kopiją per zonos perdavimą. Tai nėra skirstymas į „aktyvųjį“ ir „atsarginį“ serverį: abu gali įprastai atsakyti į užklausas.
Vien paleidus BIND, domeno aptarnavimas nebus perkeltas į nuosavą infrastruktūrą. Dar reikia tinkamai deleguoti domeną, t. y. nurodyti vardų serverius aukštesnio lygio zonoje. Paprastai tai daroma domeno registratoriaus valdymo skydelyje.
Ką reikia apsaugoti ir patikrinti?
BIND administravimas neapsiriboja įrašų redagavimu. Ypač svarbu:
- Apriboti rekursiją. Viešai prieinamas atvirasis vardų sprendiklis gali būti panaudotas DDoS atakoms sustiprinti.
- Kontroliuoti zonų perdavimą. Zonų kopijas turėtų galėti gauti tik įgalioti antriniai serveriai.
- Atnaujinti programinę įrangą. Informaciją apie versiją, palaikymą ir pataisas reikia tikrinti ISC pranešimuose ir naudojamos distribucijos dokumentacijoje.
- Užtikrinti infrastruktūros prieinamumą. Vardų serveriai turėtų veikti nepriklausomose aplinkose, kad vienas gedimas nesustabdytų viso DNS aptarnavimo.
BIND palaiko DNSSEC – DNS duomenų pasirašymo ir jų autentiškumo tikrinimo mechanizmą. DNSSEC nešifruoja užklausų ir neslepia vardų, į kuriuos kreipiamasi. Norint jį įdiegti, reikia tinkamai valdyti raktus ir susieti pasirašytą zoną su aukštesnio lygio zona.
Prieš pritaikant pakeitimus, konfigūracijos sintaksę galima patikrinti įrankiu named-checkconf, o zonos failą – įrankiu named-checkzone. Pritaikius pakeitimus, įrankiu dig galima patikrinti atskirų serverių atsakymus. Tačiau taisyklinga sintaksė negarantuoja nei tinkamo delegavimo, nei paslaugos pasiekiamumo iš interneto.
Kada rinktis BIND, o kada – valdomą paslaugą?
BIND verta rinktis, kai organizacijai reikia nuosavos DNS infrastruktūros, vietinių zonų, išsamios prieigos kontrolės arba integracijos su esamu sistemų administravimu. Jis taip pat naudingas mokantis, kaip veikia DNS, nes leidžia savarankiškai sukonfigūruoti zoną ir stebėti serverio atsakymus.
Įmonės svetainės ar parduotuvės savininkui valdoma paslauga dažnai bus paprastesnis pasirinkimas. Tiekėjas prižiūri DNS serverius ir jų programinę įrangą, o naudotojas redaguoja įrašus valdymo skydelyje. Tai nereiškia, kad reikia atsisakyti savo domeno ar svetainės prieglobą ir DNS paslaugą užsisakyti iš tos pačios įmonės.
Todėl prieš diegdami apsispręskite: ar jums reikia tik keisti domeno įrašus, ar iš tiesų prižiūrėti DNS serverį? Jei reikia tik tvarkyti įrašus, pirmiausia įvertinkite dabartinio DNS valdymo skydelio galimybes – nuosavas BIND reiškia papildomą atsakomybę už prieinamumą, atnaujinimus ir saugumą.
