DNS-Server · 15 min read · Sep 08, 2025
So richten Sie einen lokalen DNS-Resolver mit Unbound auf Ubuntu 22.04 ein

Unbound ist eine kostenlose und Open-Source-DNS-Server-Software, die für die Validierung, rekursive und zwischengespeicherte DNS-Resolver verwendet werden kann. Es ist ein funktionsreicher DNS-Server, der DNS-over-TLS (DoT), DNS-over-HTTPS (DoH), Query Name Minimisation, die aggressive Nutzung des DNSSEC-validierten Caches und Unterstützung für Autoritätszonen unterstützt. Unbound konzentriert sich auf die Privatsphäre und Sicherheit von DNS, ohne dabei Geschwindigkeit und Leistung zu opfern.
Unbound wird hauptsächlich von NLnet Labs entwickelt und unter der BSD-Lizenz vertrieben und unterstützt moderne Funktionen auf offenen Standards des DNS-Servers. Unbound wurde rigoros geprüft und kann auf Linux, BSD und macOS ausgeführt werden. Unbound ist für die meisten dieser Betriebssysteme verfügbar und kann über den System-Paketmanager installiert werden.
In diesem Tutorial installieren Sie Unbound auf einem Ubuntu 22.04-Server und richten ihn als lokalen DNS-Server mit einigen aktivierten Funktionen ein, wie z. B. DNSSEC, DNS-Cache, lokale Domainnamen und Subdomains sowie DNS-over-TLS (DoT). Sie richten auch das Unbound-Logging über Rsyslog und Logrotate ein und konfigurieren eine Ubuntu-Clientmaschine, um Ihre Unbound-Installation zu überprüfen.
Voraussetzungen
Um dieses Tutorial abzuschließen, müssen Sie die folgenden Anforderungen erfüllen:
- Ein Ubuntu 22.04-Server - Dieses Beispiel verwendet einen Ubuntu-Server mit dem Hostnamen ‘unbound-server‘ und der IP-Adresse ‘192.168.5.100‘.
- Ein Nicht-Root-Benutzer mit sudo/root-Administratorrechten.
Das war’s. Sie sind jetzt bereit, mit der Unbound-Installation fortzufahren.
Installation des Unbound DNS-Servers
Standardmäßig bietet das Ubuntu-Repository ein Unbound-Paket, das Sie einfach über APT installieren können. Bevor Sie mit der Unbound-Installation beginnen, geben Sie den folgenden apt-Befehl ein, um Ihr Ubuntu-Paket-Index zu aktualisieren und zu aktualisieren.
sudo apt updateÜberprüfen Sie nun die Details des Unbound-Pakets mit dem folgenden Befehl.
sudo apt info unboundZum Zeitpunkt des Schreibens bietet das Standard-Ubuntu-Repository Unbound 1.13.

Installieren Sie als Nächstes Unbound mit dem folgenden apt-Befehl. Wenn Sie dazu aufgefordert werden, geben Sie y ein, um zu bestätigen, und drücken Sie ENTER, um fortzufahren.
sudo apt install unboundAusgabe:

Sobald Unbound installiert ist, führen Sie den folgenden systemctl-Befehl aus, um den Unbound-Dienst zu überprüfen.
sudo systemctl is-enabled unbound
sudo systemctl status unboundDie Ausgabe ‘enabled‘ bestätigt, dass Unbound aktiviert ist und beim Systemstart automatisch gestartet wird. Und die Ausgabe ‘active (running)‘ bestätigt, dass Unbound läuft.

Konfigurieren von Unbound als lokalen DNS-Server
Die Standardkonfiguration von Unbound befindet sich unter ‘/etc/unbound/unbound.conf’. In diesem Schritt werden Sie die Hauptkonfigurationsdatei von Unbound ‘/etc/unbound/unbound.conf’ mit Ihrem bevorzugten Editor ändern.
Sie werden nun die grundlegende Konfiguration eines Unbound-DNS-Servers kennenlernen, den DNS-Cache aktivieren, lokale Domainnamen und Subdomains einrichten und Unbound als DNS-Resolver mit aktiviertem DoT (DNS-over-TLS) einrichten.
Grundkonfiguration
Öffnen Sie die Standardkonfigurationsdatei von Unbound ‘/etc/unbound/unbound.conf’ mit Ihrem bevorzugten Editor. Dieses Beispiel verwendet nano zum Bearbeiten der Konfigurationsdatei ‘/etc/unbound/unbound.conf’.
sudo nano /etc/unbound/unbound.confFügen Sie die folgenden Zeilen in die Datei ein. Der Abschnitt ‘server‘ ermöglicht es Ihnen, grundlegende Unbound-Konfigurationen festzulegen. In diesem Beispiel wird Unbound auf der lokalen IP-Adresse ‘192.168.5.100‘ mit dem Standardport 53 ausgeführt. Außerdem richten Sie das Logging für Syslog-Nachrichten ein und deaktivieren IPv6. Schließlich richten Sie Unbound so ein, dass es rekursiv jeden Hostnamen von den Root-DNS-Servern über die Datei ‘root-hints‘ abfragt.
#DNS-Over-TLS-Unterstützung hinzufügen
server:
use-syslog: yes
username: "unbound"
directory: "/etc/unbound"
tls-cert-bundle: /etc/ssl/certs/ca-certificates.crt
do-ip6: no
interface: 192.168.5.100
port: 53
prefetch: yes
root-hints: /usr/share/dns/root.hints
harden-dnssec-stripped: yesDetailparameter:
- use-syslog: Aktivieren Sie das Logging für Syslog-Nachrichten.
- username: Ausführen als Benutzer unbound, der der Standardbenutzer ist.
- directory: Das Standardarbeitsverzeichnis für Unbound ist das Verzeichnis ‘/etc/unbound’.
- tls-cert-bundle: Zertifikate, die verwendet werden, um Verbindungen, die upstream hergestellt werden, zu authentifizieren. Bei Debian-basierten Distributionen befindet sich die Zertifikatdatei unter ‘/etc/ssl/certs/ca-certificates.crt’.
- do-ip6: Verwenden Sie ‘yes‘, um Unbound mit IPv6 auszuführen, oder setzen Sie ‘no‘, um IPv6 zu deaktivieren.
- interface: Netzwerkinterface oder IP-Adresse, auf der Unbound ausgeführt wird. Sie können eine IP-Adresse oder den Schnittstellennamen wie ‘eth0‘ verwenden. Außerdem können Sie auf einem bestimmten Port ausführen, indem Sie ein Format wie ‘IP-ADDRESS@PORT‘ hinzufügen.
- port: Geben Sie den Port an, auf dem Unbound ausgeführt wird, und dieser Port wird die Verbindungen der Clients verwalten. Der Standard-DNS-Port ist 53.
- prefetch: Auf ‘yes‘ setzen, um das Vorababrufen von fast abgelaufenen Nachrichten-Cache-Einträgen zu aktivieren.
- root-hints: Eine Datei, die Details zu den Root-DNS-Servern enthält. Die Datei ‘/usr/share/dns/root.hints’ wird vom Paket ‘dns-root-data‘ bereitgestellt. Außerdem können Sie die root-hints-Datei von hier herunterladen ‘https://www.internic.net/domain/named.cache’.
- harden-dnssec-stripped: Setzen Sie es auf ‘yes‘, um sich gegen den Empfang von dnssec-stripped Daten abzusichern.
DNS-Cache aktivieren
Fügen Sie als Nächstes die folgenden Zeilen hinzu, um die DNS-Cache-Abfrage in Ihrer Unbound-Installation zu aktivieren.
cache-max-ttl: 14400
cache-min-ttl: 11000Detailparameter:
- cache-max-ttl: TTL oder Time To Live für RRSets und Nachrichten im DNS-Cache. Das Format ist in Sekunden.
- cache-min-ttl: minimale Time To Live für den Cache. Der Standardwert ist 0, aber Sie können dies auf Ihre Vorliebe ändern, z. B. ‘11000‘ Sekunden. Setzen Sie dies nicht auf mehr als 1 Stunde, da Sie aufgrund veralteter Daten in Schwierigkeiten geraten.
Unbound Datenschutz und Sicherheit
Jetzt können Sie die folgenden Zeilen hinzufügen, um grundlegende Datenschutz- und Sicherheitsmaßnahmen für Unbound einzurichten.
aggressive-nsec: yes
hide-identity: yes
hide-version: yes
use-caps-for-id: yesDetailparameter:
- aggressive-nsec: Auf ‘yes‘ setzen, um aggressives NSEC zu aktivieren, um die DNSSEC-NSEC-Kette zu verwenden, um NXDOMAIN und andere Ablehnungen zu synthetisieren. Überprüfen Sie die IETF-Webseite über ‘NSEC’ https://www.ietf.org/archive/id/draft-ietf-dnsop-nsec-ttl-00.html.
- hide-identity: Setzen Sie auf yes, um Antworten von Bind-Abfragen zu id.server oder hostname.bind zu deaktivieren.
- hide-version: Setzen Sie auf yes, um version.server und version.bind-Abfragen zu deaktivieren.
- use-caps-for-id: Setzen Sie auf yes, um die Verwendung von ‘0x100-encoded’ in der Abfrage zu aktivieren, um Spoofing-Versuche zu vereiteln.
Definieren Sie private Netzwerke und Zugriffskontrolllisten (ACLs)
Als Nächstes müssen Sie die privaten Adressen Ihres Netzwerks und die ACLs (Zugriffskontrolllisten) definieren. Stellen Sie sicher, dass Sie das lokale Subnetz in den folgenden Zeilen mit Ihrer aktuellen Netzwerkumgebung ändern.
private-address: 192.168.0.0/16
private-address: 192.168.5.0/24
private-address: 169.254.0.0/16
private-address: 172.16.0.0/12
private-address: 10.0.0.0/8
private-address: fd00::/8
private-address: fe80::/10
#kontrollieren, welche Clients (rekursive) Abfragen durchführen dürfen
access-control: 127.0.0.1/32 allow_snoop
access-control: ::1 allow_snoop
access-control: 127.0.0.0/8 allow
access-control: 192.168.5.0/24 allowDetailparameter:
- private-address: Definieren Sie private Netzwerk-Subnets in Ihrer Infrastruktur. Nur ‘private-domain‘ und ‘local-data’-Namen dürfen diese privaten Adressen haben.
- access-control: Definieren Sie die Zugriffskontrolle, in der Clients (rekursive) Abfragen an den Unbound-Server durchführen dürfen. Der Parameter ‘allow‘ aktiviert rekursive Abfragen, während ‘allow_snoop‘ sowohl rekursive als auch nicht-rekursive Abfragen aktiviert.
Lokale Domain einrichten
Nachdem Sie die private Adresse und die Zugriffskontrolllisten konfiguriert haben, definieren Sie die lokale Zone Ihres Domainnamens. Dies ist besonders nützlich, wenn Sie mehrere selbst gehostete Anwendungen in Ihrem lokalen Netzwerk haben. Sie können ganz einfach Ihren Domainnamen oder Subdomains definieren und auf die spezifische Ziel-IP-Adresse verweisen.
Dieses Beispiel erstellt die Zone für die Domain ‘home.lan‘ mit dem Typ ‘static‘, dann erstellen Sie mehrere Subdomains über den Parameter ‘local-data‘. Jede Subdomain wird auf eine spezifische IP-Adresse verwiesen, und Sie erstellen auch PTR-Einträge über den Parameter ‘local-data-ptr‘.
# lokale Zone
local-zone: "home.lan." static
local-data: "firewall.home.lan. IN A 10.0.0.1"
local-data: "vault.home.lan. IN A 10.0.0.2"
local-data: "media.home.lan. IN A 10.0.0.3"
local-data: "docs.home.lan. IN A 10.0.0.4"
local-data: "wiki.home.lan. IN A 10.0.0.5"
local-data-ptr: "10.0.0.1 firewall.home.lan"
local-data-ptr: "10.0.0.2 vault.home.lan"
local-data-ptr: "10.0.0.3 media.home.lan"
local-data-ptr: "10.0.0.4 docs.home.lan"
local-data-ptr: "10.0.0.5 wiki.home.lan"Detailparameter:
- local-zone: Definieren Sie die lokale Domain hier.
- local-data: Definieren Sie A-Einträge für Subdomains und welche lokale IP-Adresse aufgelöst wird.
- local-data-ptr: Definieren Sie den PTR-Eintrag für Ihre Subdomains.
Unbound-Leistungsoptimierung und -anpassung
Fügen Sie die folgenden Zeilen hinzu, um mehr Leistung zu erzielen. Sie können die folgenden Parameter an Ihre aktuelle Umgebung anpassen.
num-threads: 4
msg-cache-slabs: 8
rrset-cache-slabs: 8
infra-cache-slabs: 8
key-cache-slabs: 8
rrset-cache-size: 256m
msg-cache-size: 128m
so-rcvbuf: 8mDetailparameter:
- num-threads: die Anzahl der Threads, die erstellt werden. Der Wert sollte mit den CPU-Kernen des Servers übereinstimmen.
- msg-cache-slabs: die Anzahl der Platten, die für den Nachrichten-Cache verwendet werden. Setzen Sie es auf 8, um Unbound zu optimieren, um mehr Speicher für das Caching zu verwenden.
- rrset-cache-slabs: die Anzahl der Platten, die für den RRset-Cache verwendet werden. Setzen Sie es auf 8, um Unbound zu optimieren, um mehr Speicher für den RRSet-Cache zu verwenden.
- infra-cache-slabs: die Anzahl der Platten, die für den Infrastruktur-Cache verwendet werden. Setzen Sie es auf 8, um Unbound zu optimieren, um mehr Speicher für den Infrastruktur-Cache zu verwenden.
- key-cache-slabs: die Anzahl der Platten, die für den Schlüssel-Cache verwendet werden. Setzen Sie es auf 8, um Unbound zu optimieren, um mehr Speicher für den Schlüssel-Cache zu verwenden.
- rrset-cache-size: Geben Sie die Menge an Speicher für den RRSet-Cache an. Dieses Beispiel verwendet 256 MB, während der Standardwert nur 4 MB beträgt.
- msg-cache-size: Geben Sie die Menge an Speicher für den Nachrichten-Cache an. Dieses Beispiel verwendet 128 MB, während der Standardwert nur 4 MB beträgt.
- so-rcvbuf: Legen Sie die Puffergröße für den DNS-Port 53/udp auf 8 MB fest. Auf dem Ubuntu-System müssen Sie auch einen höheren Wert für den Kernelparameter ‘net.core.rmem_max‘ festlegen.
Unbound als DNS-Resolver mit DNS-over-TLS (DoT) einrichten
Fügen Sie schließlich einen neuen Abschnitt ‘forward-zone‘ hinzu, um Unbound als DNS-Resolver für Ihre lokalen Netzwerke einzurichten. Dieses Beispiel verwendet Quad9-DNS-Server mit aktiviertem DoT (DNS-over-TLS).
forward-zone:
name: "."
forward-ssl-upstream: yes
## Fügen Sie auch IBM IPv6 Quad9 über TLS hinzu
forward-addr: 9.9.9.9@853#dns.quad9.net
forward-addr: 149.112.112.112@853#dns.quad9.netDetailparameter:
- forward-zone: Definieren Sie die Weiterleitungszone für Unbound.
- name: auf “.” setzen, um alle DNS-Abfragen weiterzuleiten.
- forward-addr: Verwenden Sie einen bestimmten Forwarder, um alle DNS-Abfragen weiterzuleiten. Dieses Beispiel verwendet Quad9-DNS mit aktiviertem DNS-over-TLS (DoT).
Speichern Sie die Datei ‘/etc/unbound/unbound.conf’, wenn Sie fertig sind. Mit der modifizierten Unbound-Konfigurationsdatei können Sie jetzt den Unbound-Dienst neu starten und die Änderungen anwenden.
Führen Sie den folgenden Befehl aus, um die Unbound-Konfiguration zu überprüfen und zu verifizieren. Wenn erfolgreich, sollten Sie eine Ausgabe wie ‘unbound-checkconf: keine Fehler in /etc/unbound/unbound.conf’ erhalten.
sudo unbound-checkconfFühren Sie als Nächstes den folgenden Befehl aus, um den Standardwert ‘net.core.rmem_max’ Ihres Systems über die Datei ‘/etc/sysctl.conf’ zu erhöhen. Wenden Sie dann die Änderungen über den Befehl ‘sysctl‘ an.
echo "net.core.rmem_max= 8388608" >> /etc/sysctl.conf
sudo sysctl -pFühren Sie danach den folgenden systemctl-Befehl aus, um den Unbound-Dienst neu zu starten und die Änderungen anzuwenden.
sudo systemctl restart unboundDamit sollte der Unbound-Dienst mit der neuen Konfiguration auf der IP-Adresse 192.168.5.100 auf dem Port 53 ausgeführt werden.

Überprüfen Sie die Liste der offenen Ports auf Ihrem System über den ss-Befehl unten.
ss -tulpnSie erhalten eine Ausgabe wie diese - Der Standard-DNS-UDP-Port 53 wird vom Unbound-Dienst verwendet.

Jetzt, da Sie die Unbound-Konfigurationen abgeschlossen haben, richten Sie die UFW-Firewall ein und öffnen den Standard-DNS-Port 53.
Einrichten der UFW-Firewall
Auf Ubuntu ist die standardmäßig installierte Firewall UFW. Sie ist installiert, aber noch inaktiv. In diesem Schritt richten Sie die UFW-Firewall ein und öffnen den UDP-Port für Unbound.
Führen Sie den folgenden Befehl aus, um den OpenSSH-Dienst in UFW über den folgenden Befehl zu öffnen. Dann können Sie den DNS-Port 53/udp zur UFW-Firewall hinzufügen.
sudo ufw allow OpenSSH
sudo ufw allow 53/udpFühren Sie als Nächstes den folgenden Befehl aus, um den UFW-Firewall-Dienst zu starten und zu aktivieren. Wenn Sie dazu aufgefordert werden, geben Sie y ein, um zu bestätigen, und drücken Sie ENTER, um fortzufahren.
sudo ufw enableDie Ausgabe ‘Firewall ist aktiv und beim Systemstart aktiviert‘ bestätigt, dass die UFW-Firewall läuft und aktiviert ist, was bedeutet, dass die UFW-Firewall beim Systemstart automatisch gestartet wird.
Ausgabe:

Führen Sie jetzt den folgenden UFW-Befehl aus, um den Status der UFW-Firewall zu überprüfen. Sie sollten eine Ausgabe erhalten, dass der UFW-Status ‘aktiv‘ ist, mit dem OpenSSH-Dienst und dem DNS-Port 53/udp aktiviert.
sudo ufw statusAusgabe:

Einrichten des Unbound-Logs über Rsyslog und Logrotate
Nachdem Sie die UFW-Firewall konfiguriert haben, richten Sie jetzt eine Protokolldatei für Unbound über Rsyslog und Logrotate ein. Der Rsyslog-Dienst erstellt eine spezifische Protokolldatei für Unbound, und Logrotate wird die Unbound-Protokolldatei zu einem bestimmten Zeitpunkt rotieren.
Führen Sie den folgenden Befehl aus, um eine neue Rsyslog-Konfiguration ‘/etc/rsyslog.d/unbound.conf’ für den Unbound-Dienst hinzuzufügen. Damit werden die Unbound-Protokolle in ‘/var/log/unbound.log‘ gespeichert.
cat <Führen Sie als Nächstes den folgenden Befehl aus, um die Logrotate-Konfiguration ‘/etc/logrotate.d/unbound‘ für den Unbound-Dienst hinzuzufügen. Dies wird die Protokollrotation für die Unbound-Protokolldatei ‘/var/log/unbound.log‘ täglich erstellen.
cat <
Führen Sie jetzt den folgenden systemctl-Befehl aus, um die Rsyslog- und Logrotate-Dienste neu zu starten. Dies wird die Änderungen anwenden, die Sie an beiden Diensten vorgenommen haben.
sudo systemctl restart rsyslog logrotateZuletzt können Sie die Protokolldatei überprüfen, indem Sie den Unbound-Dienst mit dem folgenden Befehl neu starten.
Damit werden die Nachrichten, die während des Neustartprozesses vom Unbound-Dienst generiert werden, in der Protokolldatei ‘/var/log/unbound.log‘ gespeichert. Führen Sie den cat-Befehl aus, um den Inhalt der Protokolldatei ‘/var/log/unbound.log‘ anzuzeigen.
sudo systemctl restart unbound
cat /var/log/unbound.logAusgabe:

Einrichten des DNS-Resolvers auf dem Client
Auf der Client-Seite müssen Sie den DNS-Resolver einrichten und Unbound als Standard-Resolver auf dem Client-System verwenden. Für die Ubuntu-Distribution können Sie NetworkManager, den systemd-resolved-Dienst oder eine statische Datei für ‘/etc/resolv.conf‘ verwenden.
In diesem Schritt lernen Sie, wie Sie den DNS-Resolver auf Ubuntu Desktop und Ubuntu Server einrichten.
Für Ubuntu Desktop
Der NetworkManager-Dienst verwaltet das Standardnetzwerk für die Ubuntu Desktop-Version. Sie können den DNS-Resolver also ganz einfach über den NetworkManager einrichten, was über die Befehlszeile, die GUI oder durch Bearbeiten der Konfigurationsdatei für jede Netzwerkschnittstelle erfolgen kann.
Um den DNS-Resolver über die Befehlszeile einzurichten, können Sie nmcli verwenden. Führen Sie den folgenden Befehl aus, um den DNS-Resolver für die spezifische Netzwerkschnittstelle einzurichten. Sie können den Schnittstellennamen eth0 ersetzen.
sudo nmcli connection modify eth0 ipv4.dns "192.168.5.100"Jede von NetworkManager verwaltete Schnittstelle hat eine spezifische Konfigurationsdatei, die im Verzeichnis ‘/etc/NetworkManager/system-connections’ mit dem Format ‘.nmconnection’ gespeichert ist.
Sie können die Schnittstellenkonfiguration mit Ihrem bevorzugten Texteditor ändern und die folgenden Zeilen zum Abschnitt ‘[ipv4]‘ hinzufügen.
[ipv4]
dns=192.168.5.100
ignore-auto-dns=true
never-default=trueWenn Sie eine GUI-Anwendung bevorzugen, öffnen Sie die NetworkManager-Anwendung auf Ihrem Computer und bearbeiten Sie den Schnittstellennamen, den Sie ändern möchten. Klicken Sie auf die Registerkarte ‘IPv4-Einstellungen’ und geben Sie Ihren lokalen DNS-Server ein. Klicken Sie dann auf Speichern, um zu bestätigen.

Für generische Ubuntu-Server
Für generische Ubuntu-Servermaschinen wird das Netzwerk von Netplan mit dem Backend-Systemd-networkd-Dienst verwaltet. Und für die DNS-Resolver-Konfiguration wird systemd-networkd verwendet, das systemd-resolved verwendet. Um den DNS-Resolver auf einem generischen Ubuntu-Server einzurichten, können Sie dies über den Dienst systemd-resolved erreichen.
Öffnen Sie die Konfigurationsdatei von systemd-resolved mit Ihrem bevorzugten Editor. Dieses Beispiel verwendet einen Nano-Editor.
sudo nano /etc/systemd/resolved.confIm Abschnitt ‘[Resolve]‘ kommentieren Sie den Parameter ‘DNS‘ aus und geben die IP-Adresse Ihres lokalen DNS-Servers ein.
[Resolve]
DNS=192.168.5.100Speichern Sie die Datei und schließen Sie sie, wenn Sie fertig sind.
Führen Sie jetzt den folgenden Befehl aus, um den Dienst systemd-resolved neu zu starten und die Änderungen anzuwenden. Dann können Sie den Status des DNS-Resolvers über den resolvectl-Befehl wie unten überprüfen.
sudo systemctl restart systemd-resolved
sudo resolvectl statusWenn erfolgreich, sollten Sie eine Ausgabe wie diese sehen - Der Standard-DNS-Resolver wurde auf die IP-Adresse des lokalen DNS-Servers Unbound 192.168.5.100 geändert.

Testen des Unbound DNS-Servers
Um sicherzustellen, dass der Unbound DNS als DNS-Resolver funktioniert, führen Sie den folgenden dig-Befehl von der Ubuntu-Clientmaschine aus. Der Parameter ‘@192.168.5.100‘ stellt sicher, dass Sie einen Unbound-DNS-Server verwenden, der auf der IP-Adresse ‘192.168.5.100‘ ausgeführt wird.
dig @192.168.5.100Wenn erfolgreich, erhalten Sie eine Antwort vom Root-DNS-Server wie die folgende Ausgabe. Außerdem werden Sie das ‘ad‘ ( authentic data) Flag in der Headerausgabe bemerken, was bedeutet, dass DNSSEC aktiviert ist.

Führen Sie als Nächstes den folgenden Befehl aus, um sicherzustellen, dass Clients auf Domainnamen im Internet zugreifen können.
dig github.com
dig duckduckgo.comWenn erfolgreich, sollten Sie eine Ausgabe mit Details zu den DNS-Einträgen für die Domain ‘github.com‘ und ‘duckduckgo.com‘ erhalten. Sie können sehen, dass der DNS-Resolver, der die Abfrage beantwortet, ‘127.0.0.53#53’ ist, der systemd-resolved, der Unbound als Standard-Resolver verwendet. Außerdem können Sie die ‘Query time‘ für jede Abfrage sehen, die ‘ Query time‘ für die Domain ‘github.com‘ beträgt ‘ 1748‘ und für ‘duckduckgo.com‘ beträgt sie ‘ 999‘.
Ausgabe für github.com:

Ausgabe für duckduckgo.com:

Wenn Sie den dig-Befehl oben erneut ausführen, sollte die ‘Query time’ reduziert werden. Und das bestätigt, dass Ihre Abfragen zwischengespeichert wurden und der DNS-Cache funktioniert.
dig github.com
dig duckduckgo.comZugriff auf Github, nachdem der Cache gespeichert wurde:

Zugriff auf duckduckgo, nachdem der Cache gespeichert wurde:

Überprüfen Sie als Nächstes die lokale Domain oder Subdomain über den folgenden dig-Befehl. Wenn erfolgreich, wird jede Subdomain auf die richtige IP-Adresse verwiesen, die in der Unbound-Konfigurationsdatei ‘/etc/unbound/unbound.conf‘ konfiguriert ist.
dig firewall.home.lan +short
dig vault.home.lan +short
dig media.home.lan +shortAusgabe:

Führen Sie jetzt den folgenden dig-Befehl aus, um sicherzustellen, dass PTR-Einträge auf den richtigen Domainnamen verweisen.
dig -x 10.0.0.1 +short
dig -x 10.0.0.2 +short
dig -x 10.0.0.3 +shortAusgabe:

Sie können auch DoT (DNS über TLS) über tcpdump überprüfen. Installieren Sie das Paket ‘tcpdump‘ auf Ihrem Unbound-Server.
sudo apt install tcpdumpGeben Sie y ein, wenn Sie dazu aufgefordert werden, und drücken Sie ENTER, um fortzufahren.

Führen Sie jetzt den folgenden tcpdump-Befehl aus, um den Datenverkehr auf der Schnittstelle ‘eth0‘ mit dem DoT-Port 853 zu überwachen. In diesem Beispiel wird der Unbound-DNS auf der IP-Adresse ‘192.168.5.100‘ mit der Schnittstelle ‘eth0‘ ausgeführt.
tcpdump -vv -x -X -s 1500 -i eth0 'port 853'Wechseln Sie zur Clientmaschine und führen Sie den folgenden Befehl aus, um auf externe/Internet-Domainnamen über den folgenden dig-Befehl zuzugreifen.
dig google.comAusgabe:

Wechseln Sie danach zurück zum Unbound-Server, und Sie sollten jetzt eine Ausgabe ähnlich dieser im tcpdump-Ausgang erhalten.

Damit haben Sie jetzt den lokalen DNS-Server über Unbound auf dem Ubuntu-Server installiert und konfiguriert. Außerdem haben Sie einen DNS-Resolver auf Ubuntu-Desktops und -Servern über NetworkManager und systemd-resolved konfiguriert.
Fazit
In diesem Leitfaden haben Sie den Unbound Local DNS Server auf einem Ubuntu 22.04-Server installiert. Sie haben den DNS-Cache, DNSSEC (standardmäßig aktiviert), private Adressen und ACLs aktiviert, eine lokale Domain über die lokale Zone hinzugefügt und dann Unbound als DNS-Resolver mit DoT (DNS-over-TLS) konfiguriert.
Darüber hinaus haben Sie grundlegende Datenschutz- und Sicherheitsmaßnahmen für DNS konfiguriert, Unbound optimiert und Unbound-Protokolle über Rsyslog und Logrotate konfiguriert.
Am Ende dieses Leitfadens haben Sie auch gelernt, wie Sie einen DNS-Resolver auf Ubuntu-Desktops und -Servern über NetworkManager und systemd-resolved einrichten. Und auch die grundlegende Verwendung des dig-Befehls zum Überprüfen des DNS-Servers gelernt.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.