Bind9 DNS-serveri seadistamine (kohaliku domeeni tsooni loomine). Täiendavad konfiguratsioonivalikud

Tere pärastlõunal, täna räägin teile, kuidas seadistada DNS-i Ubuntu 14.04 LTS-serveris. Esiteks teooria: DNS on serveriteenus, mis lahendab Domeeninimi IP-aadressile. Näiteks www.example.com teisendatakse 93.184.216.34-ks. DNS-kirjeid on mitut tüüpi (peamine: A- aadressirekord, AAAA- IPv6 aadressi kirje, CNAME- kanooniline nimekirje, MX- postivahetus, N.S.-nimeserver, PTR- osuti, SOA-volituse algus).

Ja asume siis asja juurde DNS-i seaded. Esiteks eeldan, et olete installinud Ubuntu server 14.04 LTS, seda on uuendatud. Värskendamiseks käivitage käsurida kaks käsku:

Apt-get update

Sudo apt-get upgrade

Pärast värskenduse lõpetamist installime teenuse Bind9.

Sudo apt-get install bind9

Bind9 on installitud, kuid pole konfigureeritud. Seadistame selle. Lõpetame teenuse:

Sudo teenuse bind9 peatus

Märgime aadressid, millel Bind9 päringuid kuulab ja kuhu suunata, kui ta selle tsooni eest ei vastuta. Selleks avage fail /etc/bind/named.conf.options

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

ekspediitorite veerus märgime päringute edastamise serveri ja kuulamise veerus märgime, millistel aadressidel see peaks vastama. See peaks välja nägema umbes selline:

Valikud ( kataloog "/var/cache/bind"; // Kui teie ja nende nimeserverite vahel on tulemüür, millega soovite // rääkida, peate võib-olla parandage tulemüür, et võimaldada mitmel // pordil rääkida. Vt http://www.kb.cert.org/vuls/id/800113 // Kui teie Interneti-teenuse pakkuja andis stabiilsete // nimeserverite jaoks ühe või mitu IP-aadressi, soovite tõenäoliselt kasutada neid edasisaatjatena. // Tühista järgmise ploki kommentaarid, ja sisestage aadressid, mis asendavad // all-0" kohahoidjat. // edasisuunajad ( // 0.0.0.0; // ); //===================== ==================================================== === = // Kui BIND logib veateateid juurvõtme aegumise kohta, // peate oma võtmeid värskendama. Vaadake https://www.isc.org/bind-keys //====== === ================================================= ====== ============= dnssec-validation auto; autentimise-nxdomeeni nr; # vastab RFC1035 kuula-on-v6 (ükskõik milline; ); ekspedeerijad (8.8.8.8; 8.8 .4.4; ); kuula -on ( 127.0.0.1; 192.168.0.1; ); );

Pange tähele rida kuula-on-v6 ( any; ); kui teil on IPv6 lubatud, kuulab Bind9 kõiki IPv6 aadresse. Kui teil on vaja seda vältida, kommenteerige seda rida või märkige konkreetne aadress. Ei ole soovitatav kuulata kõiki aadresse, eriti neid, mis vaatavad otse Internetti, kuna DNS-serverite vastu on palju rünnakuid.

Nüüd seadistame tsoonid, mida meie Bind9 haldab. Selleks avage fail /etc/bind/named.conf.local

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

Kirjutame näite järgi:

Tsoon "example.com" ( //Domeen, mille haldame tüüpi master; //Type. Bind9 on juht ja haldab faili "/etc/bind/db.example.com"; //Sisuga fail domeenist ); tsoon "0.168.192.in-addr.arpa" ( //Pöördrekord domeenitüübi peamiseks; //Tüüp. Bind9 on peamine ja haldab faili "/etc/bind/db.0.168.192"; / /File with vastupidised sissekanded domeen);

Nüüd loome tsoonifaili:

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

Sudo touch /etc/bind/db.0.168.192

Peame registreerima tsoonid failis /etc/bind/db.example.com otsevaade ja märkige NS-server, kui kaua me oleme selle domeeni NS-server, siis peame märkima oma hosti nime. Minu installimise ajal määratud serveri hostinimi on srv-bind9. Täitke järgmiselt:

; BIND andmed faili jaoks kohalik loopback liides; $TTL 604800 @ IN SOA srv-bind9.example.com. root.srv-bind9.example.com. (//pange tähele, et lõpus on punkt 20150120; Serial 604800; Refresh 86400; Retry 2419200; Expire 604800) ; Negatiivne vahemälu TTL ; @ IN NS srv-bind9.example.com. @ IN A 192.168.0.1 //määrake meie serveri aadress @ IN AAAA::1 //määrake meie serveri IPv6 aadress, kui see on olemas. srv-bind9 IN A 192.168.0.1 //määrake meie serveri aadress

Oleme seadistanud edasisuunavööndi, nüüd seadistame tagurpidi tsooni. Avage fail: /etc/bind/db.0.168.192 ja seadistage see vastavalt näitele:

; BIND pöördandmefail kohaliku loopback liidese jaoks; $TTL 604800 @ IN SOA srv-bind9.example.com. root.srv-bind9.example.com. (//märkus lõpus on punkt 20141126; Serial 604800; Refresh 86400; Retry 2419200; Expire 604800) ; Negatiivne vahemälu TTL ; @ IN NS srv-bind9. //Pange tähele, et lõpus on punkt 1 IN PTR srv-bind9.example.com. //Esimene veerg näitab viimane number IP-aadressid. //Pange tähele, et lõpus on punkt

Jääb üle kontrollida, kas seaded on õiged, käivitades käsu:

Named-checkconf

Kui ta midagi ei öelnud, siis oli kõik õigesti tehtud. Ja saate käivitada Bind9:

Sudo teenuse bind9 algus

Nüüd oleme lõpetanud Bind9 installimise ja konfigureerimise

Redigeerige faili /etc/resolv.conf: esimene DNS-server on loopback teie serverisse kohalik server DNS (127.0.0.1), teine ​​teile lähim DNS-server (tavaliselt pakub teie Interneti-teenuse pakkuja), teiste DNS-ide loend teie äranägemisel (need ei ole kohustuslikud). Fail resolv.conf annab meile teada, et kui see ebaõnnestub DNS-päringud teie serverisse (127.0.0.1), suunatakse päring automaatselt loendis teise DNS-serverisse jne.

> ee /etc/resolv.conf domeen teie.domen nimeserver 127.0.0.1 #DNS teie Interneti-teenuse pakkuja nimeserver x.x.x.x nimeserver x.x.x.x

Lahendaja on C-teegi rutiinide komplekt, mis pakuvad juurdepääsu Internetile. Mis on DNS ( Domeeninimi Süsteem) (Internet Domain Name System) (umbes Translator – DNS annab võimaluse teisendada sümboolsed masinanimed IP-aadressideks ja vastupidi, IP-aadressid sümboolseteks nimedeks). Seadete fail /etc/resolv.conf for the resolver sisaldab teavet, mille loevad esmalt protsessi kutsutud lahendajarutiinid. See fail on loodud inimestele loetavaks ning sisaldab märksõnade ja väärtuste loendit, mis pakuvad lahendajale erinevat teavet.

Tavapäraselt konfigureeritud süsteemis see fail pole vaja: päringuid töötleb kohaliku hosti server, domeeninimi määratakse masina nime järgi ja masina otsingutee domeeni järgi luuakse domeeninime järgi.

Konfiguratsioonivalikud:

Interneti-nimeserveri aadress (tähistuses xxx.xxx.xxx.xxx), mis töötleb lahendaja päringuid. Võib olla nimeservereid maksimaalselt 3(ülejäänud jäetakse tähelepanuta), üks igal real. Kui on määratud mitu serverit, küsib lahendaja teek neid nende loendis olevas järjekorras. Kui nimeserveri kirjeid pole, kasutatakse vaikimisi kohaliku masina nimeserverit. (Kasutatud algoritm proovib luua ühendust nimeserveriga ja kui taotlust ei ole teatud aja möödudes töödeldud, proovib luua ühendust järgmise nimeserveriga ja nii edasi, kuni kogu serverite nimekiri on töödeldud, siis korrake protseduuri, kuni see jõuab maksimaalne summa kordused).

Kohalik domeeninimi. Enamikku selle domeeni masinanimede päringuid saab kasutada ainult lühikesed nimed, domeeninime määramata. Kui domeenikirjeid pole, määratakse domeen nime järgi kohalik masin, mille tagastab funktsioon gethostname(); Nime domeeni osaks loetakse kõike pärast esimest punkti `." Lõpuks, kui masina nimi ei sisalda domeeniosa, määratakse juurdomeen.

Masinanimede otsimise loend. Tavaliselt määratakse loend kohalik nimi domeen; vaikimisi sisaldab see ainult nime kohalik domeen. Loend võib sisaldada mitut domeeni, mis peavad järgima otsingu märksõna ja olema eraldatud tühikute või tabeldusmärkidega. Enamasti juhul, kui taotlus lahendajale täpsustab lühike nimi masin (ilma domeeniosata), siis lisatakse iga domeen antud loendist sinna kordamööda, kuni leitakse täielikult sobiv masina nimi. Märka seda seda protsessi võib olla aeglane ja tekitab märkimisväärset võrguliiklust, kui loetletud domeene teenindavad serverid ei ole kohalikud, ja kui ühe domeeni server pole saadaval, tagastab päring ajalõpu veateate. Nimekiri sisse Sel hetkel piiratud kuue domeeniga, mille nimede kogupikkus ei tohi ületada 256 tähemärki.

Võimaldab sortida gethostbyname() poolt tagastatud aadresse. Sorteerimisloendi valik määratakse paariga: IP-aadress/võrgumask. Võrgumask on valikuline; vaikimisi on praegune võrgumask. IP-aadressi ja valikulise võrgumaski paarid eraldatakse kaldkriipsuga. Määrata saab kuni 10 paari. näide: sortimisloend 130.155.160.0/255.255.240.0 130.155.0.0

See suvand võimaldab muuta teatud lahendaja muutujaid. Süntaks on:

Suvandite valik... kus suvand võib võtta ühe järgmistest väärtustest: debug --- määrab RES_DEBUG väärtuseks _res.options. ndots:n --- määrab läve punktide arvule, mis peavad olema res_query määratud nimes (vt lahendaja(@LIB_NETWORK_EXT@)) enne esialgse absoluutpäringu loomist. Vaikimisi n ``1"" tähendab, et kui nimes on vähemalt üks punkt, proovib ta seda nime käsitleda absoluutsena, enne kui lisab sellele otsinguloendist elemendid.

Domeen ja otsingu märksõnad on üksteist välistavad. Kui mõlemad need sõnad on määratud, töötab viimasena määratud.

Märksõna ja väärtus peavad asuma samal real ning lisaks peab märksõna (näiteks nimeserver) olema real esimesena. Tähendusest tuleb eraldada märksõna ruumi.

Üks olulisi teenuseid, mis tagab toimimise kaasaegne Internet on teenus saidi nime teisendamiseks IP-aadressiks. Rakenduse seadistamine DNS-teenus Selles artiklis käsitleme Bind 9 (nimega) seadistamise näidet allolevas serveris töötab CentOS 7. Valmistame ette minimaalse vajaliku põhifunktsionaalsuse ja vaatame logimise seadistustesse veidi sügavamalt.

Seo- tänapäeval levinuim DNS-serveri teostus, mis tagab IP-aadresside teisendamise DNS-nimedeks ja vastupidi. Seda nimetatakse ka nimeks, näiteks Freebsd-s. Wikipedia teabe põhjal otsustades töötab nüüd 10 Internetis leiduvast 13-st juur-DNS-serverist sidumise teel. See paigaldatakse peaaegu kõigisse karbist välja linuxi distributsioonid. Uurin selle installimist CentOS 7 serverisse.

Bind 9 (nimega) installimine süsteemi CentOS 7

Kõigepealt kontrollime, kas meil on süsteemi installitud DNS-server:

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

Mul pole seda installitud, sest ma valisin selle omal ajal minimaalne pakett programmid. Meie nimeserver hakkab tööle chroot keskkond, nii et installige sobivad paketid:

# yum - y install bind bind - utils bind - chroot

Veel kord pange tähele, et kasutame bind in chroot turvalisuse suurendamiseks. See nõuab serveri seadistamisel ja haldamisel teatud funktsioone. Nendes pisiasjades peate olema ettevaatlik. Niisiis, käivitame sidumise:

# systemctl start nimega-kroot# systemctl lubamine nimega-kroot ln -s "/usr/lib/systemd/system/named-chroot.service" "/etc/systemd/system/multi-user.target.wants/named-chroot.service"

Chroot-kataloogi sisu kontrollimine:

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

Kõik on korras, server on käivitunud, vajalikud failid loodud, on kõik seadistamiseks valmis. Hoolitseme selle eest.

DNS-serveri seadistamine CentOS 7-s

Meie serveri konfiguratsioonifail asub aadressil /var/named/chroot/etc/named.conf. Avame selle ja toome kohale järgmine vaade:

# mcedit /var/named/chroot/etc/named.conf suvandid ( kuulamisport 53 (ükskõik milline; ); kuula-on-v6 port 53 ( puudub; ); kataloog "/var/named"; dump-fail " /var/named/data/cache_dump.db"; luba-päring ( 127.0.0.1; 192.168.7.0/24; ); rekursioon jah; luba-rekursioon ( 127.0.0.1; 192.168.7.0/24; .8 forwarders ( . 8); .8.8; ); versioon "DNS-server"; hallatavate võtmete kataloog "/var/named/dynamic"; pid-fail "/run/named/named.pid"; seansi võtmefail "/run/named/session. võti"; dnssec-enable no; dnssec-validation no; ); tsoon "." IN (tüüp hint; fail "named.ca"; ); sisaldama "/etc/named.rfc1912.zones"; sisaldama "/etc/named.root.key"; logimine ( kanali vaikefail ( fail "/var/log/named/default.log" versioonid 3 suurus 5m; tõsidus dünaamiline; printimisaeg jah; ); kategooria vaikefail ( default_file; ); );

See konfiguratsioon tagab tavalise vahemällu salvestamise serveri töötamise kohalik võrk. Kommentaarid mõne parameetri kohta:

Ärge unustage tulemüüri reegleid õigeks muutmast DNS töö serverid - avatud 53 UDP port vahemällu salvestamise serveri kasutamiseks, mille oleme nüüd konfigureerinud, ja 53 TCP port tsoonide ülekandmiseks, millest tuleb juttu hiljem

Nüüd loome logide jaoks kausta. Ärge unustage, et töötame chroot-keskkonnas:

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

Oma tsooni tugi

Oletame, et peame paigutama oma tsooni site1.ru oma nimedesse. Kõigepealt loome tsoonifaili, mida teenindab DNS-server:

# mcedit /var/named/chroot/var/named/site1.ru.zone $TTL 86400 @ SOA-s site1.ru. site1.ru.local. (2015092502 43200 3600 3600000 2592000) IN NS ns1.site1.ru. IN NS ns2.site1.ru. IN A 192.168.7.254 IN MX 10 mx.site1.ru. värav 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

Tsoonifailide süntaksi kirjeldus on Internetis üsna hästi kaetud, ma ei taha sellel üksikasjalikult peatuda. Soovi korral saab igaüks ise veenduda, kas tal on vaja oma tsooni tugi seadistada.

Eksponeerime vajalikud õigused:

# chown root:named /var/named/chroot/var/named/site1.ru.zone # chmod 0640 /var/named/chroot/var/named/site1.ru.zone

Tsoon "site1.ru" (tüüp master; fail "site1.ru.zone"; );

Lugesime nimega konfiguratsiooni uuesti kasutades rndc:

# rndc reconfig

Lisamine alamtsooni sidumiseks

Kui soovite hoida oma serveris teisest DNS-serverist võetud tsooni koopiat, lisage konfiguratsioonile järgmised sätted.

Tsoon "site.ru" IN ( tüüp slave; masters ( 10.1.3.4; ); fail "site.ru.zone"; );

10.1.3.4 - DNS-serveri IP-aadress, kust tsooni võtame. Ärge unustage lubada tsoonide ülekandmist oma DNS-serverisse.

Peate nimega rühmale lisama kirjutamisõiguse, et see näeks välja järgmine:

Pärast seda saate sidumise taaskäivitada ja kontrollida, kas alamtsooni fail on loodud. Ülaltoodud seadetega asub see aadressil /var/named/chroot/var/named/site.ru.zone. Kui bindil pole õigusi faili luua, kuvatakse logis tõrketeade:

Dumpingu põhifail: tmp-7Swr6EZpcd: avatud: luba keelatud

Palju huvitavam ja kasulikum on mõista serveri töö üksikasjalikku logimist. I pikka aega Haarasin pealiskaudselt Internetis kõikvõimalikest soovitustest ja ligikaudsete konfiguratsioonide tükkidest, kuni otsustasin selle teemaga ise tegeleda ja läksin originaaljuhendi juurde.

Bind annab rohkelt võimalusi metsaraie jaoks. Saate salvestada peaaegu kõike, mis on seotud serveri tööga. Olen nüüd peal lihtsaid näiteid Ma näitan teile, kuidas see töötab.

Esiteks määrame konfiguratsioonis kanali, kuhu teatud sündmuste logid salvestatakse. Siin on näide sellisest kanalist:

Kanali üldine ( faili "/var/log/named/general.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah;

Siin on näidatud kanali nimi, mille me ise välja mõtleme - üldiselt on näidatud faili tee, öeldakse, et salvestame logi 3 versiooni, mille suurus ei ületa 5 megabaiti. Parameeter tõsidus võib võtta järgmisi väärtusi:

Parameeter trükiaeg näitab, et sündmuse toimumise aeg tuleks salvestada logisse. Lisaks minu määratud sätetele saab kanali konfiguratsioonile lisada järgmised parameetrid:

  • printimise raskusaste jah | ei — määrab, kas raskusastme parameeter tuleb logisse kirjutada või mitte
  • trükikategooria jah | ei — määrab, kas logikategooria nimi kirjutada või mitte

Ma ei täpsustanud neid parameetreid, kuna vaikeväärtus on seatud ei, mis mulle isiklikult sobib.

Kategooria üldine ( üldine; );

Logikategooriate kirjeldus köites (nimega)
vaikimisiSiia kuuluvad kõigi selle tabeli kategooriate sündmused, kui neid pole eraldi määratletud, välja arvatud päringukategooria, mis tuleb konkreetselt kaasata. See tähendab, et kui määrate ainult vaikekategooria, valatakse sellesse kõigi kategooriate sündmused.
üldineSee kategooria on kõigi logide jaoks, mis ei kuulu ühtegi loetletud kategooriasse.
andmebaasiTsooni salvestamise ja vahemällu salvestamisega seotud sõnumid.
turvalisusTaotluste kinnitamine ja tagasilükkamine.
konfigKõik, mis on seotud konfiguratsioonifaili lugemise ja käivitamisega.
lahendajaNime eraldusvõime, sealhulgas teave selle kohta rekursiivsed päringud, mille vahemällu salvestav server teostab kliendi nimel.
xfer-inTeave tsoonide hankimise kohta.
xfer-outTeave tsoonide ülekandmise kohta.
teatamaNOTIFY protokolli toimingute logimine.
klientKlientide soovide täitmine.
võrratuSõnumid, mida nimega ei saanud ühelegi klassile määrata või mille jaoks pole vastendust määratletud.
võrkuVõrgutoimingute logimine.
värskendadaDünaamilised värskendused.
uuendus-turvalisusVärskendustaotluste kinnitamine või tagasilükkamine.
päringuidTaotluste logimine DNS-serverisse. Selle kategooria lubamiseks peate parameetri serveri konfiguratsioonis eraldi määrama. Selle põhjuseks on asjaolu, et see kategooria genereerib logifailis palju kirjeid, mis võivad mõjutada serveri jõudlust.
päring-veadVead serverile saadetavates päringutes.
lähetamineSissetulevate pakettide suunamine töötlemiseks serveri moodulitesse.
dnssecDNSSEC ja TSIG protokollide töö.
lame-serveridParandatud vead, mis juurdepääsul saavad vastu kaugserverid püüdes lahendada nimelahenduse taotlust.
ainult delegatsioonileLogimistaotlused, mis tagastasid domeeni NXDOMAIN.
edns- keelatudTaotlused, mis on sunnitud kasutama tavalist DNS-i ajalõpu ületamise tõttu.
RPZKõik reageerimispoliitika tsooni (RPZ) rakendamisega seotud toimingud.
intressipiirangToimingud, mis on seotud ühe või mitme määrapiirangu lausega suvandites või vaates.

Seega kõigi logikategooriate kuvamiseks eraldi failid, peate nimega konfiguratsioonile lisama järgmise struktuuri:

Logimine ( kanali vaikeseade ( faili "/var/log/named/default.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kanal üldine ( faili "/var/log/named/general.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kanali andmebaas ( faili "/var/log/named/database.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kanali turvalisus ( fail " /var/log/named/security.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kanali konfiguratsioon ( faili "/var/log/named/config.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; prindiaeg jah; ); kanali lahendaja ( faili "/var/log/named/resolver.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kanal xfer-in ( fail "/var/log/ named/xfer-in.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kanal xfer-out ( fail "/var/log/named/xfer-out.log" versioonid 3 suurus 5 m; tõsidus dünaamiline ; printimisaeg jah; ); kanal teavitus ( faili "/var/log/named/notify.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kanali klient ( fail "/var/log/named /client.log" versioonid 3 suurus 5m; raskusastme dünaamiline; trükiaeg jah; ); kanal unmatched ( faili "/var/log/named/unmatched.log" versioonid 3 suurus 5m; tõsidus dünaamiline; printimisaeg jah; ); kanalivõrk (faili "/var/log/named/network.log" versioonid 3 suurus 5m; tõsidus dünaamiline; printimisaeg jah; ); kanali värskendus ( faili "/var/log/named/update.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kanal update-security ( faili "/var/log/named/update-security.log" versioonid 3 suurus 5m; tõsidus dünaamiline; printimisaeg jah; ); kanalipäringud ( faili "/var/log/named/queries.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kanal query-errors ( faili "/var/log/named/query-errors.log" versioonid 3 suurus 5m; tõsidus dünaamiline; printimisaeg jah; ); kanalite lähetamine ( faili "/var/log/named/dispatch.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kanal dnssec (fail "/var/log/named/dnssec.log" versioonid 3 suurus 5m; tõsidus dünaamiline; printimisaeg jah; ); kanal lame-servers ( faili "/var/log/named/lame-servers.log" versioonid 3 suurus 5m; tõsidus dünaamiline; printimisaeg jah; ); ainult kanali delegeerimine (fail "/var/log/named/delegation-only.log" versioonid 3 suurus 5m; tõsidus dünaamiline; printimisaeg jah; ); kanal edns-disabled ( faili "/var/log/named/edns-disabled.log" versioonid 3 suurus 5m; tõsidus dünaamiline; printimisaeg jah; ); kanal rpz ( faili "/var/log/named/rpz.log" versioonid 3 suurus 5m; tõsidus dünaamiline; printimisaeg jah; ); kanali kiiruspiirang ( faili "/var/log/named/rate-limit.log" versioonid 3 suurus 5 m; tõsidus dünaamiline; printimisaeg jah; ); kategooria vaikimisi(vaikimisi;); kategooria üld(üldine;); kategooriate andmebaas ( andmebaas; ); kategooria väärtpaber ( turvalisus; ); kategooria config(config;); kategooria lahendaja(lahendaja;); kategooria xfer-in ( xfer-in; ); kategooria xfer-out ( xfer-out; ); kategooria teatama (teavitama; ); kategooria klient ( klient; ); kategooria sobitamata ( sobitamata; ); kategooria võrk ( võrk; ); kategooria värskendus(värskendus;); kategooria uuendus-turvalisus ( update-security; ); kategooria päringud ( päringud; ); kategooria päring-vead ( query-errors; ); kategooria lähetamine ( lähetamine; ); kategooria dnssec ( dnssec; ); kategooria lame-serverid ( lame-servers; ); kategooria delegatsioon-only ( delegation-only; ); kategooria edns-disabled ( edns-disabled; ); kategooria rpz ( rpz; ); kategooria rate-limit ( rate-limit; ); );

Kui tahame koguda kõik päringu logid ühest kategooriast päringuid, siis peate konfiguratsioonifaili valikute jaotisesse lisama parameetri, mis võimaldab seda:

Querylog jah;

Taaskäivitage sidumine:

# systemctl taaskäivitage named-chroot.service

DNS-serveri töö kontrollimine

Kõigepealt läheme logidega kataloogi ja kontrollime, mis meil seal on:

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

Kõik logifailid on loodud ja hakkavad täituma. Saate üht neist kontrollida. Näiteks vaatame, kuidas meie centose server(192.168.7.246) logib kasutajataotlused. Proovime käivitada nslookup yandex.ru arvutist 192.168.7.254 (Windows) ja vaadata, kuidas see logifailis kajastub:

26. september 2015 19:25:30.923 klient 192.168.7.254#56374 (yandex.ru): päring: yandex.ru IN A + (192.168.7.246) 26. september 2015 19.09.2015 19.015:31.8 klient 56375 (yandex.ru): päring: yandex.ru IN AAAA + (192.168.7.246)

Nüüd pingime saidile site1.ru, et kontrollida, kuidas server meie tsooni toetab:

Vaatame, mis logides on:

26. september 2015 19:28:01.660 klient 192.168.7.254#49816 (site1.ru): päring: site1.ru IN A + (192.168.7.246)

Tänu sellele on väga mugav jälgida, kuhu arvuti liigub. Näiteks saate ajutiselt DNS-serveri üles tõsta ja päringulogi lubada. Määrake kliendis ainus DNS-server, mille oleme konfigureerinud. Siis saame näiteks meie teadmata jälgida, kuhu Windows pärast laadimist läheb. Või kuhu Skype’i reklaame laetakse. Kõik päringud koondatakse korralikult faili, mida saab seejärel hõlpsasti analüüsida ja seejärel näiteks .

See on kõik, mida ma tahtsin seda materjaliütle. Teema sidumisseaded(nimega) üsna ulatuslik. Võib-olla tulen selle juurde veel tagasi.

Veebikursus "Linuxi administraator"

Kui teil on soov õppida ehitama ja hooldama väga kättesaadavaid ja töökindlaid süsteeme, soovitan teil nendega tutvuda veebikursus "Linux Administrator" aastal OTUS. Kursus ei ole mõeldud algajatele, sisseastumiseks on vajalik põhiteadmised võrkude kaudu ja Linuxi installimine virtuaalsesse masinasse. Koolitus kestab 5 kuud, pärast mida saavad edukad kursuse lõpetajad läbida intervjuud partneritega. Testi end sisseastumiskatsel ja vaata programmi täpsemalt.

Täna räägime kohaliku loomisest domeeni tsoon kohaliku võrgu sees. Miks me vajame kohalikku domeenitsooni ja DNS-serverit? Kohalike saitide jagamiseks (juurdepääsetavaks muutmiseks) kõigile võrgukasutajatele.

Loon võrgu, kus kõik minu kohaliku võrgu seadmed saavad kasutada saidi formaadis ressursse. Minu puhul loovad kohaliku võrgu seadmed Interneti-ühenduse ruuteri kaudu. Serverimasin – sees Linux Mint(töölaud), kliendid: arvuti töötab Windowsi juhtimine, Linux, Smart TV, aga ka nutitelefonid ja tahvelarvutid. Esiteks veenduge, et ruuteris (masinale, kuhu DNS-server installitakse) on ruuteris reserveeritud staatiline sisemine IP-aadress. Sellele on väga oluline hiljem kõigile tähelepanu juhtida võrguseadmed, kus täpselt meie DNS-server asub.

DNS-nimeserveri installimine:

Kõigepealt peate installima paketi Bind:

Sudo apt-get install bind

Lisaks jaoks normaalne töö veebisaidid, mida vajame LAMP-i (Linux Apache MySQL PHP). Lugege minu artiklit LAMP-i installimise kohta Ubuntus. Samuti saate luua kohaliku veebisaidi, kasutades artikli allosas olevat linki. Ainus asi on see, et ärge kirjutage saidi aadressi kausta /etc/hosts, sest... Nimeserver tegeleb nende probleemidega. Sel hetkel on ettevalmistusetapp läbi.

Bindi seadistamine

Siseneme kataloogi Bind ja teeme varukoopiad konfigureeritud failid:

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

Looge kohalik domeen zone.lan:

Nano named.conf.local

Ja lisage faili lõppu järgmised read:

Tsoon "lan" (tüüp master; fail "/etc/bind/db.lan"; );

Nüüd loome .lan domeeni tsooni jaoks vastava faili ja avame selle redigeerimiseks:

Puudutage nuppu db.lan nano db.lan

Täitke see sisuga:

@ IN 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.102 IN A 192.168.0.100 site IN.1 @ 08

Pöörake tähelepanu Serial 201605019. Seda väärtust tuleb suurendada iga kord, kui redigeerite domeenitsooni faili. Kirjutan YY-MM-DD + kasvav seerianumber kuni 1. 192.168.0.100 - serveri IP-aadress. Kirje vormingus "slicks IN A" tähendab, et domeeninime slicks on .lan-tsoonis ja see sait asub IP-aadressil 192.168.0.100. Apache2-s loodi veebisait vastavalt ServerName slicks.lan. Kui sait asus DNS-serverist erineval IP-l, näeks kirje välja nagu slaidid _IP-PC-saidiga_ Muuda named.conf.options:

Nano named.conf.options

Peate sellele lisama esiletõstetud read:

Acl "kodu" (192.168.0.0/24; 127.0.0.1;); suvandid ( kataloog "/var/cache/bind"; dnssec-validation auto; luba-rekursioon (127.0.0.1/32; 192.168.0.0/24; 192.168.1.0/24; ); luba-transfer ( none; ); auth -nxdomain nr; # vastama RFC1035-le kuula-on-v6 (none; ); luba-päring ("kodu";); );

Esimene rida loob kohaliku DNS-rühma kodu, mille IP-aadresside vahemik on 192.168.0.0 kuni 192.168.0.255, samuti 127.0.0.1. Teine lisatav rida sisaldab parameetrit allow-query ja näitame, et peame lubama kodurühma päringuid. Oleme seadistamisega lõpetanud, saame serveri taaskäivitada

Sudo /etc/init.d/bind9 taaskäivitage

Määrake ruuteris kohalik DNS

Seega pole vaja redigeerida võrguühendus igal kliendil ja DNS-serveri käsitsi registreerimiseks saame määrata IP-aadressi kohalik DNS ruuteri seadetes. Ja kõik võrgukasutajate päringud saadetakse esmalt kohalikule DNS-ile ja seejärel Internetti. Mul on:

Kohaliku DNS-serveri määramiseks lähen minu puhul menüüsse Seadistamine -> Võrgusätted -> Interneti-ühenduse käsitsi seadistamine ja sisestan väljale Primary DNS Address kohaliku domeenitsooni serveri IP-aadressi 192.168.0.100, see nüüd toimib kohaliku võrgu peamise DNS-serverina. Ja teisejärguliseks DNS-aadressid kirjutame 8.8.8.8. Need on aadressid Google DNS. Ekraanipildil on minu serverisse viivad esmased ja sekundaarsed DNS-aadressid. Millegipärast tundus alguses, et ruuter ei suunanud päringuid minu DNS-i ja registreeris selle nii. Teiseks DNS on parem määrake Google'i server, nii et kui kohalik server 192.168.0.100 on välja lülitatud, ei kaoks Internet kõigi teiste seadmete jaoks!

Funktsionaalsuse kontroll

Käivitan Windows XP-ga klientarvuti ja testin ühendust. Esimene samm on DNS-i vahemälu tühjendamine. Lähme käsu juurde Windowsi string ja kirjuta:

Ipconfig /flushdns

1. Nüüd kontrollin võrgus nähtavust DNS-server, ping 192.168.0.100:

C:\\Dokumendid ja sätted\\www>ping 192.168.0.100 Pakettide vahetus alates 192.168.0.100 / 32 baiti: Vastus numbrilt 192.168.0.100: baitide arv = 32 korda<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 мсек

Vaatan kohalikku saiti: nslookup slicks.lan:

C:\\Documents and Settings\\www>nslookup slicks.lan *** Aadressi 192.168.0.1 serveri nime ei leita: domeen puudub *** Vaikeserverid pole saadaval Server: Tundmatu aadress: 192.168.0.1 Nimi: slicks.lan Aadress: 192.168.0.100

ping slicks.lan:

C:\\Documents and Settings\\www>ping slicks.lan Pakettide vahetus 32-baidisega slicks.laniga: Vastus alates 192.168.0.100: baitide arv = 32 korda<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 мсек

Nautige tulemusi!

Nimetatud on deemon, mis on osa pakend siduda9 ja olemine domeeninimeserver. Deemon nimega suudab rakendada mis tahes tüüpi serverite funktsioone: ülem, ori, vahemälu. Ülaltoodud diagrammil proovisin kuvada peamist kuidas BIND DNS-server töötab. Suurema osa tööst ära tegev binaar asub selles /usr/sbin/named. See võtab sätted peamisest konfiguratsioonifailist nimega named.conf ja asub kataloogis /etc/bind. Põhikonfiguratsioonis kirjeldatud serveri töökataloog, sageli on see kataloog /var/cache/bind, milles vale tsooni kirjelduse failid ja muud teenusefailid. Kirjavahetus tsoonide nimed Ja tsooni kirjelduse fail komplektid tsooni sektsioon parameetriga faili. Tsooni sektsioon see määrab ka selle serveri vastutuse tüübi tsooni eest (ülem, alam jne) ning määrab ka praeguse tsooni eriparameetrid (näiteks millisel liidesel praeguse tsooni päringuid töödelda). Tsooni kirjeldusfailides sisaldab tsooni parameetreid ja ressursikirjeid (selles lõigus näidatud teed võivad erineda, see sõltub Linuxi distributsioonist või serveri lähteallikast ehitamise parameetritest).

See on üldine tööskeem, mis aitab teil edaspidi vältida segadust konkreetsete konfiguratsioonide kaalumisel.

Programmi 4. versiooni konfiguratsioonifaili formaat erineb kaheksanda ja üheksanda versiooni konfiguratsioonifaili vormingust BIND. Arvestades, et ma loodan uue installimisega DNS server, kuid ma ei näe vana versiooni installimisel mõtet, seega vaatan uue versiooni konfiguratsiooni.

Esialgsed andmed

Sest õige toimimine DNS nõuab konfigureeritud võrgu olemasolu. Käesolevas artiklis toodud DNS konfigureeritakse FreeBSD distributsioonis. Võrgu konfiguratsioon on järgmine:

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 võrgumask 255.255.255.240" defaultrouter="XXX.XXX.XXX.XXX" firewall_enable="YES" firewall_type="open" named_enable="YES" ....

kus XXX.XXX.XXX.XXX on väline liides (teenusepakkuja eraldatud alamvõrk). Kohandatud tsoonil on nimi www.disnettern.lan.

BIND9 installimine

DNS-serveri töötamiseks peate paketi installima siduda9 (mõnedes distributsioonides - siduda ). Nagu diagrammil märgitud - peamine konfiguratsioonifail BIND on fail named.conf(selle faili saab paigutada kataloogi /usr/local/etc/named/).

Parameetrid (süntaks) named.conf

Faili named.conf süntaks järgib järgmisi reegleid:

IP-aadressid– IP-loend tuleb eraldada sümboliga ";" , on võimalik määrata alamvõrk formaadis 192.168.1.1/24 või 192.168.1.1/255.255.255.0, (IP välistamiseks tuleb panna märk ette!), võimalik määrata nimesid "kõik", "pole", "kohalik host" jutumärkides.

Kommentaarid– read, mis algavad #, // ja mis on ümbritsetud /* ja */, loetakse kommentaarideks.

IN tsooni kirjelduse failid –sümbol @ on "muutuja", mis salvestab konfiguratsioonifailis määratud tsooni nime named.conf või @ direktiivis $ ORIGIN praeguse tsooni kirjeldus.

Iga lõpetatud string parameetrid peavad lõppema sümboliga; .

Acl sektsioon

Acl (juurdepääsuloend)– võimaldab määrata nimega võrkude loendi. Sektsiooni formaat: acl "võrgu_nimi" (ip; ip; ip; );

Valikud jaotises

Valikud jaotises komplektid globaalsed parameetrid konfiguratsioonifail, mis juhib kõiki tsoone. Sellel jaotisel on vorming: suvandid(valikud_sektsiooni_operaatorid);. Valikud saab sisestada Tsooni sektsioon, seda tehes alistab see globaalsed parameetrid. Sageli kasutatakse valikute avaldused:

  • luba-query( list_ip} – Lubab vastata ainult päringutele list_ip. Kui see puudub, vastab server kõigile päringutele.
  • luba-rekursioon( list_ip} - Rekursiivsed päringud käivitatakse päringutele list_ip. Ülejäänu jaoks - iteratiivne. Kui parameetrit pole määratud, sooritab server rekursiivsed päringud kõigi võrkude jaoks.
  • luba-ülekandmine ( list_ip} – Näitab serverite loendit, millel on lubatud serverist tsooni võtta (siin on märgitud enamasti orjaserverid)
  • kataloog /tee/tööle/kataloog– määrab serveri töökataloogi absoluutse tee. See väide kehtib ainult valikute jaotises.
  • ekspedeerijad ( ip port, ip port...} – näitab ära hostiaadressid ja vajadusel pordid, kuhu päringud edastada (tavaliselt on siin märgitud ISP pakkujate DNS).
  • edasi AINULT või edasi ESIMESE - parameeter esiteks näitab, et DNS-server peaks proovima nimesid lahendada edasisaatjate parameetris määratud DNS-serverite abil ja ainult juhul, kui nime pole nende serverite abil võimalik lahendada, proovib ta ise nime lahendada.
  • teatama JAH|EI JAH- teavitama orjaservereid tsooni muutustest, EI– ära teavita.
  • rekursioon JAH|EI JAH- teostada rekursiivseid päringuid, kui klient seda nõuab, EI– ära käivita (ainult iteratiivsed päringud). Kui vastus leitakse vahemälust, tagastatakse see vahemälust. (saab kasutada ainult jaotises Valikud)

Tsooni sektsioon

Määratleb tsooni(de) kirjelduse. Sektsiooni formaat: zone( jaotise_tsooni_operaatorid}; Operaatorid, mida kasutatakse kõige sagedamini:

  • luba-update( list_ip} – määrab süsteemid, millel on lubatud seda tsooni dünaamiliselt värskendada.
  • faili "faili nimi ” – määrab tsooni parameetrite faili tee (peab asuma suvandite jaotises kataloogilausega määratud kataloogis)
  • meistrid ( list_ip} - näitab peaserverite loendit. (lubatud ainult allutsoonides)
  • tüüp" tsooni_tüüp ” – näitab praeguses jaotises kirjeldatud tsooni tüüpi; zone_type võib võtta järgmisi väärtusi:
    • edasi– määrab ümbersuunamistsooni, mis edastab sellesse tsooni saabuvad päringud.
    • vihje– tähistab abitsooni (see tüüp sisaldab teavet juurserverite kohta, millega server ühendust võtab, kui ta ei leia vahemälust vastust)
    • meister– määrab töötama praeguse tsooni peaserverina.
    • ori– määrab töötama praeguse tsooni alluva serverina.

Täiendavad konfiguratsioonivalikud

Ajaväärtused tsoonifailides vaikimisi näidatakse seda sekundites, välja arvatud juhul, kui neile järgneb üks järgmistest tähtedest: S – sekundid, M – minutid, H – tunnid, D – päevad, W – nädalad. Vastavalt sellele kanne 2h20m5s väärtuseks on 2 tundi 20 minutit 5 sekundit ja see vastab 8405 sekundile.

Mis tahes hosti/kirje nimi, mis ei lõpe tähega punkt loeb mitte FQDN nimi ja seda täiendatakse praeguse tsooni nimega. Näiteks laiendatakse tsoonifaili examle.com domeni kirje FQDN-nimeks domen.examle.com. .

IN BIND konfiguratsioonifailid võib kehtida järgmine direktiivid:

  • $TTL– määrab TTL-i vaikeväärtuse kõigi praeguse tsooni kirjete jaoks.
  • $ ORIGIN– muudab tsooni nime, mis on määratud failis named.conf. Samas ei laiene selle direktiivi ulatus “ülevale” (st kui fail on kaasatud direktiiviga $INCLUDE, siis $ORIGN ulatus ei laiene vanemale)
  • $KAASA– sisaldab määratud faili tsoonifaili osana.

Selleks, et kohaliku serveri lahendaja saaks kasutada ka kohalikku DNS-i, peate muutma faili resolv.conf järgmisele vormile:

DNS: ~# cat /etc/resolv.conf nimeserver 127.0.0.1

Kui ressursikirje nimes on märk “*”, tähendab see, et selle asemel võib kasutada mis tahes lubatud tähemärkide jada. Sellist rekordit nimetatakse " metamärgi sisestus“. Märgi “*” ei saa aga kuskil kasutada. See võib olla ainult esimene märk väljal Nimi praegune domeen, mis on teistest eraldatud sümboliga "."

Vahemällu salvestava DNS-serveri seadistamine

Pärast sideme paigaldamist on see täielikult töövalmis DNS-serveri vahemällu salvestamine ilma täiendava konfiguratsioonita. Ainus puudus on see, et see töötleb päringuid kõigis liidestes, mida me absoluutselt ei vaja, seega muudame serveri seadeid veidi.

Selleks, et BIND töötaks kui vahemällu salvestamise server, peavad teil olema konfiguratsioonifailid, mis on täidetud vajaliku teabega:

  • named.conf;
  • serveri kirjeldus juuretsoon(tsooni tüüpi vihje);
  • kirjeldus tsoonid 127.in-addr.arpa.
dns:~# cat /usr/local/etc/named/named.conf acl "lan" ( 192.168.1.1/24; 127.0.0.1; ); options ( kataloog "/var/cache/bind"; // Kui teie ja nende nimeserverite vahel, millega soovite // rääkida, on tulemüür, peate võib-olla tulemüüri parandama, et võimaldada mitmel // pordil rääkida. Vaadake http: //www.kb.cert.org/vuls/id/800113 /* * Siin on kirjas, et kui kasutatakse tulemüüri, siis tuleb * meie serveril luua vastavad reeglid * ehk avada juurdepääs TCP-le ja UDP-port 53 */ edasta kõigepealt; // määrake edastamine ainult esimese päringu edastajatele ( // määrake edastamiseks DNS-server 123.123.123.123; // pakkuja pakub 222.233.111.231; // kuna need on neile lähemal kui juurtaseme omad); kuulamine ( lan; ); // laseb kuulata ainult vajalikke liideseid allow-query ( lan; ); // lubab päringuid ainult kohalikust võrgust allow-recursion ( lan; ); // rekursiivne päringud pärinevad ka ainult kohalikust luba-transferist ( none; ); // me ei pea tsoone üle kandma, vajame versiooni "tundmatu"; // ei kuva vastuste jaoks DNS-serveri versiooni auth-nxdomain no; # RFC1035 ühilduvuse jaoks kuula-on-v6 (pole; ); //Me ei vaja IPv6); // juurserveri sätete tsooni "." (tüüp hint; fail "db.root"; ); // allpool kirjeldatud tsoonid määravad serveri autoriteetseks loopback // liideste jaoks, samuti levitsoonide jaoks (vastavalt RFC 1912-le) tsoon "localhost" (tüüp master; fail "localhost"; ); tsoon "127.in-addr.arpa" (tüüp master; fail "127.in-addr.arpa"; ); tsoon "0.in-addr.arpa" (tüüp master; fail "0.in-addr.arpa"; ); tsoon "255.in-addr.arpa" (tüüp master; fail "255.in-addr.arpa"; );

See näide näitab DNS-serveri vahemällu salvestamine, töötleb võrkude loendist päringuid lan, mis sisaldab ainult ühte kohalikku võrku 192.168.1.1/24 ja loopback-liidest. Vajadusel saate sinna lisada muid võrke. Pärast võrkude loendi määratlemist acl-direktiivis saate igal konfiguratsioonis sellele loendile viidata nime järgi (meie näites on nimi lan), mida tegelikult tehakse valikute jaotis. Olen kommenteerinud enamikku parameetreid, kuid kirjeldavat jaotist juurserveri tsoon. IN faili parameeter suhteline tee juurserveri kirjeldusfail(tee serveri töökataloogi suhtes). Selle faili värskendusi on vaja jälgida, kuigi seda uuendatakse üsna harva (kust saada uuendatud faili kirjutasin DNS-teoorias). Nagu märkasite, on kohaliku hosti tsooni jaoks ka kaks kirjet ja levidomeenide jaoks kaks pöördtsooni kirjet. Nende tsoonide eesmärk on vältida vastavate IP-aadresside nimede juhuslike päringute levitamist juurtsooni teenindavatesse serveritesse.

Et mitte tekitada segadust hunnikus konfiguratsioonifailides, annan selles artiklis näiteid, mis põhinevad ühel konfiguratsioonifailil. Tegelikult näeb Debiani (ja teiste Linuxi distributsioonide) viimastes versioonides fail named.conf välja selline:

Root@master:~# cat /usr/local/etc/named/named.conf // See on nimelise BIND DNS-serveri esmane konfiguratsioonifail. // // Palun lugege /usr/share/doc/bind9/README.Debian.gz, et saada teavet // BIND-i konfiguratsioonifailide struktuuri kohta Debianis *ENNE* selle konfiguratsioonifaili // kohandamist. // // Kui sa lihtsalt lisad tsoone, siis palun tee seda failis /etc/bind/named.conf.local, sealhulgas "/usr/local/etc/named/named.conf.options"; sisaldab "/usr/local/etc/named/named.conf.local"; sisaldab "/usr/local/etc/named/named.conf.default-zones";

See tähendab, et põhifail ei sisalda konfiguratsioone, vaid sisaldab rohkem spetsiifilisi faile, mis vastutavad näiteks oma ülesannete eest named.conf.options- sisaldab globaalseid konfiguratsiooniparameetreid, named.conf.default-zones– sisaldab kohaliku hosti ja levitsoonide kirjeldust ning named.conf.local sisaldab tsoonide kirjeldusi, mille eest see server vastutab.

Esimene rida määrab parameetri $TTL, mis määrab positiivsete vastuste vahemälu aja (vastus leitud IP-aadressi kujul). Siin ja allpool saab aega määrata sekundites või lühendite abil: m - minutid, h - tunnid, d - päevad, w - nädalad.

Salvestuses SOA märgitud on domeeni esmane NS ja kontaktisiku e-post. Sulgudes, järjekorras:

  1. Seeria – seerianumber. Iga kord, kui muudate andmeid, tuleb neid muuta. Kui seerianumber muutub, värskendatakse tsooni kõigis serverites. Kasutage järgmist vormingut: YYYYMMDDnn (aasta, kuu, päev, nn – päeva muudatuste seerianumber). Kui teete tsoonifailis muudatusi teist korda päevas, määrake "nn" väärtuseks 01, kui kolmas kord - 02 jne.
  2. Värskenda – intervall, mille möödudes peaksid alamserverid võtma ühendust esmase serveriga ja kontrollima tsooni värskendusi.
  3. Proovi uuesti – kui alamserveril ei õnnestunud primaarse serveriga ühendust saada, peab ta pärast selle aja möödumist oma päringut kordama.
  4. Aegumine – kui selle aja jooksul ei saanud alamserver tsooni esmasest serverist värskendada, peab alamserver selle tsooni teenindamise lõpetama.
  5. TTL – eitavate vastuste vahemällu salvestamise aeg (vastus "domeeni ei saa IP-aadressiks lahendada")

Jaotises N.S. Seda domeeni teenindavad NS-serverid on määratud. Neid on vaja vähemalt kahte ja need peaksid asuma erinevates alamvõrkudes või veel parem, geograafiliselt erinevates kohtades. Esmalt määrake esmane server.

jaotis MX kirjeldab meililüüsi (tavaliselt ühte), kuhu kõik selle domeeni kirjad toimetatakse. Iga lüüsi jaoks määratakse prioriteet (vaikimisi on 10). Tavaliselt näeb meilivärava domeeninimi välja järgmine: mx.example.com.

Jaotises A alamdomeenid on näidatud ( A) ja sünonüümid ( CNAME). Näites domeen example.com osutab IP-aadressile 192.168.1.1 ja domeenile www.example.com on sünonüüm example.com.

Märge:

  • Kui määrate täieliku domeeninime, lisage lõppu punkt.
  • Esmase domeeni (mitte alamdomeeni) NS-, MX- ja A-kirjed ei tohi alata rea ​​algusest.
  • Kui meililüüs kuulub samasse domeeni, ärge unustage seda jaotises A märkida.

Saate kontrollida tsoonifaili vigu, kasutades käsku:

$ named-checkzone example.com ./example.com tsooni näide.com/IN: laaditud seerianumber 2007022600 OK

Järgmisena tahan juhtida teie tähelepanu tsoonifailide olemasolule määratud kataloogis valikute jaotis V kataloogi parameeter vastavate nimedega faili parameetrid tsoone kirjeldavates osades:

Dns:~# ls -l /var/cache/bind/ kokku 24 -rw-r--r-- 1 juurjuur 237 28. mai 01:28 0.in-addr.arpa -rw-r--r-- 1 juurjuur 271 28. mai 01:28 127.in-addr.arpa -rw-r--r-- 1 juurjuur 237 28. mai 01:28 255.in-addr.arpa -rw-r--r-- 1 juurjuur 2994 28. mai 01:28 db.root -rw-r--r-- 1 juurjuur 270 28. mai 01:28 localhost dns:~# cat /var/cache/bind/127.in-addr.arpa ; ; BIND pöördandmefail kohaliku loopback liidese jaoks; $TTL 604800 @ IN SOA localhost. root.localhost. (1; Seerianumber 604800; Värskenda 86400; Proovi uuesti 2419200; Aegub 604800) ; Negatiivne vahemälu TTL ; @ IN NS localhost. 1.0.0 IN PTR localhost.

Ma ei näe mõtet "loopback" ja edastustsoonide failide kaalumisel, sest Pärast sidumispaketi installimist on nende failide vaikesätted üsna vastuvõetavad. Edasi korraldamisel serverimeister me kaalume tsooni faili kirjelduse näide. Tahaksin juhtida teie tähelepanu sellele, mida me loome vahemällu salvestamise server, ja me määratleme selle kui meister mõne tsooni jaoks. meie puhul" vahemällu salvestamine” tähendab, et meie server ei toeta ühtegi reaalselt olemasolevat tsooni, st. talle pole delegeeritud õigusi sellise teenuse eest.

See lõpetab vahemällu salvestamise DNS-i konfiguratsiooni. See salvestab kõik DNS-serveri vahemällu sattunud päringud arvuti RAM-i ja deemon taaskäivitamisel lähtestatakse need andmed. Vahemälu toimimise kontrollimiseks saate käsu käivitada nslookup mail.ru example.com., kui vastus sisaldab stringi Mitteautoriteetne vastus, siis tuli aadress vahemälust ja ka siis, kui käivitate kaeva www.ru.(või mõni muu domeen, mida veel vahemälus pole) ja korrake käsku mõne aja pärast, siis peaks reageerimisaeg palju kiirem olema.

Tsooni põhiserver (peaserver).

Peamine konfiguratsioon sisaldab järgmisi sätteid:

Dns: ~# cat /etc/bind/named.conf acl "lan" ( 192.168.1.1/24; 127.0.0.1; ); suvandid ( kataloog "/var/cache/bind"; allow-query ( any; ); // vastata kõigi liideste päringutele rekursiooni nr; // keelata rekursiivsed päringud auth-nxdomain no; // RFC1035 ühilduvuse kuulamiseks v6 ( none; ); // Me ei vaja IPv6 versiooni "tundmatu"; // ärge kuvage vastamisel DNS-serveri versiooni /* * Tühista allolevate ridade kommentaar, kui * soovite lubada rekursiivseid päringuid * kohalikust võrgust * (vajalik ka kommentaar välja * rekursiooni nr;) */ # edasisuunajad ( // määrake edastamiseks DNS-serverid # 83.239.0.202; // pakkuja pakub # 213.132.67.110; // kuna need on neile lähemal kui juurpäringud # ); # allow-recursion ( lan ; ); // rekursiivsed päringud on samuti ainult kohalikust päringust ); // juurserveri sätete tsooni "." (tüüp hint; fail "db.root"; ); // allpool kirjeldatud tsoonid määravad serveri autoriteetseks loopback // liideste jaoks, samuti levitsoonide jaoks (vastavalt RFC 1912-le) tsoon "localhost" (tüüp master; fail "localhost"; ); tsoon "127.in-addr.arpa" (tüüp master; fail "127.in-addr.arpa"; ); tsoon "0.in-addr.arpa" (tüüp master; fail "0.in-addr.arpa"; ); tsoon "255.in-addr.arpa" (tüüp master; fail "255.in-addr.arpa"; ); // peatsooni tsooni "example.com" kirjeldus (tüüp master; fail "example.com"; luba-transfer ( 10.0.0.191; ); ); //reverse zones zone "0.0.10.in-addr.arpa" kirjeldus (tüüp master; fail "0.0.10.in-addr.arpa"; luba-transfer ( 10.0.0.191; ); ); tsoon "1.168.192.in-addr.arpa" (tüüp master; fail "1.168.192.in-addr.arpa"; # allow-transfer ( 10.0.0.191; ); // tsoon kirjeldab kohalikku võrku, nii et me ära kanna seda üle ); // logimisseadete logimine ( kanal "misc" ( faili "/var/log/bind/misc.log" versioonid 4 suurus 4m; printimisaeg jah; printimise tõsidus jah; print-kategooria jah; ); kanal "päring" ( faili "/var/log/bind/query.log" versioonid 4 suurus 4 m; printimisaeg jah; printimise raskusaste ei; print-kategooria nr; ); kategooria vaikeseade ( "misc"; ); kategooria päringud ( "päring "; ); );

Vaatame kiirelt konfiguratsioonifaili ja peaserveri seaded: seadistame jaoks peaserveri example.com tsoonid.. Vastavalt konfiguratsioonile on meie BINDil töökataloog /var/cache/bind, server vastab kõikide liideste päringutele ( luba-päring(ükskõik milline ;);), käsitletakse rekursiivseid päringuid iteratiivsetena ( rekursioon nr), on peaserver tsooni jaoks example.com ja kohalikud teeninduspiirkonnad ( tüübimeister). Samal ajal, kui peate lubama kohaliku võrgu vahemällu salvestamist (st rekursiivseid päringuid), peate parameetrite kommentaarid tühistama ekspediitorid Ja luba-rekursioon ja kommenteerida rekursioon nr;.

Samuti tõin näitena võimalused BINDlogi kõik, mis serveri töötamise ajal juhtub (selleks võite kasutada syslogi). IN metsaraie sektsioon on antud 2 kanali parameetrid(võimalik on rohkem kui kaks - teie äranägemisel), võib neid parameetreid sõna otseses mõttes nimetada "kanali" salvestamine. Iga kanal määratleb kanali nimi Ja salvestusseadete seaded(mida kirjutada ja mida mitte ja kuhu kirjutada). kategooria direktiiv komplektid mis kategooria sõnumeid millisele kanalile saata?. Selle põhjal on meil: standardteabe salvestamine sisse misc kanal ja sissetulevad päringud saadetakse aadressile päringu kanal. Veelgi enam, kui logifailid ulatuvad 4 MB ( suurus 4m), nimetatakse see ümber, lisades nimele .1 ja uude logisse kirjutamine algab, teiste logide lõpus olevad numbrid suurenevad. Logid, mille number on suurem kui versioonis (meie puhul 4), kustutatakse (logrotate abil saate ka logi rotatsiooni hallata). prindiparameetrid* otsustada, kas logida ilmumise aeg, tähtsust Ja kategooria teavet. Logimise sektsiooni seadistuste kohta saab täpsemalt lugeda man (5) named.conf.

Eriti tahaksin kirjeldada parameeter luba-transfer ( 10.0.0.191; );. See parameeter kirjeldab servereid, millel on lubatud tsooni koopia alla laadida - nö ori server. Järgmises näites vaatleme seadet ori DNS.

Logimise korrektseks toimimiseks peate looma vastava kataloogi ja määrama vajalikud õigused:

Dns:~# mkdir /var/log/bind/ dns:~# chmod 744 /var/log/bind/ dns:~# ps aux | grep nimega siduda 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:~# -ld /var/log/bind/ drwxr--r-- 2 sidumisjuur 4096 6. juuli 18:18 /var/log/bind/

Dns:~# cat /var/cache/bind/example.com $TTL 3D @ IN SOA ns.example.com. root.example.com. (2011070601; seeria 8H; värskenda 2H; proovi uuesti 2W; aegu 1D) ; minimaalne @ IN NS ns.example.com. @ IN NS ns2.example.com. @ IN A 10.0.0.152 @ IN 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 @

samuti domeenis in-addr.arpa.

Dns:~# cat /var/cache/bind/0.0.10.in-addr.arpa $TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001; Seerianumber 3600; Värskenda 900; Proovi uuesti 3600000; Aegub 3600) ; Minimaalne IN NS ns.examle.com. IN NS ns2.example.com. 152 PTR-is examle.com. 191 IN PTR ns.example.com. * PTR-is examle.com. dns:~# cat /var/cache/bind/1.168.192.in-addr.arpa $TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001; Seerianumber 3600; Värskenda 900; Proovi uuesti 3600000; Aegub 3600) ; Minimaalne IN NS ns.examle.com. IN NS ns2.example.com. * PTR-is examle.com.

Meie võrk on väike, eeldatakse, et võrgus on väga vähe masinaid. Kõik võrguteenused on hostitud samas hostis example.com, nii et nii põhi-DNS (ns.example.com.) kui ka meiliserver (mx.example.com.) osutavad samale masinale (10.0.0.152).

Teisene (alluv) autoriteetne tsooni server

Peamine funktsioon ori server– tsooni kirjelduse automaatne sünkroonimine peaserveriga. See ülesanne on reguleeritud dokumendiga RFC 1034 Peatükis 4.3.5. Selle dokumendi kohaselt on soovitatav vahetada andmeid serverite vahel kasutades TCP protokoll AXFR-i päringu kaudu. Selle päringu jaoks tuleb kogu tsoon edastada ühes TCP-ühenduses (RFC 1035).

Samuti alam DNS-server jagab koormust peaserveriga või võtab esimese serveri rikke korral üle kogu koormuse.

Enne kui alustad alam DNS-serveri seadistamine, peate kontrollima, kas saate tsooni sekundaarsest serverist käsitsi hankida, kasutades järgmist käsku:

Root@debian:~# dig @10.0.0.152 example.com. axfr;<<>> DiG 9.7.3<<>> @10.0.0.152 example.com. axfr; (leiti 1 server) ;; globaalsed valikud: +cmd example.com. 259200 SOA-s ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 example.com. 259200 IN NS ns.example.com. example.com. 259200 IN NS ns2.example.com. example.com. 259200 10.0.0.152-s example.com. 259200 IN MX 5 mx.example.com. mx.example.com. 259200 IN A 10.0.0.152 ns.example.com. 259200 IN A 10.0.0.152 ns2.example.com. 259200 IN A 10.0.0.191 www.example.com. 259200 IN CNAME example.com. example.com. 259200 SOA-s ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 ;; Päringu aeg: 14 ms ;; SERVER: 10.0.0.152#53(10.0.0.152) ;; MILLAL: reede 8. juuli 15:33:54 2011 ;; XFR suurus: 11 kirjet (sõnumeid 1, baiti 258)

  1. Kopeerikonfiguratsioonifail named.conf peaserverist;
  2. Asendatüüpi peaparameeter peal tüüpi ori
  3. Parameeter luba-ülekande ( 10.0.0.191; );asendada peal masters(10.0.0.152;); nendes tsoonides, mille jaoks see on teisejärguline;
  4. Kustuta tsoonid, mida praegune server ei teeninda, kaasa arvatud juur, kui alam ei vasta rekursiivsetele päringutele;
  5. Loo kataloogid palkide jaoks, nagu eelmises näites.

Kokku saame alamserveri konfiguratsiooni:

Root@debian:~# cat /etc/bind/named.conf suvandid ( kataloog "/var/cache/bind"; allow-query ( any; ); // vastata päringutele kõigist liidestest rekursiooni nr; // keela rekursiivne taotleb auth-nxdomain nr // RFC1035 ühilduvuse jaoks kuula-on-v6 ( none; ); // Me ei vaja IPv6 versiooni "tundmatu" // ärge kuvage vastamisel DNS-serveri versiooni ); // allpool kirjeldatud tsoonid määravad serveri autoriteetseks loopback // liideste jaoks, samuti levitsoonide jaoks (vastavalt RFC 1912-le) tsoon "localhost" (tüüp master; fail "localhost"; ); tsoon "127.in-addr.arpa" (tüüp master; fail "127.in-addr.arpa"; ); tsoon "0.in-addr.arpa" (tüüp master; fail "0.in-addr.arpa"; ); tsoon "255.in-addr.arpa" (tüüp master; fail "255.in-addr.arpa"; ); // peatsooni tsooni "example.com" kirjeldus (tüüp slave; fail "example.com"; masters ( 10.0.0.152; ); ); //pöördtsooni tsooni "0.0.10.in-addr.arpa" kirjeldus (tüüp slave; fail "0.0.10.in-addr.arpa"; masters ( 10.0.0.152; ); ); // logimise seaded logimine ( kanal "misc" ( faili "/var/log/bind/misc.log" versioonid 4 suurus 4 m; printimisaeg JAH; printimisraskus YES; print-category YES; ); kanal "päring" ( faili "/var/log/bind/query.log" versioonid 4 suurus 4 m; printimisaeg JAH; printimise raskusaste EI; print-kategooria EI; ); kategooria vaikeseade ( "misc"; ); kategooriapäringud ( "päring" "; ); );

pärast meie taaskäivitamist ori server kopeerib edukalt põhiserverist vajaliku teabe, mida näitab failide olemasolu kataloogis:

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

Põhimõtteliselt /stroallow-transfer (pngp ori server ei tohi salvestada tsooni koopiat oma failisüsteemi. Seda koopiat on vaja ainult siis, kui DNS käivitub. Tsooni koopia olemasolu failisüsteemis võib tõrkeid ära hoida, kui peaserver pole alam DNS-i käivitamise ajal saadaval. Kui te ei määra tsooni jaotises failivalikut, siis koopiat ei tehta.

Kokkuvõte

Käesolevas artiklis kirjeldatakse BIND-serveri DNS-i põhikonfiguratsioonide seadistamist. Artikli eesmärk oli anda aimu BIND-serveri toimimisest UNIX-is. DNS-i turvalisuse küsimusi praktiliselt ei puudutata ning sellised spetsiifilised seadistused nagu serveri töö servarežiimis, kui erinevatesse võrkudesse saadetakse erinevat infot tsooni(de) kohta, on vähe mõjutatavad. Sügavamaks mõistmiseks on allpool loetelu täiendavatest allikatest, kust saate vajalikku teavet.

Domeeninimede süsteem: http://citforum.ru/internet/dns/khramtsov/
RFC 1034– Domeeninimed – kontseptsioonid ja võimalused: http://tools.ietf.org/html/rfc1034
RFC 1035– Domeeninimed – juurutamine ja spetsifikatsioon: http://tools.ietf.org/html/rfc1035
RFC 1537- Levinud DNS-i andmefaili konfiguratsioonivead: http://tools.ietf.org/html/rfc1537
RFC 1591- Domeeninimesüsteemi struktuur ja delegeerimine: http://tools.ietf.org/html/rfc1591
RFC 1713- DNS-i silumise tööriistad: http://tools.ietf.org/html/rfc1713
RFC 2606- Reserveeritud tipptaseme DNS-nimed: http://tools.ietf.org/html/rfc2606
DNS-turvalisus (DNSSEC): http://book.itep.ru/4/4/dnssec.htm
BIND 9 Administraatori käsiraamat: http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.html
Turvaline BIND-mall: http://www.cymru.com/Documents/secure-bind-template.html
Konfiguratsiooni parameetrid on hästi kirjeldatudvene keel: http://www.bog.pp.ru/work/bind.html
Automaatne tsoonifailide loomine: http://www.zonefile.org/?lang=en#zonefile

Kokkupuutel