23. fejezet - A DNS (tartománynévrendszer, Domain Name System)

Tartalomjegyzék

23.1. DNS-terminológia
23.2. Telepítés
23.3. Beállítás a YaST segítségével
23.4. BIND névkiszolgáló elindítása
23.5. Az /etc/named.conf konfigurációs fájl
23.6. Zónafájlok
23.7. A zónaadatok dinamikus frissítése
23.8. Biztonságos tranzakciók
23.9. Biztonságos DNS
23.10. További információ

Kivonat

A DNS (tartománynévrendszer) a tartomány- és gépneveket IP-címekké alakító rendszer. A 192.168.2.100 IP-cím például a jupiter gépnévhez lehet rendelve. Egy saját névkiszolgáló beállítása előtt olvassa el az általános tudnivalókat a DNS-ről: 21.3. - Névmegfeleltetés. Az alábbi konfigurációs példák a BIND-ra hivatkoznak.

23.1. DNS-terminológia

Zóna (zone)

A tartomány névtere zónáknak nevezett részekre van osztva. Az example.com például a com tartomány example nevű részét (vagy zónáját) jelenti.

DNS-kiszolgáló

A DNS-kiszolgáló egy olyan kiszolgáló, amelyik egy adott tartomány név- és IP-adatait kezeli. Működhet egy elsődleges DNS-kiszolgáló az elsődleges zónához, egy másodlagos kiszolgáló a másodlagos zónához, vagy egy másodlagos kiszolgáló zónák nélkül, csak gyorsítótárazáshoz.

Elsődleges zóna DNS-kiszolgálója

Az elsődleges (master) zóna tartalmazza a hálózat összes gépét, és az elsődleges zóna a DNS-kiszolgálón tartalmazza a legfrissebb adatokat a tartomány összes gépéről.

Másodlagos zóna DNS-kiszolgáló

A másodlagos zóna az elsődleges zóna másolata. A másodlagos zóna DNS-kiszolgálója a zónaadatokat az elsődleges kiszolgálótól kapja, ún. zónatranszfer-műveletek keretében. A másodlagos zóna DNS-kiszolgálója hatályos adatokat szolgáltat a zónáról, feltéve, hogy érvényes (nem lejárt) zónaadatokkal rendelkezik. Ha a másodlagos kiszolgáló nem tudja lekérni a zónaadatokat, akkor abbahagyja a zónára vonatkozó kérések kiszolgálását.

Továbbító (forwarder)

A továbbítók olyan DNS-kiszolgálók, amelyekhez a saját DNS-kiszolgáló továbbítani tudja az olyan kéréseket, amelyeket maga nem tud megválaszolni. Arra, hogy ugyanazon konfiguráción belül többféle konfigurációs forrást is meg lehessen adni, a netconfig használható (lásd még: man 8 netconfig).

Rekord

A rekordok tárolják az adatokat a nevekről és az IP-címekről. A támogatott rekordtípusokat és szintaxisukat a BIND dokumentációja írja le. Néhány fontosabb rekord:

NS rekord

Az NS rekord mondja meg a névkiszolgálók számára, hogy egy adott tartományzónáért mely gépek felelősek.

MX rekord

Az MX (mail exchange, levélcsere) rekordok írják le, hogy mely gépek felelősek az adott zónával kapcsolatos levelek irányításáért az interneten.

SOA rekord

A SOA (Start of Authority, jogosultság kezdete) rekord a zónafájl első rekordja. A SOA rekord akkor használatos, amikor a DNS szinkronizálja az adatokat több gép között.

23.2. Telepítés

A DNS-kiszolgáló telepítéséhez indítsa el a YaST-ot és válassza ki a Szoftver+Szoftver telepítése és eltávolítása menüpontot. Válassza ki a Szűrő+Minták menüpontot, majd a DHCP- és DNS-kiszolgáló pontot. A telepítési folyamat befejezéséhez erősítse meg a függő csomagok telepítését.

23.3. Beállítás a YaST segítségével

Használja a YaST DNS-modulját a DNS-kiszolgáló beállításához. A modul első indításakor megjelenik egy varázsló, és feltesz néhány alapkérdést a kiszolgáló felügyeletével kapcsolatban. A kezdeti beállítások végeztével egy alapbeállításokkal rendelkező DNS-kiszolgálót kapunk. A szakértői módban olyan speciális beállítások végezhetők el, mint az ACL-ek beállítása, a naplózás, a TSIG-kulcsok megadása és még sok egyéb.

23.3.1. Beállító varázsló

A varázsló három lépésből (párbeszédablakból) áll. A párbeszédablakok megfelelő helyein be lehet lépni a szakértői beállítási módba.

  1. A modul első elindításakor megjelenik a Továbbítók beállításai párbeszédablak (23.1. ábra - DNS-kiszolgáló telepítése: Továbbítók beállításai). A Netconfig DNS irányelv határozza meg, hogy az eszközök biztosítanak-e továbbítókat, vagy van saját Továbbítók listája. További információ a netconfigról: man 8 netconfig.

    23.1. ábra - DNS-kiszolgáló telepítése: Továbbítók beállításai

    DNS-kiszolgáló telepítése: Továbbítók beállításai

    A továbbítók olyan DNS-kiszolgálók, amelyekhez a saját DNS-kiszolgáló továbbítani tudja az olyan kéréseket, amelyeket maga nem tud megválaszolni. Adja meg az IP-címet és nyomja meg a Hozzáadás gombot.

  2. A DNS-zónák párbeszédablak több részből áll, és ez felelős a 23.6. - Zónafájlok részben leírt zónafájlok kezeléséért. Új zóna létrehozásához a Név mezőben adjon meg egy nevet. Visszirányú zóna felvétele esetén a névnek az .in-addr.arpa karaktersorozatra kell végződnie. Végül válassza ki a Típust (elsődleges, másodlagos vagy továbbító). Lásd: 23.2. ábra - DNS-kiszolgáló telepítése: DNS-zónák. A már meglévő zónához tartozó beállításokhoz nyomja meg a Szerkesztés gombot. A zóna eltávolításához nyomja meg a Törlés gombot.

    23.2. ábra - DNS-kiszolgáló telepítése: DNS-zónák

    DNS-kiszolgáló telepítése: DNS-zónák

  3. Az utolsó párbeszédablakban nyithatja meg a telepítés során aktivált tűzfal portjait a DNS-szolgáltatás számára a Tűzfalport megnyitása pont megjelölésével. Ezt követően válassza ki, hogy indításkor hogyan viselkedjen a DNS-kiszolgáló (Be vagy Ki legyen kapcsolva). Az LDAP-támogatás is aktiválható. Lásd: 23.3. ábra - DNS-kiszolgáló telepítése: A varázsló használatának befejezése.

    23.3. ábra - DNS-kiszolgáló telepítése: A varázsló használatának befejezése

    DNS-kiszolgáló telepítése: A varázsló használatának befejezése

23.3.2. Szakértői beállítások

A modul elindítása után a YaST megnyit egy ablakot, amely számos beállítási lehetőséget jelenít meg. A beállítások megadására létrejön egy DNS-kiszolgálókonfiguráció, amelynek a legfontosabb funkciói már működnek.

23.3.2.1. Indítás

Az Indítás részben lehet beállítani, hogy a DNS-kiszolgáló elinduljon-e rendszerindításkor, vagy kézzel legyen elindítva. A DNS-kiszolgáló azonnali elindításához nyomja meg a DNS-kiszolgáló indítása most gombot. A DNS kiszolgáló leállításához nyomja meg a DNS-kiszolgáló leállítása most gombot. Az aktuális beállítások mentéséhez nyomja meg a Beállítások mentése és a DNS-kiszolgáló újraindítása most gombot. A Tűzfalport megnyitása ablakban megnyitható a tűzfal DNS-portja, a Tűzfalbeállítások segítségével pedig módosíthatók a tűzfalbeállítások.

Az LDAP-támogatás aktív négyzet megjelölése esetén a zónafájlokat egy LDAP-adatbázis felügyeli. Az LDAP-adatbázisba írt zónaadat-módosításokat a DNS-kiszolgáló újraindításkor vagy a konfiguráció ismételt betöltésére való felszólításkor veszi át.

23.3.2.2. Továbbítók

Ha a helyi DNS-kiszolgáló nem tud megválaszolni egy kérést, akkor megpróbálja azt továbbítani egy Továbbító felé, amennyiben így lett beállítva. A továbbító kézzel vehető fel a Továbbítók listája részbe. Ha a továbbító nem statikusan van megadva (ilyen a helyzet például telefonos kapcsolatok esetében), akkor a konfigurációt a netconfig kezeli. További információ a netconfigról: man 8 netconfig.

23.3.2.3. A legfontosabb beállítások

Ebben a részben adja meg a kiszolgáló legfontosabb beállításait. Az Opciók menüben válassza ki a kívánt elemet, majd a megfelelő beviteli mezőben adja meg az értékét. A Hozzáadás gomb megnyomásával vegye fel az új bejegyzést.

23.3.2.4. Naplózás

A Naplózás részben állítható be, hogy DNS-kiszolgáló mit naplózzon és hogyan. A Naplózás típusa alatt adja meg, hogy a DNS-kiszolgáló hova írja a naplóadatokat. A Rendszernapló kiválasztása esetén a /var/log/messages rendszerszintű naplófájl kerül használatra, vagy a Fájl gombbal megadható egy másik fájl. Az utóbbi esetben adjon meg egy nevet, adja meg a maximális fájlméretet (megabyte-ban), valamint a tárolandó naplófájlok számát.

További lehetőségek a További naplózás részben érhetők el. Az Összes DNS-lekérdezés naplózása megjelölése esetén minden lekérdezés naplózásra kerül. Ebben az esetben a naplófájl nagyon nagyra nőhet. Éppen ezért a hibakeresést leszámítva nem túl jó ötlet a funkció bekapcsolása. A zónafrissítés során a DHCP- és DNS-kiszolgáló közötti adatforgalom naplózásához engedélyezze a Zónafrissítések naplózása lehetőséget. Az elsődleges és másodlagos kiszolgálók közötti zónatranszfer adatforgalmának naplózása a Zónatranszferek naplózása lehetőséggel engedélyezhető. Lásd: 23.4. ábra - DNS-kiszolgáló: Naplózás.

23.4. ábra - DNS-kiszolgáló: Naplózás

DNS-kiszolgáló: Naplózás

23.3.2.5. ACL-ek

Ebben az ablakban lehet megadni a hozzáférési megszorítások betartatása érdekében ACL-eket (hozzáférés-vezérlési listákat). A Név mezőben adjon meg egy nevet, az Érték mezőben adjon meg egy IP-címet (hálózati maszkkal, vagy anélkül) az alábbi módon:

{ 192.168.1/24; }

A konfigurációs fájl szintaxisa megköveteli, hogy a cím pontosvesszővel végződjön és kapcsos zárójelek határolják.

23.3.2.6. TSIG-kulcsok

A TSIG-k (tranzakció-aláírások) fő célja a DHCP- és DNS-kiszolgálók közötti kommunikáció biztonságossá tétele. A TSIG-kulcsok bemutatása: 23.8. - Biztonságos tranzakciók

TSIG-kulcs előállításához a Kulcsazonosító mezőben adjon meg egy egyedi nevet és adja meg a fájlt, amelyben a kulcsot tárolni kívánja (Fájlnév). A Létrehozás gomb megnyomásával erősítse meg a beállításokat.

Egy már korábban létrehozott kulcs használatához hagyja üresen a Kulcsazonosító mezőt, majd a Fájlnév mezőben válassza ki a tároláshoz használt fájlt. Végül nyomja meg a Hozzáadás gombot.

23.3.2.7. DNS zónák (másodlagos zóna hozzáadása)

Egy másodlagos zóna hozzáadásához válassza ki a DNS zónák részt, adja meg a zóna típusát Másodlagos, írja be az új zóna nevét, majd kattintson a Hozzáadás gombra.

A Zónaszerkesztőben az Elsődleges (master) DNS-kiszolgáló IP részben adja meg az elsődleges kiszolgálót, ahonnan a másodlagos kiszolgáló majd veszi az adatokat. A kiszolgáló hozzáférésének korlátozásához válassza ki a lista valamelyik ACL-jét.

23.3.2.8. DNS zónák (elsődleges zóna hozzáadása)

Egy elsődleges zóna hozzáadásához válassza ki a DNS zónák részt, adja meg a zóna típusát Elsődleges, írja be az új zóna nevét, majd kattintson a Hozzáadás gombra. Az elsődleges (master) zóna hozzáadásakor, egy fordított (reverse) zónát is hozzá kell adni. Például a pelda.hu zóna hozzáadásakor, ami a 192.168.1.0/24 alhálózatban található gépekre mutat, akkor fel kell venni egy fordított (reverse) zónát is a megadott IP-címtartományra. A meghatározás szerint ezt 1.168.192.in-addr-arpa névvel kell ellátni.

23.3.2.9. DNS zónák (elsődleges zóna szerkesztése)

Egy elsődleges zóna módosításához válassza ki a DNS zónák részt, válassza ki a táblázatból az elsődleges zónát, majd kattintson a Szerkesztés gombra. A párbeszédablak több lapból áll: Alapbeállítások (ez jelenik meg elsőként), NS bejegyzések, MX bejegyzések, SOA és Bejegyzések.

A beállítóablakban (23.5. ábra - DNS-kiszolgáló: Zónaszerkesztő (alapok)) megadhatók a dinamikus DNS beállításai, valamint a zónák kliensekhez és másodlagos névkiszolgálókhoz átadásának a hozzáférési beállításai. A zónák dinamikus frissítésének engedélyezéséhez állítsa be a Dinamikus frissítések engedélyezése lehetőséget, valamit a hozzátartozó TSIG-kulcsot. A frissítés indítása előtt szükség van a kulcsra. A zónatranszferek engedélyezéséhez válassza ki az ehhez tartozó ACL-eket. ACL-eket korábban definiálni kell.

Az alapbeállítások ablakban állítsa be a zónatranszferek engedélyezését. Annak megadásához, hogy ki tölthet le zónákat, válassza ki a megfelelő ACL-eket.

23.5. ábra - DNS-kiszolgáló: Zónaszerkesztő (alapok)

DNS-kiszolgáló: Zónaszerkesztő (alapok)

Zónaszerkesztő (NS bejegyzések)

Az NS bejegyzések ablakban alternatív névkiszolgálóneveket lehet megadni a megadott zónákhoz. Ellenőrizze, hogy a saját névkiszolgálónév benne van-e a listában. Egy bejegyzés hozzáadásához a Névkiszolgáló mezőben adja meg a nevét, majd nyomja meg a Hozzáadás gombot. Lásd: 23.6. ábra - DNS-kiszolgáló: Zónaszerkesztő (NS bejegyzések).

23.6. ábra - DNS-kiszolgáló: Zónaszerkesztő (NS bejegyzések)

DNS-kiszolgáló: Zónaszerkesztő (NS bejegyzések)

Zónaszerkesztő (MX bejegyzések)

Ha fel kíván venni egy levelezőkiszolgálót az aktuális zóna meglévő listájába, akkor írja be a megfelelő címet és prioritásértéket. Ezután nyomja meg a Hozzáadás gombot. Lásd: 23.7. ábra - DNS-kiszolgáló: Zónaszerkesztő (MX bejegyzések).

23.7. ábra - DNS-kiszolgáló: Zónaszerkesztő (MX bejegyzések)

DNS-kiszolgáló: Zónaszerkesztő (MX bejegyzések)

Zónaszerkesztő (SOA)

Ezen az oldalon lehet SOA (start of authority, jogosultság kezdete) bejegyzéseket létrehozni. Az egyes lehetőségek leírása: 23.6. példa - A /var/lib/named/example.com.zone fájl

23.8. ábra - DNS-kiszolgáló: Zónaszerkesztő (SOA)

DNS-kiszolgáló: Zónaszerkesztő (SOA)

Zónaszerkesztő (bejegyzések)

Ebben a párbeszédablakban szabályozható a névfeloldás. A Bejegyzés kulcsa menüpontban adja meg a gépnevet, majd válassza ki a típusát. Az A bejegyzés a fő bejegyzést ábrázolja. Ennek értéke IP-cím kell, hogy legyen. A CNAME egy másodlagos név. A részletes vagy részleges bejegyzések esetén használja az NS vagy MX típust, amelyek az NS bejegyzések és MX bejegyzések lapokon megadott információt terjesztik ki. Ez a három típus egy meglévő A rekordra kerül feloldásra. A PTR a fordított zónákhoz való. Pont az A rekord fordítottja, például:

hostname.example.com. IN A 192.168.0.1
1.0.168.192.in-addr.arpa IN PTR hostname.example.com.
[Note]Fordított (reverse) zóna szerkesztése

A továbbító (forward) zóna hozzáadása után vissza kell menni a főmenübe és a szerkesztéshez ki kell választani a fordított (reverse) zónát. Az Alapbeállítások lapon található Bejegyzés automatikus létrehozása bekapcsolása után ki kell választani a továbbító (forward) zónát. Így minden, a továbbító zónában történt változás automatikusan frissítésre kerül a fordított zónában.

23.4. BIND névkiszolgáló elindítása

Az openSUSE rendszeren a BIND (Berkeley Internet Name Domain) névkiszolgáló előre be van állítva, így akár közvetlenül a telepítés után gond nélkül elindítható. Ha már rendelkezik egy működő internetkapcsolattal és az /etc/resolv.conf fájlban a localhost bejegyzéshez beírta a 127.0.0.1 névkiszolgálócímet, akkor máris rendelkezik egy működő névfeloldással anélkül, hogy a szolgáltató DNS-ét ismerné. A BIND ekkor a névfeloldást a root névkiszolgálón keresztül hajtja végre, ez viszont meglehetősen lassú folyamat. Célszerűbb beírni a szolgáltató DNS-kiszolgálójának címét az /etc/named.conf konfigurációs fájlba a forwarders részbe a hatékony és biztonságos névfeloldás biztosítása érdekében. Ha ez működik, akkor a névkiszolgáló csak ideiglenesen tároló</emphasis> (caching-only) névkiszolgálóként működik. Teljeskörű DNS-kiszolgálóvá akkor válik, ha beállít egy saját zónát. Nézze meg a /usr/share/doc/packages/bind/config fájlban található egyszerű példát.

[Tip]A névkiszolgáló-adatok automatikus igazítása

Az internet- vagy hálózati kapcsolat típusától függően a névkiszolgáló adatai automatikusan a meglévő állapotokhoz igazíthatók. Ehhez, állítsa be a NETCONFIG_DNS_POLICY változót a /etc/sysconfig/network/config fájlt auto értékre.

Azonban ne állítson be semmilyen hivatalos tartománynevet ha nem tulajdonosa vagy adminisztrátora az annak. Még ha rendelkezik is saját tartománnyal, ha azt a szolgáltató felügyeli, ne állítson be rá névfeloldást házon belül, mert akkor a BIND nem fogja továbbítani a kéréseket ehhez a tartományhoz. A szolgáltatónál lévő webkiszolgáló például ilyenkor nem lenne elérhető a tartományból.

A névkiszolgáló elindításához adja ki az rcnamed start parancsot root felhasználóként. Ha a done üzenet jelenik meg a jobb oldalon zölddel, a névkiszolgáló nevével, akkor az elindítás sikeresen megtörtént. A host vagy dig programok segítségével tesztelje azonnal a névkiszolgálót a helyi rendszeren, amelynek a localhost értéket kell visszaadnia alapértelmezett kiszolgálóként a 127.0.0.1 címmel. Ha nem ez a helyzet, akkor az /etc/resolv.conf valószínűleg helytelen névkiszolgáló-bejegyzést tartalmaz, vagy a fájl nem is létezik. Az első teszteléskor adja ki a host 127.0.0.1 parancsot, amelynek mindig működnie kell. Ha hibaüzenetet kap, akkor az rcnamed status parancs segítségével nézze meg, hogy a kiszolgáló pillanatnyilag fut-e. Ha a névkiszolgáló nem indul el vagy nem a várt módon viselkedik, akkor ennek oka általában a /var/log/messages hibafájlban megtalálható.

Ha továbbítóként a szolgáltató névkiszolgálóját (vagy egy a hálózaton már futó névkiszolgálót) kívánja használni, akkor a forwarders alatt lévő options részbe írja be a megfelelő IP-címet vagy -címeket. A példában (23.1. példa - Továbbítási beállítások a named.conf fájlban) látható címek helyett természetesen a valódi címeket kell használni. A bejegyzések az Ön beállításainak feleljenek meg.

23.1. példa - Továbbítási beállítások a named.conf fájlban

options { 
        directory "/var/lib/named";
        forwarders { 10.11.12.13; 10.11.12.14; };
        listen-on { 127.0.0.1; 192.168.1.116; };
        allow-query { 127/8; 192.168/16 };
        notify no;
        };

Az options bejegyzést a zóna, a localhost és 0.0.127.in-addr.arpa bejegyzései követik. A type hint bejegyzésnek a . alatt mindig jelen kell lennie. A kapcsolódó fájlokat nem kell módosítani, működniük kell, ahogy vannak. Győződjön meg róla, hogy minden bejegyzést ; (pontosvessző) zár le és a kapcsos zárójelek a megfelelő helyen vannak. Az /etc/named.conf konfigurációs fájl vagy a zónafájlok módosítása után az rcnamed reload parancs segítségével utasítsa a BIND-ot, hogy olvassa újra be őket. Ugyanez az eredmény érhető el, ha a névkiszolgálót leállítja, majd az rcnamed restart parancs segítségével újraindítja. Az rcnamed stop parancs segítségével a kiszolgáló bármikor leállítható.

23.5. Az /etc/named.conf konfigurációs fájl

A BIND névkiszolgáló beállításait a /etc/named.conf fájl tárolja. A tartományok zónaadatai (a gépnevek, IP-címek stb.) külön fájlokban tárolódnak a /var/lib/named könyvtárban. Alább részletesen is leírjuk a fájl beállításait.

Az /etc/named.conf két fő területre oszlik. Az egyik, az options kulcsszóval kezdődő rész az általános beállításokat, a zone kulcsszóval kezdődő rész az egyes tartományok zónabejegyzéseit tartalmazza. A logging rész és az acl (hozzáférés-vezérlési lista) szakaszok nem kötelezők. A megjegyzéssorok # vagy // jellel kezdődnek. Az 23.2. példa - Egyszerű /etc/named.conf fájl egy minimális /etc/named.conf fájlt mutat be.

23.2. példa - Egyszerű /etc/named.conf fájl

options { 
        directory "/var/lib/named"; 
        forwarders { 10.0.0.1; };
        notify no;
};

zone "localhost" in {
       type master;
       file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" in {
        type master;
        file "127.0.0.zone";
};

zone "." in {
        type hint;
        file "root.hint";
};

23.5.1. A legfontosabb beállítási lehetőségek

directory "fájlnév";

Azt a könyvtárat adja meg, amelyben a BIND a zónaadatokat tartalmazó fájlokat keresi. Ez általában a /var/lib/named.

forwarders { ip-cím; };

Azokat a névkiszolgálókat adja meg (általában a szolgáltatóét), amelyhez a DNS-kéréseket továbbítani kell, ha közvetlenül nem oldhatók fel. Az ip-cím helyére írjon be egy IP-címet (hasonlót, mint a 192.168.1.116).

forward first;

Minden DNS-kérést előbb továbbít, mielőtt megpróbálná a root névkiszolgálók segítségével feloldani. Ha a forward first helyett forward only szerepel, akkor a kérések kizárólag továbbításra kerülnek, egyáltalán nem kerülnek elküldésre a root névkiszolgálókhoz. Ennek tűzfal használata esetén van kiemelt szerepe.

listen-on port 53 { 127.0.0.1; ip-cím; };

Meghatározza, hogy a BIND melyik hálózati csatolón és porton fogadja a klienskéréseket. A port 53 értéket nem kell külön megadni, mivel az 53 az alapértelmezett port. A helyi géptől érkező kérések engedélyezéséhez írja be a 127.0.0.1 címet. Ha ez a bejegyzés teljesen ki van hagyva, akkor alapértelmezés szerint az összes csatoló használatra kerül.

listen-on-v6 port 53 {any; };

Azt adja meg, hogy a BIND melyik porton figyelje az IPv6-klienskéréseket. Az any egyetlen alternatívája a none. IPv6 esetén kiszolgáló csak helyettesítő karakteres (wildcard) címeket tud fogadni.

query-source address * port 53;

Ez a bejegyzés akkor szükséges, ha a tűzfal blokkolja a kimenő DNS-kéréseket. Ezt azt jelzi a BIND számára, hogy a kéréseket külsőleg az 53-as portról küldje el, ne az 1024 fölötti portokról.

query-source-v6 address * port 53;

Azt adja meg, hogy a BIND melyik portot használja az IPv6-lekérdezésekhez.

allow-query { 127.0.0.1; net; };

Megadja a hálózatokat, amelyről a kliensek DNS-kéréseket tudnak küldeni. A net bejegyzést cserélje le a 192.168.2.0/24 címhez hasonlóra. A végén szereplő /24 a hálózati maszk rövid alakja (ebben az esetben a 255.255.255.0).

allow-transfer ! *;;

Azt szabályozza, hogy mely gépek kérhetnek zónatranszfert. Ebben a példában ! * miatt minden kérés visszautasításra kerül. E bejegyzés nélkül korlátozás nélkül bárhonnan kérhető zónatranszfer.

statistics-interval 0;

E bejegyzés hiányában a BIND a /var/log/messages fájlban óránként sok sornyi statisztikai bejegyzést állít elő. A statisztikák teljes elhagyásához állítsa az értéket 0-ra vagy adjon meg egy intervallumot percben.

cleaning-interval 720;

Ez a paraméter azt szabályozza, hogy a BIND mennyi idő után ürítse ki az ideiglenes tárolóját. Minden ürítés egy bejegyzést hoz létre a /var/log/messages fájlban. Az idő percben van megadva. Az alapértelmezett érték 60 perc.

interface-interval 0;

A BIND rendszeres időközönként végigkeresi a hálózati eszközöket, hiszen megjelenhetnek újak, vagy megszűnhetnek régiek. 0 érték megadása esetén ez nem történik meg: a BIND csak az induláskor észlelt csatolókat figyeli. Ellenkező esetben megadható egy perc alapú intervallum. Az alapértelmezett érték hatvan perc.

notify no;

A no érték azt jelzi, hogy más névkiszolgáló nem kap értesítést a zónaadatok módosításáról és a névkiszolgáló újraindításáról.

Az elérhető kapcsolók listája a manoldalakon olvasható a man 5 named.conf parancs segítségével.

23.5.2. Naplózás

A BIND-ban részletesen megadható, hogy mi, hogyan és hova kerüljön naplózásra. Normális esetben az alapértelmezett beállítások megfelelők. A 23.3. példa - Bejegyzés a naplózás letiltásához a bejegyzés legegyszerűbb formáját mutatja be, amely a naplózást teljesen letiltja.

23.3. példa - Bejegyzés a naplózás letiltásához

logging {
        category default { null; };
};

23.5.3. Zónabejegyzések

23.4. példa - Az example.com zónabejegyzései

zone "example.com" in {
      type master;
      file "example.com.zone";
      notify no;
};

A zone után adja meg az adminisztrálandó tartomány nevét (example.com), amelyet az in kulcsszó követ, valamint a lényeges beállítások blokkja zárójelek között (23.4. példa - Az example.com zónabejegyzései). Egy másodlagos zóna megadásához állítsa a type paramétert slave értékre és adja meg a névkiszolgálót, amely elsődleges névkiszolgálóként felügyeli ezt a zónát (23.5. példa - example.net zónabejegyzése). Ez az elsődleges kiszolgáló egy másik tartománynak lehet másodlagos névkiszolgálója.

23.5. példa - example.net zónabejegyzése

zone "example.net" in {
      type slave;
      file "slave/example.net.zone";
      masters { 10.0.0.1; }; 
};

A zónaparaméterek:

type master;

A master kulcsszó jelzi a BIND számára, hogy ezt a zónát ez a helyi névkiszolgáló kezeli. Ehhez persze megfelelő formátumban létre kell hozni a zónafájlt.

type slave;

Ez a zóna egy másik kiszolgálóról kerül áthozásra. Ez csak elsődleges kiszolgálókkal együtt használható.

type hint;

A . zóna, amely hint típusú, a gyökér névkiszolgálók megadására szolgál. Ezt a zónadefiníciót nem kell módosítani.

example.com.zone vagy slave/example.net.zone fájl;

Ez a bejegyzés azt a fájlt adja meg, amelyben a tartomány zónaadatai találhatók. Másodlagos névkiszolgálók esetében nem szükséges ez a fájl, mivel ezek az adatok más névkiszolgálótól érkeznek. Az elsődleges (master) és másodlagos (slave) fájlok megkülönböztetése érdekében a slave fájlokhoz használja a slave könyvtárat.

masters { kiszolgáló-ip-cím; };

Ez a bejegyzés csak másodlagos zónákhoz szükséges. Megadja, hogy a zónafájlokat mely névkiszolgálóról kell átvinni.

allow-update {! *; };

Ez a beállítás vezérli a külső írási hozzáférést, amely lehetővé teszi a kliensek számára DNS-bejegyzések létrehozását – biztonsági okokból ez általában nem kívánatos. E bejegyzés hiányában a zónafrissítés egyáltalán nem lehetséges. A fenti bejegyzés ugyanezt eredményezi, mivel a ! * * letiltja az ilyen műveleteket.

23.6. Zónafájlok

Kétféle típusú zónafájl létezik: az egyik IP-címeket rendel a gépnevekhez, a másik a fordítottját csinálja: gépnevet ad meg az IP-címhez.

[Tip]A pont használata a zónafájlokban

A végén ki kell tenni a "." karakternek fontos jelentése van a zónafájlokban. Ha a gépnevek lezáró . végződés nélkül vannak megadva, akkor kiegészülnek a zóna nevével. A teljes tartománynévvel megadott teljes gépneveknek . karakterrel kell végződniük, hogy a tartomány ne legyen még egyszer hozzájuk fűzve. A hiányzó vagy rossz helyen megadott "." eredményezi a névkiszolgáló konfigurációs hibáinak nagy részét.

Az első esetben tételezzük fel, hogy a example.com.zone zónafájl a example.com tartományért felelős (23.6. példa - A /var/lib/named/example.com.zone fájl).

23.6. példa - A /var/lib/named/example.com.zone fájl

1.  $TTL 2D 
2.  example.com. IN SOA      dns  root.example.com. ( 
3.               2003072441  ; serial
4.               1D          ; refresh
5.               2H          ; retry
6.               1W          ; expiry
7.               2D )        ; minimum
8.  
9.               IN NS       dns 
10.              IN MX       10 mail
11. 
12. gate         IN A        192.168.5.1 
13.              IN A        10.0.0.1 
14. dns          IN A        192.168.1.116 
15. mail         IN A        192.168.3.108 
16. jupiter      IN A        192.168.2.100
17. venus        IN A        192.168.2.101
18. saturn       IN A        192.168.2.102
19. mercury      IN A        192.168.2.103
20. ntp          IN CNAME    dns 
21. dns6         IN A6  0    2002:c0a8:174::

1. sor:

A $TTL az alapértelmezett TTL (time to live, élettartam) értéket adja meg, amely a fájl összes bejegyzésére érvényes. Ebben a példában a bejegyzések két napig érvényesek (2 D).

2. sor:

Itt kezdődik a SOA vezérlőrekord:

  • Az adminisztrálandó tartomány neve az első pozícióban example.com. Ez "."-ra végződik, mivel ellenkező esetben a zóna másodszor is hozzáfűzésre kerülne. Alternatívaként a @ karakter is megadható itt, amely esetben a zóna az /etc/named.conf fájl megfelelő bejegyzéséből kerül kibontásra.

  • Az IN SOA után a zónáért felelős elsődleges (master) névkiszolgáló neve található. A dns-ről dns.example.com-ra egészül ki, mivel nem "." karakterre végződik.

  • A névkiszolgálóért felelős személy e-mail címe következik. Mivel a @ jel speciális jelentéssel rendelkezik, itt is "." karaktert kell használni. A root@example.com esetén a bejegyzést root.example.com. formában kell megadni. A végén ki kell tenni a "." karaktert, hogy a zóna ne kerüljön hozzáfűzésre.

  • A ( és ) közötti sorok a SOA rekordhoz tartoznak.

3. sor:

A sorszám egy tetszőleges szám, amely a fájl minden módosításakor növekszik. Ennek segítségével informálhatók a másodlagos (slave) névkiszolgálók a módosításokról. A szokásos formátum egy tízjegyű dátum és egy növekvő sorozatszám együttese ÉÉÉÉHHNNSS formában.

4. sor:

A frissítési gyakoriság (refresh rate) azt adja meg, hogy a másodlagos névkiszolgáló mennyi időnként ellenőrizze a zóna sorszámát. Ebben az esetben naponta.

5. sor:

A újrapróbálkozások gyakorisága (retry rate) megadja, hogy a másodlagos kiszolgáló hiba esetén mennyi idő után kísérli meg újból az elsődleges kiszolgáló elérését. Itt két óra van beállítva.

6. sor:

A lejárat ideje (expiration time) azt az időkorlátot adja meg, amelynek eltelte után a másodlagos névkiszolgáló törli a gyorsítótárban tárolt adatokat, amennyiben nem tudja újból elérni az elsődleges kiszolgálót. Itt, egy hét.

7. sor:

A SOA rekord utolsó bejegyzése megadja a negatív tárolási TTL értékét – ez az az idő, ameddig a más kiszolgálóktól érkező, nem feloldott DNS-kérések eredményei tárolásra kerülnek.

9. sor:

Az IN NS sor a tartományért felelős névkiszolgálót adja meg. A dns kiegészül a dns.example.com címre, hiszen nem áll a végén "." karakter. Több hasonló sor is lehet – egy az elsődleges, és egy-egy a másodlagos névkiszolgálókhoz. Ha az /etc/named.conf fájlban a notify paraméter értéke nem no, akkor az itt megjelenített névkiszolgálók értesítést kapnak a zónaadatok módosításáról.

10. sor:

Az MX bejegyzés a levelezőkiszolgálót adja meg, amely fogadja, feldolgozza és továbbítja az e-mail üzeneteket az example.com tartományhoz. Ebben a példában ez a mail.example.com gép. A gépnév előtti szám egy úgynevezett preferenciaérték. Ha több MX bejegyzés is van, akkor a legkisebb értékkel rendelkező levelezőkiszolgáló kapja meg először a levelet, ha nem sikerül neki kézbesíteni, akkor a küldő a következő értékűvel próbálkozik.

12–19 sor:

Ezek maguk a címrekordok, amelyekben egy vagy több IP-cím van hozzárendelve gépnevekhez. A nevek itt "." nélkül kerülnek megjelenítésre, mivel nem tartalmazzák a tartományt, így az example.com mindegyikhez hozzáfűzésre kerül. A gate géphez két IP-cím van hozzárendelve, mivel két hálózati kártyával rendelkezik. Ha a cím hagyományos (IPv4), akkor a rekord A-val van megjelölve. Ha cím egy IPv-cím, akkor a bejegyzés AAAA-val van megjelölve.

[Note]IPv6-szintaxis

Az IPv6 bejegyzés szintaxisa valamelyest eltér az IPv4-étől. A töredezettség elkerülése érdekében kötelező információt adni a cím előtt a kihagyott bitekről. Az IPv6 cím kitöltéséhez a 0 számjegy, a két kettőspont pedig a cím megfelelő helyén használatos.

pluto     AAAA 2345:00C1:CA11::1234:5678:9ABC:DEF0
pluto     AAAA 2345:00D2:DA11::1234:5678:9ABC:DEF0
20. sor:

Az ntp másodlagos név használható a dns megcímzéséhez (a CNAME rövidítés a canonical name, azaz kanonikus névből származik).

Az in-addr.arpa pszeudotartomány használható a fordított kereséshez, ha IP-címek alapján keresünk gépneveket. Ez a cím hálózati részéhez kerül hozzáfűzésre fordított sorrendben. A 192.168 cím tehát a 168.192.in-addr.arpa címmé alakítódik át. Lásd: 23.7. példa - Fordított keresés.

23.7. példa - Fordított keresés

1.  $TTL 2D
2.  168.192.in-addr.arpa.   IN SOA dns.example.com. root.example.com. (
3.                          2003072441      ; serial
4.                          1D              ; refresh
5.                          2H              ; retry
6.                          1W              ; expiry
7.                          2D )            ; minimum
8.
9.                          IN NS           dns.example.com.
10. 
11. 1.5                     IN PTR          gate.example.com. 
12. 100.3                   IN PTR          www.example.com. 
13. 253.2                   IN PTR          cups.example.com. 

1. sor:

A $TTL az általános TTL-t adja meg, amely az összes itt szereplő bejegyzésre érvényes.

2. sor:

A konfigurációs fájlnak fordított keresést kell kezdenie a 192.168 hálózatra vonatkozóan. Mivel a zóna neve 168.192.in-addr.arpa, ezért nem szabad hozzáfűzni a gépnevekhez. Az összes gépnév teljes formában van megadva – tartománnyal és egy lezáró "." karakterrel. A fennmaradó bejegyzések az előző example.com példában leírtaknak megfelelőek.

3–7. sor:

Lásd az example.com előző példáját.

9. sor:

Ez a sor újra a zónáért felelős névszert adja meg. Ebben az esetben a név teljes formában kerül megadásra a tartománnyal és "." karakterrel a végén.

11–13. sor:

Ezek mutató bejegyzések, amelyek a megfelelő gépek IP-címeire mutatnak. A sor elején csak az IP-cím utolsó része van megadva, lezáró "." karakter nélkül. A zóna hozzáadása (.in-addr.arpa nélkül) az összes IP-címet eredményezi, fordított sorrendben.

Normális esetben a BIND különböző verziói közötti zónatranszfernek probléma nélkül le kell zajlania.

23.7. A zónaadatok dinamikus frissítése

A dinamikus frissítés kifejezés egy olyan műveletre utal, amely hozzáadja, módosítja vagy törli az elsődleges kiszolgáló zónafájljaiban lévő bejegyzéseket. A mechanizmus leírását az RFC 2136 tartalmazza. A dinamikus frissítés minden zónabejegyzéséhez egyénileg kerül beállításra egy opcionális allow-update vagy update-policy szabály hozzáadásával. A dinamikusan frissített zónákat nem szabad kézzel szerkeszteni.

A frissítendő bejegyzések az nsupdate parancs segítségével továbbítódnak a kiszolgálóhoz. A parancs pontos szintaxisához tekintse meg az nsupdate kézikönyvoldalát (man 8 nsupdate). Biztonsági okokból az ilyen frissítést TSIG-kulcsok segítségével kell végrehajtani (lásd 23.8. - Biztonságos tranzakciók).

23.8. Biztonságos tranzakciók

Biztonságos tranzakciók a tranzakciók aláírásával (TSIG) és megosztott titkos kulcsok alkalmazásával (TSIG-kulcsok) készíthetők. Ez a rész az ilyen kulcsok előállításának és használatának módját írja le.

A biztonságos tranzakciókra a különböző kiszolgálók közötti kommunikációhoz és a zónaadatok dinamikus frissítése érdekében van szükség. A kulcsokon alapuló hozzáférés-vezérlés sokkal biztonságosabb, mint a csak IP-címekre épülő vezérlés.

Az alábbi parancs segítségével állítson elő egy TSIG-kulcsot (részletes leírásért tekintse meg a man dnssec-keygen parancs által megjelenített kézikönyvoldalt):

dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2

Ez két fájlt hoz létre az alábbihoz hasonló névvel:

Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key

A kulcs maga (például az ejIkuCyyGJwwuN3xAteKgg== karaktersorozat) mindkét fájlban megtalálható. A tranzakcióhoz a második fájlt (Khost1-host2.+157+34265.key) át kell vinni a távoli gépre, lehetőleg biztonságos módon (például scp segítségével). A host1 és a host2 közötti biztonságos kommunikációhoz, a távoli kiszolgálókon a kulcsnak a /etc/named.conf fájlban kell lennie:

key host1-host2 {
 algorithm hmac-md5;
 secret "ejIkuCyyGJwwuN3xAteKgg==";
};
[Warning]Az /etc/named.conf fájljogosultságai

Ellenőrizze, hogy az /etc/named.conf fájl jogosultságai megfelelően korlátozva vannak-e. A fájl alapértelmezett jogosultságértéke 0640, a tulajdonos a root, a csoport pedig a named. Egy olyan megoldás is lehetséges, hogy a kulcsokat egy külön, korlátozott jogosultságokkal rendelkező fájlba helyezi, amely az /etc/named.conf fájlból kerül betöltésre. Egy külső fájl beágyazása:

include  "filename"

A filename helyére a kulcsokat tartalmazó fájl abszolút elérési útját kell beírni.

Annak engedélyezéséhez, hogy a host1 kiszolgáló használhassa a kulcsot a host2 kiszolgálóhoz (amely ebben a példában a 10.1.2.3 címmel rendelkezik), a kiszolgáló /etc/named.conf fájljának tartalmaznia kell az alábbi szabályt:

server 10.1.2.3 {
  keys { host1-host2. ;};
};

Hasonló bejegyzéseket a host2 konfigurációs fájljába is kell írni.

A biztonságos tranzakciók kialakításához az IP-címekhez és -címtartományokhoz megadott ACL-eken (hozzáférés-vezérlési listák – nem összekeverendő a fájlrendszer ACL-ekkel) kívül TSIG-kulcsokat is meg kell adni. A megfelelő bejegyzés az alábbihoz hasonlóan néz ki:

allow-update { key host1-host2. ;};

A témakör részletesebb leírását a BIND Administrator Reference Manual update-policy része tartalmazza.

23.9. Biztonságos DNS

A DNSSEC (biztonságos DNS) leírását az RFC 2535 tartalmazza. A DNSSEC-hez rendelkezésre álló eszközöket a BIND kézikönyv tárgyalja.

Egy biztonságos zónának egy vagy több zónakulccsal kell rendelkeznie. Ezek a dnssec-keygen paranccsal generálhatók, a gépkulcsokhoz hasonlóan. A kulcsok a DSA titkosítási algoritmus segítségével készülnek. Az előállított nyilvános kulcsokat az $INCLUDE szabály segítségével a megfelelő zónafájlban kell megadni.

A dnssec-makekeyset parancs segítségével az előállított kulcsok egy halmazba kerülnek, amelyet azután biztonságos módon át kell küldeni a szülőzónához. A szülőn a halmaz a dnssec-signkey parancs segítségével íródik alá. A parancs által előállított fájlokat ezután a zónák aláírásához használja a rendszer a dnssec-signzone paranccsal, amely végül előállítja a fájlokat, amelyeket minden zóna /etc/named.conf fájljának tartalmaznia kell.

23.10. További információ

További információért tekintse meg a bind-doc csomag BIND Administrator Reference Manual című kézikönyvét, amely az /usr/share/doc/packages/bind/ könyvtárban található. Érdemes elolvasni a kézikönyv által hivatkozott RFC-ket és a BIND man oldalait is. Az /usr/share/doc/packages/bind/README.SuSE fájl az openSUSE rendszeren működő BIND-kiszolgálóval kapcsolatos legfrissebb információt tartalmazza.