DNS Installation · 5 min read · Oct 03, 2025

[Debian Sarge] Installation eines Bind9 Master/Slave DNS Systems

[Debian Sarge] Installation eines Bind9 Master/Slave DNS Systems

Version: 1.0 - 23. Aug 2006

Willkommen

In diesem Howto werden wir 2 Bind DNS-Server installieren, einen als Master und den anderen als Slave-Server. Aus Sicherheitsgründen werden wir Bind9 in seiner eigenen Jail chrooten.

Die Verwendung von zwei Servern für eine Domain ist eine gängige Konfiguration, und um Ihre eigene Domain zu hosten, sind mindestens 2 Domain-Server erforderlich. Wenn einer ausfällt, kann der andere weiterhin Ihre Domain bedienen.

Unsere Konfiguration wird Debian Sarge 3.1 (stabil) als Basis verwenden. Eine einfache, saubere und aktuelle Installation reicht aus, da wir die erforderlichen Pakete mit diesem Howto installieren werden.

In diesem Howto werde ich die fiktive Domain “linux.lan” verwenden. Die Nameserver werden 192.168.254.1 und 192.168.254.2 als ihre IP verwenden.

Einige letzte Worte, bevor wir beginnen: Ich habe Joes Howto (auch auf dieser Seite) und einige weitere Tutorials gelesen, aber keines von ihnen funktionierte ohne einige Anpassungen. Daher habe ich mein eigenes Howto erstellt. Und es sollte sofort funktionieren :)


Software installieren

Zuerst benötigen Sie eine saubere Debian Sarge-Installation. Stellen Sie sicher, dass sie aktuell ist!

apt-get update; apt-get upgrade

Wir benötigen auch einige Debian-Bautools, da wir Quellpakete herunterladen müssen:

apt-get install devscripts

Als nächstes installieren wir die Software, die für Bind benötigt wird. Um Verschlüsselung für die Übertragung der Zonendatei zwischen Master und Slave zu verwenden, benötigen wir eine aktuellere Version von Bind9 (Version >=9.3) als die, die im Sarge-Repository zu finden ist. Wir werden die Quelle aus dem -testing-Zweig verwenden. Stellen Sie also sicher, dass Sie eine Zeile wie diese in Ihrer

/etc/apt/sources.list

haben:

deb-src http://---your.debian.mirror---/debian testing main contrib non-free

Bind9 aus testing hängt von lsb-base aus testing ab. Lassen Sie uns das holen:

(Erläuterung der Syntax: Das -y sagt apt, dass es alle Fragen mit Ja beantwortet, build-dep installiert alle Pakete, die für -testing_packageX- aus dem Sarge-Repository erforderlich sind, und mit -b wird die Quelle sofort gebaut.)

cd ~/a/dir/for/lsb-base/
apt-get -y build-dep lsb-base
apt-get source lsb-base -b
dpkg -i lsb-base*.deb

Als nächstes ist Bind9 dran:

cd ~/a/dir/for/bind9
apt-get -y build-dep bind9
apt-get source bind9 -b
dpkg -i *.deb

Jetzt ist alle unsere Software installiert und bereit zur Konfiguration.

Den Master konfigurieren

Zuerst müssen wir bind9 stoppen:

/etc/init.d/bind9 stop

Um Bind zu chrooten, müssen wir eine Option in

/etc/default/bind9

setzen:

Von:

OPTIONS="-u bind"

Zu:

OPTIONS="-u bind -t /var/lib/named"

Es wird jetzt als Benutzer ‘bind’ chrooted in ‘/var/lib/named’ ausgeführt.

Als nächstes bearbeiten wir die Zeile der Weiterleitungen in

/etc/bind/named.conf.options

um die DNS von unserem ISP anzupassen:

forwarders { 194.109.6.66; };

Diese Schritte sind für die chroot-Jail erforderlich: mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
mv /etc/bind /var/lib/named/etc
ln -s /var/lib/named/etc/bind /etc/bind
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/
chown -R bind:bind /var/lib/named/var/

chown -R bind:bind /var/lib/named/etc/bind

Bind hat jetzt sein eigenes Verzeichnis mit Platz für .pid-Dateien und Konfigurationsdateien. Um die Dinge klar zu halten, haben wir einen Symlink zurück zu /etc/ gemacht.

Jetzt bearbeiten Sie /etc/init.d/sysklogd, um das Protokollieren der Bind-Aktivität zu ermöglichen:
Von:

SYSLOGD=""

Zu:

SYSLOGD="-a /var/lib/named/dev/log"

Der letzte Schritt besteht darin, die IP dieses neu installierten DNS-Servers (localhost) zu Ihrer

/etc/resolv.conf

hinzuzufügen, um ihn zu verwenden: echo “search linux.lan” > /etc/resolv.conf
echo “nameserver 127.0.0.1” >> /etc/resolv.conf

Jetzt starten Sie sysklogd und bind9 neu: /etc/init.d/sysklogd restart
/etc/init.d/bind9 start

Und testen Sie !

ping www.google.com

Wenn Sie eine Antwort erhalten, funktioniert Ihr DNS-Masterserver und ist bereit zur Verwendung. Wir werden jetzt die Domain linux.lan mit unserem neuen Masterserver füllen und verwenden.


Einrichten der linux.lan-Domain

Der Master-DNS-Server leitet derzeit nur Anfragen an den Server Ihres ISP weiter. Daher werden wir jetzt unsere eigene Domain installieren und konfigurieren und unseren neuen Server alle Anfragen bezüglich dieser Domain bearbeiten lassen.

Lassen Sie uns mit der Erstellung des Verzeichnisses beginnen, in dem wir die Zonendatei speichern werden. Diese Datei enthält alle Informationen über die Domain.

mkdir /etc/bind/zones/

Als nächstes erstellen wir die Zonendatei,

/etc/bind/zones/master_linux.lan

:

$TTL 3D  

@       IN      SOA     ns1.linux.lan. hostmaster.linux.lan. (
                        199802151       ; serial, heutiges Datum + heutige Seriennummer #
                        8H              ; refresh, Sekunden
                        2H              ; retry, Sekunden
                        4W              ; expire, Sekunden
                        1D )            ; minimum, Sekunden
;
                TXT     "Linux.LAN, serving YOUR domain :)"
                NS      ns1             ; Inet-Adresse des Nameservers
        NS    ns2
                MX      10 mail        ; Primärer Mail-Exchanger
localhost    A    127.0.0.1
ns1        A    192.168.254.1
ns2        A    192.168.254.2
www        CNAME    ns1

Hier haben wir eine einfache Zonendatei mit beiden Nameservern und einem www-Alias für ns1 erstellt. Nur für den Fall, dass wir einen laufenden Apache auf ns1 haben ;)

Jetzt bearbeiten Sie /etc/bind/named.conf.local und fügen Sie hinzu:

zone "linux.lan" {
        type master;
        file "/etc/bind/zones/master_linux.lan";
};

Das war’s, wir können jetzt Bind neu starten und überprüfen, ob es funktioniert:

/etc/init.d/bind9 restart
ping ns1.linux.lan

An diesem Punkt sollten Sie einen funktionierenden und verwendbaren DNS-Server haben :)

Wenn es sagt, dass die Domain nicht gefunden werden kann, hat dhclient möglicherweise Ihren Nameserver-Eintrag geändert… Also beenden Sie es.


Den Slave installieren

Grundsätzlich verwendet der Slave dasselbe Grundsystem wie wir es im ersten Teil (kurz bevor wir die Zonendatei hinzugefügt haben) erstellt haben. Wir werden einige kleine Änderungen sowohl am Master als auch am Slave vornehmen, damit sie zusammenarbeiten. Die Zonendatei wird über das Netz unter Verwendung von Verschlüsselung übertragen.

Sofern nicht anders angegeben, sind diese Befehle nur für den Slave.

Erstellen Sie das Zonenverzeichnis:

mkdir /etc/bind/zones

Für sowohl Master als auch Slave bearbeiten Sie

/etc/bind/named.conf.options

und fügen Sie hinzu:

dnssec-enable yes;

Jetzt benötigen wir einen sicheren Schlüssel. Dies wird eine .private und eine .key-Datei generieren. Die ‘key=’ Zeile in der .private-Datei stellt den Hashschlüssel dar.

dnssec-keygen -a hmac-md5 -b 128 -n host linux.lan

Fügen Sie dies in Ihre

/etc/bind/named.conf

auf Master und Slave hinzu:

key "TRANSFER" {
        algorithm hmac-md5;
        secret "---HASHKEY---";
};

Auf dem Master fügen wir die Slave-IP zu

/etc/bind/named.conf

hinzu:

server 192.168.254.2 {
        keys {
        TRANSFER;
    };
};

Und auf dem Slave fügen wir die Master-IP zu

/etc/bind/named.conf

hinzu:

server 192.168.254.1 {
        keys {
        TRANSFER;
    };
};

Fügen Sie zu

/etc/bind/named.conf.local

hinzu:

zone "linux.lan" {
        type slave;
        file "/etc/bind/zones/slave_linux.lan";
        masters { 192.168.254.1; };
        allow-notify { 192.168.254.1; };
};

Das letzte, was auf BEIDEN Hosts benötigt wird, ist dies zu

/etc/bind/named.conf

hinzuzufügen:

include "/etc/bind/rndc.key";

Um einen erfolgreichen Zonentransfer zu haben, müssen beide Systeme eine synchronisierte Uhr haben, also:

apt-get -y install ntpdate

Starten Sie Bind auf beiden Maschinen neu und beachten Sie die neue Zonendatei auf dem Slave :)

Wenn Sie sich fragen, warum Updates zur Zonendatei auf Ihrem Master anscheinend fehlschlagen, überprüfen Sie die Ablauf- usw. Einstellungen innerhalb der Zonendatei.

Viel Glück mit Ihrer neuen DNS Master/Slave-Konfiguration!

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.