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.
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
- 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
- Verwenden Sie anschließend einen Texteditor, um die Datei
/etc/resolv.conf
zu bearbeiten. Hier verwenden wir den Editornano
, aber Sie können Ihren bevorzugten Editor wievi
oderemacs
verwenden:
sudo nano /etc/resolv.conf
- 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
- Nachdem Sie die Änderungen vorgenommen haben, speichern Sie die Datei und verlassen Sie den Editor. Wenn Sie
nano
verwenden, drücken SieCtrl + O
, um zu speichern undCtrl + 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.