Ubuntu 20.04 - Dynamic DNS mit BIND9 und ISC-DHCP-Server

Aus Twilight-Networks Wiki
Wechseln zu:Navigation, Suche


WiP.png


Diese Dokumentation ist noch nicht fertiggestellt und kann inhaltliche Fehler enthalten.
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.


Ubuntu 20.04 - Dynamic DNS mit BIND9 und ISC-DHCP-Server
Stand: Stand 10/2021


Bind 9 ISC Blue.png


Verwendete Software:


Voraussetzungen:


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
beispiel.conf
url		= www.twlnet.com
content	= Dokumentationen

domain	= example.com
owner	= root
Anzupassende Parameter:
# 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
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
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
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
Anzupassende Parameter:
# 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
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
Anzupassende Parameter:
# 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
Anzupassende Parameter:
# 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