Der eigene DNS-Resolver? Kein Hexenwerk.

Nachfolgend stellen wir die vollständige Dokumentation zur Installation und Einrichtung des funktionierenden Resolvers bereit. Damit steht der Resolver in maximal 60 Minuten inclusive Hardwareeinrichtung bereit.

Caching DNS-Resolver mit BIND 9

Schritt 1: Serverumgebung einrichten

Installieren Sie einen einfachen Debian-Server mit minimaler Ausstattung. Als einziger Daemon (Dienst) sollte SSH für den administrativen Zugriff installiert werden. Es muss eine feste IP-Adresse im selben Netzwerk wie die übrige IT-Infrastruktur vergeben werden.

Das notwendige Debian-Image beziehen Sie hier: https://www.debian.org/distrib/netinst

Schritt 2: Installation der Nameserver-Software BIND

In unserem Beispiel lauten die Kommandos:

apt-get update
apt-get install bind9 bind9utils bind9-doc

Schritt 3: Grundlegende Konfiguration

Hierzu verwenden wir den Editor „nano“, der standardmässig bereits installiert ist. Es müssen einige Einfügungen bzw. Änderungen vorgenommen werden. Zum Beenden und gleichzeitigen Speichern verwenden wir die Tastenkombination STRG X.

nano /etc/bind/named.conf.options:
acl goodclients {
localhost;
192.168.114.0/23;
};

im options-Block:

options {
directory „/var/cache/bind“;

recursion yes;
allow-query { goodclients; };
. . .

nano /etc/resolv.conf:
nameserver 127.0.0.1

# Kommentar: Der nächste Befehl schreibt den Cache aus dem RAM nach /var/cache/bind/named_dump.db
sudo rndc dumpdb

# Kommentar: Jetzt kann die Datei aufgerufen und der Inhalt des lokalen Caches ausgelesen werden, zum Beenden: quit
less /var/cache/bind/named_dump.db

Wir wollen Logging betreiben, daher geben wir folgende Kommandos zum Editieren zweier Konfigurationsdateien ein:

nano /etc/bind/named.conf:
include „/etc/bind/named.conf.log“;

nano /etc/bind/named.conf.log:
logging {
channel bind_log {
file „/var/log/bind/bind.log“ versions 3 size 5m;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default { bind_log; };
category update { bind_log; };
category update-security { bind_log; };
category security { bind_log; };
category queries { bind_log; };
category lame-servers { null; };
};

Wir erzeugen das Verzeichnis für das Logfile:

mkdir /var/log/bind

BIND soll Zugriffsrechte auf dieses Verzeichnis erhalten:

chown bind:bind /var/log/bind

BIND wird neu gestartet:

service bind9 restart

nano /etc/logrotate.d/bind:
/var/log/bind/bind.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 bind bind
postrotate
/usr/sbin/invoke-rc.d bind9 reload > /dev/null
endscript
}