BIND
Telepítsük fel azt a szoftvert, amely szükséges ahhoz, hogy a
BIND9 segítségével megvalósíthassuk a DNS szerverünket.
# apt-get install bind9
Láthatjuk, amint a telepítés végén létrejön egy csoport és egy
felhasználói account, illetve egy rndc.key nevű fájl a
/etc/bind könyvtárban, majd elindul a szolgáltatás:
Setting up bind9 (9.3.4-2) ... Adding group `bind' (GID 103) ... Done. Adding system user `bind' (UID 101) ... Adding new user `bind' (UID 101) with group `bind' ... Not creating home directory `/var/cache/bind'. wrote key file "/etc/bind/rndc.key" Starting domain name service...: bind.
Állítsunk le a konfigurálás idejére:
# /etc/init.d/bind9 stop
A /etc/default könyvtárban található egy bind9 nevű
állomány, amely mindössze az alábbiakat tartalmazza:
OPTIONS="-u bind" RESOLVCONF=yes
Ez azt okozza, hogy a BIND9 a bind nevű felhasználó
és csoport nevében fog futni, tehát nem root
jogosultságokkal.
A /etc/bind könyvtárban találhatóak a konfigurációs
állományok:
named.conf- az elsődleges konfigurációs állomány, a többi ebbe kerül beágyazásra (az include opció segítségével);named.conf.local- a lokális zónák megadására szolgáló fájl;named.conf.options- egyéb opciók megadására szolgáló fájl.
A named.conf állományt hagyjuk változatlanul, és csak a
másik két fájlra fordítsuk a figyelmünket. A
named.conf.options fájl felépítése az egyszerűbb, ezért
először azzal kezdjük a konfigurálást.
Amikor készen vagyunk, akkor így néz ki a konfigurációs állomány:
acl belso_halo { 192.168.10.253; 192.168.10.252; };
options {
directory "/var/cache/bind";
check-names response warn;
allow-query { localhost; belso_halo; };
allow-recursion { localhost; belso_halo; };
auth-nxdomain no;
listen-on { 127.0.0.1; 192.168.10.254; };
listen-on-v6 { none; };
};
Az acl opciókban előre felsorolhatjuk az IP címeket, és adhatunk nekik egy-egy nevet, majd ezeket a neveket használhatjuk a többi opcióban. Ily módon egyetlen helyen tudjuk karbantartani az IP címeket, nem kell minden opciónál külön-külön.
A directory opció határozza meg, hogy melyik könyvtárban
tárolhatjuk a named.conf.local fájlban megadott
zónafájljainkat.
A query-source address opció azt határozza meg, hogy
melyik interfészen melyik portról indítsa a lekérdezéseket a
BIND9. Amennyiben kikommentezve hagyjuk, akkor a
szerverünk úgy fog viselkedni (lekérdezés szempontjából), mint
egy egyszerű kliens (az 1024-es portjánál magasabb portról fogja
indítani a lekérdezéseket).
A check-names opció a konfigurációs hibákra adott viselkedést szabályozza. Külön lehet szabályozni, hogy mi történjen, ha a saját elsődleges zónáiban (master), ha a másodlagos zónákban (slave), illetve egy kérdésre kapott válaszban (response) talál hibát. Három értéket lehet beállítani mindegyik eseteben:
- fail - hibaüzenetet ír a logfájlba, és az adatot nem veszi
figyelembe;
- warn - hibaüzenetet ír a logfájlba;
- ignore - nem törődik a hibával.
Az allow-query opció annak korlátozását teszi lehetővé, hogy kiktől fogadjon el kérést (illetve milyen címekről, címtartományokból érkező kérésekre válaszoljon) a szerver.
Az allow-recursion opcióval azt tudjuk szabályozni, hogy a szerverünk mely klienseknek válaszoljon a saját zónáin kívül eső adatokkal kapcsolatban.
A listen-on opció azt befolyásolja, hogy mely hálózati címeken figyeljen IPv4-en. Mivel kívülről nem akarjuk megengedni, hogy meg tudják szólítani (felesleges is lenne, hiszen nincs olyan adat, amelyet szolgáltatni tudna), ezért elég csak a lokális és a belső interfész címét felvenni.
A listen-on-v6 opció azt szabályozza, hogy mely hálózati kártyákon figyeljen IPv6-on.
Létezik egy max-cache-size nevű opció, amelynek a segítségével lehet limitálni a gyorsítótárnak használt memória méretét (byte-ban kell megadni). Ha túl kevés memóriát adunk a szolgáltatásnak, akkor az kihat a kiszolgálás sebességére. Érdemes pár héten keresztül korlátozás nélkül futtatni a szolgáltatást, annyi idő alatt be fog állni egy megközelítőleg stabil értékre a memóriafoglalás, majd ezt az értéket figyelembe véve kell beállítani a limitet. Ideális esetben ez a limit magasabbra van állítva, mint a tapasztalt stabil érték.
Ezen a gépen a /etc/resolv.conf fájlban célszerű saját
magát (tehát a 127.0.0.1 IP címet) beírni a nameserver
sorba, illetve a search opcióban a belső hálózat zónáját
megadni. Tehát így nézzen ki a fájl:
search akarmi.intra nameserver 127.0.0.1
A named.conf.local fájlnak kell tartalmaznia azt, hogy az
egyes zónákhoz hogyan viszonyuljon a DNS szerverünk. Jelen
példában nem a tűzfalunkon van a saját (Interneten beregisztrált)
zónánk (hanem például a szolgáltatónk kezeli), így semmilyen
zónát nem kell felvennünk a tűzfalon futó DNS szerverbe.
Végeztünk is az alapvető konfigurálással, most már rendelkezünk
egy működő DNS szerverrel, csak el kell indítanunk a
/etc/init.d/bind9 start paranccsal. Az indítást követően
ellenőrizzük a logokban, hogy hibaüzenet nélkül indult el,
illetve például a netstat -natp paranccsal, hogy figyel-e
a megfelelő interfészeken.
Kosa Attila
2009-03-23