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 upgradeWir benötigen auch einige Debian-Bautools, da wir Quellpakete herunterladen müssen:
apt-get install devscriptsAls 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-freeBind9 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 stopUm 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.comWenn 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 ns1Hier 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/zonesFü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.lanFü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!
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.