So überprüfen und richten Sie DNS-Server unter Linux ein: Von Grundlagen bis zu Sicherheitsmaßnahmen

Das genaue Überprüfen und Konfigurieren von DNS-Servern auf einem Linux-System ist äußerst wichtig für die Aufrechterhaltung der Stabilität und Effizienz Ihres Netzwerks. Dieser Artikel bietet eine umfassende Anleitung sowohl für Anfänger als auch für fortgeschrittene Benutzer, wie DNS-Server unter Linux überprüft und eingerichtet werden. Beginnend mit grundlegenden Konzepten umfasst es die Verwendung spezifischer Befehlszeilenwerkzeuge, das Bearbeiten von Konfigurationsdateien, die Fehlersuche und umfasst gründlich praktisches Wissen. Als Ergebnis wird Ihr Linux-System effizienter beim Zugriff auf Ressourcen im Internet.

Inhaltsverzeichnis

Was ist DNS: Eine Erklärung des Grundkonzepts

Das Domain Name System (DNS) ist ein System, das Internet-Domainnamen in IP-Adressen umwandelt und umgekehrt. Es spielt eine entscheidende Rolle dabei, Internet-Suchen und den Zugriff auf Websites zu ermöglichen, indem es einprägsame Domainnamen (z. B. www.example.com) in numerische IP-Adressen (z. B. 192.0.2.1) umwandelt, die Computer verstehen können. Dieser Prozess, bekannt als „Namensauflösung“, erleichtert das Abrufen von Informationen im Internet.

DNS hat eine hierarchische Struktur mit den „Root-DNS-Servern“ an der Spitze, die den letzten Teil der Domainnamen verwalten (z. B. .com, .org). Diese werden gefolgt von „Top-Level-Domain (TLD)-Servern“, dann „Authoritative DNS-Servern“, und schließlich antworten „Lokale DNS-Server“ auf Benutzeranfragen in diesem strukturierten Setup.

Wenn ein Benutzer einen Domainnamen in einen Webbrowser eingibt, sucht der lokale DNS-Server nach der entsprechenden IP-Adresse. Wenn der lokale DNS-Server die Informationen nicht hat, wird die Anfrage an höhergelegene DNS-Server weitergeleitet, bis die erforderlichen Informationen abgerufen werden. Dieser Prozess wird in der Regel innerhalb von Millisekunden abgeschlossen, sodass der Benutzer auf die Webseite zugreifen kann.

Das DNS-System ist unverzichtbar für die Infrastruktur des Internets, und sein effizienter Betrieb hat erhebliche Auswirkungen auf die Webperformance und Zugänglichkeit. Daher ist das ordnungsgemäße Konfigurieren und Verwalten von DNS-Servern auf Linux-Systemen eine entscheidende Fähigkeit für Systemadministratoren.

So überprüfen Sie DNS-Server: Verwendung von Befehlszeilenwerkzeugen

Es gibt mehrere Möglichkeiten, die DNS-Servereinstellungen auf Linux-Systemen zu überprüfen, aber die direkteste und häufigste Methode ist die Verwendung von Befehlszeilenwerkzeugen. Hier stellen wir zwei weit verbreitete Werkzeuge vor: den cat-Befehl und den nmcli-Befehl.

Überprüfung von /etc/resolv.conf mit dem `cat`-Befehl

Die grundlegendste Methode ist das Anzeigen der Datei /etc/resolv.conf. Diese Datei enthält die Adressen der DNS-Server, die das System für die DNS-Auflösung verwendet. Sie können ihren Inhalt überprüfen, indem Sie den folgenden Befehl ausführen:

cat /etc/resolv.conf

Die Ausgabe könnte so aussehen:

# Generated by NetworkManager
search example.com
nameserver 192.168.1.1
nameserver 8.8.8.8

In diesem Beispiel zeigen die Zeilen mit nameserver die IP-Adressen der DNS-Server an, mit 192.168.1.1 und Googles öffentlicher DNS-Adresse 8.8.8.8 als Einstellung.

Überprüfung von DNS-Servern mit dem `nmcli`-Befehl

Auf Systemen, die NetworkManager verwenden, können Sie den nmcli-Befehl verwenden, um die DNS-Einstellungen der aktuellen Netzwerkverbindung zu überprüfen. Der folgende Befehl ruft Informationen zu DNS-Servern ab:

nmcli device show | grep IP4.DNS

Dieser Befehl extrahiert und zeigt die DNS-Servereinstellungen (IPv4) aus den aktuellen Netzwerkgeräteinformationen an. Die Ausgabe könnte so aussehen:

IP4.DNS[1]:                             192.168.1.1
IP4.DNS[2]:                             8.8.8.8

Diese Methoden ermöglichen es Ihnen, die auf Ihrem Linux-System eingestellten DNS-Serverinformationen einfach zu überprüfen, was für die Diagnose von Netzwerkverbindungsproblemen oder die Überlegung von Änderungen an einem bestimmten DNS-Server nützlich sein kann.

So richten Sie DNS-Server ein: Bearbeiten von /etc/resolv.conf

Eine der grundlegenden Methoden zum Einrichten von DNS-Servern auf einem Linux-System ist das direkte Bearbeiten der Datei /etc/resolv.conf. Diese Datei enthält eine Liste der DNS-Server, auf die das System für die DNS-Auflösung verweist. Hier erklären wir, wie Sie diese Datei sicher bearbeiten.

Bearbeiten der Datei /etc/resolv.conf

  1. Zuerst sichern Sie die aktuellen Einstellungen. Es ist wichtig, die Originaldatei im Falle von Problemen wiederherstellen zu können. Verwenden Sie den folgenden Befehl, um eine Sicherungskopie zu erstellen:
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
  1. Verwenden Sie anschließend einen Texteditor, um die Datei /etc/resolv.conf zu bearbeiten. Hier verwenden wir den Editor nano, aber Sie können Ihren bevorzugten Editor wie vi oder emacs verwenden:
sudo nano /etc/resolv.conf
  1. Sobald die Datei geöffnet ist, fügen Sie Zeilen hinzu oder bearbeiten Sie diese, die mit nameserver beginnen, um DNS-Serveradressen anzugeben. Um beispielsweise Googles öffentliche DNS-Adressen zu verwenden, würden Sie schreiben:
nameserver 8.8.8.8
nameserver 8.8.4.4
  1. Nachdem Sie die Änderungen vorgenommen haben, speichern Sie die Datei und verlassen Sie den Editor. Wenn Sie nano verwenden, drücken Sie Ctrl + O, um zu speichern und Ctrl + X, um zu beenden.

Aktivierung der neuen Einstellungen

Nachdem Sie die Datei /etc/resolv.conf bearbeitet haben, müssen Sie normalerweise den Netzwerkdienst neu starten, um die Änderungen anzuwenden. Dies kann mit dem folgenden Befehl durchgeführt werden:

sudo systemctl restart network.service

Oder, wenn Sie NetworkManager verwenden, können Sie die Netzwerkverbindung mit diesem Befehl neu starten:

sudo systemctl restart NetworkManager

Dies wendet die neuen DNS-Einstellungen auf Ihr System an. Um sicherzustellen, dass die Einstellungen korrekt funktionieren, wird empfohlen, den Test durch Zugriff auf Websites oder die Verwendung von Befehlen wie ping zur Auflösung von Domainnamen durchzuführen.

Die manuelle DNS-Serverkonfiguration ist effektiv, um DNS-Auflösungsstrategien entsprechend den System- oder Netzwerkanforderungen anzupassen. Diese Methode ist jedoch möglicherweise nicht für langfristige Lösungen geeignet, da die Datei /etc/resolv.conf automatisch von anderen Prozessen überschrieben werden könnte. Daher sollten Sie Tools wie resolvconf, systemd-resolved oder NetworkManager zur Verwaltung der DNS-Einstellungen in Betracht ziehen.

Überprüfen und Ändern von DNS-Einstellungen mit Befehlszeilenwerkzeugen

Linux bietet mehrere Methoden zum Überprüfen und Ändern von DNS-Einstellungen mit der Befehlszeile, ohne auf GUI-Tools angewiesen zu sein. Diese Methoden sind besonders nützlich für Serverumgebungen oder die Verwaltung von Remote-Systemen. Hier erklären wir Methoden mit den Befehlen systemd-resolve und nmcli.

Überprüfung von DNS-Einstellungen mit dem `systemd-resolve`-Befehl

Auf Systemen, die systemd verwenden, kann der Befehl systemd-resolve verwendet werden, um die aktuellen DNS-Einstellungen zu überprüfen. Dieser Befehl steht im Zusammenhang mit dem Dienst systemd-resolved und bietet Konfiguration und Statistiken zur Namensauflösung.

Um DNS-Einstellungen zu überprüfen, führen Sie den folgenden Befehl aus:

systemd-resolve --status

Dieser Befehl liefert detaillierte Ausgaben, einschließlich der verwendeten DNS-Server, Suchdomänen und anderer netzwerkbezogener Informationen. Die Ausgabe ist nach Netzwerkschnittstelle unterteilt, wobei jeder Abschnitt Einstellungen für diese Schnittstelle anzeigt.

Ändern von DNS-Einstellungen mit dem `nmcli`-Befehl

Auf Systemen, die NetworkManager verwenden, kann der Befehl nmcli verwendet werden, um DNS-Einstellungen zu ändern. nmcli ist ein Befehlszeilenwerkzeug zur Einrichtung und Verwaltung von Netzwerkverbindungen.

Um beispielsweise DNS-Server für eine bestimmte Verbindung einzustellen, verwenden Sie den folgenden Befehl:

nmcli connection modify <Verbindungsname> ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify <Verbindungsname> ipv4.ignore-auto-dns yes
nmcli connection up <Verbindungsname>

In diesem Befehl werden Googles DNS-Server (8.8.8.8 und 8.8.4.4) für die Verbindung mit dem Namen <Verbindungsname> eingestellt. Die Option ipv4.ignore-auto-dns yes wird verwendet, um automatisch erhaltene DNS-Einstellungen zu ignorieren und stattdessen die manuell angegebenen DNS zu verwenden. Schließlich wird der Befehl nmcli connection up verwendet, um die Verbindung neu zu starten und die neuen Einstellungen anzuwenden.

Diese Befehlszeilenwerkzeuge ermöglichen eine flexible Überprüfung und Änderung der DNS-Einstellungen auf Linux-Systemen. Sie sind besonders nützlich für die Fernverwaltung von Systemen und die Automatisierung durch Skripte.

DNS-Einstellungen mit systemd-resolved

systemd-resolved ist ein moderner DNS-Resolver, der in den systemd System- und Servicemanager integriert ist. Er bietet verschiedene Funktionen wie DNS-Caching, DNSSEC-Validierung und Routing von Datensätzen, die den DNS-Auflösungsprozess vereinfachen. Hier erklären wir, wie Sie DNS-Einstellungen mit systemd-resolved verwalten.

Übersicht über systemd-resolved

systemd-resolved bearbeitet DNS-Auflösungsanfragen von lokalen Anwendungen, zwischenspeichert Antworten von externen DNS-Servern, um die Namensauflösungsgeschwindigkeit und -zuverlässigkeit zu verbessern. Es verwaltet auch die Datei /etc/resolv.conf und bietet eine systemweite DNS-Auflösungsstrategie.

Aktivierung und Konfiguration von systemd-resolved

Die meisten modernen Linux-Distributionen haben systemd-resolved standardmäßig aktiviert. Wenn es jedoch nicht aktiviert ist, können Sie den Dienst mit dem folgenden Befehl starten und aktivieren:

sudo systemctl enable --now systemd-resolved.service

Einmal aktiviert, können Sie die Datei /etc/systemd/resolved.conf bearbeiten, um benutzerdefinierte DNS-Serveradressen festzulegen. Es wird empfohlen, die Datei vor dem Bearbeiten zu sichern.

sudo nano /etc/systemd/resolved.conf

Um beispielsweise Googles öffentliche DNS-Server zu verwenden, würden Sie folgendes einstellen:

[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 9.9.9.9

Die Option DNS gibt die IP-Adressen der primären DNS-Server an, die verwendet werden sollen, getrennt durch Leerzeichen. FallbackDNS listet DNS-Server auf, die verwendet werden sollen, wenn die primären Server nicht verfügbar sind.

Nachdem Sie die Einstellungen geändert haben, starten Sie den Dienst systemd-resolved neu, um die Änderungen anzuwenden:

sudo systemctl restart systemd-resolved

Das Verhältnis zwischen systemd-resolved und /etc/resolv.conf

Auf Systemen, die systemd-resolved verwenden, wird empfohlen, die Datei /etc/resolv.conf mit /run/systemd/resolve/stub-resolv.conf symbolisch zu verlinken. Dies ermöglicht die Nutzung des lokalen DNS-Caches und der Weiterleitungsfunktionen, die von systemd-resolved bereitgestellt werden. Um den symbolischen Link einzurichten, verwenden Sie den folgenden Befehl:

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Dies ermöglicht es systemd-resolved, den DNS-Auflösungsprozess des Systems zu verwalten, was eine schnellere und sicherere Internetverbindung bietet.

Verwaltung von DNS mit Network Manager

In Linux-Systemen ist Network Manager (NetworkManager) das am häufigsten verwendete Werkzeug für Netzwerkkonfiguration und -verwaltung. Es erleichtert die Verwaltung verschiedener Netzwerkschnittstellen, einschließlich drahtloser Netzwerke, kabelgebundener Netzwerke, mobiler Breitbandverbindungen und VPN-Verbindungen. DNS-Einstellungen können ebenfalls über dieses Werkzeug verwaltet werden. Hier diskutieren wir, wie DNS mit Network Manager eingerichtet wird.

Ändern von DNS-Einstellungen mit Network Manager

Mit Network Manager können Sie DNS-Einstellungen entweder über die grafische Benutzeroberfläche (GUI) oder die Befehlszeilenschnittstelle (CLI) ändern. Für die CLI ist der Befehl nmcli sehr nützlich.

Um die DNS-Einstellungen für eine bestimmte Netzwerkverbindung zu ändern, identifizieren Sie zunächst den Namen der Verbindung. Sie können alle verfügbaren Netzwerkverbindungen mit dem folgenden Befehl auflisten:

nmcli connection show

Verwenden Sie dann den Verbindungsnamen, um die DNS-Server festzulegen. Der folgende Befehl legt die DNS-Serveradressen für die Verbindung mit dem Namen „Verbindungsname“ fest:

nmcli connection modify "Verbindungsname" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify "Verbindungsname" ipv4.ignore-auto-dns yes
nmcli connection up "Verbindungsname"

Dieser Befehl legt Googles DNS-Server (8.8.8.8 und 8.8.4.4) für eine bestimmte Verbindung fest und ignoriert automatisch erhaltene DNS-Einstellungen. Schließlich wird die Verbindung mit nmcli connection up neu gestartet, um die Einstellungen anzuwenden.

Ändern globaler DNS-Einstellungen

Sie können auch Network Manager verwenden, um die systemweiten DNS-Einstellungen zu ändern. Dazu bearbeiten Sie die Datei /etc/NetworkManager/NetworkManager.conf und fügen die Option dns im Abschnitt [main] hinzu:

[main]
dns=dnsmasq

Diese Einstellung ermöglicht es Network Manager, dnsmasq für die Verarbeitung von DNS-Anfragen zu verwenden. dnsmasq ist ein leichtgewichtiger DNS-Cache- und DHCP-Server, der lokale DNS-Abfrageauflösung und -Zwischenspeicherung bietet, wodurch die DNS-Auflösungsgeschwindigkeit verbessert wird.

Nachdem Sie die Einstellungen geändert haben, müssen Sie Network Manager neu starten:

sudo systemctl restart NetworkManager

Die Verwaltung von DNS über Network Manager verbessert erheblich die Flexibilität und Bequemlichkeit der Netzwerkkonfiguration. Es ermöglicht Benutzern, DNS-Einstellungen einfach anzupassen, um Netzwerkleistung und -sicherheit zu optimieren.

Fehlerbehebung: Häufige Probleme und deren Lösungen

DNS-bezogene Probleme können sich in verschiedenen Formen manifestieren, wie Internetverbindungsprobleme, Schwierigkeiten beim Zugriff auf Websites und Verzögerungen. Hier besprechen wir häufige DNS-bezogene Probleme, die Sie unter Linux antreffen könnten, und Ansätze zu deren Lösung.

Langsame DNS-Auflösung

Wenn die DNS-Auflösung langsam ist, könnte der von Ihnen verwendete DNS-Server die Ursache für die Verzögerung sein. Der Wechsel zu einem anderen DNS-Server könnte das Problem lösen. Beispielsweise sind Google Public DNS (8.8.8.8 und 8.8.4.4) und Cloudflare DNS (1.1.1.1) schnelle und zuverlässige Optionen.

DNS-Auflösungsfehler

Wenn die DNS-Auflösung fehlschlägt, überprüfen Sie zuerst, ob Ihr System auf die richtigen DNS-Server zeigt. Sie können dies über die Datei /etc/resolv.conf oder den Befehl systemd-resolve --status verifizieren. Wenn die richtigen DNS-Server eingestellt sind und das Problem weiterhin besteht, kann das Löschen des DNS-Caches helfen. Wenn Sie systemd-resolved verwenden, können Sie den Cache mit dem folgenden Befehl löschen:

sudo systemd-resolve --flush-caches

Unfähigkeit, auf bestimmte Websites zuzugreifen

Wenn Sie Probleme beim Zugriff auf bestimmte Websites haben, könnten Probleme mit den DNS-Datensätzen dieser Seiten vorliegen, oder Ihr lokaler DNS-Cache könnte veraltete Informationen enthalten. Das Löschen des DNS-Caches könnte das Problem lösen. Überprüfen Sie auch, ob die Datei /etc/hosts keine manuell hinzugefügten Einträge für diese Websites enthält.

DNS-Server antwortet nicht

Wenn der von Ihnen verwendete DNS-Server nicht antwortet, überprüfen Sie zuerst, ob der DNS-Server ausgefallen ist oder ob es Probleme mit Ihrer Netzwerkverbindung gibt. Sie können testen, ob Sie den DNS-Server mit dem Befehl ping erreichen können. Wenn der DNS-Server nicht antwortet, erwägen Sie den Wechsel zu einem anderen DNS-Server.

Indem Sie diese allgemeinen Fehlerbehebungsschritte ausprobieren, sollten Sie viele DNS-bezogene Probleme lösen können. Wenn das Problem jedoch weiterhin besteht, kann eine weitere Untersuchung der Netzwerkeinstellungen oder -konfiguration erforderlich sein. In einigen Fällen könnte es angebracht sein, Ihren Internetdienstanbieter (ISP) oder Netzwerkadministrator zu kontaktieren.

Sicherheitsüberlegungen: Dinge, die beim Einrichten von DNS zu beachten sind

Beim Einrichten von DNS-Konfigurationen ist es wichtig, Sicherheitsimplikationen zu berücksichtigen. Unangemessene DNS-Einstellungen können die Anfälligkeit für Cyberangriffe erhöhen. Hier stellen wir einige wichtige Sicherheitsüberlegungen vor, die Sie beim Konfigurieren von DNS beachten sollten.

Zuverlässigkeit und Sicherheit von DNS-Servern

Der DNS-Server, den Sie wählen, sollte zuverlässig sein und Sicherheitsmaßnahmen haben. Wenn Sie einen öffentlichen DNS-Dienst verwenden, überprüfen Sie die vom Dienstanbieter bereitgestellten Sicherheitsfunktionen, wie DNSSEC-Unterstützung und Blockierung bösartiger Sites.

Abmilderung von DNS-Cache-Poisoning

DNS-Cache-Poisoning ist ein Angriff, bei dem ein Angreifer falsche DNS-Informationen in den Cache einspeist und Benutzer auf bösartige Sites, wie Phishing-Sites, leitet. Die Verwendung von DNS-Servern, die DNSSEC (DNS Security Extensions) unterstützen, kann vor solchen Angriffen schützen.

Sicherung der lokalen DNS-Serverkonfiguration

Wenn Sie Ihren eigenen DNS-Server betreiben, halten Sie Software-Updates aktuell, deaktivieren Sie unnötige Dienste und stellen Sie eine sichere Konfiguration sicher. Auch das ordnungsgemäße Konfigurieren der Firewall ist entscheidend, um unbefugten Zugriff von außen zu verhindern.

Schutz der Privatsphäre

DNS-Anfragen können die Internetnutzungsgeschichte der Benutzer offenlegen. Um die Privatsphäre zu schützen, erwägen Sie die Verwendung von DNS-Servern, die verschlüsselte DNS-Anfragen unterstützen, wie DNS über HTTPS (DoH) oder DNS über TLS (DoT).

Schlussfolgerung

Das Verständnis dafür, wie DNS-Server unter Linux überprüft und konfiguriert werden, und deren angemessene Verwaltung ist entscheidend für die Aufrechterhaltung der Netzwerkeffizienz und -sicherheit. Dieser Artikel hat DNS-Grundlagen, wie man DNS-Server überprüft und einrichtet, die Verwaltung von DNS mit systemd-resolved und Network Manager, Fehlerbehebung und Sicherheitsüberlegungen behandelt. Die Anwendung dieses Wissens ermöglicht eine effektivere und sicherere DNS-Konfiguration auf Linux-Systemen.

Inhaltsverzeichnis