GunZ - linux, security, programing

Vytlač príspevok
Odporuč príspevok
Bookmark and Share PRIDAŤ NA VYBRALI.SME.SK

DNS (Domain Name System) - 3. cast - instalacia

V tejto kapitole si povieme ako si na server nahodime znamy bind9.

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":

  1. nainštalujte si balíčkovú verziu BIND (môže byť aj staršia, ale z toho istého radu!)
  2. skopírujte si súbor "/etc/init.d/named" (Debian: "/etc/init.d/bind9", resp. "/etc/init.d/bind")
  3. odinštalujte balíčkovú verziu BIND
  4. skompilujte a nainštalujte BIND zo zdrojákov a prekopírujte uloženú verziu štartovacieho skriptu naspäť do "/etc/init.d"
  5. upravte cesty v štartovacom skripte podľa potreby (kompilovaný BIND je štandardne uložený v "/usr/local")
  6. 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 ; };
};


linux | stály odkaz

Komentáre

Pozor, na konci je potreba spočítať neľahkú matematickú úlohu! Inak komentár nevložíme. Pre tých lenivejších je tam tlačidlo kúzlo.



Prevádzkované na CMS TeaGuru spoločnosti Singularity, s.r.o., © 2004-2014