A konfiguráció felépítése

A BIND9 DNS szerver alapól a /var/log/messages vagy a /var/log/system fájlba naplózik a syslogd beállítása szerint. Ha részletesebb és szeparáltabb naplózást szeretnénk, akkor először is meg kell ismerni a beállítás szintaktikáját. A BIND9 eléggé széleskörű és részletes naplózási beállítási lehetőségeket biztosít. Lássuk egy egyszerű naplózási beállítás felépítését. Hozzuk létre a /etc/bind/named.conf.log fájlt a következő tartalommal.

# nano /etc/bind/named.conf.log
logging {
        channel update_debug {
                file "/var/log/bind/update_debug.log" versions 3 size 100k;
                severity debug;
                print-severity  yes;
                print-time      yes;
        };
        channel security_info {
                file "/var/log/bind/security_info.log" versions 1 size 100k;
                severity info;
                print-severity  yes;
                print-time      yes;
        };
        channel bind_log {
                file "/var/log/bind/bind.log" versions 3 size 1m;
                severity info;
                print-category  yes;
                print-severity  yes;
                print-time      yes;
        };

        category default { bind_log; };
        category lame-servers { null; };
        category update { update_debug; };
        category update-security { update_debug; };
        category security { security_info; };
};

Nézzünk meg egy log fájl meghatározást részletesen.

...
        channel bind_log {
                file "/var/log/bind/bind.log" versions 3 size 1m;
                severity info;
                print-category  yes;
                print-severity  yes;
                print-time      yes;
        };
...
        category default { bind_log; };
...

A channel-el nevesítjük a log fájl definícióját, amire késöbb a category-nál hivatkozhatunk. Tehát a DNS szerver bind_log definíciója a /var/log/bind/bind.log fájlba mutat. A version 3 size 1m kifejezés írja le, hogy a naplóbejegyzés 1 megabyte méretű lehet. Amint meghaladja, akkor új fájlt nyit és a régiekből hármat tart meg visszamenőleg. Úgy működik mint a logrotáció csak nincs tömörítése. A severity határozza meg a fájlba kerülő naplóbejegyzés súlyosságát, amit már a syslog beállításokból ismerhetünk. A print-category, print-severity és print-time beállítás határozza meg mi szerepeljen még egy-egy sorban, vagyis a bejegyzés kategóriája, súlyossága és ideje. A category-val határozzuk meg, hogy a default napló bejegyzések kerülnek a bind_log névvel meghatározott fájlba az előzőkben megadott paraméterek szerint. A default, lame-servers, update, update-security és security mellett még jó pár kategória van amit bővebben a BIND9 dokumentációjából megtudhatunk.

Ellenőrizzük le az elkészült fájlt a named.checkconf utasítással.

# named-checkconf /etc/bind/named.conf.log

Ha nincs kimenete az ellenőrzésnek, akkor minden rendben. Most készítsük el a /var/log/bind mappát és benne a update_debug.log, security_info.log és a bind.log fájlokat, majd állítsuk be a jogosultságokat. Mivel a DNS szerverünk bind felhasználó jogosultságával fut, így a mappa és a naplófájlok tulajdonosa is ez lesz.

# mkdir /var/log/bind
# touch /var/log/bind/update_debug.log /var/log/bind/security_info.log /var/log/bind/bind.log
# chown -R bind. /var/log/bind

Ahhoz hogy a BIND9 használja az elkészült naplózási beállítást és log fájlokat, szúrjuk be a következő sort a named.conf.local konfigurációs fájl elejére.

# nano /etc/bind/named.conf.local
include "/etc/bind/named.conf.log";
...

Nincs más hátra mint a BIND9 DNS szerver újraindítása.

# systemctl restart bind9

És a futásának ellenőrzése.

# systemctl status bind9
● bind9.service - BIND Domain Name Server
   Loaded: loaded (/lib/systemd/system/bind9.service; enabled)
  Drop-In: /run/systemd/generator/bind9.service.d
           └─50-insserv.conf-$named.conf
   Active: active (running) since cs 2016-03-10 18:53:14 CET; 1h 2min ago
     Docs: man:named(8)
 Main PID: 371 (named)
   CGroup: /system.slice/bind9.service
           └─371 /usr/sbin/named -f -u bind
...

Ha megnézzük a /var/log/bind mappát, akkor láthatjuk, hogy a szerver szépen naplóz a megfelelő fájlokba.

# ls -l /var/log/bind/
összesen 20
-rw-r--r-- 1 bind bind 12621 márc  10 19:53 bind.log
-rw-r--r-- 1 bind bind    76 márc   7 20:45 security_info.log
-rw-r--r-- 1 bind bind     0 márc   7 20:37 update_debug.log