bind Logging

Um die Konfiguration sauber trennen zu können, habe ich die Logging-Konfiguration in eine separate Datei aufgeteilt und diese in der named.conf eingebunden.

...
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.log";

// prime the server with knowledge of the root servers
...

 

logging {
    channel bind9log {
        file "/var/log/named/bind9.log" versions 3 size 10m;
        // syslog info;
        // severity debug;
        severity dynamic;
        print-time yes;
        print-severity yes;
        print-category yes;
    };
    channel security {
        file "/var/log/named/security.log" versions 2 size 5m;
        // syslog warn;
        // severity warn;
        severity dynamic;
        print-time yes;
        print-severity yes;
        print-category yes;
    };
    category resolver {bind9log;};
    category default {bind9log;};
    category queries {bind9log;};
    category client {bind9log;};
    category config {bind9log;};
    category notify {bind9log;};
    category unmatched {bind9log;};
    category dispatch {bind9log;};
    category dnssec {bind9log;};
    category database {bind9log;};
    category security {security;};
    category lame-servers {null;};
};

Zusätzlich muss das oben angegebene Verzeichnis /var/log/named noch angelegt werden:

mkdir /var/log/named

Danach einen Neustand von bind:

/etc/init.d/bind9 restart

und alles ist erledigt, wie ein ein ls zeigt:

DNS1:/etc/bind# ls -alh /var/log/named/
insgesamt 132K
-rw-r--r-- 1 bind bind 126K 24. Nov 16:08 bind9.log
-rw-r--r-- 1 bind bind 0   24. Nov 15:41 security.log

bind RNDC-Administration

Wurde der DNS-Server für automatisch Aktualisierungen durch den DHCP-Server eingerichtet, können die dynamischen Zonnen nicht einfach aktualisiert und neu eingelesen werden. Zuerst muss die Dynamik mit der RNDC-Administration „eingefroren“ werden:

rndc freeze <example.com>

Dann die die Domänen-DB-Datei und die dazugehörige PTR-Datei mit dem Editor der Wahl bearbeiten und !!! die Seriennummer hochzählen !!! Danach kann die Zone neu geladen und wieder „aufgetaut“ werden:

rndc reload <example.com>
rndc thaw <example.com>

DNS-Forwarder pro Zone einrichten

bind9 ist ja nach der Standard-Installation ein Proxy-DNS, der sich sein Weiterleitungsserver aus der/etc/resolv.conf lädt. Setzt man bind aber auf einem Gateway ein, so kann es ja vorkommen, dass verschiedene Zonen von verschiedenen Servern abgefragt werden sollen. Nichts leichter als das.

Zuerst muss eine Zonenkonfiguration angelegt werden. Je nach Anzahl der Zonen kann man diese in eine Datei schreiben oder ein Zone pro Datei. Da der Rahmen bei mir meist überschaubar ist, schreibe ich eine Datei pro Zone und kann diese dann bei Bedarf einzeln aktivieren und deaktivieren.

// Weiterleitung fuer domain1.tld
zone "domain1.tld" in {
type forward;
forwarders { 192.168.178.1; };
};
// Weiterleitung fuer domain2.tld
zone "domain2.tld" in {
type forward;
forwarders { 10.50.100.1; 10.50.100.2; 10.70.70.3; };
};

 

Wie zu sehen ist, kann man auch mehrere Weiterleitungsserver eintragen. Alle durch ein Semikolon getrennt.

Bis jetzt verschwenden die Dateien nur Platz auf der Festplatte, weil bind sie nicht kennt. Sie müssen also in der Hauptkonfiguration eingetragen werden. Da bei der Installation bereits eine lokale Version der named.conf angelegt wurde, sollte diese dafür genutzt werden.

Datei: /etc/bind/named.conf.local

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
include "/etc/bind/zones.domain1.tld";
include "/etc/bind/zones.domain2.tld";

// Vertrauenswürde Clients (Eigenes LAN)
...

Zum Schluss noch den bind neu starten, damit die Konfigurationen eingelesen werden.

Ab jetzt werden die DNS-Einträge für die explizit konfigurierten Domains bei den expliziten DNS-Servern abgefragt. Alle anderen werden wie bisher bei den Servern aus der /etc/resolv.conf abgefragt.

infoJetzt kann man den eigenen Server (127.0.0.1) in der /etc/resolv.conf an die erste Stelle schreiben, damit die expliziten Konfigurationen mit benutzt werden.

warnungWenn, wie oben angedeutet Acess Listen für den Zugriff definiert sind, muss man prüfen, ob der localhost hier bisher mit bedacht worden ist.