Pozývame vás na konferenciu Otvorený softvér vo vzdelávaní, výskume a v IT riešeniach 2012, ktorá sa uskutoční sa v dňoch 2. - 4. júla 2012 v areáli Žilinskej univerzity. Pozývame vás rovnako ako prednášajúcich, tak aj ako poslucháčov.
Táto časť hovorí o spôsoboch, akými môžeme zistiť príčiny vzniknutých problémov s DNS a BIND9.
Ak chceme začať testovať BIND9, je potrebné pridať servery do zoznamu menných serverov. Pre istotu primárny menný server nakonfigurujeme rovnako ako ostatné stanice. Otvoríme súbor /etc/resolv.conf a pridáme nasledujúce riadky:
nameserver 192.168.1.10 nameserver 192.168.1.11
|
Môžete tiež pridať IP adresu sekundárneho servera pre prípad, že primárny nebude fungovať. |
|---|---|
Ak máme nainštalovaný balík dnsutils, môžeme otestovať nastavenie dns pomocou nástroja dig:
Po nainštalovaní BIND9 použijeme dig ako rozhranie so spätnou väzbou, aby sme sa uistili, či server načúva na porte 53. V príkazovom riadku zadáme:
dig -x 127.0.0.1
Mali by sme uvidieť riadky podobné týmto:
;; Query time: 1 msec ;; SERVER: 192.168.1.10#53(192.168.1.10)
Ak máme BIND9 nastavený ako menný server s dočasnou pamäťou, môžeme príkaz "dig" použiť na otestovanie rýchlosti odpovede na požiadavku:
dig ubuntu.com
Všimneme si čas požiadavky na konci výstupu:
;; Query time: 49 msec
Po opätovnom zadaní tej istej požiadavky by sme mali dostať oveľa kratší čas:
;; Query time: 1 msec
Teraz si ukážeme, ako môžeme otestovať DNS, či správne prekladá mená staníc. Použijeme na to nástroj ping, ktorý odošle ICMP echo požiadavku. Do príkazového riadka zadáme:
ping nieco.sk
V prípade, že menný server bude vedieť preložiť adresu ns.nieco.sk na IP adresu, mal by výstup vyzerať takto:
PING ns.nieco.sk (192.168.1.10) 56(84) bytes of data. 64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.800 ms 64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.813 ms
Výborný spôsob, akým sa dajú otestovať zónové súbory, je použitie nástroja named-checkzone, ktorý sa nainštaloval pri inštalácii balíka bind9. Tento nástroj umožňuje zistiť, či je konfigurácia pred reštartovaním BIND9 správna a umožňuje robiť zmeny za behu.
Ak chceme otestovať náš priamy zónový súbor, zadáme toto:
named-checkzone nieco.sk /etc/bind/db.nieco.sk
Ak je všetko nastavené správne, mal by výstup vyzerať takto:
zone nieco.sk/IN: loaded serial 6 OK
Podobne môžeme otestovať aj reverzný zónový súbor:
named-checkzone nieco.sk /etc/bind/db.192
Výstup by mal vyzerať takto:
zone nieco.sk/IN: loaded serial 3 OK
|
Čísla Serial sa budú vo Vašom prípade pravdepodobne odlišovať. |
|---|---|
BIND9 má veľa rôznych nastavení týkajúcich sa zaznamenávania. Hlavné nastavenia sú dve. Nastavenie channel (kanál) hovorí o tom, kam pôjdu záznamy a nastavenie category (kategória) určuje, aké informácie budú zaznamenávané.
Ak nie sú nakonfigurované žiadne nastavenia, použije sa predvolené nastavenie:
logging { category default { default_syslog; default_debug; }; category unmatched { null; }; };
Táto časť hovorí o tom, ako nakonfigurovať BIND9 tak, aby odosielal debug (ladiace) správy súvisiace s DNS požiadavkami do samostatného súboru.
Najskôr nastavíme kanál tak, aby systém vedel kam má správy odosielať. Otvoríme súbor /etc/bind/named.conf.local
a pridáme nasledujúce riadky:
logging { channel query.log { file "/var/log/query.log"; severity debug 3; }; };
Potom nastavím kategóriu, aby systém odosielal všetky DNS požiadavky do súboru query.log:
logging { channel query.log { file "/var/log/query.log"; severity debug 3; }; category queries { query.log; }; };
|
Poznámka: nastavenie debug môžete meniť v rozsahu 1 až 3. Ak ho nezadáte, použije sa úroveň 1. |
|---|---|
Pretože démon named je spustený pod používateľom bind po vytvorení súboru /var/log/query.log
musíme zmeniť jeho vlastníctvo:
sudo touch /var/log/query.log
sudo chown bind /var/log/query.log
Pred tým, ako bude môcť démon named zapisovať do nového log súboru, musíme aktualizovať profil AppArmor. Najskôr otvoríme súbor /etc/apparmor.d/usr.sbin.named a pridáme:
/var/log/query.log w,
Potom nanovo načítame profil:
cat /etc/apparmor.d/usr.sbin.named | sudo apparmor_parser -r
Viac informácii o AppArmor sa dozviete v časti “AppArmor”
Teraz reštartujeme BIND9 aby sa zmeny prejavili:
sudo /etc/init.d/bind9 restart
Teraz by sme mali vidieť v súbore /var/log/query.log informácie o požiadavkách. Toto je len veľmi jednoduchá ukážka toho, ako sa konfigurujú nastavenia zaznamenávania systému
BIND9. Podrobnejšie informácie sa dozviete v časti “Viac informacií”.