Postavljanje Bind9 DNS poslužitelja (stvaranje zone lokalne domene). Dodatne mogućnosti konfiguracije

Dobar dan, danas ću vam reći kako postaviti DNS na Ubuntu 14.04 LTS poslužitelju. Prvo teorija: DNS je usluga poslužitelja koja rješava naziv domene na IP adresu. Na primjer, www.example.com će se pretvoriti u 93.184.216.34. DNS zapisi imaju nekoliko vrsta (glavni: A- adresni zapis, AAAA- zapis IPv6 adrese, CNAME- zapis kanonskog imena, MX- razmjena pošte, N.S.- poslužitelj imena, PTR-pokazivač, SOA-Početak ovlasti).

I tako prijeđimo na stvar DNS postavke. Prije svega, pretpostavljam da ste instalirali Ubuntu poslužitelj 14.04 LTS, ažuriran je. Za ažuriranje, pokrenite se naredbeni redak dvije naredbe:

Apt-get ažuriranje

Sudo apt-get nadogradnja

Nakon dovršetka ažuriranja instalirat ćemo uslugu Bind9.

Sudo apt-get install bind9

Bind9 je instaliran, ali nije konfiguriran. Konfigurirajmo ga. Zaustavimo uslugu:

Sudo servis bind9 stop

Naznačit ćemo adrese na kojima će Bind9 slušati zahtjeve i gdje preusmjeriti ako nije odgovoran za ovu zonu. Da biste to učinili, otvorite datoteku /etc/bind/named.conf.options

Sudo nano /etc/bind/named.conf.options

u stupcu forwarders označavamo poslužitelj za prosljeđivanje zahtjeva, a u stupcu listen-on označavamo na koje adrese treba odgovarati. Trebalo bi izgledati otprilike ovako:

Opcije (direktorij "/var/cache/bind"; // Ako postoji vatrozid između vas i poslužitelja imena s kojima želite // razgovarati, možda ćete morati popraviti vatrozid za dopuštanje više // portova za razgovor. Pogledajte http://www.kb.cert.org/vuls/id/800113 // Ako je vaš ISP dao jednu ili više IP adresa za stabilne // poslužitelje imena, vjerojatno ih želite koristiti kao prosljeđivače. // Dekomentirajte sljedeći blok, i umetnite

Obratite pažnju na redak listen-on-v6 ( bilo koji; ); ako imate omogućen IPv6, tada će Bind9 slušati sve IPv6 adrese. Ako to trebate izbjeći, komentirajte ovaj redak ili navedite određenu adresu. Ne preporuča se osluškivanje svih adresa, pogotovo onih koje direktno gledaju na Internet, jer ima dosta napada na DNS poslužitelje.

Sada konfigurirajmo zone kojima će naš Bind9 upravljati. Da biste to učinili, otvorite datoteku /etc/bind/named.conf.local

Sudo nano /etc/bind/named.conf.local

Pišemo prema primjeru:

Zona "example.com" ( //Domena kojom ćemo upravljati tip master; //Tip. Bind9 je master i upravljat će datotekom "/etc/bind/db.example.com"; //Datoteka sa sadržajem domene); zona "0.168.192.in-addr.arpa" ( //Obrnuti zapis za master tipa domene; //Tip. Bind9 je glavni i upravljat će datotekom "/etc/bind/db.0.168.192"; / /Datoteka s obrnuti unosi domena);

Kreirajmo sada datoteku zone:

Sudo dodirnite /etc/bind/db.example.com

Sudo touch /etc/bind/db.0.168.192

Moramo registrirati zone u datoteci /etc/bind/db.example.com pogled uživo i navesti NS poslužitelj, koliko dugo ćemo biti NS poslužitelj za ovu domenu, tada moramo navesti ime našeg hosta. Moj hostname poslužitelja postavljen tijekom instalacije je srv-bind9. Ispunite na sljedeći način:

; BIND podataka datoteka za lokalno sučelje povratne petlje; $TTL 604800 @ IN SOA srv-bind9.example.com. root.srv-bind9.example.com. (//napomena na kraju je točka 20150120; Serial 604800; Refresh 86400; Retry 2419200; Expire 604800) ; Negativni TTL predmemorije ; @ IN NS srv-bind9.example.com. @ IN A 192.168.0.1 //navedite adresu našeg poslužitelja @ IN AAAA::1 //navedite IPv6 adresu našeg poslužitelja, ako postoji. srv-bind9 IN A 192.168.0.1 //navedite adresu našeg poslužitelja

Postavili smo prednju zonu, sada postavimo obrnutu zonu. Otvorite datoteku: /etc/bind/db.0.168.192 i konfigurirajte je prema primjeru:

; BIND datoteka obrnutih podataka za lokalno sučelje povratne petlje; $TTL 604800 @ IN SOA srv-bind9.example.com. root.srv-bind9.example.com. (//napomena na kraju je točka 20141126; Serial 604800; Refresh 86400; Retry 2419200; Expire 604800) ; Negativni TTL predmemorije ; @ U NS srv-bind9. //imajte na umu da na kraju postoji točka 1 U PTR srv-bind9.example.com. //Prvi stupac označava zadnja znamenka IP adrese.

//Imajte na umu da je točka na kraju

Ostaje provjeriti jesu li postavke točne pokretanjem naredbe:

Named-checkconf

Ako nije ništa rekla, onda je sve učinjeno kako treba. I možete pokrenuti Bind9:

Sada smo završili instalaciju i konfiguraciju Bind9

Uredite datoteku /etc/resolv.conf: prvi DNS poslužitelj je povratna petlja na vaš lokalni poslužitelj DNS (127.0.0.1), vama najbliži drugi DNS poslužitelj (obično ga daje vaš internetski provajder), popis ostalih DNS-ova po vlastitom nahođenju (nisu obavezni). Resolv.conf datoteka nam govori da ako neuspješno DNS upiti na vaš poslužitelj (127.0.0.1), zahtjev će se automatski preusmjeriti na drugi DNS poslužitelj na popisu itd.

> ee /etc/resolv.conf domena vaš.domen poslužitelj imena 127.0.0.1 #DNS vaš ISP poslužitelj imena x.x.x.x poslužitelj imena x.x.x.x

Razrješivač je skup rutina u biblioteci C koje omogućuju pristup internetu Što je DNS (. Naziv domene System) (Internet Domain Name System) (približno Prevoditelj - DNS pruža mogućnost pretvaranja simboličkih imena stroja u IP adrese i obrnuto, IP adresa u simbolička imena). Datoteka postavki /etc/resolv.conf jer razrješivač sadrži informacije koje prvo čitaju razlučivačke rutine koje poziva proces. Ova je datoteka dizajnirana da bude čitljiva ljudima i sadrži popis ključnih riječi i vrijednosti koje pružaju različite informacije razrješavaču.

U normalno konfiguriranom sustavu ovu datoteku nije potrebno: zahtjeve će obraditi poslužitelj na lokalnom hostu, naziv domene određuje se iz naziva stroja, a put pretraživanja stroja po domeni konstruira se iz naziva domene.

Mogućnosti konfiguracije:

Adresa internetskog poslužitelja imena (u xxx.xxx.xxx.xxx zapisu) koji će obraditi zahtjeve iz razrješitelja. Možda postoje poslužitelji imena maksimalno 3(ostali se zanemaruju), jedan u svakom redu. Ako je navedeno više poslužitelja, biblioteka razrješitelja postavlja im upite redoslijedom kojim su navedeni. Ako nema unosa poslužitelja imena, tada se prema zadanim postavkama koristi poslužitelj imena na lokalnom računalu. (Algoritam koji se koristi pokušava se spojiti na poslužitelj naziva i, ako zahtjev nije obrađen nakon određenog vremena, pokušava se spojiti na sljedeći poslužitelj imena, i tako dalje dok se ne obradi cijeli popis poslužitelja, tada ponavljajte postupak dok ne postignete maksimalna količina ponavljanja).

Naziv lokalne domene. Većina upita za nazive strojeva u ovoj domeni moći će se koristiti samo kratka imena, bez navođenja naziva domene. Ako nema zapisa domene, tada se domena određuje prema imenu lokalni stroj, koji vraća funkcija gethostname(); Smatra se da je dio imena domene sve nakon prve točke `." Konačno, ako naziv stroja ne sadrži dio domene, dodjeljuje se korijenska domena.

Popis za pretraživanje imena strojeva. Popis se obično utvrđuje iz mjesni naziv domena; prema zadanim postavkama sadrži samo ime lokalna domena. Popis može sadržavati više domena koje moraju slijediti ključnu riječ pretraživanja i biti odvojene razmacima ili tabulatorima. U većini slučajeva, ako zahtjev razrješavaču navodi kratko ime stroj (bez dijela domene), tada će mu se svaka domena s danog popisa redom dodavati sve dok se ne pronađe potpuno odgovarajuće ime stroja. Imajte na umu da ovaj proces može biti spor i generirati značajan mrežni promet ako poslužitelji koji poslužuju navedene domene nisu lokalni te će zahtjevi vratiti pogrešku isteka vremena ako je poslužitelj za jednu od domena nedostupan. Popis u u trenutku ograničeno na šest domena, čija ukupna duljina imena ne smije premašiti 256 znakova.

Omogućuje sortiranje adresa koje vraća gethostbyname(). Opcija popisa sortiranja određena je pomoću para: IP adresa/mrežna maska. Mrežna maska ​​je izborna; zadana je trenutna mrežna maska. Parovi IP adrese i opcijske mrežne maske odvojeni su kosom crtom. Može se navesti do 10 parova. primjer: popis sortiranja 130.155.160.0/255.255.240.0 130.155.0.0

Ova opcija dopušta promjene određenih varijabli razlučivača. Sintaksa je:

Opcija opcija... gdje opcija može uzeti jednu od sljedećih vrijednosti: debug --- postavlja RES_DEBUG na _res.options. ndots:n --- postavlja prag za broj točaka koje moraju biti u imenu navedenom u res_query (pogledajte resolver(@LIB_NETWORK_EXT@)) prije nego što se kreira početni apsolutni upit. Zadano, n ``1"", znači da ako postoji barem jedna točka u imenu, pokušat će tretirati to ime kao apsolutno prije dodavanja elemenata s popisa za pretraživanje u njega.

Domena i ključne riječi za pretraživanje međusobno se isključuju. Ako su navedene obje riječi, radit će zadnja navedena.

Ključna riječ i vrijednost moraju biti u istom retku, a osim toga, ključna riječ (na primjer, poslužitelj imena) mora se pojaviti prva u retku. Značenje se mora odvojiti od ključna riječ prostor.

Jedan od važnih servisa koji osigurava funkcioniranje modernog interneta je usluga za pretvaranje naziva stranice u IP adresu. Postavljanje implementacije DNS usluga U ovom članku ćemo raditi na primjeru postavljanja Bind 9 (named) na poslužitelj pod pokrenut CentOS 7. Pripremit ćemo minimalno potrebnu osnovnu funkcionalnost i pogledati malo dublje u postavke zapisivanja.

Vezati- danas najčešća implementacija DNS poslužitelja koja osigurava konverziju IP adresa u DNS imena i obrnuto. Naziva se i named, na primjer u Freebsd-u. Sudeći prema informacijama iz Wikipedije, sada 10 od 13 korijenskih DNS poslužitelja na Internetu radi na vezanju. Instalira se iz kutije u gotovo sve linux distribucije. Razmotrit ću njegovu instalaciju na CentOS 7 poslužitelju.

Instaliranje Bind 9 (named) na CentOS 7

Prije svega, provjerimo imamo li DNS poslužitelj instaliran na sustavu:

# rpm -qa bind* bind-libs-lite-9.9.4-14.el7.x86_64 bind-license-9.9.4-14.el7.noarch

Nemam instaliran jer sam ga tada izabrao minimalni paket programa. Naš poslužitelj imena će raditi chroot okruženje, pa instalirajte odgovarajuće pakete:

# yum - y instalirajte bind bind - utils bind - chroot

Još jednom, imajte na umu da ćemo koristiti bind in chroot okruženje za povećanje sigurnosti. Ovo nameće određene značajke u postavljanju i upravljanju poslužiteljem. U tim sitnicama treba biti oprezan. Dakle, pokrenimo bind:

# pokretanje sustava imenovani-chroot# systemctl omogućiti imenovani-chroot ln -s "/usr/lib/systemd/system/named-chroot.service" "/etc/systemd/system/multi-user.target.wants/named-chroot.service"

Provjera sadržaja chroot direktorija:

# ls -l /var/named/chroot/etc

Sve je u redu, server se pokrenuo, potrebne datoteke stvoreno, sve je spremno za konfiguraciju. Pobrinimo se za to.

Postavljanje DNS poslužitelja u CentOS 7

Konfiguracijska datoteka našeg poslužitelja nalazi se na /var/named/chroot/etc/named.conf. Otvorimo ga i donesemo sljedeći pogled:

# mcedit /var/named/chroot/etc/named.conf opcije ( slušanje na portu 53 ( bilo koji; ); slušanje na v6 portu 53 ( ništa; ); direktorij "/var/named"; dump-file " /var/named/data/cache_dump.db"; dopust-upit ( 127.0.0.1; 192.168.7.0/24; ); rekurzija da; dopust-rekurzija ( 127.0.0.1; 192.168.7.0/24; ); prosljeđivači ( 8.8 .8.8); version "DNS Server"; "/var/named/dynamic"; pid-file "/run/named/session. key "; dnssec-omogući ne; dnssec-provjera ne; ); zona "." IN (upišite savjet; datoteka "named.ca"; ); uključi "/etc/named.rfc1912.zones"; uključi "/etc/named.root.key"; bilježenje ( zadana_datoteka kanala ( datoteka "/var/log/named/default.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); zadana kategorija ( zadana_datoteka; ); );

Ova konfiguracija će osigurati rad uobičajenog poslužitelja za predmemoriju lokalna mreža. Komentari na neke parametre:

Ne zaboravite urediti pravila vatrozida za ispravan DNS rad serveri - otvoreni 53 UDP priključak za rad poslužitelja za predmemoriju koji smo sada konfigurirali, i 53 TCP priključak za prijenos zona, o čemu će biti riječi kasnije

Kreirajmo sada mapu za zapise. Ne zaboravite da radimo u chroot okruženju:

# cd /var/named/chroot/var/log && mkdir named && chown named. imenovani

Vlastita zona podrške

Recimo da trebamo smjestiti vlastitu zonu site1.ru u naš named. Prije svega, kreiramo datoteku zone koju će posluživati ​​DNS poslužitelj:

# mcedit /var/named/chroot/var/named/site1.ru.zone $TTL 86400 @ U SOA site1.ru. site1.ru.local. (2015092502 43200 3600 3600000 2592000) U NS ns1.site1.ru.

U NS ns2.site1.ru.

IN A 192.168.7.254 IN MX 10 mx.site1.ru. vrata IN A 192.168.7.254 mx IN A 192.168.7.250 ns1 IN A 192.168.7.235 ns2 IN A 192.168.7.231 Opis sintakse zonskih datoteka prilično je dobro pokriven na Internetu; ne želim se u detalje zadržavati na tome. Po želji, svatko može sam vidjeti treba li konfigurirati podršku za vlastitu zonu.:

Mi izlažemo

potrebna prava

# chown root:named /var/named/chroot/var/named/site1.ru.zone # chmod 0640 /var/named/chroot/var/named/site1.ru.zone Zona "site1.ru" (upišite master; datoteka "site1.ru.zone"; );:

Ponovno čitamo imenovanu konfiguraciju pomoću

rndc

# rndc rekonfig

Dodavanje u podređenu zonu vezanja

10.1.3.4 - IP adresa DNS poslužitelja s kojeg preuzimamo zonu. Ne zaboravite dopustiti prijenos zone na vaš DNS poslužitelj.

Morate dodati dopuštenje za pisanje imenovanoj grupi tako da izgleda ovako:

Nakon toga možete ponovno pokrenuti bind i provjeriti je li stvorena datoteka slave zone. S gornjim postavkama, nalazit će se na /var/named/chroot/var/named/site.ru.zone. Ako bind nema prava za stvaranje datoteke, dobit ćete pogrešku u zapisniku:

Izbacivanje glavne datoteke: tmp-7Swr6EZpcd: otvoreno: dopuštenje odbijeno

Mnogo je zanimljivije i korisnije razumjeti detaljno bilježenje rada poslužitelja. ja dugo vremena Površno sam grabio kojekakve preporuke i komade približnih konfiguracija na internetu, dok se nisam odlučio sam pozabaviti ovom temom i otišao na originalni priručnik.

Bind daje dovoljno mogućnosti za sječu. Možete snimati gotovo sve vezano za rad poslužitelja. Sada sam uključen jednostavni primjeri Pokazat ću ti kako to radi.

Prije svega, u konfiguraciji postavljamo kanal na koji će se pohranjivati ​​zapisi za određene događaje. Evo primjera takvog kanala:

Općenito o kanalu (datoteka "/var/log/named/general.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da;

Ovdje je naznačen naziv kanala koji sami smišljamo - općenito, put do datoteke je naznačen, rečeno je da ćemo pohraniti 3 verzije dnevnika veličine ne veće od 5 megabajta. Parametar ozbiljnost može uzeti sljedeće vrijednosti:

Parametar vrijeme ispisa označava da vrijeme događaja treba biti zabilježeno u dnevniku. Uz postavke koje sam naveo, konfiguraciji kanala mogu se dodati sljedeći parametri:

  • ozbiljnost ispisa da | ne — određuje treba li ili ne pisati parametar ozbiljnosti u dnevnik
  • print-kategorija da | no — određuje treba li ili ne napisati naziv kategorije dnevnika

Nisam naveo ove parametre jer je zadana vrijednost postavljena na Ne, što meni osobno odgovara.

Kategorija općenito ( general; );

Opis kategorija dnevnika u vezanju (nazvano)
zadana vrijednostOvdje će pasti događaji svih kategorija iz ove tablice ako nisu posebno definirani, osim kategorije upita, koja mora biti posebno uključena. To jest, ako odredite samo zadanu kategoriju, tada će se u nju slivati ​​događaji svih kategorija.
generalOva kategorija je za sve dnevnike koji nisu uključeni ni u jednu od navedenih kategorija.
baza podatakaPoruke koje se odnose na pohranu i predmemoriju zone.
sigurnostiPotvrda i odbijanje zahtjeva.
konfiguracijaSve vezano uz čitanje i izvođenje konfiguracijske datoteke.
razrješivačRazrješenje imena, uključujući informacije o rekurzivni upiti, koju u ime klijenta izvršava poslužitelj za predmemoriranje.
xfer-inInformacije o dobivanju zona.
xfer-outInformacije o prijenosnim zonama.
obavijestitiZapisivanje operacija NOTIFY protokola.
klijentIspunjavanje zahtjeva klijenata.
bez premcaPoruke koje su imenovane nisu mogle biti dodijeljene niti jednoj klasi ili za koje nije definirano mapiranje.
mrežaBilježenje mrežnih operacija.
ažuriratiDinamička ažuriranja.
ažuriranje-sigurnostPotvrda ili odbijanje zahtjeva za ažuriranje.
upiteBilježenje zahtjeva na DNS poslužitelj. Da biste omogućili ovu kategoriju, morate zasebno postaviti parametar u konfiguraciji poslužitelja. To je zbog činjenice da ova kategorija generira puno unosa u log datoteci, što može utjecati na performanse poslužitelja.
upit-pogreškePogreške u zahtjevima prema poslužitelju.
otpremaPreusmjeravanje dolaznih paketa na module poslužitelja za obradu.
dnssecRad protokola DNSSEC i TSIG.
lame-poslužiteljiIspravljene pogreške koje bind prima prilikom pristupa udaljeni poslužitelji u pokušaju rješavanja zahtjeva za razrješenjem imena.
samo izaslanstvoZahtjevi za evidentiranje koji su vratili NXDOMAIN.
edns-onemogućenZahtjevi koji su prisiljeni koristiti obični DNS zbog prekoračenja vremena čekanja.
RPZSvi poslovi vezani uz provedbu Zone politike odgovora (RPZ).
rate-limitOperacije povezane s jednom ili više izjava o ograničenju brzine u opcijama ili prikazu.

Dakle, za prikaz svih kategorija dnevnika odvojene datoteke, trebate dodati sljedeću strukturu imenovanoj konfiguraciji:

Bilježenje ( zadani kanal ( datoteka "/var/log/named/default.log" verzije 3 veličina 5m; ozbiljnost dinamička; vrijeme ispisa da; ); opći kanal ( datoteka "/var/log/named/general.log" verzije 3 veličina 5m; vrijeme ispisa da; /var/log/named/security.log" veličina 5m; vrijeme ispisa da named/config.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); razrješivač kanala ( datoteka "/var/log/named/resolver.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); kanal xfer-in ( datoteka "/var/log/ named/xfer-in.log" verzija 3 veličine 5m; vrijeme ispisa da; ); kanal xfer-out ( datoteka "/var/log/named /xfer-out.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); obavijest o kanalu ( datoteka "/var/log/named/notify.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da ); /client.log" verzije 3 veličine 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); kanal bez podudaranja (datoteka "/var/log/named/unmatched.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); mreža kanala (datoteka "/var/log/named/network.log" verzije 3 veličina 5m; ozbiljnost dinamička; vrijeme ispisa da; ); ažuriranje kanala (datoteka "/var/log/named/update.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); kanal update-security ( datoteka "/var/log/named/update-security.log" verzije 3 veličina 5m; ozbiljnost dinamička; vrijeme ispisa da; ); upiti kanala (datoteka "/var/log/named/queries.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); pogreške upita kanala (datoteka "/var/log/named/query-errors.log" verzije 3 veličina 5m; ozbiljnost dinamička; vrijeme ispisa da; ); otprema kanala (datoteka "/var/log/named/dispatch.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); kanal dnssec ( datoteka "/var/log/named/dnssec.log" verzije 3 veličina 5m; ozbiljnost dinamička; vrijeme ispisa da; ); kanal lame-servers (datoteka "/var/log/named/lame-servers.log" verzije 3 veličina 5m; ozbiljnost dinamička; vrijeme ispisa da; ); samo delegiranje kanala (datoteka "/var/log/named/delegation-only.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); kanal edns-disabled ( datoteka "/var/log/named/edns-disabled.log" verzije 3 veličina 5m; ozbiljnost dinamička; vrijeme ispisa da; ); kanal rpz ( datoteka "/var/log/named/rpz.log" verzije 3 veličina 5m; ozbiljnost dinamička; vrijeme ispisa da; ); ograničenje brzine kanala ( datoteka "/var/log/named/rate-limit.log" verzije 3 veličina 5m; dinamika ozbiljnosti; vrijeme ispisa da; ); kategorija default(default;); kategorija općenito(opće;); kategorija baze podataka ( baza podataka; ); kategorija sigurnost ( sigurnost; ); kategorija config(config;); kategorija razrješivač(razrješivač;); kategorija xfer-in ( xfer-in; ); kategorija xfer-out ( xfer-out; ); kategorija obavijestiti (obavijestiti;); kategorija klijent ( klijent; ); kategorija bez podudaranja ( bez podudaranja; ); kategorija mreža ( mreža; ); ažuriranje kategorije(ažuriranje;); kategorija ažuriranje-sigurnost ( ažuriranje-sigurnost; ); upiti kategorije ( upiti; ); kategorija query-errors ( query-errors; ); kategorija otprema ( otprema; ); kategorija dnssec ( dnssec; ); kategorija lame-servers ( lame-servers; ); kategorija samo delegiranje ( samo delegiranje; ); kategorija edns-onemogućeno ( edns-onemogućeno; ); kategorija rpz ( rpz; ); kategorija rate-limit ( rate-limit; ); );

Ako želimo prikupiti sve zapisnike zahtjeva iz kategorije upite, tada u odjeljak opcija konfiguracijske datoteke morate dodati parametar koji to dopušta:

Querylog da;

Ponovno pokreni vezanje:

# systemctl ponovno pokrenite named-chroot.service

Provjera rada DNS poslužitelja

Prije svega, idemo u direktorij s zapisima i provjerimo što tamo imamo:

# cd /var/named/chroot/var/log/named # ls -l

Sve datoteke dnevnika su stvorene i počinju se puniti. Možete provjeriti jedan od njih. Na primjer, pogledajmo kako je naš centos poslužitelj(192.168.7.246) bilježi korisničke zahtjeve. Pokušajmo pokrenuti nslookup yandex.ru s računala 192.168.7.254 (Windows) i vidjeti kako se to odražava u datoteci dnevnika:

26-Sep-2015 19:25:30.923 klijent 192.168.7.254#56374 (yandex.ru): upit: yandex.ru IN A + (192.168.7.246) 26-Sep-2015 19:25:31.013 klijent 192.168.7.254# 56375 (yandex.ru): upit: yandex.ru IN AAAA + (192.168.7.246)

Sada pingajmo site1.ru da provjerimo kako poslužitelj podržava našu zonu:

Pogledajmo što je u zapisima:

26-Sep-2015 19:28:01.660 klijent 192.168.7.254#49816 (site1.ru): upit: site1.ru IN A + (192.168.7.246)

To ga čini vrlo praktičnim za praćenje kamo računalo ide. Na primjer, možete privremeno podići DNS poslužitelj i omogućiti zapisnik upita. U klijentu navedite jedini DNS poslužitelj koji smo konfigurirali. Tada možemo pratiti, na primjer, kamo Windows ide nakon učitavanja bez našeg znanja. Ili gdje se reklame učitavaju na Skype. Svi zahtjevi će biti uredno sastavljeni u datoteku, koja se zatim može lako analizirati, a zatim, na primjer, .

To je sve što sam želio unutra ovaj materijal reći. Predmet postavke vezivanja(nazvan) prilično opsežan. Možda ću se opet tome vratiti.

Online tečaj "Linux Administrator"

Ako imate želju naučiti graditi i održavati visoko dostupne i pouzdane sustave, preporučam da se upoznate s online tečaj “Linux Administrator” u OTUS-u. Tečaj nije za početnike; za upis je potrebno osnovno znanje preko mreža i Linux instalacija na virtualni stroj. Obuka traje 5 mjeseci, nakon čega će uspješni polaznici tečaja moći proći razgovore s partnerima. Testirajte se na prijemnom ispitu i pogledajte program za više detalja.

Danas ćemo govoriti o stvaranju lokala domenska zona unutar lokalne mreže. Zašto trebamo lokalnu domensku zonu i DNS poslužitelj? Dijeliti (učiniti dostupnima) svoja lokalna mjesta svim korisnicima mreže.

Stvorit ću mrežu u kojoj će svi uređaji na mojoj lokalnoj mreži moći koristiti resurse u formatu site.lan. U mom slučaju, uređaji lokalne mreže spajaju se na internet putem usmjerivača. Poslužitelj - uključen Linux Mint(stolno računalo), klijenti: računalo radi Windows kontrola, Linux, Smart TV, kao i pametni telefoni i tableti. Prvo provjerite je li statična interna IP adresa rezervirana u usmjerivaču za poslužitelj (stroj na kojem će biti instaliran DNS poslužitelj). Ovo je vrlo važno istaknuti svima kasnije mrežni uređaji, gdje se točno nalazi naš DNS poslužitelj.

Instaliranje DNS poslužitelja imena:

Prvo morate instalirati Bind paket:

Sudo apt-get install bind

Osim toga, za normalan rad web stranice trebamo LAMP (Linux Apache MySQL PHP). Pročitajte moj članak o tome kako instalirati LAMP u Ubuntu. Također možete postaviti lokalnu web stranicu koristeći vezu na dnu članka. Jedino nemojte pisati adresu stranice u /etc/hosts, jer... Nameserver će se pozabaviti ovim problemima. U ovom trenutku pripremna faza je gotova.

Postavljanje Binda

Ulazimo u Bind direktorij i radimo sigurnosne kopije konfigurirane datoteke:

Cd /etc/bind/ cp named.conf.local named.conf.local.back cp named.conf.options named.conf.options.back

Napravite lokalnu domenu zone.lan:

Nano named.conf.local

I dodajte sljedeće retke na kraj datoteke:

Zona "lan" (upišite master; datoteka "/etc/bind/db.lan"; );

Sada stvaramo odgovarajuću datoteku za zonu domene .lan i otvaramo je za uređivanje:

Dodirnite db.lan nano db.lan

Ispunite ga sadržajem:

@ U SOA lan. root.lan. (201605019 ;Serial 4h 1h 1w 1d @ IN NS ns1.lan. @ IN A 192.168.0.100 ns1 IN A 192.168.0.100 slicks IN A 192.168.0.100 site IN A 192.168.0.100 * IN CNAME @

Obratite pozornost na Serial 201605019. Ova se vrijednost mora povećati svaki put kada uređujete datoteku zone domene. Pišem GG-MM-DD + povećavajući serijski broj do 1. 192.168.0.100 - IP adresa poslužitelja. Zapis formata "slicks IN A" znači da naziv domene slicks postoji u .lan zoni i da se ova stranica nalazi na IP adresi 192.168.0.100. U apache2, web stranica je stvorena u skladu s ServerName slicks.lan. Ako je stranica bila smještena na različitoj IP adresi od DNS poslužitelja, tada bi zapis izgledao kao mrlje U _IP-PC-s-stranicom_ Uredi named.conf.options:

Nano named.conf.options

Morate mu dodati označene retke:

Acl "dom" (192.168.0.0/24; 127.0.0.1;); opcije (direktorij "/var/cache/bind"; automatska provjera valjanosti dnssec-a; dopusti-rekurziju (127.0.0.1/32; 192.168.0.0/24; 192.168.1.0/24; ); dopusti-prijenos ( ništa; ); auth -nxdomain no; # u skladu s RFC1035 listen-on-v6 (none; ); enable-query ("home"; );

Prvi redak stvara domaću lokalnu DNS grupu, s rasponom IP adresa od 192.168.0.0 do 192.168.0.255, kao i 127.0.0.1. Drugi redak koji dodajemo sadrži parametar dozvoljavanja upita i ukazujemo da moramo dopustiti zahtjeve iz matične grupe. Završili smo s konfiguracijom, možemo ponovno pokrenuti poslužitelj

Sudo /etc/init.d/bind9 ponovno pokrenite

Navedite lokalni DNS u usmjerivaču

Dakle, nema potrebe za uređivanjem mrežna veza na svakom klijentu i ručno registrirati DNS poslužitelj, možemo odrediti IP lokalni DNS u postavkama rutera. I svi zahtjevi korisnika mreže bit će prvo poslani lokalnom DNS-u, a zatim ići na Internet. imam:

Za navođenje lokalnog DNS poslužitelja u mom slučaju, idem na Postavljanje -> Mrežne postavke -> Ručno postavljanje internetske veze i u polje Primarna DNS adresa unesem IP adresu poslužitelja zone lokalne domene 192.168.0.100, sada će djelovati kao glavni DNS poslužitelj u lokalnoj mreži . I kao Sekundarni DNS adrese pišemo 8.8.8.8. Ovo su adrese Google DNS. Na snimci zaslona imam primarnu i sekundarnu DNS adresu koja vodi do mog poslužitelja. Iz nekog razloga, isprva se činilo da ruter ne preusmjerava zahtjeve na moj DNS i da ga tako registrira. Drugi DNS je bolji navedite Google server, tako da ako je lokalni server 192.168.0.100 isključen, Internet neće biti izgubljen za sve ostale uređaje!

Provjera funkcionalnosti

Pokrećem klijentsko računalo sa sustavom Windows Xp i testiram vezu. Prvi korak je brisanje DNS predmemorije. Idemo do zapovjedništva Windows niz i napiši:

Ipconfig /flushdns

1. Sada provjeravam vidljivost na mreži DNS poslužitelj, ping 192.168.0.100:

C:\\Documents and Settings\\www>ping 192.168.0.100 Razmjena paketa s 192.168.0.100 od 32 bajta: Odgovor s 192.168.0.100: broj bajtova=32 vremena<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Статистика Ping для 192.168.0.100: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

Provjeravam lokalnu stranicu: nslookup slicks.lan:

C:\\Documents and Settings\\www>nslookup slicks.lan *** Ne mogu pronaći naziv poslužitelja za adresu 192.168.0.1: Nepostojeća domena *** Zadani poslužitelji nisu dostupni Poslužitelj: Nepoznata adresa: 192.168.0.1 Naziv: slicks.lan Adresa: 192.168.0.100

ping slicks.lan:

C:\\Documents and Settings\\www>ping slicks.lan Razmjena paketa sa slicks.lan od 32 bajta: Odgovor od 192.168.0.100: broj bajtova=32 vrijeme<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Статистика Ping для 192.168.0.100: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

Uživajte u rezultatima!

Imenovan je demon koji je dio uvezivanje paketa9 i biti poslužitelj imena domene. Demon imenovan može implementirati funkcije poslužitelja bilo koje vrste: master, slave, cache. Na gornjem dijagramu pokušao sam prikazati glavno kako radi BIND DNS poslužitelj. Binarna datoteka koja obavlja najveći dio posla nalazi se u /usr/sbin/named. Uzima postavke iz glavne konfiguracijske datoteke tzv imenovan.konf i nalazi se u imeniku /etc/bind. U glavnoj konfiguraciji opisao radni imenik poslužitelja, često je to imenik /var/cache/bind, u kojoj laž datoteke opisa zone i druge servisne datoteke. dopisivanje imena zona I datoteka opisa zone postavlja zonski odjeljak s parametrom datoteka. Zonski dio također postavlja vrstu odgovornosti ovog poslužitelja za zonu (master, slave, itd.), a također definira posebne parametre za trenutnu zonu (primjerice, na kojem sučelju obraditi zahtjeve za trenutnu zonu). U datotekama opisa zone sadrži parametre zone i zapise resursa (staze navedene u ovom paragrafu mogu se razlikovati, to ovisi o distribuciji Linuxa ili parametrima za izgradnju poslužitelja iz izvora).

Ovo je opća shema rada koja će vam pomoći da izbjegnete zabunu u budućnosti pri razmatranju specifičnih konfiguracija.

Format konfiguracijske datoteke za 4. verziju programa razlikuje se od onog koji se koristi u osmoj i devetoj verziji VEZATI. S obzirom da računam na ugradnju novog DNS poslužitelja, ali ne vidim smisla instalirati staru verziju, pa ću pogledati konfiguraciju nove verzije.

Početni podaci

Za ispravan rad DNS zahtijeva da imate konfiguriranu mrežu. DNS će u ovom članku biti konfiguriran na stalnu mrežnu konfiguraciju:

Root@ns1:/usr/local/etc/namedb # cat /etc/rc.conf ... hostname="ns1.disnetern.lan" keymap="ru.koi8-r.win.kbd" ifconfig_em1="inet XXX .XXX.XXX.XXX mrežna maska ​​255.255.255.240" defaultrouter="XXX.XXX.XXX.XXX" firewall_enable="DA" firewall_type="otvori" named_enable="DA" ....

gdje je XXX.XXX.XXX.XXX vanjsko sučelje (podmreža koju dodjeljuje pružatelj). Prilagođena zona će imati naziv www.disnettern.lan.

Instalacija BIND9

Da bi DNS poslužitelj radio, morate instalirati paket vezati9 (u nekim distribucijama - vezati ). Kao što je navedeno u dijagramu - glavna konfiguracijska datoteka VEZATI je datoteka imenovan.konf(ova datoteka se može smjestiti u direktorij /usr/local/etc/named/).

Parametri (sintaksa) named.conf

Sintaksa datoteke named.conf pridržava se sljedećih pravila:

IP adrese– IP lista mora biti odvojena simbolom “;” , moguće je navesti podmrežu u formatu 192.168.1.1/24 ili 192.168.1.1/255.255.255.0, (za isključivanje IP-a potrebno je staviti znak ispred!), moguće je navesti imena “bilo”, “ništa”, “lokalni host” u dvostrukim navodnicima.

Komentari– reci koji počinju s #, // i zatvoreni u /* i */ smatraju se komentarima.

U datoteke opisa zone –simbol @ je “varijabla” koja pohranjuje naziv zone navedene u konfiguracijskoj datoteci imenovan.konf ili u @ direktivi $PORIJEKLO trenutni opis zone.

Svaki dovršeni niz parametri moraju završavati simbolom; .

Acl odjeljak

Acl (popis kontrole pristupa)– omogućuje vam da odredite imenovani popis mreža. Format odjeljka: acl “ime_mreže” (ip; ip; ip; );

Odjeljak s opcijama

Odjeljak s opcijama postavlja globalni parametri konfiguracijsku datoteku koja kontrolira sve zone. Ovaj odjeljak ima format: opcije(opcije_odjeljka_operatori);. Opcije se mogu ugniježditi Zonski dio, pritom nadjačava globalne parametre. Često korišten izjave o opcijama:

  • dopusti-upit ( lista_ip} – Omogućuje odgovore samo na upite od lista_ip. Ako ga nema, poslužitelj odgovara na sve zahtjeve.
  • dopusti rekurziju( lista_ip} – Rekurzivni upiti će se izvršiti za zahtjeve iz list_ip. Za ostalo - iterativno. Ako parametar nije naveden, poslužitelj izvodi rekurzivne upite za sve mreže.
  • dopustiti-prijenos ( lista_ip} – Označava popis poslužitelja kojima je dopušteno uzeti zonu od poslužitelja (ovdje su uglavnom navedeni podređeni poslužitelji)
  • imenik /put/do/posla/dir– navodi apsolutni put do radnog direktorija poslužitelja. Ova izjava vrijedi samo u odjeljku opcija.
  • otpremnici ( ip port, ip port...} – označava adrese hostova i, ako je potrebno, portove na koje se prosljeđuju zahtjevi (ovdje je obično naveden DNS davatelja internetskih usluga).
  • naprijed SAMO ili naprijed PRVI - parametar prvi označava da bi DNS poslužitelj trebao pokušati razriješiti imena pomoću DNS poslužitelja navedenih u parametru prosljeđivača, a samo ako nije bilo moguće razriješiti ime pomoću ovih poslužitelja, pokušat će sam razriješiti ime.
  • obavijestiti DA|NE DA– obavijestiti podređene poslužitelje o promjenama u zoni, NE– ne obavještavati.
  • rekurzija DA|NE DA– izvoditi rekurzivne upite ako to zahtijeva klijent, NE– ne izvršavati (samo iterativni upiti). Ako se odgovor pronađe u predmemoriji, vraća se iz predmemorije. (može se koristiti samo u odjeljku Opcije)

Zonski odsjek

Definira opis zone(a). Format odjeljka: zona( operatori_zone_odjeljka}; Operatori, koji se najčešće koriste:

  • dopustiti-ažuriranje( lista_ip} – specificira sustave kojima je dopušteno dinamičko ažuriranje ove zone.
  • datoteka "naziv datoteke ” – navodi stazu datoteke parametara zone (mora se nalaziti u direktoriju navedenom u odjeljku opcija u izjavi direktorija)
  • majstori ( lista_ip} -označava popis glavnih poslužitelja. (dopušteno samo u podređenim zonama)
  • tip " vrsta_zone ” – označava vrstu zone opisanu u trenutnom odjeljku zone_type može poprimiti sljedeće vrijednosti:
    • naprijed– određuje zonu preusmjeravanja koja prosljeđuje zahtjeve koji stižu u ovu zonu.
    • savjet– označava pomoćnu zonu (ova vrsta sadrži informacije o korijenskim poslužiteljima koje će poslužitelj kontaktirati ako ne može pronaći odgovor u predmemoriji)
    • majstorski– navodi da radi kao glavni poslužitelj za trenutnu zonu.
    • rob– navodi da radi kao podređeni poslužitelj za trenutnu zonu.

Dodatne mogućnosti konfiguracije

Vremenske vrijednosti u datotekama zona prema zadanim postavkama navedeno je u sekundama osim ako ih ne prati jedno od sljedećih slova: S – sekunde, M – minute, H – sati, D – dani, W – tjedni. Sukladno tome, ulazak 2h20m5s imat će vrijednost 2 sata 20 minuta 5 sekundi i odgovarati 8405 sekundi.

Svako ime hosta/unosa koje ne završava sa točka broji ne FQDN ime i bit će dopunjeno nazivom trenutne zone. Na primjer, unos domene u zonskoj datoteci examle.com bit će proširen na FQDN naziv domen.examle.com. .

U BIND konfiguracijske datoteke može se primijeniti sljedeće direktive:

  • $TTL– definira zadani TTL za sve zapise u trenutnoj zoni.
  • $PORIJEKLO– mijenja naziv zone od onog navedenog u datoteci named.conf. U isto vrijeme, opseg ove direktive ne proteže se "iznad" (to jest, ako je datoteka uključena direktivom $INCLUDE, tada se opseg $ORIGN ne proteže na roditelja)
  • $INCLUDE– uključuje navedenu datoteku kao dio datoteke zone.

Kako bi lokalni poslužiteljski rezolver također koristio lokalni DNS, trebate promijeniti datoteku resolv.conf u sljedeći oblik:

Dns:~# cat /etc/resolv.conf poslužitelj imena 127.0.0.1

Ako se znak “*” pojavljuje u nazivu zapisa resursa, to znači da se umjesto njega može koristiti bilo koji dopušteni niz znakova. Takav zapis naziva se " unos zamjenskog znaka“. Međutim, znak “*” ne može se koristiti nigdje. Moglo bi biti samo prvi znak u polju Naziv trenutna domena, odvojena od ostalih simbolom “.”

Postavljanje DNS poslužitelja za predmemoriju

Nakon instaliranja binda, potpuno je spreman za rad keširanje DNS poslužitelja bez dodatne konfiguracije. Jedina mana je što obrađuje zahtjeve na svim sučeljima, što nam apsolutno ne treba, pa ćemo malo urediti postavke servera.

Da bi BIND radio kao poslužitelj za predmemoriju, morate imati konfiguracijske datoteke ispunjene potrebnim informacijama:

  • imenovan.konf;
  • opis poslužitelja zona korijena(savjet tipa zone);
  • opis zone 127.in-addr.arpa.
dns:~# cat /usr/local/etc/named/named.conf acl "lan" ( 192.168.1.1/24; 127.0.0.1; ); options ( directory "/var/cache/bind"; // Ako postoji vatrozid između vas i poslužitelja imena s kojima želite // komunicirati, možda ćete morati popraviti vatrozid da omogući višestrukim // portovima da razgovaraju. Pogledajte http: //www.kb.cert.org/vuls/id/800113 /* * Ovdje piše da ako se koristi vatrozid, potrebno je * da naš poslužitelj kreira odgovarajuća pravila * odnosno otvori pristup TCP-u i UDP port 53 */ prosljeđivanje prvo; // postavljamo prosljeđivanje samo prvih prosljeđivača zahtjeva ( // specificiramo DNS poslužitelje za prosljeđivanje 123.123.123.123; // pruža davatelj 222.233.111.231; // jer su oni bliži od root-ovi); sluša samo potrebna sučelja (lan;); // dopuštaju zahtjeve iz lokalne mreže (lan;); zahtjevi također samo od lokalnog prijenosa ( none; ); // ne trebamo prenijeti verziju "nepoznato"; // ne prikazujemo verziju DNS poslužitelja za auth-nxdomain br slušaj-na-v6 ( ništa; ); //Ne trebamo IPv6); // opis zone postavki korijenskog poslužitelja "." (upišite savjet; datoteka "db.root"; ); // dolje opisane zone definiraju poslužitelj kao mjerodavan za povratna petlja // sučelja, kao i za zone emitiranja (prema RFC 1912) zona "localhost" ( tip master; datoteka "localhost"; ); zona "127.in-addr.arpa" (upišite master; datoteka "127.in-addr.arpa"; ); zona "0.in-addr.arpa" (upišite master; datoteka "0.in-addr.arpa"; ); zona "255.in-addr.arpa" ( upišite master; datoteka "255.in-addr.arpa"; );

Ovaj primjer pokazuje keširanje DNS poslužitelja, obrada zahtjeva s popisa mreža lan, koji uključuje samo jednu lokalnu mrežu 192.168.1.1/24 i loopback sučelje. Ako je potrebno, tu možete uključiti i druge mreže. Nakon definiranja popisa mreža u acl direktivi, bilo gdje u konfiguraciji možete se pozvati na ovaj popis po imenu (u našem primjeru, naziv je lan), što se zapravo radi u odjeljak opcija. Komentirao sam većinu parametara, ali odjeljak koji opisuje zona korijenskog poslužitelja. U parametar datoteke relativni put do datoteka opisa korijenskog poslužitelja(staza u odnosu na radni direktorij poslužitelja). Potrebno je pratiti ažuriranja ove datoteke, iako se ažurira prilično rijetko (pisao sam o tome odakle se ažurirana datoteka u DNS teoriji). Kao što ste primijetili, postoje i dva zapisa za zonu lokalnog hosta i dva zapisa obrnute zone za domene emitiranja. Svrha ovih zona je spriječiti nasumične zahtjeve za imenima odgovarajućih IP adresa da se emitiraju poslužiteljima koji opslužuju korijensku zonu.

Kako ne bi došlo do zabune oko hrpe konfiguracijskih datoteka, u ovom članku dajem primjere temeljene na jednoj konfiguracijskoj datoteci. Zapravo, u novijim verzijama Debiana (i drugim distribucijama Linuxa), datoteka named.conf izgleda ovako:

Root@master:~# cat /usr/local/etc/named/named.conf // Ovo je primarna konfiguracijska datoteka za BIND DNS poslužitelj named. // // Pročitajte /usr/share/doc/bind9/README.Debian.gz za informacije o // strukturi BIND konfiguracijskih datoteka u Debianu, *PRIJE* što prilagodite // ovu konfiguracijsku datoteku. // // Ako samo dodajete zone, učinite to u /etc/bind/named.conf.local include "/usr/local/etc/named/named.conf.options"; uključi "/usr/local/etc/named/named.conf.local"; uključi "/usr/local/etc/named/named.conf.default-zones";

To jest, glavna datoteka ne sadrži konfiguracije, ali uključuje visoko specijalizirane datoteke koje su odgovorne za svoje zadatke, na primjer named.conf.options– sadrži globalne konfiguracijske parametre, named.conf.default-zones– sadrži opis lokalnog hosta i zona emitiranja, i named.conf.local sadrži opise zona za koje je ovaj poslužitelj odgovoran.

Prvi red specificira $TTL parametar, koji određuje vrijeme cache-a pozitivnih odgovora (odgovor u obliku pronađene IP adrese). Ovdje i dalje vrijeme se može navesti u sekundama ili korištenjem kratica: m - minute, h - sati, d - dani, w - tjedni.

Zapisano SOA naznačen je primarni NS za domenu i e-mail osobe za kontakt. U zagradama redom:

  1. Serijski - serijski broj. Svaki put kada promijenite bilo koji podatak, on se mora promijeniti. Kada se serijski broj promijeni, zona se ažurira na svim poslužiteljima. Koristite sljedeći format: GGGGMMDDnn (godina, mjesec, dan, nn - redni broj promjena za dan). Ako je ovo drugi put u danu da mijenjate datoteku zone, navedite "nn" jednako 01, ako treći put - 02, itd.
  2. Osvježi - interval nakon kojeg podređeni poslužitelji trebaju kontaktirati primarni poslužitelj i provjeriti ima li ažuriranja zone.
  3. Pokušaj ponovo - ako podređeni poslužitelj nije uspio kontaktirati primarni poslužitelj, nakon tog vremena mora ponoviti svoj zahtjev.
  4. Istek - ako tijekom tog vremena podređeni poslužitelj nije mogao ažurirati zonu s primarnog poslužitelja, podređeni poslužitelj mora prestati opsluživati ​​ovu zonu.
  5. TTL - vrijeme predmemoriranja za negativne odgovore (odgovor "domena se ne može razriješiti na IP adresu")

U odjeljku N.S. Navedeni su NS poslužitelji koji opslužuju ovu domenu. Potrebna su najmanje dva, a trebali bi se nalaziti u različitim podmrežama, ili još bolje, na geografski različitim mjestima. Prvo odredite primarni poslužitelj.

Odjeljak MX opisuje pristupnike pošte (obično jedan) na koje će se isporučivati ​​sva pošta za ovu domenu. Prioritet je postavljen za svaki pristupnik (zadano je 10). Naziv domene pristupnika pošte obično izgleda ovako: mx.example.com.

U odjeljku A označene su poddomene ( A) i sinonimi ( CNAME). U primjeru domena primjer.com pokazuje na IP adresu 192.168.1.1 i domenu www.example.com je sinonim primjer.com.

Napomena:

  • Ako navedete puni naziv domene, dodajte točku na kraju.
  • NS, MX i A zapisi za primarnu domenu (ne poddomenu) ne smiju počinjati na početku retka.
  • Ako mail gateway pripada istoj domeni, ne zaboravite to naznačiti u odjeljku A.

Datoteku zone možete provjeriti radi pogrešaka pomoću naredbe:

$ named-checkzone example.com ./example.com zona example.com/IN: učitan serijski 2007022600 OK

Zatim, želim vam skrenuti pozornost na prisutnost zonskih datoteka u direktoriju navedenom u odjeljak opcija V parametar imenika s odgovarajućim imenima parametri datoteke u odjeljcima koji opisuju zone:

Dns:~# ls -l /var/cache/bind/ total 24 -rw-r--r-- 1 root root 237 28. svibnja 01:28 0.in-addr.arpa -rw-r--r-- 1 root root 271 May 28 01:28 127.in-addr.arpa -rw-r--r-- 1 root root 237 May 28 01:28 255.in-addr.arpa -rw-r--r-- 1 root root 2994 28. svibnja 01:28 db.root -rw-r--r-- 1 root root 270 28. svibnja 01:28 localhost dns:~# cat /var/cache/bind/127.in-addr.arpa ; ; BIND datoteka obrnutih podataka za lokalno sučelje povratne petlje; $TTL 604800 @ IN SOA lokalni host. root.localhost. (1; Serijski 604800; Osvježi 86400; Ponovi 2419200; Istek 604800) ; Negativni TTL predmemorije ; @ IN NS lokalni host. 1.0.0 U PTR lokalnom hostu.

Ne vidim smisla razmatrati datoteke "povratne petlje" i zone emitiranja, jer Nakon instaliranja paketa vezanja, zadane postavke u ovim datotekama su sasvim prihvatljive. Dalje, pri organiziranju poslužitelj poslužitelj razmotrit ćemo primjer opisa datoteke zone. Želio bih vam skrenuti pozornost na ono što postavljamo poslužitelj za predmemoriju, a mi ga definiramo kao majstorski za neke od zona. U našem slučaju" predmemoriranje” znači da naš poslužitelj ne podržava niti jednu od stvarno postojećih zona, tj. njemu nema delegiranih prava za takvu uslugu.

Ovo dovršava konfiguraciju DNS-a za predmemoriju. Pohranjuje sve zahtjeve koji padnu u predmemoriju DNS poslužitelja u RAM-u računala, a kada se demon ponovno pokrene, ti se podaci poništavaju. Za provjeru rada predmemorije možete pokrenuti naredbu nslookup mail.ru example.com., ako odgovor sadrži niz Neautoritativni odgovor, tada je adresa došla iz predmemorije, a također i ako izvršite iskopati www.ru.(ili drugu domenu koja još nije u cacheu) i ponovite naredbu nakon nekog vremena, tada bi vrijeme odgovora trebalo biti puno brže.

Glavni (master) poslužitelj zone

Glavna konfiguracija sadrži sljedeće postavke:

Dns:~# cat /etc/bind/named.conf acl "lan" ( 192.168.1.1/24; 127.0.0.1; ); opcije (direktorij "/var/cache/bind"; dopusti-upit ( bilo koji; ); // odgovori na zahtjeve sa svih sučelja rekurzija br; // onemogući rekurzivne zahtjeve auth-nxdomain br; // za RFC1035 kompatibilnost slušanje na- v6 (none; ); // Ne treba nam verzija IPv6 "nepoznato"; // ne prikazuj verziju DNS poslužitelja pri odgovoru /* * Odkomentiraj retke ispod ako * želiš dopustiti rekurzivne zahtjeve * s lokalne mreže * (također potrebno. komentirajte * rekurzija ne;) */ # prosljeđivači ( // navedite DNS poslužitelje za prosljeđivanje # 83.239.0.202; // pruža pružatelj usluga # 213.132.67.110; // jer su im bliži nego root one ); // rekurzivni upiti su također samo iz lokalnog); // opis zone postavki korijenskog poslužitelja "." (upišite savjet; datoteka "db.root"; ); // dolje opisane zone definiraju poslužitelj kao mjerodavan za povratna petlja // sučelja, kao i za zone emitiranja (prema RFC 1912) zona "localhost" ( tip master; datoteka "localhost"; ); zona "127.in-addr.arpa" (upišite master; datoteka "127.in-addr.arpa"; ); zona "0.in-addr.arpa" (upišite master; datoteka "0.in-addr.arpa"; ); zona "255.in-addr.arpa" ( upišite master; datoteka "255.in-addr.arpa"; ); // opis zone glavne zone "example.com" ( type master; file "example.com"; allow-transfer ( 10.0.0.191; ); ); //opis obrnutih zona zona "0.0.10.in-addr.arpa" ( tip master; datoteka "0.0.10.in-addr.arpa"; dopusti-prijenos ( 10.0.0.191; ); ); zona "1.168.192.in-addr.arpa" ( tip master; datoteka "1.168.192.in-addr.arpa"; # allow-transfer ( 10.0.0.191; ); // zona opisuje lokalnu mrežu pa mi nemoj ga prenositi ); // bilježenje postavki bilježenje ( kanal "razno" ( datoteka "/var/log/bind/misc.log" verzije 4 veličina 4m; vrijeme ispisa da; ozbiljnost ispisa da; kategorija ispisa da; ); kanal "upit" ( datoteka "/var/log/bind/query.log" veličina 4m; vrijeme ispisa ne; kategorija ispisa ne; ); zadana kategorija ("razno"; ); ) ;

Pogledajmo na brzinu konfiguracijsku datoteku i postavke glavnog poslužitelja: postavljamo glavni poslužitelj za primjer.com zone.. Prema konfiguraciji, naš BIND ima radni direktorij /var/cache/bind, poslužitelj odgovara na zahtjeve svih sučelja ( dopusti-upit(bilo koji ;);), rekurzivni upiti se tretiraju kao iterativni ( rekurzija br), jest glavni poslužitelj za zonu primjer.com i lokalna područja usluga ( vrsta master). U isto vrijeme, ako trebate dopustiti predmemoriranje (to jest, rekurzivne upite) za lokalnu mrežu, tada morate odkomentirati parametre otpremnici I dopustiti-rekurzija i komentirajte rekurzija ne;.

Također, kao primjer sam naveo mogućnosti VEZATIlog sve što se događa kada poslužitelj radi (za ovu svrhu možete koristiti syslog). U sekcija za bilježenje dani su 2 parametra kanala(moguće je više od dva - po vlastitom nahođenju), ti se parametri mogu doslovno nazvati snimanje “kanala”. Svaki kanal definira naziv kanala I postavke parametara snimanja(što napisati, a što ne i gdje napisati). kategorija direktiva postavlja koju kategoriju poruka treba poslati na koji kanal?. Na temelju toga imamo: bilježenje standardnih informacija u razni kanal, a dolazni zahtjevi se šalju na upitni kanal. Štoviše, ako datoteke zapisnika dosegnu 4 MB ( veličina 4m), preimenuje se dodavanjem imenu .1 i počinje pisanje u novi dnevnik, brojevi na kraju ostalih dnevnika se povećavaju. Dnevnici s brojem većim od onog navedenog u verziji (u našem slučaju 4) se brišu (Također možete upravljati rotacijom zapisa koristeći logrotate). parametri ispisa* odrediti treba li se prijaviti vrijeme pojavljivanja, važnost I kategorija informacija. Više o postavkama odjeljka za bilježenje možete pročitati u man (5) named.conf.

Posebno bih želio opisati parametar dopusti-prijenos (10.0.0.191;);. Ovaj parametar opisuje poslužitelje kojima je dopušteno preuzimanje kopije zone - takozvani podređeni poslužitelj. U sljedećem primjeru ćemo pogledati postavku slave DNS.

Da bi prijavljivanje radilo ispravno, morate stvoriti odgovarajući direktorij i dodijeliti potrebna prava:

Dns:~# mkdir /var/log/bind/ dns:~# chmod 744 /var/log/bind/ dns:~# ps aux | grep imenovan bind 4298 0,0 3,4 46792 13272 ? Ssl Jul05 0:00 /usr/sbin/named -u bind root 4815 0.0 0.1 3304 772 pts/4 S+ 18:19 0:00 grep named dns:~# chown bind /var/log/bind/ dns:~# ls -ld /var/log/bind/ drwxr--r-- 2 bind root 4096 6. srpnja 18:18 /var/log/bind/

Dns:~# cat /var/cache/bind/example.com $TTL 3D @ U SOA ns.example.com. root.example.com. (2011070601; serijski 8H; osvježi 2H; ponovni pokušaj 2W; istek 1D) ; minimum @ IN NS ns.example.com. @ U NS ns2.example.com. @ U 10.0.0.152 @ U MX 5 mx.example.com. ns IN A 10.0.0.152 ns2 IN A 10.0.0.191 mx IN A 10.0.0.152 www IN CNAME @

kao i u domeni in-addr.arpa.

Dns:~# cat /var/cache/bind/0.0.10.in-addr.arpa $TTL 3600 @ U SOA ns.examle.com. root.example.com. (2007042001; Serijski 3600; Osvježi 900; Ponovi 3600000; Istek 3600) ; Minimalno IN NS ns.examle.com.

U NS ns2.example.com. 152 U PTR examle.com. 191 U PTR ns.example.com. * U PTR examle.com. dns:~# cat /var/cache/bind/1.168.192.in-addr.arpa $TTL 3600 @ U SOA ns.examle.com. root.example.com. (2007042001; Serijski 3600; Osvježi 900; Ponovi 3600000; Istek 3600) ; Minimalno IN NS ns.examle.com.

U NS ns2.example.com. * U PTR examle.com.

Naša mreža je mala, pretpostavlja se da ima vrlo malo strojeva na mreži. Sve mrežne usluge nalaze se na jednom glavnom računalu, example.com., tako da i glavni DNS (ns.example.com.) i poslužitelj e-pošte (mx.example.com.) pokazuju na isti stroj (10.0.0.152). Sekundarni (podređeni) autoritativni poslužitelj zone Glavna funkcija podređeni poslužitelj– automatska sinkronizacija opisa zone s glavnim poslužiteljem. Ovaj zadatak reguliran je dokumentom 4.3.5. RFC 1034 u odjeljku Prema ovom dokumentu, preporuča se razmjena podataka između poslužitelja pomoću

TCP protokol , putem AXFR zahtjeva. Ovaj zahtjev mora prenijeti cijelu zonu u jednoj TCP vezi (RFC 1035). Također,

podređeni DNS poslužitelj dijeli opterećenje s glavnim poslužiteljem ili preuzima cjelokupno opterećenje u slučaju kvara na prvom poslužitelju. Prije nego počnete

postavljanje podređenog DNS poslužitelja<<>, trebate provjeriti možete li ručno dobiti zonu sa sekundarnog poslužitelja pomoću sljedeće naredbe:<<>Root@debian:~# dig @10.0.0.152 example.com. axfr;

  1. > DiG 9.7.3> @10.0.0.152 primjer.com. axfr; (1 poslužitelj pronađen) ;; globalne opcije: +cmd example.com. 259200 U SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 primjer.com. 259200 IN NS ns.example.com. primjer.com. 259200 U NS ns2.example.com. primjer.com. 259200 U 10.0.0.152 example.com. 259200 U MX 5 mx.example.com. mx.example.com. 259200 U 10.0.0.152 ns.example.com. 259200 U 10.0.0.152 ns2.example.com. 259200 U 10.0.0.191 www.example.com. 259200 U CNAME example.com. primjer.com. 259200 U SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 ;; Vrijeme upita: 14 msec ;; POSLUŽITELJ: 10.0.0.152#53(10.0.0.152) ;; KADA: pet, 8. srpnja 15:33:54 2011. ;; XFR veličina: 11 zapisa (1 poruka, 258 bajtova) Kopirati
  2. named.conf konfiguracijska datotekas glavnog poslužitelja; Zamijeniti glavni parametar tipa
  3. natipa rob Zamijeniti Parametar dopušta prijenos (10.0.0.191;); u onim zonama za koje će biti sekundarna;
  4. Brisanje zona, koje trenutni poslužitelj neće opsluživati, uključujući root, ako slave neće odgovoriti na rekurzivne zahtjeve;
  5. Stvorite imenike za trupce, kao u prethodnom primjeru.

Ukupno, dobivamo konfiguraciju podređenog poslužitelja:

Root@debian:~# cat /etc/bind/named.conf options (direktorij "/var/cache/bind"; allow-query (bilo;); // odgovori na upite sa svih sučelja rekurzivni no; // onemogući rekurzivno requests auth-nxdomain no; // za RFC1035 kompatibilnost listen-on-v6 (none; ); // ne trebamo verziju IPv6 "unknown"; // ne prikazujemo verziju DNS poslužitelja u odgovorima); // dolje opisane zone definiraju poslužitelj kao mjerodavan za povratna petlja // sučelja, kao i za zone emitiranja (prema RFC 1912) zona "localhost" ( tip master; datoteka "localhost"; ); zona "127.in-addr.arpa" (upišite master; datoteka "127.in-addr.arpa"; ); zona "0.in-addr.arpa" (upišite master; datoteka "0.in-addr.arpa"; ); zona "255.in-addr.arpa" ( upišite master; datoteka "255.in-addr.arpa"; ); // opis zone glavne zone "example.com" ( tip slave; datoteka "example.com"; masters ( 10.0.0.152; ); ); //opis zone obrnute zone "0.0.10.in-addr.arpa" ( tip slave; datoteka "0.0.10.in-addr.arpa"; masters ( 10.0.0.152; ); ); // bilježenje postavki bilježenje ( kanal "razno" ( datoteka "/var/log/bind/misc.log" verzije 4 veličina 4m; vrijeme ispisa DA; ozbiljnost ispisa DA; kategorija ispisa DA; ); kanal "upit" ( datoteka "/var/log/bind/query.log" veličina 4m; ispis-vrijeme DA; ispis-kategorija NE; ); zadana kategorija ("razno"; ); ) ;

nakon ponovnog pokretanja našeg podređeni poslužiteljće uspješno kopirati informacije koje su mu potrebne s glavnog poslužitelja, što će biti naznačeno prisutnošću datoteka u direktoriju:

Root@debian:~# ls -la /var/cache/bind/ ukupno 28 drwxrwxr-x 2 root bind 4096 8. srpnja 18:47 . drwxr-xr-x 10 root root 4096 Jul 8 15:17 .. -rw-r--r-- 1 bind bind 416 Jul 8 18:32 0.0.10.in-addr.arpa ...... - rw-r--r-- 1 vezanje vezanje 455 8. srpnja 18:32 example.com ........

U osnovi, /stroallow-transfer (pngp podređeni poslužitelj možda neće pohraniti kopiju zone u svoj datotečni sustav. Ova kopija je potrebna samo kada se pokrene DNS. Posjedovanje kopije zone u datotečnom sustavu može spriječiti kvar ako glavni poslužitelj nije dostupan tijekom podređenog DNS pokretanja. Ako ne navedete opciju datoteke u odjeljku zone, kopija se ne stvara.

Nastavi

Trenutačni članak opisuje postavljanje osnovnih DNS konfiguracija BIND poslužitelja. Svrha članka bila je dati ideju o radu BIND poslužitelja u UNIX-u. Pitanja DNS sigurnosti praktički se ne dotiču, a takve specifične postavke kao što je rad poslužitelja u rubnom načinu rada, kada se različite informacije o zoni (zonama) šalju različitim mrežama, malo su pogođene. Za dublje učenje, ispod se nalazi popis dodatnih izvora gdje možete dobiti potrebne informacije.

Sustav naziva domene: http://citforum.ru/internet/dns/khramtsov/
podređeni poslužitelj- Nazivi domena - Koncepti i mogućnosti: http://tools.ietf.org/html/rfc1034
RFC 1035- Nazivi domena - Implementacija i specifikacija: http://tools.ietf.org/html/rfc1035
RFC 1537- Uobičajene pogreške konfiguracije DNS podatkovne datoteke: http://tools.ietf.org/html/rfc1537
RFC 1591- Struktura i delegiranje sustava naziva domena: http://tools.ietf.org/html/rfc1591
RFC 1713- Alati za otklanjanje grešaka u DNS-u: http://tools.ietf.org/html/rfc1713
RFC 2606- Rezervirana DNS imena najviše razine: http://tools.ietf.org/html/rfc2606
DNS sigurnost (DNSSEC): http://book.itep.ru/4/4/dnssec.htm
BIND 9 Referentni priručnik za administratore: http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.html
Sigurni BIND predložak: http://www.cymru.com/Documents/secure-bind-template.html
Konfiguracijski parametri su dobro opisani naruski: http://www.bog.pp.ru/work/bind.html
Automatsko stvaranje datoteke zone: http://www.zonefile.org/?lang=en#zonefile