Domain Name System (kurz DNS) ist ein Internetdienst, der zur Auflösung von Domainnamen in IP-Adressen und umgekehrt verwendet wird.
BIND (Berkeley Internet Name Domain) bietet die Funktionalität der Name-zu-IP-Konvertierung.
Dieser Beitrag hilft Ihnen bei der Konfiguration des DNS-Servers unter Debian 10 / Debian 9.
Umgebung
Domänenname:itzgeek.local | ||
---|---|---|
ns1.itzgeek.local | 192.168.0.10 | Master-DNS-Server |
Voraussetzungen
Aktualisieren Sie den Repository-Index.
sudo apt-get update
Stellen Sie sicher, dass der DNS-Server eine statische IP-Adresse hat.
LESEN :So konfigurieren Sie eine statische IP-Adresse in Debian
DNS-Server installieren
Der Paketname des DNS-Servers in Debian lautet bind9 und ist im Basis-Repository verfügbar. Sie können den apt-Befehl verwenden, um das bind9-Paket zu installieren.
sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils
DNS-Server konfigurieren
/etc/bind/ ist das Konfigurationsverzeichnis von bind9, enthält Konfigurationsdateien und Zonen-Lookup-Dateien. Die globale Konfigurationsdatei ist /etc/bind/named.conf.
Zonen erstellen
Beginnen wir damit, eine Weiterleitungszone für Ihre Domain zu erstellen.
Sie sollten nicht die globale Konfigurationsdatei für die lokale DNS-Zone verwenden, sondern die Datei /etc/bind/named.conf.local.
sudo nano /etc/bind/named.conf.local
Vorwärtszone
Das Folgende ist der Forward-Zone-Eintrag für die Domain itzgeek.local in der Datei named.conf.local.
zone "itzgeek.local" IN { //Domain name type master; //Primary DNS file "/etc/bind/forward.itzgeek.local.db"; //Forward lookup file allow-update { none; }; // Since this is the primary DNS, it should be none. };
Gegenzone
Das Folgende gilt für die Reverse-Zone in der Datei named.conf.local.
zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order type master; // Primary DNS file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file allow-update { none; }; //Since this is the primary DNS, it should be none. };
Zonen-Lookup-Datei erstellen
Nachdem Zonen erstellt wurden, können Sie fortfahren und Zonendatendateien für die Vorwärtszone und die Rückwärtszone erstellen.
Vorwärtszone
Kopieren Sie die Beispieleinträge in die Zonendatei forward.itzgeek.local.db für die Forward-Zone im Verzeichnis /etc/bind.
Eintragstypen in der Zonendatei,
SOA – Start of Authority
NS – Name Server
A – A record
MX – Mail for Exchange
CN – Canonical Name
Domänennamen sollten mit einem Punkt (.) enden.
sudo cp /etc/bind/db.local /etc/bind/forward.itzgeek.local.db
Bearbeiten Sie die Zone.
sudo nano /etc/bind/forward.itzgeek.local.db
Aktualisieren Sie den Inhalt wie unten gezeigt.
Wenn Sie Datensätze in der Nachschlagedatei ändern, stellen Sie sicher, dass Sie die Seriennummer auf eine Zufallszahl aktualisieren, die höher als die aktuelle ist.; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; Commentout below three lines ;@ IN NS localhost. ;@ IN A 127.0.0.1 ;@ IN AAAA ::1 ;Name Server Information @ IN NS ns1.itzgeek.local. ;IP address of Name Server ns1 IN A 192.168.0.10 ;Mail Exchanger itzgeek.local. IN MX 10 mail.itzgeek.local. ;A – Record HostName To Ip Address www IN A 192.168.0.100 mail IN A 192.168.0.150 ;CNAME record ftp IN CNAME www.itgeek.local.
Gegenzone
Kopieren Sie die Beispieleinträge in die Zonendatei namens reverse.itzgeek.local.db für die Reverse-Zone im Verzeichnis /etc/bind und erstellen Sie Reverse-Zeiger für die obigen Forward-Zonen-Einträge.
PTR – Pointer
SOA – Start of Authority
sudo cp /etc/bind/db.127 /etc/bind/reverse.itzgeek.local.db
Bearbeiten Sie die Reverse-Zone-Datei.
sudo nano /etc/bind/reverse.itzgeek.local.db
Aktualisieren Sie den Inhalt wie unten gezeigt.
Wenn Sie Datensätze in der Nachschlagedatei ändern, stellen Sie sicher, dass Sie die Seriennummer auf eine Zufallszahl aktualisieren, die höher als die aktuelle ist.; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA itzgeek.local. root.itzgeek.local. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; Commentout below two lines ;@ IN NS localhost. ;1.0.0 IN PTR localhost. ;Name Server Information @ IN NS ns1.itzgeek.local. ;Reverse lookup for Name Server 10 IN PTR ns1.itzgeek.local. ;PTR Record IP address to HostName 100 IN PTR www.itzgeek.local. 150 IN PTR mail.itzgeek.local.
Überprüfen Sie die BIND-Konfigurationssyntax
Verwenden Sie den Befehl named-checkconf, um die Syntax von named.conf*-Dateien auf Fehler zu überprüfen.
sudo named-checkconf
Der Befehl kehrt zur Shell zurück, wenn keine Fehler vorliegen.
Außerdem können Sie named-checkzone verwenden, um die Syntaxfehler in Zonendateien zu überprüfen.
Vorwärtszone
sudo named-checkzone itzgeek.local /etc/bind/forward.itzgeek.local.db
Ausgabe:
zone itzgeek.local/IN: loaded serial 2 OK
Gegenzone
sudo named-checkzone 0.168.192.in-addr.arpa /etc/bind/reverse.itzgeek.local.db
Ausgabe:
zone 0.168.192.in-addr.arpa/IN: loaded serial 2 OK
Bindungsdienst neu starten.
sudo systemctl restart bind9
Überprüfen Sie den Status des bind9-Dienstes.
sudo systemctl status bind9
DNS verifizieren
Gehen Sie zu einem beliebigen Client-Rechner und fügen Sie die IP-Adresse unseres neuen DNS-Servers in die Datei /etc/resolv.conf ein.
sudo nano /etc/resolv.conf
Machen Sie einen Eintrag wie unten.
nameserver 192.168.0.10
ODER
Lesen Sie das folgende Tutorial, um die DNS-Server-IP unter Linux festzulegen.
LESEN: So stellen Sie die DNS-IP-Adresse in CentOS / Fedora ein
LESEN: So stellen Sie die DNS-IP-Adresse in Ubuntu / Debian ein – ifupdown
LESEN: So stellen Sie die DNS-IP-Adresse in Ubuntu 18.04 ein – Netplan
Sie können entweder den Befehl nslookup oder den Befehl dig verwenden, um den DNS-Server zu überprüfen.
Verwenden Sie den Befehl dig, um die Vorwärtssuche zu überprüfen.
dig www.itzgeek.local
Wenn Sie Befehl nicht gefunden erhalten, installieren Sie bind-utils auf Red Hat-Derivaten oder dnsutils auf dem Debian-Derivatpaket.
Ausgabe:
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41979 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: c51856f159ddf40dadc13b835e1024a996e2a306d7888afe (good) ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 604800 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 1 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Sat Jan 04 05:37:45 UTC 2020 ;; MSG SIZE rcvd: 124
Die Antwort des DNS-Servers für die Vorwärtssuche www.itzgeek.local lautet 192.168.0.100.
Bestätigen Sie die Rückwärtssuche mit dem Befehl dig.
dig -x 192.168.0.100
Ausgabe:
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33889 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 9806a5ee8f6645c178aa65b25e102530e49ae9a15456fbe1 (good) ;; QUESTION SECTION: ;100.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 604800 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Sat Jan 04 05:40:00 UTC 2020 ;; MSG SIZE rcvd: 148
Die Antwort des DNS-Servers für die Rückwärtssuche 192.168.0.100 lautet www.itzgeek.local.
Dieses Ergebnis bestätigt, dass sowohl Forward- als auch Reverse-Zonen-Lookups einwandfrei funktionieren.
Schlussfolgerung
Das ist alles. Sie haben den DNS-Server erfolgreich auf Debian 10 / Debian 9 installiert. In unserem nächsten Artikel werden wir den Slave-DNS-Server auf Debian 10 / Debian 9 konfigurieren.