Inštalácia DNS servera BIND je jednoduchá. Môžete si stiahnuť zdrojový kód priamo z domácej stránky projektu, alebo použiť balíčky, ktoré dodávajú jednotlivé distribúcie (pre jednoduchosť odporúčam pracovať s balíčkami).
Na začiatku si treba ujasniť, či chcete inštalovať verziu BIND-u radu 8.X.X alebo 9.X.X. Verzia 9 bola napísaná takmer odznovu, takže by mala byť lepšia, krajšia atď. a považuje sa vo všeobecnosti za bezpečnejšiu. Obsahuje tiež viacero nových funkcií. Nevýhodou je, že ak prechádzate zo staršej verzie (8.X) na novšiu (9.X), môžu sa vyskytnúť drobné problémy s niektorými parametrami, prípadne zistíte, že váš zónový súbor s údajmi o adresách počítačov obsahuje chyby, o ktorých ste dovtedy nevedeli (BIND 9 je citlivejší na chyby).
Ak inštalujete DNS na čistý server, tak nie je čo riešiť - inštalujte priamo verziu radu 9.
V nasledujúcom texte budem predpokladať inštaláciu BIND 9.2.x, ale väčšina, (ak nie všetky) vecí by mala fungovať aj pre verzie 8.X.
Všetky údaje, ktoré bude DNS server pri svojej činnosti potrebovať, budeme uchovávať v adresári "/var/named
". Inštalácia zo zdrojových textov
Po stiahnutí balíka ho rozbalíme a skonfigurujeme:
cd /var/tmp
tar xzf bind-9.x.x.tar.gz
cd bind-9.x.x
./configure --enable-threads
Ak vás zaujímajú ďalšie parametre príkazu "./configure
", môžete ho spustiť s parametrom "--help
".
./configure --help
Jeden z najpoužívanejších parametrov je "--prefix=cesta
", ktorý určuje základnú cestu, kam sa BIND nainštaluje. Štandardne je táto cesta "/usr/local/
" (BIND vytvorí pri inštalácii potrebné podadresáre).
Po skonfigurovaní (nemali by ste vidieť nijaké chyby) program skompilujte príkazom
make
Po úspešnom skompilovaní (nemali by ste vidieť nijaké chyby) nainštalujte BIND príkazom:
make install
Súbory sa prekopírujú do cieľových adresárov (štandardne "/usr/local/
"), takže samotný démon "named
" bude uložený v adresári "/usr/local/sbin
". Konfiguračný súbor "named.conf
" sa očakáva v adresári "/etc
".
Poznámka: ak inštalujete BIND zo zdrojákov (napr. preto, že balíčkové verzie neobsahujú najnovšie vlastnosti, ktoré potrebujete), nevytvorí sa štartovací skript. Preto je výhodné si tento skript skopírovať od niekoho, kto ho už má, prípadne použiť tento "postup":
- nainštalujte si balíčkovú verziu BIND (môže byť aj staršia, ale z toho istého radu!)
- skopírujte si súbor "
/etc/init.d/named
" (Debian: "/etc/init.d/bind9
", resp. "/etc/init.d/bind
") - odinštalujte balíčkovú verziu BIND
- skompilujte a nainštalujte BIND zo zdrojákov a prekopírujte uloženú verziu štartovacieho skriptu naspäť do "
/etc/init.d
" - upravte cesty v štartovacom skripte podľa potreby (kompilovaný BIND je štandardne uložený v "
/usr/local
") - vytvorte symbolické linky pre jeho spúšťanie a zastavovanie (spúšťa sa vo všetkých runleveloch okrem 0, 1 a 6, zastavuje sa v runleveloch 0, 1 a 6).
Štartovací skript "/etc/init.d/named
", "/etc/init.d/bind9
Ovládanie BINDu pomocou štartovacieho skriptu je jednoduché:
- Spustenie BINDu:
/etc/init.d/named start
- Zastavenie BINDu:
/etc/init.d/named stop
- Reštartovanie BINDu:
/etc/init.d/named restart
- Opätovné načítanie konfiguračných súborov:
/etc/init.d/named reload
Príprava vyhradeného používateľa
Démon "named
" sa štandardne spúšťa s právami roota a je otvorený útokom zo siete (ak má poskytovať údaje o doméne, nemôže byť chránený firewallom), čo je príliš nebezpečné, aby ste to dovolili. Našťastie, démon je napísaný tak, že sa vie po spustení prepnúť na iného používateľa, ktorý už nemá rootovské privilégiá. Tohto používateľa treba vytvoriť (nepoužívajte používateľa "nobody
"!).
Poznámka: poinštalačné skripty balíčkov v niektorých distribúciách Linuxu vytvára používateľa "named
" za vás! Tento fakt treba overiť kontrolou súboru "/etc/passwd
". (napr. príkazom "grep named /etc/passwd
")
vytvorenie skupiny a používateľa: Debian
groupadd named
adduser --system --disabled-login --shell /bin/false --ingroup named named
vytvorenie skupiny a používateľa: Mandrake
groupadd named
useradd -d /var/named -g named -M -s /bin/false named
Teraz vytvorte adresáre pre zónové súbory: "/var/named/primary
" pre záznamy vášho DNS (primárneho) a v prípade, že bude váš DNS server fungovať ako sekundárny server pre inú doménu, vytvorte aj adresár "/var/named/secondary
". Ďalej vytvorte adresár "/var/run/named
" a zmeňte vlastníka a skupinu na "named
" a "named
".
mkdir -p /var/named/primary
mkdir /var/named/secondary
mkdir /var/run/named
chown named:named /var/named/secondary /var/run/named
Súbor "named.conf"
Tento súbor je najdôležitejší, určuje umiestnenie zónových súborov (s údajmi o vašej doméne a adresách na tejto doméne) a mnoho parametrov pre beh démona. Umiestňuje sa väčšinou v adresári "/etc
" alebo "/etc/bind
", odporúčam však, aby ste ho umiestnili do adresára "/var/named/etc
" (vytvorte ho, ak neexistuje) a vytvorili symbolickú linku z "/etc/named.conf
":
ln -s /var/named/etc/named.conf /etc/named.conf
Dôvod tejto na prvý pohľad čudnej operácie je jednoduchý - pomôže nám to pri neskoršom zabezpečovaní démona a uzatváraní v adresári "/var/named
" pomocou volania "chroot()
". Navyše, pri editovaní súboru môžete vďaka symbolickej linke bez problémov používať cestu "/etc/named.conf
".
V konfiguračných ukážkach budeme vytvárať záznamy pre doménu "mojadomena.sk
" s adresami z rozsahu 192.168.0.0/255.255.255.0. V skutočnosti ich pochopiteľne musíte nahradiť vašimi skutočnými adresami.
Nasleduje ukážka súboru "named.conf
" s komentármi (v "named.conf
" sa ako začiatok komentára používa dvojité lomítko (//), ako to poznáte z C++, komentár platí do konca riadku; v zónových súboroch sa ako začiatok komentára používa bodkočiarka (;), tiež platí do konca riadku).
Súbor obsahuje niekoľko direktív, ktoré sú vždy ukončené bodkočiarkou. Skupiny direktív sú ohraničené znakmi { a } (ako v programovacom jazyku C).
// uvedeny kluc sluzi na ovladanie demona, este o nom bude rec! vytvara sa
// pomocou programu "rndc-confgen", ale da sa pouzit aj automaticke nastavenie
key "rndc-key" {
algorithm hmac-md5;
secret "tuC4TiKfe9evXag2tLyfJQ==";
};
// nasledujuce nastavenie umoznuje ovladat demona iba z toho stroja, na
// ktorom je spusteny. Pre vas staci vediet, ze na zaklade tohto nastavenia
// funguje "/etc/init.d/named stop" a "/etc/init.d/named reload"
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { rndc-key; };
};
options {
// adresar, v ktorom sa nachadzaju konfiguracne subory
// vsetky relativne cesty maju zaklad v tomto adresari
directory "/var/named/";
// subor s cislom procesu (pre ovladanie demona)
// adresar musi byt zapisovatelny pre pouzivatela, s ktoreho pravami sa spusta
// demon "named"!
pid-file "/var/run/named/named.pid";
auth-nxdomain yes;
// ak vas poskytovatel umoznuje pouzit jeho DNS servery na obsluhu
// poziadaviek, ktore neviete obsluzit vy, usetrite si cas a procesor, pretoze
// svoje poziadavky 'forwardujete' na jeho DNS servery
forwarders {
IP_ADRESA_DNS1_SERVERA_PROVIDERA;
IP_ADRESA_DNS2_SERVERA_PROVIDERA;
};
// direktiva 'forward only' sposobi, ze budete forwardovat poziadavky, ktore
// neviete obsluzit, t.j. tie, ktore nemate v zonovych suboroch
forward only;
};
// obmedzi logovanie chyb, ktore nie su dolezite
logging {
category lame-servers { null; };
};
// adresy korenovych suborov
// TENTO SUBOR NEMENTE!
zone "." {
type hint;
file "named.ca";
};
// reverzny zaznam pre localhost
// TENTO SUBOR NEMENTE
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
// zaznam pre domenu "mojadomena.sk"
// TENTO SUBOR UPRAVTE PODLA POTREBY
zone "mojadomena.sk" {
type master;
file "primary/mojadomena.sk.zone";
};
// reverzne zaznamy pre domenu "mojadomena.sk"
// TENTO SUBOR UPRAVTE PODLA POTREBY VZDY PRI ZMENE PREDCH. SUBORU!
zone "0.168.192.in-addr.arpa" {
type master;
file "primary/mojadomena.sk.reverse";
};
// takto vyzera definicia, ak je vas DNS sekundarny server pre domenu
// "inadomena.sk", ktorej primarny DNS server ma adresu 10.0.0.1
// TENTO SUBOR NEMENTE, KOPIRUJE SA Z PRIMARNEHO NAMESERVERA DANEJ DOMENY!
zone "inadomena.sk" {
type slave;
file "secondary/inadomena.sk.zone";
masters { 10.0.0.1 ; };
};
Komentáre