Vytvorenie vlastného lokálneho DNS (PDNSD) s blackjackom a rýchlejšie ako Google Public DNS. Nastavenie servera DNS pre vyrovnávaciu pamäť (BIND) pre lokálnu sieť Ako prebieha školenie

Dobrý čas, čitatelia. V pokračovaní teoretického materiálu o tom chcem v tomto článku zvážiť praktický príklad inštalácie a nastavenia rôzne Konfigurácie servera BIND. V článku popíšem Nastavenie vyrovnávacej pamäte DNS a plné Hlavný server DNS. Opis začnem všeobecnými pojmami a krokmi potrebnými na usporiadanie akýchkoľvek DNS servery.

Všeobecné informácie

Pomenovaný je démon, ktorý je súčasťou balík bind9 a bytie server názvov domén. Menovaný démon môže implementovať funkcie serverov akéhokoľvek typu: master, slave, cache. Vo vyššie uvedenom diagrame som sa snažil zobraziť ten hlavný čo najtransparentnejšie. ako funguje server DNS BIND. Binárny súbor, ktorý vykonáva väčšinu práce, sa nachádza v /usr/sbin/named. Svoje nastavenia preberá z hlavného konfiguračného súboru tzv pomenovaný.conf a nachádza sa v katalógu /etc/bind. v hlavnej konfigurácii popísané pracovný adresár servera, často adresár /var/cache/bind, v ktorej ležia súbory s popisom zóny a ďalšie servisné súbory. Korešpondencia názvy zón A súbor s popisom zóny súpravy zónová časť s parametrom súbor. zónová časť tiež nastavuje typ zodpovednosti tohto servera za zónu (master, slave atď.) a tiež definuje špeciálne parametre pre aktuálnu zónu (napríklad, na akom rozhraní sa majú spracovávať požiadavky pre aktuálnu zónu). V súboroch s popisom zóny obsahuje parametre zóny a záznamy prostriedkov (cesty uvedené v tomto odseku sa môžu líšiť v závislosti od distribúcie alebo parametrov Linuxu).

Toto všeobecná schéma prácu, ktorá vám pomôže nenechať sa v budúcnosti zmiasť pri zvažovaní konkrétnych konfigurácií.

Formát konfiguračného súboru pre 4. verziu programu sa líši od formátu používaného v ôsmej a deviatej verzii BIND. Vzhľadom na to, že sa teším na inštaláciu nového DNS server a stará verzia Nevidím zmysel jeho nastavovania, preto zvážim konfiguráciu novej verzie.

Počiatočné údaje

Aby DNS fungoval správne, musí mať príponu . DNS v tomto článku bude nastavený na distribúcii Debianu a budú uvedené aj špecifiká iných distribúcií. Konfigurácia siete stojana je nasledovná:

Dns:~# cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.0.0.152 maska ​​siete 255.255.255.0 brána 10.0.0.254 auto eth1 iface 250.51 net19sket.5

Kde 10.0.0.152/24 - externé rozhranie (podsieť pridelená poskytovateľom), 192.168.1.1/24 - interná (Lokálna sieť). Vlastná zóna bude mať názov example.com. V príklade s slave server, sekundárny server bude umiestnený na IP 10.0.0.191 .

Inštalácia BIND9

Aby server DNS fungoval, potrebujete viazať9 (v niektorých distribúciách - viazať ). Ako je uvedené v diagrame - hlavný konfiguračný súbor BIND je súbor pomenovaný.conf (daný súbor možno umiestniť do adresára /atď, niekedy v /etc/bind).

Parametre (syntax) Named.conf

syntax súboru named.conf dodržiava nasledujúce pravidlá:

IP adresy- zoznam IP musí byť oddelený znakom ";" , je možné zadať podsieť vo formáte 192.168.1.1/24 alebo 192.168.1.1/255.255.255.0, (pre vylúčenie IP je potrebné dať pred ňu znak!), je možné zadať názvy "any", "none", "localhost" v dvojitých úvodzovkách.

Komentáre- riadky začínajúce #, // a uzavreté v /* a */ sa považujú za komentáre.

IN súbory s popisom zóny -symbol @ je "premenná" obsahujúca názov zóny špecifikovaný v konfiguračnom súbore pomenovaný.conf alebo v smernici @ $ORIGIN popis aktuálnej zóny.

Každý dokončený riadok parametre musia končiť znakom; .

Acl sekcia

Acl (zoznam riadenia prístupu)- umožňuje nastaviť pomenovaný zoznam sietí. Formát sekcie: acl "net_name" (ip; ip; ip;);

Časť Možnosti

Časť Možnosti súpravy globálne možnosti konfiguračný súbor, ktorý riadi všetky zóny. Táto sekcia má nasledujúci formát: options(options_section_options);. Možnosti môžu byť „vnorené“. Zónová časť, pričom prepíše globálne nastavenia. Často používané opcie:

  • povoliť dopyt ( ip_list} - Umožňuje odpovede na otázky iba od ip_list. Ak nie, server odpovie na všetky požiadavky.
  • povoliť rekurziu ( ip_list} - Rekurzívne dotazy sa budú vykonávať na žiadosti z ip_list. Pre zvyšok - iteratívne. Ak parameter nie je nastavený, server vykoná rekurzívne dotazy pre všetky siete.
  • povoliť prenos ( ip_list} - Určuje zoznam serverov, ktoré môžu prevziať zónu zo servera (v zásade sú tu uvedené podriadené servery)
  • adresár /cesta/k/práci/adresár- určuje absolútnu cestu k pracovnému adresáru servera. Toto vyhlásenie platí len v sekcii možností.
  • špeditéri ( ip port ip port.} - označuje adresy hostiteľa a ak je to potrebné, porty, kam sa majú posielať požiadavky (spravidla sú tu uvedení poskytovatelia DNS poskytovateľov internetových služieb).
  • dopredu IBA alebo dopredu NAJPRV - parameter najprv prikáže serveru DNS, aby sa pokúsil rozlíšiť názvy pomocou serverov DNS špecifikovaných v parametri preposielačov, a iba ak sa mu nepodarí rozpoznať názov pomocou týchto serverov, pokúsi sa vyriešiť samotný názov.
  • oznámiť ÁNO|NIE - ÁNO- informovať podriadený server o zmenách v zóne, NIE- neoznamovať.
  • rekurzia ÁNO|NIE - ÁNO- vykonávať rekurzívne dotazy, ak o to klient požiada, NIE- nevykonávať (iba opakované dopyty). Ak sa odpoveď nájde vo vyrovnávacej pamäti, vráti sa z vyrovnávacej pamäte. (možno použiť iba v sekcii Možnosti)

Zónová časť

Určuje popis zóny (zón). Formát sekcie: zóna( výpisy_zóny}; Operátori ktoré sa najčastejšie používajú:

  • povoliť aktualizáciu ( ip_list} - Určuje systémy, ktoré môžu dynamicky aktualizovať danú zónu.
  • súbor "názov súboru " - určuje cestu k súboru volieb zóny (mal by sa nachádzať v adresári určenom v sekcii volieb príkazom adresára)
  • majstri ( ip_list} - určuje zoznam hlavných serverov. (prípustné len v podriadených zónach)
  • typ" typ_zóny " - označuje typ zóny opísaný v aktuálnej časti, typ_zóny môže nadobúdať nasledujúce hodnoty:
    • dopredu- určuje zónu presmerovania, ktorá presmeruje požiadavky prichádzajúce do tejto zóny.
    • nápoveda- označuje pomocnú zónu ( daný typ obsahuje informácie o koreňových serveroch, ktoré bude server kontaktovať, ak nemôže nájsť odpoveď vo vyrovnávacej pamäti)
    • majster- označuje pracovať ako hlavný server pre aktuálnu zónu.
    • otrok- Určuje prácu ako podriadený server pre aktuálnu zónu.

Ďalšie možnosti konfigurácie

Časové hodnoty v súboroch zónštandardne sa uvádza v sekundách, ak za nimi nenasleduje jedno z nasledujúcich písmen: S - sekundy, M - minúty, H - hodiny, D - dni, W - týždne. V súlade s tým, vstup 2h20m5s bude mať hodnotu 2 hodiny 20 minút 5 sekúnd a zodpovedá 8405 sekundám.

Akýkoľvek názov hostiteľa/položky, ktoré nekončia na bodka počíta non-FQDN názov a doplní sa názvom aktuálnej zóny. Napríklad položka domény v súbore zóny example.com sa rozšíri na názov FQDN domen.examle.com. .

IN konfiguračné súbory BIND môže platiť nasledovné smernice:

  • $ TTL- definuje predvolené TTL pre všetky záznamy v aktuálnej zóne.
  • $ORIGIN- zmení názov zóny z názvu uvedeného v súbore named.conf. Zároveň sa rozsah tejto smernice nerozširuje „vyššie“ (to znamená, že ak je súbor zahrnutý direktívou $INCLUDE, rozsah $ORIGN sa nevzťahuje na rodiča)
  • $INCLUDE- obsahuje zadaný súbor ako súčasť súboru zóny.

Samostatne by som chcel opísať parameter allow-transfer ( 10.0.0.191; );. Tento parameter popisuje servery, ktoré majú povolené sťahovať kópiu zóny - tzv server slave. V nasledujúcom príklade analyzujeme nastavenie slave DNS.

Aby prihlasovanie fungovalo správne, musíte vytvoriť príslušný adresár a prideliť potrebné práva:

Dns:~# mkdir /var/log/bind/ dns:~# chmod 744 /var/log/bind/ dns:~# ps aux | grep s názvom 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 väzba root 4096 6. júla 18:18 /var/log/bind/

Dns:~# cat /var/cache/bind/example.com $TTL 3D @ IN SOA ns.example.com. root.example.com. (2011070601 ; sériové 8H ; obnovenie 2H ; opakovanie 2W ; platnosť 1D); minimum @ 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 @

ako aj v doméne 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; Sériové číslo 3600; Obnovenie 900; Opätovný pokus 3600000; Skončenie platnosti 3600); Minimum IN NS ns.examle.com. IN NS ns2.example.com. 152 V PTR example.com. 191 V PTR ns.example.com. * V PTR example.com. dns:~# cat /var/cache/bind/1.168.192.in-addr.arpa $ TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001; Sériové číslo 3600; Obnovenie 900; Opätovný pokus 3600000; Skončenie platnosti 3600); Minimum IN NS ns.examle.com. IN NS ns2.example.com. * V PTR example.com.

Naša sieť je malá, predpokladá sa, že v sieti je veľmi málo strojov. Všetky sieťové služby sú hosťované na rovnakom hostiteľovi example.com., takže hlavný server DNS (ns.example.com.) aj poštový server (mx.example.com.) smerujú na rovnaký počítač (10.0.0.152).

Sekundárny (podriadený) autoritatívny server pre zónu

hlavná funkcia server slave- automatická synchronizácia popisu zóny s nadradeným serverom. Táto úloha je upravená dokumentom RFC 1034 V kapitole 4.3.5. Podľa tohto dokumentu sa odporúča vymieňať si dáta medzi servermi pomocou požiadavky AXFR. Pre túto požiadavku musí byť celá zóna prenesená v jednom TCP spojení (RFC 1035).

tiež podriadený server DNS zdieľa záťaž s hlavným serverom alebo prevezme celú záťaž v prípade zlyhania na prvom serveri.

Pred pokračovaním v konfigurácia podriadeného servera DNS, musíte si overiť, že môžete manuálne získať zónu zo sekundárnej jednotky pomocou nasledujúceho príkazu:

[chránený e-mailom]:~# [email protected] example.com. axfr;<<>> DiG 9.7.3<<>> @10.0.0.152 example.com. axfr; (našiel sa 1 server) ;; globálne možnosti: +cmd example.com. 259200 V SOA 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 IN A 10.0.0.152 example.com. 259200 IN MX 5 mx.example.com. mx.example.com. 259200 V A 10.0.0.152 ns.example.com. 259200 V A 10.0.0.152 ns2.example.com. 259200 V A 10.0.0.191 www.example.com. 259200 V CNAME example.com. example.com. 259200 V SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400;; Čas dopytu: 14 ms ;; SERVER: 10.0.0.152#53(10.0.0.152) ;; KEDY: Pia 8. júl 15:33:54 2011 ;; Veľkosť XFR: 11 záznamov (správy 1, 258 bajtov)

  1. Kopírovať konfiguračný súbor s názvom.conf z hlavného servera;
  2. Nahradiť typ hlavného parametra na otrocký typ
  3. Parameter allow-transfer ( 10.0.0.191; ); nahradiť na masters( 10.0.0.152;); v tých zónach, pre ktoré to bude sekundárne;
  4. Vymazať zóny, ktoré nebude obsluhovať aktuálny server, vrátane koreňa, ak slave nebude reagovať na rekurzívne požiadavky;
  5. Vytvárajte adresáre pre denníky, ako v predchádzajúcom príklade.

Celkovo dostaneme konfiguráciu slave servera:

[chránený e-mailom]:~# možnosti cat /etc/bind/named.conf (adresár "/var/cache/bind"; allow-query (akýkoľvek; ); // odpovede na požiadavky zo všetkých rozhraní, rekurzia č.; // deaktivácia rekurzívnych požiadaviek auth-nxdomain nie; // pre kompatibilitu RFC1035 listen-on-v6 ( none; ); // nepotrebujeme verziu IPv6 "neznáma"; // nezobrazovať verziu servera DNS v odpovediach ); // zóny popísané nižšie definujú server ako autoritatívne pre rozhrania spätnej slučky //, ako aj pre vysielacie zóny (podľa RFC 1912) zóna "localhost" ( typ master; súbor "localhost"; ); zóna "127.in-addr.arpa" ( typ master; súbor "127.in-addr.arpa"; ); zóna "0.in-addr.arpa" ( typ master; súbor "0.in-addr.arpa"; ); zóna "255.in-addr.arpa" ( typ master; súbor "255.in-addr.arpa"; ); // popis zóny hlavnej zóny "example.com" ( typ slave; súbor "example.com"; masters ( 10.0.0.152; ); ); //reverzná zóna popisu zóny "0.0.10.in-addr.arpa" ( typ slave; súbor "0.0.10.in-addr.arpa"; masters ( 10.0.0.152; ); ); // protokolovanie nastavení protokolovania ( kanál "misc" ( súbor "/var/log/bind/misc.log" verzie 4 veľkosť 4 m; čas tlače ÁNO; závažnosť tlače ÁNO; kategória tlače ÁNO; ); kanál "dotaz" ( súbor "/var/log/bind/query.log" verzie 4 veľkosť 4 m; čas tlače ÁNO; závažnosť tlače NIE; kategória tlače NIE; ); predvolená kategória ( "rôzne"; ); dotazy na kategóriu ( "dopyt" ";););

po reštarte nášho slave server bezpečne skopíruje potrebné informácie z hlavného servera, čo naznačuje prítomnosť súborov v adresári:

[chránený e-mailom]:~# ls -la /var/cache/bind/ celkovo 28 drwxrwxr-x 2 viazanie na koreň 4096 8. júla 18:47 . drwxr-xr-x 10 koreňový koreň 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 väzba väzba 455 júl 8 18:32 example.com ........

V podstate /stroallow-transfer (pngp slave server nemusí uchovávať kópiu zóny vo svojom súborovom systéme. Táto kópia je potrebná iba v čase spustenia DNS. Kópia zóny v súborovom systéme môže zabrániť zlyhaniu, ak hlavný server nie je dostupný počas spúšťania podriadeného DNS. Ak nešpecifikujete možnosť súboru v sekcii zóny, nevytvorí sa žiadna kópia.

Konfigurácia netfilter() pre DNS BIND

Po nakonfigurovaní servera by bolo pekné ho chrániť. Vieme, že server beží na porte 53/udp. Po prečítaní článku o a oboznámení sa s ním môžete vytvoriť pravidlá filtrovania sieťovej prevádzky:

Dns ~ # iptables-save # generic iptables pravidlá pre DNS *filter:POPNUTIE VSTUPU :POPÁDNUTIE VSTUPU :POPNUTIE VÝSTUPU -A INPUT -i lo -j PRIJAŤ -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP # povoliť prístup k lokálnej sieti k serveru DNS: -A INPUT -s 192.168.1.1/24 -d 192.168.1.1/32 -p udp -m udp --dport 53 -m conntrack - -ctstate NEW -j PRIJAŤ -A VÝSTUP -o lo -j PRIJAŤ -A VÝSTUP -p icmp -j PRIJAŤ -A VÝSTUP -p udp -m udp --sport 32768:61000 -j PRIJAŤ -A VÝSTUP -p tcp -m tcp --sport 32768:61000 -j PRIJAŤ -A VÝSTUP -m conntrack --ctstate SÚVISIACE,ZATVORENÉ -j PRIJAŤ # povoliť prístup k serveru DNS na zadávanie odchádzajúcich dotazov -A VÝSTUP -p udp -m udp --dport 53 -m conntrack - -ctstate NOVÉ -j PRIJAŤ ZÁVÄZOK

Toto je typický príklad! Ak chcete nastaviť pravidlá iptables pre svoje úlohy a konfiguráciu siete, musíte si prečítať vyššie uvedené články a pochopiť, ako funguje netfilter v systéme Linux.

Riešenie problémov

Hlavným zdrojom identifikácie problémov DNS je . Tu je príklad chýb pri spustení, keď som urobil chybu s cestou k súbor zóny základných serverov:

Júl 5 18:12:43 dns-server pomenovaný: začína BIND 9.7.3 -u bind 5. júla 18:12:43 dns-server pomenovaný: zostavený s "--prefix=/usr" "--mandir=/usr/ share/man" "--infodir=/usr/share/info" "--sysconfdir=/etc/bind" "--localstatedir=/var" "--enable-threads" "--enable-largefile" "- -with-libtool" "--enable-shared" "--enable-static" "--with-openssl=/usr" "--with-gssapi=/usr" "--with-gnu-ld" "- -with-dlz-postgres=no" "--with-dlz-mysql=no" "--with-dlz-bdb=yes" "--with-dlz-filesystem=yes" "--with-dlz-ldap =yes" "--with-dlz-stub=yes" "--with-geoip=/usr" "--enable-ipv6" "CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2" "LDFLAGS=" " CPPFLAGS=" Júl 5 18:12:43 dns-server Name: upravený limit otvorených súborov z 1024 na 1048576 Jul 5 18:12:43 dns-server Name: Nájdený 1 CPU, používa 1 pracovné vlákno Júl 5 18:12: 43 dns-server Named: using až 4096 sockets Jul 5 18:12:43 dns-server named: loading configuration from "/etc/bind/named.conf" Jul 5 18:12:43 dns-server named: reading built -v dôveryhodných kľúčoch zo súboru "/etc/bind/b ind.keys" Jul 5 18:12:43 dns-server Name: using default UDP/IPv4 port range: Jul 5 18:12:43 dns-server Named: using default UDP/IPv6 port range: Jul 5 18:12: 43 dns-server pomenovaný: počúva na rozhraní IPv4 lo, 127.0.0.1#53 Jul 5 18:12:43 dns-server Name: Počúvanie na rozhraní IPv4 eth1, 192.168.1.1#53 Jul 5 18:12:43 dns-server meno: generuje sa kľúč relácie pre dynamický DNS 5. júl 18:12:43 dns-server s názvom: nepodarilo sa nakonfigurovať tipy na root z "/etc/bind/db.root": súbor sa nenašiel 5. júla 18:12:43 dns-server pomenované: načítava sa konfigurácia: súbor sa nenašiel # súbor sa nenašiel 5. júl 18:12:43 dns-server menovaný: ukončuje sa (kvôli fatálnej chybe) 5. júl 18:15:05 dns-server menovaný: začína BIND 9.7.3 -u bind Jul 5 18:15:05 dns-server Named: built with "--prefix=/usr" "--mandir=/usr/share/man" "--infodir=/usr/share/info" "-- sysconfdir=/etc/bind" "--localstatedir=/var" "--enable-threads" "--enable-largefile" "--with-libtool" "--enable-shared" "--enable-static" "--with-openssl=/usr" "--with-gssapi=/usr" "--wit h-gnu-ld" "--with-dlz-postgres=no" "--with-dlz-mysql=no" "--with-dlz-bdb=yes" "--with-dlz-filesystem=yes" "--with-dlz-ldap=yes" "--with-dlz-stub=yes" "--with-geoip=/usr" "--enable-ipv6" "CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2" "LDFLAGS=" "CPPFLAGS=" Jul 5 18:15:05 DNS-server Name: upravený limit otvorených súborov z 1024 na 1048576 Jul 5 18:15:05 DNS-server Name: Nájdený 1 CPU, používa 1 pracovné vlákno 5. júla 18:15:05 názov dns-server: s použitím až 4096 soketov 5. júla 18:15:05 názov dns-server: načítavanie konfigurácie z "/etc/bind/named.conf" 5. júla 18:15: 05 dns-server pomenovaný: používa predvolený rozsah portov UDP/IPv4: 5. júla 18:15:05 pomenovaný server dns: používa predvolený rozsah portov UDP/IPv6: 5. júla 18:15:05 pomenovaný server dns: počúva na rozhraní IPv4 hľa, 127. 0.0.1#53 Jul 5 18:15:05 dns-server name: listening on IPv4 interface eth1, 192.168.1.1#53 Jul 5 18:15:05 dns-server named: automatic empty zone: 254.169.IN-ADDR. ARPA Jul 5 18:15:05 dns-server name: automatic empty zone: 2.0.192.IN-ADDR.ARPA Jul 5 18:15:05 dns-server named: automatic empty zone: 100.51.198.IN-ADDR. ARPA Jul 5 18:15:05 dns-server name: automatic empty zone: 113.0.203.IN-ADDR.ARPA Jul 5 18:15:05 dns-server named: automatic empty zone: 255.255.255.255.IN-ADDR. ARPA Jul 5 18:15:05 dns-server name: automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6 .ARPA Jul 5 18:15:05 dns-server name: automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. IP6.ARPA Jul 5 18:15:05 dns-server Named: automatic empty zone: D.F.IP6.ARPA Jul 5 18:15:05 dns-server Named: automatic empty zone: 8.E.F.IP6.ARPA Jul 5 18:15 :05 dns-server name: automatic empty zone: 9.E.F.IP6.ARPA Jul 5 18:15:05 dns-server Named: automatic empty zone e: A.E.F.IP6.ARPA 5. júla 18:15:05 dns-server pomenovaný: automatická prázdna zóna: B.E.F.IP6.ARPA 5. júla 18:15:05 dns-server pomenovaný: automatická prázdna zóna: 8.B.D.0.1.0.0.2 .IP6.ARPA 5. júla 18:15:05 dns-server pomenovaný: zóna 0.in-addr.arpa/IN: načítaný sériový 1. júl 5 18:15:05 dns-server pomenovaný: zóna 127.in-addr.arpa /IN: načítaný sériový 1. júl 5 18:15:05 dns-server s názvom: zóna 255.in-addr.arpa /IN: načítaný sériový 1. júl 5 18:15:05 dns-server s názvom: zóna localhost/IN: zóna načítaný sériový 2. júl 5 18:15:05 dns-server s názvom: beží # spustenie bolo úspešné

Sú vynikajúcim diagnostickým nástrojom.

Zhrnutie

V aktuálnom článku som opísal, ako nastaviť základné konfigurácie DNS servera BIND. Účelom tohto článku bolo poskytnúť predstavu o tom, ako server BIND funguje v systéme UNIX. Prakticky som sa nedotkol bezpečnostných otázok DNS a málo som sa dotkol takých špecifických nastavení, ako je prevádzka servera v hraničnom režime, keď sa rôzne informácie o zóne (zónach) odosielajú do rôznych sietí. Pre hlbšie pochopenie uvediem zoznam doplnkových zdrojov, v ktorých, dúfam, bude možné získať potrebné informácie. Toto som ukončil. Uvídime sa znovu.

Systém doménových mien: http://citforum.ru/internet/dns/khramtsov/
RFC 1034- Názvy domén - Koncepty a vybavenie: http://tools.ietf.org/html/rfc1034
RFC 1035- Názvy domén - Implementácia a špecifikácia: http://tools.ietf.org/html/rfc1035
RFC 1537– Bežné chyby konfigurácie údajového súboru DNS: http://tools.ietf.org/html/rfc1537
RFC 1591– Štruktúra a delegovanie systému doménových mien: http://tools.ietf.org/html/rfc1591
RFC 1713- Nástroje na ladenie DNS: http://tools.ietf.org/html/rfc1713
RFC 2606- Vyhradené názvy DNS najvyššej úrovne: http://tools.ietf.org/html/rfc2606
Zabezpečenie DNS (DNSSEC): http://book.itep.ru/4/4/dnssec.htm
Referenčná príručka správcu BIND 9: http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.html
Šablóna Secure BIND: http://www.cymru.com/Documents/secure-bind-template.html
Konfiguračné parametre sú dobre definovanéruský: http://www.bog.pp.ru/work/bind.html
Automatické vytvorenie súboru zóny: http://www.zonefile.org/?lang=en#zonefile


Autor: Paul Cobbaut
Dátum zverejnenia: 24. mája 2015
Preklad: A.Panin
Dátum prevodu: 11.7.2015

Kapitola 4. Úvod do serverov DNS

4.3. Ukladanie serverov DNS do vyrovnávacej pamäte

Server DNS, ktorý neobsluhuje zónu DNS, ale je pripojený k iným názvovým serverom na ukladanie dotazov do vyrovnávacej pamäte, sa nazýva server DNS s vyrovnávacou pamäťou. Servery DNS ukladanie do vyrovnávacej pamäte nefungujú s databázami zón DNS, ktoré obsahujú záznamy o zdrojoch. Namiesto toho sa pripájajú k iným menným serverom a ukladajú príslušné informácie do vyrovnávacej pamäte.

Existujú dva typy serverov DNS ukladania do vyrovnávacej pamäte. Sú to servery DNS používajúce servery DNS na presmerovanie, ako aj servery DNS používajúce koreňové servery DNS.

4.3.1. Server DNS ukladajúci sa do vyrovnávacej pamäte, ktorý nepoužíva službu preposielania

Server DNS ukladajúci sa do vyrovnávacej pamäte, ktorý nepoužíva server na presmerovanie, musí získavať informácie odinakiaľ. Keď klient dostane požiadavku, kontaktuje jeden z koreňových serverov. Koreňový server komunikuje s vyrovnávacím serverom informácie o serveri obsluhujúcom cieľovú doménu najvyššej úrovne, ktorá ho následne nasmeruje na iný server DNS. Posledný server môže mať buď informácie na zodpovedanie dotazu, alebo môže odovzdať informácie o inom serveri DNS, ktorý môže mať tieto informácie. Nakoniec náš DNS server získa informácie, ktoré potrebuje na zodpovedanie dotazu a odošle odpoveď späť klientovi.

Obrázok nižšie ukazuje, ako klient odošle požiadavku na informácie o IP adrese pre názov domény linux-training.be. Náš server vyrovnávacej pamäte sa pripojí ku koreňovému serveru a bude presmerovaný na server obsluhujúci doménu najvyššej úrovne .be. Potom sa pripojí k serveru, ktorý je hostiteľom domény najvyššej úrovne .be, a bude presmerovaný na jeden z menných serverov Openminds. Jeden z týchto menných serverov (v tomto prípade nsq.openminds.be) odpovie na dotaz IP adresou servera s názvom domény linux-training.be. Potom, čo náš cache server odovzdá tieto informácie klientovi, klient sa bude môcť pripojiť k príslušnej webovej lokalite.

Použitie sniffera tcpdump na vyriešenie tohto názvu domény vytvorí nasledujúci výstup (prvých 20 znakov každého riadku bolo odstránených).

192.168.1.103.41251 > M.ROOT-SERVERS.NET.doména: 37279%A? linux-tr \ aining.be. (46) Doména M.ROOT-SERVERS.NET > 192.168.1.103.41251: 37279- 0/11/13 (740) 192.168.1.103.65268 > d.ns.dns.be.doména: 385 % A?85 linuxové školenie.\ byť. (46) d.ns.dns.be.domain > 192.168.1.103.65268: 38555-0/7/5 (737) 192.168.1.103.7514 > ns2.openminds.be.domain: 60888 % A? linux-train\ing.be. (46) ns2.openminds.be.domain > 192.168.1.103.7514: 60888*- 1/0/1 A 188.93.155.\ 87 (62)

4.3.2. DNS cache server pomocou forwarderu

Server DNS ukladajúci sa do vyrovnávacej pamäte pomocou servera na preposielanie je server DNS, ktorý získava všetky informácie, ktoré potrebuje od servera preposielania. Server DNS presmerovania môže byť napríklad server DNS poskytovateľa internetových služieb.

Vyššie uvedený obrázok zobrazuje server DNS v lokálnej sieti spoločnosti, ktorý používa server DNS od poskytovateľa internetových služieb ako server DNS na presmerovanie. Ak je IP adresa servera DNS poskytnutého poskytovateľom internetových služieb 212.71.8.10, v konfiguračnom súbore Named.conf servera DNS spoločnosti musia byť prítomné nasledujúce riadky:

zasielatelia ( 212.71.8.10; );

Okrem toho môžete svoj server DNS nakonfigurovať na prácu s podmienenými servermi DNS. Popis servera DNS s podmieneným preposielaním v konfiguračnom súbore je nasledujúci:

Zóna "someotherdomain.local" ( typ forward; forward only; forwarders ( 10.104.42.1; ); );

4.3.3. Iteratívny alebo rekurzívny dotaz

Rekurzívny dotaz je DNS dotaz, po ktorom klient čaká na konečnú odpoveď od DNS servera (na obrázku vyššie je znázornená hrubou červenou šípkou smerujúcou z Macbooku na DNS server). Iteratívny dotaz je DNS dotaz, po ktorom klient nečaká na konečnú odpoveď zo servera DNS (na obrázku vyššie je znázornený tromi čiernymi šípkami smerujúcimi zo servera DNS). Iteratívne dotazy sa najčastejšie vykonávajú medzi mennými servermi. Koreňové názvové servery neodpovedajú na rekurzívne dotazy.

Server DNS, ktorý spravuje zónu DNS, sa nazýva autoritatívny server DNS pre túto zónu. Majte na pamäti, že zóna DNS je len súbor záznamov o zdrojoch.

Prvý autoritatívny server DNS pre zónu DNS sa nazýva primárny server DNS. Tento server spustí čítanie/zápis kópie databázy zóny DNS. Ak potrebujete zlepšiť uchovávanie údajov v prípade zlyhaní, zlepšiť výkon servera alebo vyváženie zaťaženia, môžete nasadiť iný server DNS, ktorý bude tiež spravovať túto zónu DNS. Tento server sa bude označovať ako sekundárny server DNS.

Sekundárny server dostane kópiu databázy zóny DNS z primárneho servera počas prenosu zóny DNS. Požiadavky na prenos zóny DNS odosielajú sekundárne servery v pravidelných intervaloch. Trvanie týchto časových úsekov je nastavené v zázname prostriedkov SOA.

Aktualizáciu zóny DNS môžete vynútiť pomocou pomôcky rndc. Nasledujúci príklad spustí prenos zóny DNS fred.local a vygeneruje zodpovedajúci fragment súboru /var/log/syslog protokolu.

[chránený e-mailom]:/etc/bind# rndc refresh fred.local [chránený e-mailom]:/etc/bind# grep fred /var/log/syslog | chvost -7 | cut-c38- zóna fred.local/IN: odosielanie notifikácií (sériový 1) prijatý príkaz "obnoviť fred.local" zóna fred.local/IN: Prenos bol spustený. prenos "fred.local/IN" z 10.104.109.1#53: pripojený pomocou 10.104.33.30#57367 zóny fred.local/IN: prenesený sériový 2 prenos "fred.local/IN" z 10.104.109.1#53: Prenos dokončené: 1 správa, 10 záznamov, 264 bajtov, 0,001 s (264 000 bajtov/s) zóna fred.local/IN: odosielanie upozornení (sériová 2) [chránený e-mailom]:/etc/bind#

Pri pridávaní sekundárneho servera DNS do zóny DNS môžete tento server nakonfigurovať ako podriadený server DNS pre primárny server. Primárny server DNS bude hlavným serverom DNS vo vzťahu k sekundárnemu serveru.

Primárny server DNS je najčastejšie hlavný server, ktorý spolupracuje so všetkými podriadenými servermi. Niekedy môže byť pohotovostný server aj hlavným serverom pre pohotovostné servery ďalšej úrovne. Na obrázku nižšie je server s názvom ns1 primárnym serverom a servery s názvom ns2, ns3 a ns4 sú sekundárne servery. Hoci hlavný server pre servery s názvom ns2 a ns3 je server s názvom ns1, hlavný server pre server s názvom ns4 je server s názvom ns2.

Záznam o prostriedku SOA obsahuje hodnotu obnovovacej frekvencie zóny DNS s názvom refresh. Ak je táto hodnota nastavená na 30 minút, pohotovostný server odošle požiadavky na prenos kópie údajov zóny DNS každých 30 minút. Tiež tento záznam obsahuje hodnotu pre dĺžku časového limitu s názvom retry . Táto hodnota sa používa, keď hlavný server neodpovedá na poslednú požiadavku na prenos zóny DNS. Hodnota s názvom expiry time nastavuje časové obdobie, počas ktorého môže pohotovostný server odpovedať na požiadavky klientov bez aktualizácie údajov zóny DNS.

Nasleduje príklad použitia pomôcky nslookup na čítanie údajov záznamu o prostriedku SOA zóny DNS (linux-training.be).

[chránený e-mailom]:~# nslookup > settype=SOA > server ns1.openminds.be > linux-training.be Server: ns1.openminds.be Adresa: 195.47.215.14#53 linux-training.be pôvod = ns1.openminds.be mailová adresa = hostmaster.openminds.be sériový = 2321001133 obnova = 14400 opakovanie = 36080 minimálna platnosť = 36080 expirácia

Prenosy údajov zóny DNS sa uskutočnia iba vtedy, keď dôjde k zmene údajov v databázach zóny DNS (to znamená, keď sa pridá, odstráni alebo upraví jeden alebo viac záznamov prostriedkov na hlavnej strane). Pohotovostný server porovnáva číslo verzie (sériové číslo) svojej vlastnej kópie záznamu o prostriedku SOA s číslom verzie záznamu prostriedku SOA príslušného hlavného servera. Ak sa čísla verzií zhodujú, nevyžaduje sa žiadna aktualizácia údajov (pretože neboli pridané, odstránené ani zmenené žiadne iné záznamy prostriedkov). V rovnakom prípade, ak je číslo verzie záznamu o prostriedku SOA na strane podriadeného servera menšie ako číslo verzie toho istého záznamu na strane zodpovedajúceho hlavného servera, vykoná sa požiadavka na prenos zóny DNS.

Nižšie je snímka obrazovky okna Wireshark sniffer s údajmi zachytenými počas prenosu údajov zóny DNS.

4.9. Úplné alebo čiastočné prenosy zóny DNS

Prenos údajov zóny DNS môže byť úplný alebo čiastočný. Rozhodnutie použiť jeden alebo druhý režim závisí od množstva údajov, ktoré sa musia preniesť na úplnú aktualizáciu databázy zóny DNS na pohotovostnom serveri. Čiastočný prenos údajov o zónach sa uprednostňuje, keď je celkové množstvo zmenených údajov menšie ako veľkosť celej databázy. Úplné prenosy zón DNS sa vykonávajú pomocou protokolu AXFR, zatiaľ čo čiastočné prenosy zón DNS sa vykonávajú pomocou protokolu IXFR.

Účelom DNS je preložiť názvy domén, ktoré si ľudia ľahko zapamätajú, na adresy IP, ktorým počítače rozumejú, čo je proces nazývaný rozlíšenie mien.
Čo nám dá inštalácia vlastného vyrovnávacieho DNS servera?!
To mierne zrýchli odozvu stránok + Linux nevníma veľmi dobre názvy NetBios a niekedy musíte nájsť počítače alebo tlačiarne vo vnútri lokálnej siete, ale chcete to urobiť podľa názvu.
Zapamätanie si adries IP nie je pohodlné, ale neustále šplhanie do protokolu servera DHCP tiež nie je našou metódou. Pre takéto prípady je potrebný DNS v lokálnej sieti.
Samotná inštalácia balíka bind9 nie je náročná, zátky zvyčajne vznikajú vo fáze jeho konfigurácie, pretože po ľahko čitateľných konfiguračných súboroch systému na človeka padne nezrozumiteľná syntax, mimochodom veľmi podobná programovaciemu jazyku C. server bude fungovať vo vnútri lokálnej siete, potom nemá zmysel ho prenášať do chroot prostredia a celé nastavenie zaberie veľmi málo času.
Na tomto je možné dokončiť lyrickú časť, pristúpime k inštalácii a konfigurácii.
Nainštalujte server Bind9 DNS:
sudo apt-get install bind9
Po dokončení, stiahnutí a inštalácii musíme upraviť jeho konfiguračný súbor:
sudo nano /etc/bind/named.conf.options
Nájdeme sekciu, nachádza sa na samom začiatku konfiguračného súboru, okrem nej nie je nič iné ...

Možnosti ( adresár "/var/cache/bind"; // Ak je medzi vami a mennými servermi, s ktorými chcete // komunikovať, firewall, možno budete musieť opraviť firewall, aby bolo možné komunikovať s viacerými // portami. Pozrite si http: //www.kb.cert.org/vuls/id/800113 // Ak váš ISP poskytol jednu alebo viac IP adries pre stabilné // nameservery, pravdepodobne ich budete chcieť použiť ako preposielače. // Zrušte komentár k nasledujúcemu bloku a vložte adresy nahradzujúce // zástupný symbol all-0. // preposielače ( // 0.0.0.0; // ); auth-nxdomain no; # vyhovujú RFC1035 listen-on-v6 ( any; ); );

Sekcia preposielačov je zodpovedná za to, kam bude odoslaná požiadavka DNS na rozlíšenie názvu, ak nie je vo vlastnej databáze. V poslednej dobe nie som vôbec šťastný, práca týchto serverov u poskytovateľa môže byť prepojená so servermi tretích strán, napríklad so servermi Google, je veľmi ľahké si zapamätať IP 8.8.

Sekciu upravujeme, najprv z nej musíte odstrániť komentáre a pridať DNS tretích strán, ak je potrebné pridať niekoľko serverov, napríklad v prípade, že server google nevydrží vaše požiadavky a prestane fungovať :), potom IP iných serverov je možné zapísať do stĺpca, potom môžete dosiahnuť väčšiu odolnosť.
forwardery ( 8.8.8.8; 193.58.251.251; //ruská služba DNS -SkyDNS );
V tejto časti je lepšie zadať IP servera, ktorý ste zadali v súbore /etc/resolv.conf alebo zadajte tam v sekcii nameserver túto IP
Uložte zmeny a ukončite
Reštartujte server a skontrolujte
Zadáme do príkazového riadku nslookup mail.ru
Mal by vydať:

Neautoritatívna odpoveď: Meno: mail.ru Adresy: 94.100.191.202
To naznačuje, že náš server nie je hlavným serverom pri obsluhe tejto zóny (mail.ru), ale požiadavky boli pridané do vyrovnávacej pamäte!
Teraz potrebujeme vytvoriť DNS zónu pre našu sieť, aby stroje mohli nájsť rôzne sieťové služby – môžu tam byť napríklad sieťové tlačiarne, môžu byť buď nezávislé, alebo zdieľané na iných pracovných staniciach.
Naša zóna sa môže nazývať orgname -t.j. Názov organizácie.
Najprv si vytvoríme zónu, ktorú upravíme pomenovaný.konf.miestne

sudo nano /etc/bind/named.conf.local
a pridajte k tomu nasledovné:
zóna "názov organizácie" ( typ master; súbor "/etc/bind/db.orgname"; );
Uložiť a ukončiť
Teraz musíme vytvoriť konfiguračný súbor zóny
sudo nano /etc/bind/db.orgname
a vložte do neho nasledovné:
(Prosím, venujte pozornosť syntaxi konfiguračného súboru, dokonca aj na bodkách záleží)

@ IN SOA názov organizácie. root.orgname. (20101015 4h ; ​​čas aktualizácie -4 hodiny 1h ; opakovať každú hodinu 1h ; ako dlho uchovávať informácie -1 týždeň 1d) ; Záznamy TTL (time to live) - 1 deň @ IN NS orgname. ; meno servera @ IN A 192.168.10.1 ; A - záznam - IP adresa nášho DNS servera, ktorý obsluhuje túto zónu, @ znamená, že toto je koreňová zóna. * IN CNAME @ tlačiareň IN A 192.168.10.25 ; Môžete vytvoriť položku DNS pre sieťovú tlačiareň umiestnenú na adrese 192.168.10.25

Teraz, keď pridávate nové sieťové zariadenie, musíte urobiť 2 veci:
1) Zarezervujte si IP adresu na serveri DHCP, ako to urobiť, si môžete prečítať v článku-
2) Vytvorte DNS zóna pre túto IP, názov zariadenia IN A XXX.XXX.XXX.XXX. Kde: názov zariadenia - sieťový názov zariadenia; XXX.XXX.XXX.XXX je jeho IP adresa, ktorá je rezervovaná na serveri DHCP.

Teraz musíme upraviť súbor resolv.conf

sudo nano /etc/resolv.conf

A zadajte tam:

Nameserver 127.0.0.1

Všetko, čo tam bolo, sa dalo okomentovať zadaním #

Reštartovanie servera

To sa deje tak, že server hľadá všetko vo svojej vlastnej databáze a až potom BIND presmeruje požiadavky na server 8.8.8.8, ktorého IP je zadaná v smernici špeditérov.

Teraz môžete skontrolovať, či to funguje:

Ak sa testovanie vykonáva v systéme Windows:
ping názov zariadenia.orgname

Ak testujeme pod Linuxom:
ping názov zariadenia.orgname -c 4
Pingy by mali ísť na adresu IP, ktorú ste zadali, namiesto XXX.XXX.XXX.XXX

Týmto sa dokončí nastavenie servera DNS.

Pozornosť

Ak chcete správne nainštalovať a nakonfigurovať dnsmasq, prejdite do relácie superužívateľa:

Keď sa zobrazí výzva na zadanie hesla, zadajte heslo používateľa root alebo lokálneho správcu.

DNS cache je navrhnutá tak, aby zrýchlila načítanie webových stránok ukladaním ich IP adries do pamäte. Ak chcete nakonfigurovať ukladanie do vyrovnávacej pamäte, použite pomôcku dnsmasq.

Yum install dnsmasq

Pomocou textového editora vi alebo nano otvorte súbor umiestnený na adrese /etc/dnsmasq.conf

Vi /etc/dnsmasq.conf

Nano /etc/dnsmasq.conf

Upravte nasledujúce možnosti:

resolv-file=/etc/resolv.dnsmasq no-poll listen-address=127.0.0.1 cache-size=150 conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig

Pridajte aj nasledujúci parameter:

Všetky servery

  • resolv-file- súbor s IP adresami dns serverov
  • bez hlasovania- parameter, ktorý zakazuje automatickú aplikáciu zmien v súboroch s názvom resolv.
  • počúvať adresu- parameter označujúci, ktorá adresa sa má počúvať.
  • cache-size- veľkosť vyrovnávacej pamäte. Predvolená hodnota vám umožňuje uložiť 150 hostiteľov.
  • conf-dir- parameter zodpovedný za dodatočný súbor konfigurácia.
  • všetky servery- presmeruje dns požiadavku na všetky dostupné dns servery a vráti odpoveď z prvého odpovedajúceho servera. Parameter je potrebné zadať ručne.

Môžete tiež určiť nasledujúce možnosti:

  • no-negcache- neukladať negatívne odpovede zo serverov do vyrovnávacej pamäte.
  • bvnútorné rozhranies- umožňuje spúšťať kópie procesu.
  • dns-dopredu-max- maximálny počet žiadostí o DNS. Predvolená hodnota je 150. Parameter je potrebné zadať manuálne.

Teraz vytvorte súbor resolv.dnsmasq pomocou textového editora vi alebo nano a zapíšte si tam adresy serverov DNS.

Vi /etc/resolv.dnsmasq

Nano /etc/resolv.dnsmasq

Potom pridajte IP adresu 127.0.0.1 vyplniť vyriešiť.conf. Ak to chcete urobiť, použite pomôcku « Sieťové pripojenia» nachádza sa v "Menu" → "Možnosti" → "Sieťové pripojenia" v grafickom prostredí Škorica alebo "Systém" → "Nastavenia" → "Sieťové pripojenia" v grafickom prostredí Kamarát. Vyberte svoje aktívne pripojenie a kliknite na tlačidlo "Zmeniť", prejdite na kartu "Nastavenia IPv4", zmeniť "metóda" na "Automaticky (DHCP, iba adresa)" a v teréne " Ďalšie servery DNS“ napíšte adresu 127.0.0.1 , kliknite na použiť a reštartujte správca siete.

Úprava súboru resolv.conf s pomocou textové editory Neodporúčané. Súbor sa prepíše pri ďalšom reštarte systému.

Systemctl reštartujte NetworkManager.service

Skontrolujte obsah súboru, aby ste sa uistili, že sa zmeny prejavili. vyriešiť.conf:

/etc/resolv.conf

Obsah by mal byť takýto:

# Generuje nameserver NetworkManager 127.0.0.1

Operácie popísané vyššie vám umožnia presmerovať všetky dns požiadavky na lokálny počítač.

Pridať službu dnsmasq na automatické spustenie a opätovné prihlásenie:

Systemctl povoliť dnsmasq.service --now

Ak chcete obnoviť vyrovnávaciu pamäť, jednoducho reštartujte službu:

Systemctl reštartujte dnsmasq.service

Kontrola zdravia

Skontrolujte, či je služba povolená:

Systemctl status dnsmasq.service

Skontrolujte port 53:

Netstat -ntlp | grep:53 tcp 0 0 0.0.0.0:53 0.0.0.0:* POČÚVAŤ 7319/dnsmasq tcp6 0 0:::53:::* POČÚVAŤ 7319/dnsmasq

Teraz skúste použiť nástroj dig na prístup na stránku niekoľkokrát google.com

Dig google.com | grep "Čas dopytu" ;; Čas dopytu: 135 ms

Ak dns-query caching funguje, potom v takmer všetkých nasledujúcich požiadavkách je zvýraznený riadok čas dopytu sa bude rovnať nule.

;; Čas dopytu: 0 ms

V opačnom prípade sa bude meniť od 0 a vyššie s každou novou požiadavkou.

Výsledkom je, že primárny server DNS siete bude mať oveľa menšie zaťaženie.

Ak nájdete chybu, zvýraznite text a kliknite Ctrl+Enter.

Jednou z dôležitých služieb, ktoré zabezpečujú fungovanie moderného internetu, je služba na konverziu názvu stránky na ip adresu. Nastavením implementácie služby DNS sa budeme zaoberať v tomto článku na príklade nastavenia Bind 9 (named) na serveri so systémom CentOS 7. Pripravíme si minimálnu potrebnú základnú funkcionalitu a pozrieme sa trochu hlbšie do nastavení logovania .

Ak máte chuť naučiť sa pracovať s routermi Mikrotik a stať sa špecialistom v tejto oblasti, odporúčam použiť program založený na informáciách z oficiálneho kurzu. Kurz stojí za to, prečítajte si odkaz pre všetky podrobnosti. Existujú bezplatné kurzy.

Zviazať- dnes najbežnejšia implementácia DNS servera, ktorá zabezpečuje preklad IP adries na názvy DNS a naopak. Nazýva sa aj pomenovaný, napríklad vo Freebsd. Súdiac podľa informácií z Wikipédie, teraz 10 z 13 internetových koreňových serverov DNS beží na väzbe. Je nainštalovaný po vybalení takmer vo všetkých linuxových distribúciách. Zvážim inštaláciu na server CentOS 7.

Inštalácia Bind 9 (pomenovaný) na CentOS 7

Najprv skontrolujeme, či máme v systéme nainštalovaný DNS server:

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

Neinštaloval som, pretože som v tom čase zvolil minimálny softvérový balík. Menný server nám bude fungovať v chrootovom prostredí, preto si nainštalujte príslušné balíčky:

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

Ešte raz dávam do pozornosti, že použijeme bind in chroot prostredia na zvýšenie bezpečnosti. To vyžaduje určité funkcie pri nastavovaní a správe servera. Na tieto maličkosti si treba dávať pozor. Takže poďme bežať bind:

# štart systemctl pomenovaný-chroot# systemctl povoliť pomenovaný-chroot ln -s "/usr/lib/systemd/system/named-chroot.service" "/etc/systemd/system/multi-user.target.wants/named-chroot.service"

Kontrola obsahu chroot adresára:

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

Všetko je v poriadku, server je spustený, potrebné súbory sú vytvorené, všetko je pripravené na konfiguráciu. Postarajme sa o ňu.

Nastavenie servera DNS v systéme CentOS 7

Náš konfiguračný súbor servera sa nachádza na adrese /var/named/chroot/etc/named.conf. Otvorte ho a vyzerajte takto:

# mcedit /var/named/chroot/etc/named.conf voľby ( listen-on port 53 (akýkoľvek; ); listen-on-v6 port 53 ( žiadny; ); adresár "/var/named"; dump-file " /var/named/data/cache_dump.db"; allow-query ( 127.0.0.1; 192.168.7.0/24; ); rekurzia áno; allow-recursion ( 127.0.0.1; 192.168.7.0/24; ); 8 preposielačov ( 8. .8.8; ); verzia "DNS Server"; adresár spravovaných kľúčov "/var/named/dynamic"; súbor pid "/run/named/named.pid"; súbor kľúčov relácie "/run/named/session. kľúč"; dnssec-enable no; dnssec-validation no; ); zóna "." IN ( napíš nápovedu; súbor "named.ca"; ); vrátane "/etc/named.rfc1912.zones"; obsahovať "/etc/named.root.key"; protokolovanie ( predvolený_súbor kanála ( súbor "/var/log/named/default.log" verzie 3 veľkosť 5 m; závažnosť dynamická; čas tlače áno; ); predvolená kategória ( predvolený_súbor; ); );

Táto konfigurácia poskytne normálny server vyrovnávacej pamäte v lokálnej sieti. Komentáre k niektorým parametrom:

Nezabudnite upraviť pravidlá brány firewall pre správnu činnosť servera DNS - otvorte port UDP 53 pre server vyrovnávacej pamäte, ktorý sme teraz nakonfigurovali, a port TCP 53 pre presmerovanie zóny, o ktorom sa bude diskutovať neskôr

Teraz vytvoríme priečinok pre záznamy. Nezabudnite, že pracujeme v prostredí chroot:

# cd /var/named/chroot/var/log && mkdir s názvom && chown named. pomenovaný

Podpora vlastnej zóny

Predpokladajme, že musíme umiestniť našu vlastnú zónu site1.ru do nášho pomenovaného. Najprv vytvoríme súbor zóny, ktorý bude server DNS obsluhovať:

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

Popis syntaxe zónových súborov je na internete celkom dobre pokrytý, nechcem sa tým podrobne zaoberať. Na želanie sa každý môže sám presvedčiť, či si potrebuje nastaviť podporu pre vlastnú zónu.

Nastavíme potrebné práva:

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

Zóna "site1.ru" ( typ master; súbor "site1.ru.zone"; );

Opätovné načítanie pomenovanej konfigurácie s rndc:

# rekonfigurácia rndc

Pridáva sa na viazanie slave zóny

Ak si chcete ponechať kópiu niektorej zóny prevzatej z iného servera DNS na vašom serveri, pridajte do konfigurácie nasledujúce nastavenia.

Zóna "site.ru" IN ( typ slave; masters ( 10.1.3.4; ); súbor "site.ru.zone"; );

10.1.3.4 - IP adresa dns servera, z ktorého berieme zónu. Nezabudnite na ňom povoliť prenos zóny na váš DNS server.

Do pomenovanej skupiny musíte pridať povolenie na zápis, aby vyzerala takto:

Potom môžete reštartovať bind a skontrolovať, či bol vytvorený súbor slave zóny. S vyššie uvedenými nastaveniami sa bude nachádzať na /var/named/chroot/var/named/site.ru.zone. Ak bind nemá povolenie na vytvorenie súboru, v protokole sa zobrazí chyba:

Hlavný súbor výpisu: tmp-7Swr6EZpcd: otvorený: povolenie odmietnuté

Oveľa zaujímavejšie a užitočnejšie je zaoberať sa podrobným protokolovaním prevádzky servera. ja na dlhú dobu Na internete som sa povrchne chytil všelijakých odporúčaní a kúskov približných konfigurácií, až som sa rozhodol venovať sa tejto téme sám a dostal som sa do pôvodného návodu.

Bind poskytuje dostatok príležitostí na ťažbu dreva. Môžete opraviť takmer všetko, čo súvisí s prevádzkou servera. Teraz som tam jednoduché príklady Ukážem vám, ako to funguje.

V prvom rade si v konfigurácii nastavíme kanál, kam sa budú pridávať logy pre určité udalosti. Tu je príklad takéhoto kanála:

Kanál všeobecný ( súbor "/var/log/named/general.log" verzie 3 veľkosť 5m; závažnosť dynamická; čas tlače áno;

Tu je názov kanála, ktorý si vymyslíme sami - všeobecne, je uvedená cesta k súboru, hovorí sa, že uložíme 3 verzie denníka nie väčšie ako 5 megabajtov. Parameter závažnosť môže nadobudnúť nasledujúce hodnoty:

Parameter čas tlače označuje, že sa má zaznamenať čas udalosti. Okrem nastavení, ktoré som zadal, je možné do konfigurácie kanála pridať nasledujúce parametre:

  • náročnosť tlačeáno | nie - určuje, či sa má alebo nemá zapisovať parameter závažnosti do protokolu
  • kategória tlačeáno | nie - označuje, či sa má alebo nemá napísať názov kategórie logov

Tieto parametre som nešpecifikoval, keďže je nastavená predvolená hodnota ččo mne osobne vyhovuje.

Kategória všeobecné ( všeobecné; );

Popis kategórií denníka vo väzbe (pomenované)
predvolenáSem budú spadať udalosti všetkých kategórií z tejto tabuľky, ak nie sú definované samostatne, s výnimkou kategórie dopytov, ktorá musí byť špecificky zahrnutá. To znamená, že ak označíte iba predvolenú kategóriu, nalejú sa do nej udalosti všetkých kategórií.
všeobecnýTáto kategória je určená pre všetky denníky, ktoré nie sú zahrnuté v žiadnej z uvedených kategórií.
databázySprávy týkajúce sa ukladania zóny a vyrovnávacej pamäte.
bezpečnosťPotvrdenie a zamietnutie žiadostí.
configVšetko, čo súvisí s čítaním a spustením konfiguračného súboru.
resolverRozlíšenie názvov vrátane informácií o rekurzívnych dopytoch, ktoré v mene klienta vykonal server ukladania do vyrovnávacej pamäte.
xfer-inInformácie o získavaní zón.
xfer-outInformácie o prenose zón.
oznámiťProtokolovanie operácií protokolu NOTIFY.
zákazníkPlnenie požiadaviek klientov.
bezkonkurenčnéSprávy s názvom nebolo možné priradiť k žiadnej triede alebo pre ktoré nebolo definované žiadne mapovanie.
sieteProtokolovanie sieťových operácií.
aktualizovaťDynamické aktualizácie.
aktualizovať zabezpečenieSchvaľovanie alebo zamietnutie žiadostí o aktualizáciu.
otázkyPožiadavky na protokolovanie na server DNS. Ak chcete povoliť túto kategóriu, musíte samostatne nastaviť nastavenie v konfigurácii servera. Je to spôsobené tým, že táto kategória generuje veľa záznamov v súbore denníka, čo môže ovplyvniť výkon servera.
dotaz-chybyChyby serverových požiadaviek.
odoslaniePresmerovanie prichádzajúcich paketov na serverové moduly na spracovanie.
dnssecPrevádzka protokolov DNSSEC a TSIG.
chabé serveryOpravuje chyby, ktoré sa viažu, keď pristupuje na vzdialené servery v snahe vyriešiť požiadavku na názov.
iba delegovaniePožiadavky na protokolovanie, ktoré vrátili doménu NXDOMAIN.
edns-zakázanéŽiadosti, ktoré sú nútené používať obyčajný DNS kvôli časovým limitom.
RPZVšetky operácie súvisiace s vykonávaním zóny politiky odozvy (RPZ).
limit sadzbyOperácie spojené s jedným alebo viacerými príkazmi rýchlostného limitu vo voľbách alebo zobrazeniach.

Ak teda chcete zobraziť všetky kategórie protokolov v samostatných súboroch, musíte do pomenovanej konfigurácie pridať nasledujúcu konštrukciu:

Protokolovanie ( predvolené nastavenie kanála ( súbor "/var/log/named/default.log" verzie 3 veľkosť 5 m; závažnosť dynamická; čas tlače áno; ); všeobecný kanál ( verzie súboru "/var/log/named/general.log" 3 veľkosť 5 m; závažnosť dynamická; čas tlače áno; ); databáza kanálov ( súbor "/var/log/named/database.log" verzie 3 veľkosť 5 m; závažnosť dynamická; čas tlače áno; ); zabezpečenie kanála ( súbor " /var/log/named/security.log" verzia 3 veľkosť 5 m; závažnosť dynamická; čas tlače áno; ); konfigurácia kanála ( súbor "/var/log/named/config.log" verzie 3 veľkosť 5 m; závažnosť dynamická; doba tlače áno; ); prekladač kanála ( súbor "/var/log/named/resolver.log" verzie 3 veľkosť 5 m; dynamická závažnosť; čas tlače áno; ); xfer-in kanála ( súbor "/var/log/ named/xfer-in.log" verzie 3 veľkosť 5m; závažnosť dynamická; čas tlače áno; ); kanál xfer-out ( súbor "/var/log/named/xfer-out.log" verzie 3 veľkosť 5m; závažnosť dynamická ; čas tlače áno; ); upozornenie kanála ( súbor "/var/log/named/notify.log" verzie 3 veľkosť 5 m; závažnosť dynamická; čas tlače áno; ); kanál el klient ( súbor "/var/log/named/client.log" verzie 3 veľkosť 5m; dynamika závažnosti; čas tlače áno; ); kanál nezodpovedajúci ( súbor "/var/log/named/unmatched.log" verzie 3 veľkosť 5m; závažnosť dynamická; doba tlače áno; ); kanálová sieť ( súbor "/var/log/named/network.log" verzie 3 veľkosť 5m; závažnosť dynamická; doba tlače áno; ); aktualizácia kanála ( súbor "/var/log/named/update.log" verzie 3 veľkosť 5m; závažnosť dynamická; čas tlače áno; ); kanál update-security ( súbor "/var/log/named/update-security.log" verzia 3 veľkosť 5m; závažnosť dynamická; doba tlače áno; ); kanálové dotazy ( súbor "/var/log/named/queries.log" verzie 3 veľkosť 5m; závažnosť dynamická; doba tlače áno; ); channel query-errors ( súbor "/var/log/named/query-errors.log" verzie 3 veľkosť 5m; závažnosť dynamická; doba tlače áno; ); odoslanie kanála ( súbor "/var/log/named/dispatch.log" verzie 3 veľkosť 5m; závažnosť dynamická; čas tlače áno; ); kanál dnssec ( súbor "/var/log/named/dnssec.log" verzie 3 veľkosť 5m; závažnosť dynamická; doba tlače áno; ); kanál lame-servers ( súbor "/var/log/named/lame-servers.log" verzia 3 veľkosť 5m; závažnosť dynamická; doba tlače áno; ); len delegovanie kanála ( súbor "/var/log/named/delegation-only.log" verzie 3 veľkosť 5m; závažnosť dynamická; čas tlače áno; ); kanál edns-disabled ( súbor "/var/log/named/edns-disabled.log" verzie 3 veľkosť 5m; závažnosť dynamická; doba tlače áno; ); kanál rpz ( súbor "/var/log/named/rpz.log" verzie 3 veľkosť 5m; závažnosť dynamická; čas tlače áno; ); limit rýchlosti kanála ( súbor "/var/log/named/rate-limit.log" verzie 3 veľkosť 5m; závažnosť dynamická; čas tlače áno; ); predvolená kategória ( predvolená; ); kategória všeobecné ( všeobecné; ); categorydatabase(databaza;); kategória bezpečnosť ( bezpečnosť; ); kategória config ( config; ); riešiteľ kategórií ( resolver; ); kategória xfer-in( xfer-in;); kategória xfer-out ( xfer-out; ); kategória notify( notify; ); kategória klient ( klient; ); kategória unmatched ( unmatched; ); sieť kategórie ( sieť; ); aktualizácia kategórie ( aktualizácia; ); kategória update-security ( update-security; ); dopyty kategórie ( dopyty; ); kategória chyby dotazu ( chyby dotazu; ); kategória odoslanie ( odoslanie; ); kategória dnssec ( dnssec; ); kategória lame-servers ( lame-servers; ); kategória iba delegovanie (len delegovanie; ); kategória edns-disabled ( edns-disabled; ); kategória rpz ( rpz; ); kategória sadzba-limit ( rate-limit; ); );

Ak chceme zhromaždiť všetky protokoly požiadaviek z kategórie otázky, potom musíte do sekcie možností konfiguračného súboru pridať parameter, ktorý to umožňuje:

Querylog áno;

Reštartujte väzbu:

# systemctl reštart named-chroot.service

Kontrola servera DNS

Najprv prejdeme do adresára s protokolmi a skontrolujeme, čo tam máme:

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

Všetky protokolové súbory sa vytvoria a začnú sa napĺňať. Môžete skontrolovať jeden z nich. Pozrime sa napríklad, ako náš server centos (192.168.7.246) zaznamenáva požiadavky používateľov. Skúsme spustiť nslookup yandex.ru z počítača 192.168.7.254 (windows) a uvidíme, ako sa to prejaví v súbore denníka:

26. septembra 2015 19:25:30.923 klient 192.168.7.254#56374 (yandex.ru): 56375 (yandex.ru): dotaz: yandex.ru IN AAAA + (192.168.7.246)

Teraz poďme ping na site1.ru, aby sme skontrolovali, ako server podporuje našu zónu:

Pozrime sa, čo je v protokoloch:

26. septembra 2015 19:28:01.660 klient 192.168.7.254#49816 (site1.ru): dotaz: site1.ru IN A + (192.168.7.246)

Preto je veľmi pohodlné sledovať, kam počítač stúpa. Môžete napríklad dočasne zvýšiť server DNS, zapnúť protokol dotazov. V klientovi zadajte jediný server DNS, ktorý sme nakonfigurovali. Potom môžete napríklad bez nášho vedomia sledovať, kam sa Windows po načítaní vyšplhá. Alebo odkiaľ sa načítavajú reklamy v Skype. Všetky požiadavky budú prehľadne pridané do súboru, ktorý sa dá potom jednoducho analyzovať, a potom napríklad .

To je všetko, čo som chcel povedať v tomto materiáli. Téma konfigurácie bind (pomenovaná) je pomerne rozsiahla. Možno sa k tomu ešte vrátim.

Online kurzy na Mikrotiku

Ak máte chuť naučiť sa pracovať s routermi Mikrotik a stať sa špecialistom v tejto oblasti, odporúčam absolvovať kurzy programu založeného na informáciách z oficiálneho kurzu MikroTik Certified Network Associate. Okrem toho oficiálny program, kurzy budú laboratórne práce kde si nadobudnuté vedomosti môžete vyskúšať a upevniť v praxi. Všetky podrobnosti na stránke. Náklady na školenie sú veľmi demokratické, dobrá príležitosť na získanie nových vedomostí v predmetnej oblasti, ktorá je dnes relevantná. Vlastnosti kurzu:
  • Znalosti orientované na prax;
  • Reálne situácie a úlohy;
  • To najlepšie z medzinárodných programov.