So konfigurieren Sie den DNS -Server auf Debian

So konfigurieren Sie den DNS -Server auf Debian

Was ist DNS?

DNS- oder Domänenname -System ist das System, das den Namen einer Domäne in seine entsprechende IP -Adresse übersetzt. Zum Beispiel, wenn Sie www eingeben.Beispiel.com in Ihrem Browser ordnet es der IP -Adresse eines bestimmten Webservers im Internet zu. Dies erleichtert den Personen, sich an Server, Anwendungen oder andere mit dem Internet verbundene Geräte zu erinnern, ohne sich ihre IP -Adressen auswendig machen zu müssen.

DNS ist ein hierarchisch verteiltes Datenbanksystem. Es hat eine baumähnliche Struktur mit Knoten, die in Schichten bezeichnet werden und Domains genannt werden. Jeder Domänen zeigt auf den Knoten eines niedrigeren Levels als sich selbst. In DNS werden diese Domänen als Subdomänen definiert, und jeder befindet sich auf einem eigenen DNS -Server, entweder auf DNS oder im primären DNS, das die Datensätze für alle IP -Adressen und Hostnamen in seiner Domänenzone enthält.

Es kann mehrere sekundäre DNS-Server geben, die eine aktuelle Kopie der Informationen enthalten, die in ihren entsprechenden Master-DNS-Servern enthalten sind. Neben der Auflösung von Abfragen mit diesen gespiegelten Daten bieten sekundäre DNS -Server auch Fehlertoleranz an.

Die Abfragen werden von den rekursiven DNS -Servern basierend auf den Informationen in seinem Cache in Kombination mit den in den rekursiven Namensverkleidungsdetails verarbeitet /etc/resolv.Conf -Datei. Das Domainnamen -System ist ein kritisches Element der Internetarchitektur und es ist unerlässlich, um Computer mit dem, was wir heute als „Internet“ bezeichnen, miteinander zu vernetzen.

DNS -Konfigurationsparameter können mit der “bearbeitet werdengrabenTool oder Bearbeitung der Zonendateien direkt. Bearbeitungszonendateien sind nicht ratsam, da ein Fehler dazu führen kann, dass die Website unzugänglich ist, obwohl dies ein seltenes Ereignis wäre. Wenn Sie sich nicht sicher sind, was Sie tun, verwenden Sie stattdessen, wann immer möglich. Einige Bind- oder Berkeley -Internetnamen -Domain -Pakete kommen mit “DNSUTILS" Und "Gastgeber”, Die verwendet werden, um DNS -Server abzufragen und die Ergebnisse zu drucken. In den meisten Unix -Systemen gibt es auch NSLookup -Dienstprogramme, die für ähnliche Zwecke verwendet werden können. „Dig“ ist jedoch normalerweise zuverlässiger als diese beiden Tools.

Wie funktioniert DNS??

DNS arbeitet als hierarchisches System, beginnend an der Wurzel der Domäne. Zum Beispiel, wenn Sie eingeben www.Beispiel.com In Ihrem Browser wird Ihr lokaler DNS -Server nach diesen Informationen aufgefordert. Wenn es nicht vorhanden ist, da es für diese Domäne nicht maßgeblich ist, leitet es die Abfrage an einen seiner stromaufwärts rekursiven DNS -Server weiter. Diese Server werden zuerst ihren Cache überprüfen, bevor sie alle maßgeblichen Namensserver, die direkt für die Domäne „Beispiel“ verantwortlich sind.

Wie Sie sehen können, verfügt jede Domain oder Subdomain über einen eigenen maßgeblichen Namensserver und ist für die Lösung von Abfragen nur für diese Subdomain verantwortlich. Daher sollte ein DNS -Server über alle Informationen verfügen, um eine Abfrage zu einer bestimmten Domäne zu beantworten. Also wenn "Beispiel.com”Ist nicht die primäre Domäne Ihrer lokalen DNS -Server, dann können Sie keine Abfragen für www lösen.Beispiel.com ohne es zuerst stromaufwärts weiterzuleiten.

Notiz: Konfigurieren Sie nach Möglichkeit verschiedene Namenserver für jede Subdomain, da jeweils separate Wartungs- und Verwaltungsverfahren erforderlich sind. In der Tat wurde DNS am Anfang entwickelt, als TCP/IP -Protokolle 1983 vor der Erfindung des Domain -Namenssystems veröffentlicht wurden. Dies wurde später nach der Schaffung von internen Registrierungsdiensten im Jahr 1992 erstellt. Die Subdomänen wurden als Erweiterung des DNS -Protokolls eingeführt, und es war nur für administrative Zwecke bestimmt.

Wenn ein DNS -Server eine Abfrage von einem Client erhält, überprüft er zuerst den Cache, um festzustellen, ob alle erforderlichen Datensätze darin enthalten sind. Wenn es keine Aufzeichnungen gibt oder nicht frisch genug ist, werden die folgenden rekursiven Abfragen durchgeführt:

Wenn es sich um eine Internet -Abfrage handelt, löst es Hostnamen, die an der Wurzel der Domäne beginnen, und arbeitet durch jede übergeordnete Domäne nach unten, bis er die maßgeblichen Server für diese Zone erreicht hat. Das nennt man "An der Spitze beginnen„, Und es wird normalerweise zuerst geschehen, da die für TLDs verantwortlichen Server (für TLDs verantwortlich sind (.com, .Netz usw.) haben schnellere Verbindungsgeschwindigkeiten mit einer größeren Bandbreite als für die Domänen auf zweiter Ebene, e.G., “Beispiel”. Dabei berücksichtigen Ihr lokaler DNS -Server, ob er der Reaktion seiner vorgelagerten DNS -Server vertrauen kann oder nicht. Wenn Sie keinen Zugriff auf /etc /hosts oder /etc /resolv haben.Conf -Datei- und DNS -Server, die von Ihrem ISP verwendet werden. Dies könnte daher eine Sicherheitsbedrohung darstellen, und wenn nicht, werden rekursive Server direkt für diese Daten aufgefordert. Das nennt man "unten beginnenDa Namensserver, die für Domänen der zweiten Ebene verantwortlich sind.

Dieser ganze Vorgang wird iterativ wiederholt, bis beide:

  1. Ein nicht autoritativer Namensserver antwortet auf eine Infrage und sagt, er kenne die angeforderten Informationen nicht.
  2. Ein Name Server findet findet, was es für eine maßgebliche Antwort auf die Abfrage hält und sie an den Client -Computer zurücksendet.
  3. Die Anzahl der Iterationen, die im Namen des Resolvers vorkonfiguriert sind.

Dieses Tutorial führt Sie durch die Einrichtung Ihres eigenen internen DNS -Servers auf Debian. Wir verwenden die Bindame Server -Software (Bind9), um dies zu tun.

Was ist Bind9?

Bind (Berkeley Internet Name Domain) ist eine Implementierung der DNS -Protokoll. In Binden 9, Es wurden mehrere wichtige Verbesserungen vorgenommen, darunter IPv6 -Unterstützung, viel flexiblere Konfiguration und Steuerung, verbesserte Caching -Leistung, Edns0 Unterstützung Für größere UDP -Antworten und ein besseres Management über dynamisch zugewiesene IP -Adressen.

BINDEN ist die am häufigsten verwendete Namenserver -Software im Internet. Es unterstützt eine Reihe verschiedener Domainnamen -Service -Protokolle, einschließlich Bind4 (die ursprüngliche Berkeley Internet Name Domain, Version 4), Bind8 (der historische Nachfolger von Bind4) und DNS -Dienste für IPv6 durch zwei separate Implementierungen: eine basierend auf dem Daemon und ein anderer als LWRES (namens LWRES (Leicht-Gewicht Resolver).

Binden 9.5 ist die aktuelle stabile Version von Bind und ist sowohl in Quelle als auch in binärer Form zum Download aus dem verfügbar Internet -Softwarekonsortium.

Voraussetzungen

Bevor wir mit dem Installationsprozess des DNS -Servers auf Debian beginnen, müssen Sie sich fragen. “Benötige ich wirklich einen DNS -Server??

Dieser Artikel konzentriert sich nur auf IPv4. Wenn Sie also an der Verwendung interessiert sind DNS für IPv6, Es muss mehr Arbeit erledigt werden. Dieser Leitfaden hilft Ihnen bei Themen nicht mehr, z.

Eine neue Installation von Debian Server ist erforderlich, um die Schritte in diesem Handbuch zu testen. Einige der hier verwendeten Befehle sind möglicherweise für Ihren Fall unterschiedlich, und diese Unterschiede werden gegebenenfalls darauf hingewiesen.

Dieser Leitfaden geht davon aus, dass Sie Arbeiten haben IPv4 -Netzwerk und Wissen, um statische IP -Adressen auf Clientcomputern ordnungsgemäß zu konfigurieren.

A sudo user und eine Firewall sollte bereits auf Ihrem System konfiguriert sein.

Einstieg

Aktualisieren Sie Ihr System

Der Installationsprozess ist recht einfach, aber sehen wir ihn im Detail sehen. Zunächst müssen Sie sicherstellen, dass Ihr System über alle benötigten Pakete installiert und auf dem neuesten Stand mit dem folgenden Befehl enthält:

sudo apt-Get-Update && sudo apt-Get Upgrade -y

Das Flag -y wird automatisch mit Ja auf alle Bestätigungen beantwortet, die möglicherweise gefragt werden könnten.

Der Befehl APT-Get-Update aktualisiert die Paketlisten des Servers. Durch den Befehl APT-Get-Upgrade werden alle darauf installierten Pakete aktualisiert.

Dies dauert einige Zeit, abhängig von Ihrer Netzwerkverbindungsgeschwindigkeit und der zu installierenden Aktualisierungen.

Beispielausgabe:

Installieren von Bind9

Nachdem Ihr System auf dem neuesten Stand ist, können Sie mit der Installation von a fortfahren DNS -Server - Binden. Dies erfolgt durch die Installation mehrerer neuer Pakete:

sudo apt install bind9 bind9utils bind9-doc

Der obige Befehl wird installiert Bind9 und die beiden Hilfspakete, die die erforderlichen Dateien für die richtige Funktion des DNS -Servers enthalten.

Der Bind9 ist die DNS -Server -Software.

Die Bind9utils sind Dienstprogramme für die Verwaltung Konfiguration binden und werden mit dem Befehl benannt, der zur Steuerung verwendet wird BINDEN aus der Befehlszeile.

Notiz: Bind9-doc ist ein Dokumentationspaket für Software binden.

Beispielausgabe:

Installieren von DNS -Server

Nach Abschluss der Installation können Sie überprüfen, ob alle Pakete erfolgreich installiert wurden, indem der folgende Befehl ausgeführt wurde:

-V

Der obige Befehl zeigt die installierte Version von Bind und seine Abhängigkeiten an.

Beispielausgabe:

Bind beginnt automatisch, wenn Sie es installieren. Sie überprüfen den Status mit dem Befehl systemctl wie folgt:

sudo systemctl status bind9

Mit dem obigen Befehl erhalten Sie eine detailliertere Ansicht der Bindfunktionen auf Ihrem Server, z. B. aktive Zeit, Anzahl der Zonen usw.

Sie erhalten etwas Ähnliches wie die folgende Ausgabe:

Beispielausgabe:


Wenn Sie jemals Binden starten, anhalten oder neu starten möchten, führen Sie einfach die folgenden Befehle aus:

sudo Service Bind9 Start
sudo Service Bind9 Stop
sudo service bind9 neu starten

Der Bind -Server wird standardmäßig als Bind -Benutzer und Gruppen ausgeführt. Dies macht es einigermaßen sicher, da Änderungen in Zonendateien nur für diesen Benutzer zulässig sind. Der Bind -Server hört standardmäßig auf Port 53 für DNS -Abfragen an. Sie können diesen Port in der ändern genannt.Conf -Datei wenn du möchtest. Führen Sie den folgenden Befehl aus, um zu sehen, auf welchem ​​Port Ihr Bind -Server hört:

sudo netstat -lnptu | Grep genannt

Beispielausgabe:

Der obige Befehl zeigt, dass der benannte Daemon derzeit gestartet wird und auf Port 53 UDP zuhört. Verwenden Sie diese Informationen, um zu überprüfen, ob Sie die richtige Portnummer verwenden.

Wenn Ihr Server nicht Port 53 verwendet, können Sie dies durch Bearbeiten beheben /etc/bind/benannt.Conf.lokal und Ändern der Portnummer auf alles, was Sie wollen. Sie können auch den Namen der Serverprotokolldatei durch Bearbeiten ändern /etc/bind/benannt.Conf.Standard-Zonen und Hinzufügen von Protokollierungsanweisungen in die Optionsanweisung.

Konfigurieren von Bind9

Jetzt, wo du hast Bind9 installiert Auf Ihrem Server ist es an der Zeit, es zu konfigurieren.

Das Konfigurationsverzeichnis für BINDEN befindet sich unter /etc/bindend. In diesem Verzeichnis gibt es einige wichtige Dateien:

Die Datei namens 'genannt.Conf'ist die Hauptkonfigurationsdatei, die viele Kommentare enthält, um jeden Abschnitt zu klären.

Die nächste Konfigurationsdatei, die wir bearbeiten, befindet sich bei /etc/bind/benannt.Conf.lokal. Diese Datei enthält alle Ihre Netzwerkinformationen zu Server und Zonen, die Sie lokal beheben möchten (von Namenservers).

Der genannt.Conf.Standard-Zonen befindet sich bei /etc/bind/benannt.Conf.Standard-Zonen. Diese Datei enthält Serverinformationen für Zonen, die von Bind verwendet werden, wenn sie nicht explizit eine andere Zone verwenden soll. Mit anderen Worten, die aktivierten Zonen.

Lassen Sie uns also mit einer grundlegenden Konfiguration beginnen.

Beispielausgabe:

Standardmäßig ist Bind so konfiguriert, dass sie nur dem Localhost bedienen. Dies bedeutet, dass jede Anfrage, die von außerhalb Ihres Servers stammt.

Wenn Sie versucht haben, auf eine Website zuzugreifen, die beispielsweise auf dem „154) aufgenommen wurde.54.55.56 ”IP -Adresse, was würde passieren? Die Antwort ist einfach: Alle Anfragen würden unbeantwortet bleiben, da für die „154 keine Konfiguration angegeben wurde.54.55.56 ”IP -Adresse in Bind9, und der" benannte "Daemon weigerte sich, alle DNS -Anforderungen von außerhalb seiner Netzwerkschnittstelle zu bedienen.

Zunächst setzen wir den DNS -Server so fest, dass sie alle IP -Adressen anhören, um Anforderungen an den DNS -Server aus verschiedenen Stellen zu senden: vom Server, aus einem anderen Netzwerk oder wenn Sie das Internet verwenden.

Lassen Sie es tun, indem Sie den Namen bearbeiten.Conf.Optionskonfigurationsdatei:

cd /etc /bindend
sudo nano genannt.Conf.Optionen
Lassen Sie uns das Hören von 127 ersetzen.0.0.1;;
von
Hören Sie Any;;
Hören-auf-v6 Any;

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Bind9 -Daemon mit dem folgenden Befehl neu:

sudo service bind9 neu starten

Jetzt haben wir Bind9 ermöglicht, alle Schnittstellen zuzuhören.

Beispielausgabe:

Erstellen von Vorwärts -Lookup -Zonen (Domain -> IP)

Vorwärts -Lookup -Zonen sind die häufigste Art von Zonendateien. Sie kartieren einen Domainnamen einer IP -Adresse und werden verwendet, um Domain -Namen in IP -Adressen für E -Mails, Webseiten usw. zu beheben. Der nächste Schritt besteht darin, eine Stürmer -Lookup -Zonendatei zu erstellen.

Wir werden das bearbeiten "/etc/bind/benannt.Conf.lokalDatei, um eine Vorwärtszone zu deklarieren. Für den einzigen Zweck dieses Tutorials werden wir eine Domäne namens deklarierenLinuxHint.com”Und verweisen Sie auf die öffentliche IP-Adresse des Servers, die explizit zum Hosting von Websites für externe Ausrichtung auf der LinuxHint verwendet wird.com Domain.

Notiz: Eine gültige Internet-zugängliche IP-Adresse muss auf Ihrem Server festgelegt werden, wenn Sie planen, externe Domänen in Ihrem Netzwerk zu beheben.

Jetzt werden wir die "bearbeiten"/etc/bind/benannt.Conf.lokalDatei zum Deklarieren einer Stürmer -Lookup -Zone:

sudo nano genannt.Conf.lokal

Fügen Sie Folgendes zum Ende der Datei hinzu:

Zone "LinuxHint.com "
Typ Master;
Datei "/etc/bind/db.LinuxHint.com ";
// transfer xxx erlauben.xxx.xxx.xxx;; // sekundärer DNS -Server des Verpflegungs
;

In diesem Kontext:

Typ "Meister”. Dies ist eine Master -Domänenzonendatei. Der Typparameter kann auf “eingestellt werden“Sklave”Wenn Sie eine nur maßgebliche Vorwärts- oder Umkehrzone veranstalten und keine dynamischen Updates zulassen möchten.

Der "/etc/bind/db.Domäne.com"Ist eine Datei, die die Datensätze für Domain enthält"LinuxHint.com”Mit einem vollständigen Weg.

zulassen transfer xxx.xxx.xxx.xxx;. Es ist erforderlich, um die Zonenübertragung auf den sekundären DNS -Server des Herrens zu ermöglichen, da Sie dies nicht zulassen, wenn Ihr Hosting -Anbieter dies nicht zulässt, können Sie ihn nicht online mit dem Befehl aktualisierenRNDC Reload”Auf Localhost. xxx.xxx.xxx.xxx; IP -Adresse des sekundären DNS -Servers (Namenserver), der von Ihrem Hosting -Anbieter gehostet wird.

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Beispielausgabe:


Jetzt werden wir für jede oben deklarierte Zone eine Datei erstellen:

sudo nano db.LinuxHint.com

Füllen Sie die Datei mit Folgendes ein:

;
; Binden Sie die Datendatei für die lokale Loopback -Schnittstelle ein
;
$ Ttl 604800
@ In SOA NS1.LinuxHint.lokal. Wurzel.LinuxHint.lokal. (
2; Serie
604800; Aktualisierung
86400; Wiederholen
2419200; Erlöschen
604800); Negativer Cache TTL
;
; Kommentar unter drei Zeilen
;@ In ns localhost.
;@ In einem 127.0.0.1
;@ In aaaa :: 1
; Nennen Sie Serverinformationen
@ In NS NS1.LinuxHint.lokal.
; IP -Adresse des Namensservers
NS1 in einem 192.168.0.10
; Mail -Austauscher
LinuxHint.lokal. In MX 10 Mail.LinuxHint.lokal.
; A - Hostname auf IP -Adresse aufzeichnen
www in einer 192.168.0.100
Post in einer 192 Mail.168.0.150
; Cname Record
FTP in CNAME www.LinuxHint.lokal.

Ersetzen Sie in dieser Datei die Werte LinuxHint durch Ihren Domänennamen, gefolgt von einem Punkt (.) Dies ist notwendig und dies ist kein Fehler.

Ersetzen Sie „192.168.0 ”mit Ihrer öffentlichen IP -Adresse, gefolgt von einem Punkt (.) Dies ist erforderlich, um den Server aus dem Internet zugänglich zu machen.

Denken Sie daran, die Datei zu speichern und zu schließen, wenn Sie fertig sind.

Erstellen von Reverse -Lookup -Zonen (IP -> Domäne)

Reverse-Lookup-Zonen werden verwendet, um eine IP-Adresse in einen Domänennamen zuzuordnen, und sind im Allgemeinen zum Senden von E-Mails erforderlich. Der nächste Schritt besteht darin, eine Reverse -Zone -Datei zu erstellen.

Der Name der Rückwärtszonen besteht aus der Netzwerk -ID (umgekehrt), gefolgt von “.In-Addr.ARPA”.

Zum Beispiel:

Wenn der Server eine IP -Adresse hat “20.30.40.50"Die Netzwerk -ID wird sein"20.30.40", Und der Name der umgekehrten Zone wird" sein "40.30.20.In-Addr.ARPA“.

Wenn der Server eine IP -Adresse hat “191.169.10.50"Die Netzwerk -ID wird sein"191.169.10", Und der Name der umgekehrten Zone wird" sein "10.169.191.In-Addr.ARPA“.

Jetzt werden wir die "bearbeiten"/etc/bind/benannt.Conf.lokalDatei, um eine Rückwärtszone zu deklarieren:

sudo nano/etc/bind/benannt.Conf.lokal

Fügen Sie dann Folgendes der Datei hinzu:

Zone "40.30.20.In-Addr.arpa "
Typ Master;
nein benachrichtigen;
Datei "/etc/bind/db.10 ";
;

Dann erstellen wir eine Datei für die oben deklarierte Zone:

sudo nano db.10

Dann bevölkern Sie die Datei mit Folgendes:

;
; Binden Sie die Reverse -Datendatei für die lokale Loopback -Schnittstelle ein
;
$ Ttl 604800
@ In Soa LinuxHint.lokal. Wurzel.LinuxHint.lokal. (
2; Serie
604800; Aktualisierung
86400; Wiederholen
2419200; Erlöschen
604800); Negativer Cache TTL
;
;@ In ns localhost.
; 1.0.0 in PTR localhost.
; Nennen Sie Serverinformationen
@ In NS NS1.LinuxHint.lokal.
; Umgekehrte Suche nach Namensserver
10 in PTR NS1.LinuxHint.lokal.
; PTR -IP -Adresse in Hostname
100 in PTR www.LinuxHint.lokal.
150 in PTR Mail.LinuxHint.lokal.
# Ende der Datei

Überprüfen Sie die Bindungskonfigurationssyntax

Jetzt werden wir die Konfigurationssyntax in jeder Datei auf Fehler überprüfen. Dazu werden wir eine Abfrage mit dem folgenden Befehl erhalten:

sudo named-Checkconf

Wenn es keine Fehler gibt, kehrt dieser Befehl zur leeren Shell zurück:

Beispielausgabe:

Abschluss

DNS ist einer der wichtigsten Dienste auf einem Server. Jeder benutzt es. Jeder braucht es, und am Ende möchten Sie nicht, dass Ihre Maschinen im Netzwerk verloren gehen, weil sie sich nicht finden können. Dieser Artikel enthält eine Anleitung zum Einrichten Ihres internen DNS -Servers auf Debian unter Verwendung der Bindame -Server -Software (Bind9). Weitere Informationen finden Sie in den anderen Artikeln unter LinuxHint, die gefunden wurden.com.