A DNS (Domain Name Service) szolgáltatás az egyik legnépszerűbb a világon, hiszen ez teszi lehetővé, hogy kiszolgálóinkat ne csak a "ronda" IP-cím ismeretében érjék el, hanem egy könnyen megjegyezhető domain-név is tartozzon hozzá. A módszer mindenki számára ismerős, csakhogy meglepően kevesen ismerik a DNS szerverek működését, konfigurálását. A DNS szerverek közel egyidősek az Internettel, és eredendően Unix alapúak, így teljesen logikus, hogy kedvenc Linuxunk is alkalmas e szolgáltatás indítására. Linux alatt két alkalmazás lett ismert: a BIND és a djbdns. A BIND régebbi, meglehetősen sok helyen használt segédeszköz; annak ellenére, hogy az elműlt években több biztonsági rést is felfedeztek benne, még mindig az egyik legegyszerűbben konfigurálható és használható DNS-szerver. A djbdns kicsi, robusztus alkalmazás, használatához az átlagosnál mélyebb névfeloldási ismeretekkel kell rendelkezünk.
Jelen cikkünkben nem térünk ki a domain-nevek regisztrálásának menetére, annak szabályozására, ezzel kapcsolatban internetszolgáltatónk, illetve a Közháló ügyfélszolgálat ad bővebb tájékoztatást. Fontos tudni, hogy a publikus DNS-szolgáltatás kizárólag jól konfigurált, működőképes névszerver esetén vehető át, így indítása előtt mindenképpen tanulmányozzuk át az idevonatkozó szabályokat. Névszerverünk konfigurációját a http://www.domain.hu/domain/regcheck/ címen található online eszköz is segíti.Elsőként ismerkedjünk meg a BIND-del. A Berkeley Internet Name Domain meglehetősen patinás program: a DARPA idejéből származik. Fejlesztésében olyan nagy nevek vettek részt, mint Douglas Terry, Paul Vixie és még számos elismert szakember keze munkája fedezhető fel benne. Sok verziója látott napvilágot, a legutóbbi, 9-es változatot alapjaiban írták át, növelve ezzel hatákonyságát és megbízhatóságát. Ez utóbbi meglehetősen ráfért, hiszen elég sok támadási felületet nyújtott a rosszakarók számára. A BIND szinte mindegyik disztribúcióban megtalálható, de természetesen forrásként is letölthető az ISC weblapjáról.
Telepítés után a következőket kell találnunk rendszerünkben:
- /etc/bind könyvtár, benne db kezdetű file-ok,
- /var/cache/bind alkönyvtárKezdjük a /etc/bind directory-val. A db-vel kezdődő file-ok az ún. zónaleírók, ezek fogják tartalmazni az egyes domain zónák adatait. A named.conf-ban találjuk a BIND működésével összefüggő konfigurációs elemeket, nézzünk bele:
listen-on port 53 {
127.0.0.1 ;
a.b.c.d;
};
A DNS-szolgáltatás szabványosan az 53-as TCP és UDP portokon keresztül történik, ezt lehetőség szerint ne bántsuk, mi több, a nagyvilágnak szánt szolgáltatás esetén engedélyezzük a tűzfalon is e portokhoz való hozzáférést. A kapcsos zárójelben találjuk azokat a címeket, melyeken névszerverünk kéréseket fogad, ide mindenképpen írjuk be szerverünk IP-címét.
zone "domain.hu" {
type master;
file "/etc/bind/db.domain";
};
A fenti szekcióban a domainünk leírását tartalmazó zónafile helyét, illetve a zóna nevét, valamint a zóna "felelősségét" adjuk meg. A zónafile neve tetszőleges lehet, célszerű azonban a konvencióknak megfelelő db.zonanev formátumhoz igazodni. Amennyiben elsődleges (primary) névszerverei kívánunk lenni egy adott zónának, úgy master, másodlagos (secondary) esetén slave opciót kell megadnunk. Nagyon fontos, hogy reverse zónafile-okkal is rendelkezzünk, hiszen ezek segítségével fogja névszerverünk megmondani az egy adott IP-hez tartozó domain-nevet. Ezek a file-ok in-addr.arpa végződésűek lesznek, kitöltésük, karbantartásuk létfontosságú is lehet (pl. több levelezőszerver csak akkor kommunikál velünk, ha domain-nevünk és reverse címünk megegyezik). Következő alkalommal egy zónafile felépítését vizsgáljuk meg.