DNS-Server konfigurieren

Die Konfigurationsdateien liegen bei Debian unter '/etc/bind/' und die Zonen-Dateien werden unter '/var/lib/bind' abgelegt. Letzteres Verzeichnis gehört auch dem BIND-Daemon 'bind', damit dieser, wie beim dynamischen DNS üblich, die Zonendateien verändern darf. Unter '/etc/bind' wären solche Schreibrechte sträflich.

Installation

Für eine BIND9-Installationen werden unter Debian die Pakete bind9. bind9-doc und libbind9-0 benötigt.

aptitude -y install bind9 bind9-doc libbind9-0

Mit diesem Befehl werden die drei Pakete installiert und die Konfigurationsfiles angelegt. Diese findet man dann unter '/etc/bind'.

Konfigurations-Dateien

named.conf

Alle Einstellungen zum Nameserver BIND sind in der Datei /etc/bind/named.conf vorzunehmen. Die Zonendaten selbst, die Rechnernamen, IP-Adressen usw. für die zu verwaltenden Domains, sind in separaten Dateien im Verzeichnis /var/lib/bind abgelegt, um die veränderlichen Dateien sauber vom Konfigurationsverzeichnis zu trennen.

Die /etc/bind/named.conf unterteilt sich grob in zwei Bereiche, zum einen der Abschnitt options für allgemeine Einstellungen und zum anderen die zone-Einträge für die einzelnen Domains. Außerdem kann man noch einen Bereich logging, sowie Einträge vom Typ acl (engl. Access Control List) definieren. Kommentarzeilen beginnen mit einem #-Zeichen oder alternativ mit //.

Mit include lassen sich weitere Dateien einbinden, um die Datei nicht unnötig aufzublähen. Das sind üblicherweise named.conf.local, named.conf.options, named.conf.log.

Konfiguartionsparameter

directory "filename";

Hiermit wird das Verzeichnis angegeben, in dem sich die Dateien mit den Zonendaten befinden; dies ist in der Regel /var/lib/bind.

forwarders { ip-address; };

Wird verwendet, um den oder die Nameserver anzugeben, an den oder die die DNS-Anfragen weitergereicht werden, die nicht direkt beantwortet werden können.

forward first;

Dieser Parameter bewirkt, dass die DNS-Anfragen zuerst geforwarded werden, bevor versucht wird, diese über die Root-Nameserver aufzulösen. Möglich ist auch forward only, in diesem Fall werden alle Anfragen direkt weitergeleitet. Das macht Sinn bei einer Firewall.

listen-on port 53 { 127.0.0.1; ip-address; };

Hier weiß BIND, auf welchen Netzwerkinterfaces und welchem Port Anfragen der Clients entgegen genommen werden soll. Mit 127.0.0.1 werden Anfragen auf localhost zugelassen. Fehlt dieser Eintrag, dann werden standardmäßig alle Interfaces verwendet.

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

Dasselbe gilt mit dieser Option für IPv6. Ausser any ist alternativ nur noch none erlaubt, da der Server stets auf der IPv6-Wildcard-Adresse horcht.

query-source address * port 53;

Dieser Eintrag kann notwendig sein, wenn eine Firewall die externen DNS-Abfragen blockiert. So wird bewirkt, dass Anfragen nach außen über den Port 53 gestellt werden und nicht von den Ports größer als 1024.

query-source-v6 address * port 53;

Dasselbe gilt wieder bei IPv6-Verwendung.

allow-query { 127.0.0.1; net; };

Hier werden die Netzwerkadressen definiert, aus denen Clients die DNS-Anfragen an den Server stellen dürfen. Gültige Adressenangaben sind zum Beispiel 192.168.1/24.

allow-transfer { ! *; };

Mit dieser Option wird geregelt, welche Computer die Zonentransfers anfordern dürfen. Dieses Notation unterbindet sie durch "! *" komplett. Ohne diesen Eintrag könnten Zonentransfers ohne Einschränkungen von überall angefordert werden.

statistics-interval 0;

Ohne diesen Eintrag würde BIND stündlich mehrere Zeilen Statistikmeldungen in /var/log/messages produzieren. Die Angabe von 0 unterdrückt die Einträge komplett. Stattdessen kann hier auch eine Zahl in Minuten angeben werden.

cleaning-interval 720;

Diese Option legt fest, in welchem Zeitabstand BIND seinen Cache aufräumt. Die Aktivität führt jedes Mal zu einem Eintrag in /var/log/messages. Die Zeitangabe erfolgt in Minuten. Als Defaultwert sind 60 Minuten eingestellt.

interface-interval 0;

BIND durchsucht regelmäßig die Netzwerkschnittstellen nach neuen oder nicht mehr vorhandenen Interfaces. Setzt man diesen Wert auf 0, so wird darauf verzichtet und BIND lauscht nur auf den beim Start gefundenen Interfaces. Alternativ kann man das Intervall in Minuten angeben. Als Defaultwert sind 60 Minuten eingestellt.

notify no;

Mit dem Wert no wird bewirkt, dass keine anderen Nameserver benachrichtigt werden, solange an den Zonendaten Änderungen vorgenommen werden oder der Nameserver neu gestartet wird.