Ubuntu 20.04 - Dynamic DNS mit BIND9 und ISC-DHCP-Server
Auch können wichtige Hinweise und Erläuterungen fehlen, was die Verwendung der Dokumentation erschweren kann.
Voraussichtliche Fertigstellung: 12/2021
Vorwort
Diese Dokumentation beschreibt den Installationsvorgang von dynamischem DNS mit ISC-DHCP-Server und Bind9.
Bitte vergewissern Sie sich, dass Ihr System über die nötigen Voraussetzungen verfügt, wie in der Infobox beschrieben. Weiterhin sind Grundkenntnisse im Umgang mit Linux erforderlich, da die Vorgehensweise, wie sie hier beschrieben ist, in manchen Teilen abweichen kann. Kein System ist wie das Andere. Die Dokumentation wurde sorgfältig von mir geprüft. Dennoch kann ich keinerlei Haftung für Schäden an Ihrem System oder eine Gewährleistung übernehmen. Bitte verwenden Sie diese Dokumentation auf eigene Gefahr.
Verwendete Software:
Voraussetzungen:
- Ubuntu 20.04 LTS
- funktionierender Bind9 DNS-Server, z.B.:
Weitere, empfohlene Dokumentationen:
Was muss ich in der Konfiguration anpassen?
Einige Parameter müssen auf Ihre Umgebung angepasst werden. Im Verlauf dieser Dokumentation müssen Sie nur die Parameter anpassen, die in der nachfolgenden Tabelle aufgelistet sind. Sie können also ganz einfach durch die Funktion "Suchen und Ersetzen" (STRG + H), die Konfigurationsdateien auf Ihre Umgebung anpassen. Das Gleiche gilt für auszuführende Kommandos.
Folgende Parameter werden verwendet:
Wert | Hinweis | |
---|---|---|
Allgemein: | ||
Hostname DNS-Server | dns.example.com | Ersetzen Sie diesen Wert durch den FQDN Ihres Namedmanager- und DNS-Servers. |
Dynamische DNS-Zone: | ||
Domain | ddns.example.com | Ersetzen Sie diesen Wert Ihre gewünschte DDNS-Zone. |
IPv4-Netz | 198.51.100.0/24 | Ersetzen Sie diesen Wert Ihr gewünschtes IPv4-Netz. |
E-Mail-Adressen: | ||
Root-E-Mail-Adresse | root@example.com | Ersetzen Sie diesen Wert durch die E-Mail-Adresse desjenigen, der E-Mails für Root erhalten soll. |
Konfigurations-Dateien werden immer nach dem gleichen Muster erstellt. Unter jeder Datei, die eine Anpassung erfordert, finden Sie die nötigen Hinweise.
Dateien, die zwar Parameter aber keine eigentliche Konfiguration enthalten, werden nach dem vorgegebenen Syntax erstellt.
Beispiel:
Im folgenden Beispiel ist die Datei /home/beispiel.conf
zu erstellen und der Parameter domain
anzupassen.
Erstellen Sie eine neue Datei /home/beispiel.conf
mit folgendem Inhalt:
# nano /home/beispiel.conf
url = www.twlnet.com
content = Dokumentationen
domain = example.com
owner = root
# beispiel.conf
[...]
domain = example.com
[...]
Im folgenden Beispiel ist die Datei /home/beispiel.map
mit einer Liste Ihrer E-Mail-Adressen zu erstellen.
Erstellen Sie eine neue Datei /home/beispiel.map
nach folgendem Syntax:
# nano /home/beispiel.map
benutzer1@example.com
benutzer2@example.com
benutzer3@example.com
Server vorbereiten
Root-Rechte einräumen
Während der gesamten Dokumentation werden Root-Rechte benötigt. Um auf das Voranstellen von sudo
zu verzichten, verschaffen Sie sich für die gesamte Sitzung erhöhte Rechte mit:
# sudo -i
Update durchführen
Bringen Sie den Server auf den aktuellen Patchstand:
# apt update && apt upgrade
Software herunterladen und installieren
Laden Sie ISC-DHCP-Server
aus dem offiziellen Ubuntu-Repository herunter:
# apt install isc-dhcp-server
Sicherheitsschlüssel für DNS-Updates generieren
Der Durchführung von DNS-Updates soll nur mit Authentifizierung möglich sein.
Erstellen Sie den Sicherheitsschlüssel:
# rndc-confgen -a -b 512 wrote key file "/etc/bind/rndc.key"
Vergeben Sie die entsprechenden Zugriffsrechte:
# chmod 640 /etc/bind/rndc.key # chown root:bind /etc/bind/rndc.key
Kopieren Sie die Datei für die Nutzung des DHCP-Dienstes:
# cp -Rr /etc/bind/rndc.key /etc/dhcp/ddns-keys
Bind konfigurieren
Zonen einrichten
Fügen Sie der Datei /etc/bind/named.conf.local
folgendes hinzu:
# nano /etc/bind/named.conf.local
[...]
include "/etc/bind/rndc.key";
zone "ddns.example.com" {
type master;
file "/var/cache/bind/ddns.example.com.zone";
allow-update { key rndc-key; };
};
zone "100.51.198.in-addr.arpa" {
type master;
file "/var/cache/bind/100.51.198.in-addr.arpa.zone";
allow-update { key rndc-key; };
};
Forward-Lookup-Zone erstellen
Erstellen Sie eine neue Datei ddns.example.com.zone
mit folgendem Inhalt:
# nano /var/cache/bind/ddns.example.com.zone
$ORIGIN.
$TTL 604800 ; 1 week
@ IN SOA ddns.example.com. root.example.com. (
2018021364 ; serial
28800 ; refresh (8 hours)
3600 ; retry (1 hour)
302400 ; expire (3 days 12 hours)
43200 ; minimum (12 hours)
)
NS dns.example.com.
$ORIGIN ddns.example.com.
$TTL 3600 ; 1 hour
# ddns.example.com.zone [...] @ IN SOA ddns.example.com. root.example.com. ( [...] NS dns.example.com. [...]
Reverse-Lookup-Zone erstellen
Erstellen Sie eine neue Datei 100.51.198.in-addr.arpa.zone
mit folgendem Inhalt:
# nano /var/cache/bind/100.51.198.in-addr.arpa.zone
$ORIGIN .
$TTL 604800 ; 1 week
100.51.198..in-addr.arpa IN SOA ddns.example.com. root.example.com. (
1 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
NS dns.example.com.
$ORIGIN 100.51.198.in-addr.arpa.
$TTL 3600 ; 1 hour
# 100.51.198.in-addr.arpa.zone [...] @ IN SOA ddns.example.com. root.example.com. ( [...] NS dns.example.com. [...]
Vergeben Sie die entsprechenden Zugriffsrechte:
# chown bind:bind /var/cache/bind/*.zone # chmod 644 /var/cache/bind/*.zone
Zonen-Konfiguration prüfen
Prüfen Sie nun die eingerichteten Zonen:
# named-checkzone ddns.example.com.zone /var/cache/bind/ddns.example.com.zone.zone OK # named-checkzone 100.51.198.in-addr.arpa /var/cache/bind/100.51.198.in-addr.arpa.zone OK
Bind neustarten
Starten Sie den Dienst bind9
neu, damit die Konfiguration angewendet wird:
# service bind9 restart
ISC-DHCP-Sever konfigurieren
Netzwerk-Interface zuweisen
Editieren Sie die Datei /etc/default/isc-dhcp-server
und fügen Sie das Netzwerk-Interface hinzu auf dem der DHCP-Server auf Anfragen reagieren soll (z.B. eth0
).
# nano /etc/default/isc-dhcp-server
# isc-dhcp-server
[...]
INTERFACESv4="eth0"
[...]
Benennen Sie zunächst die /etc/dhcp/dhcpd.conf
um, damit Sie eine Sicherheitskopie der Original-Datei haben:
# mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak