DNS oder Domain Name System , wie wir wissen, ist ein Internetdienst, der verwendet wird, um die benutzerfreundliche Domain in computerfreundliche IP-Adressen zu übersetzen. Wir können nicht nur Domainnamen in IP-Adressen übersetzen, wir können auch eine Rückübersetzung durchführen, d. h. von IP-Adressen zu Domainnamen-Übersetzungen. In diesem Tutorial werden wir lernen, einen privaten DNS-Server einzurichten, indem wir BIND9 implementieren auf Ubuntu/Debian-System.
BIND oder BIND 9 ist eine Open-Source-Implementierung von DNS, die für fast alle Linux-Distributionen verfügbar ist. BIND steht für Berkeley Internet Name Domain &es erlaubt uns, DNS-Informationen im Internet zu veröffentlichen und DNS-Abfragen für die Benutzer zu lösen. BIND ist bei weitem die am häufigsten verwendete DNS-Software im Internet. In diesem Tutorial werde ich Folgendes verwenden:
- Bind-Server-IP (Ubuntu / Debian) =192.168.0.40
- Domänenname =linuxtechi.local
- Privates Netzwerk =192.168.0.0/24
Beginnen wir also das Tutorial mit der Installation von Paketen für BIND 9….
Installation von Bind 9 auf einem Debian-/Ubuntu-System:
Wir müssen ‘bind9 bind9utils bind9-doc dnsutils’ installieren, um BIND 9 und verwandte Tools zu installieren. Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus,
[email protected]:~$ sudo apt-get install bind9 bind9utils bind9-doc dnsutils
Konfiguration von bind 9 auf Debian / Ubuntu System:
Sobald alle Pakete installiert sind, gehen wir in den Konfigurationsteil über. Alle Konfigurationsdateien für BIND befinden sich im Ordner „/etc/bind“.
Eine der wichtigen Konfigurationsdateien für bind ist „/etc/bind/named.conf.options “, aus dieser Datei können wir die folgenden Parameter setzen:
- Allow Query to your dns from your private network (Wie der Name schon sagt, können nur die Systeme aus Ihrem privaten Netzwerk den DNS-Server nach Name-zu-IP-Übersetzung abfragen und umgekehrt)
- Rekursive Abfrage zulassen
- Geben Sie den DNS-Port an (53)
- Weiterleitungen (DNS-Anfrage wird an die Weiterleitung weitergeleitet, wenn Ihr lokaler DNS-Server die Anfrage nicht auflösen kann)
Gemäß meinen privaten Netzwerkeinstellungen habe ich die folgenden Parameter angegeben:
[email protected]:~$ sudo vi /etc/bind/named.conf.options options { directory "/var/cache/bind"; auth-nxdomain no; # conform to RFC1035 // listen-on-v6 { any; }; listen-on port 53 { localhost; 192.168.0.0/24; }; allow-query { localhost; 192.168.0.0/24; }; forwarders { 8.8.8.8; }; recursion yes; };
Die nächste wichtige Konfigurationsdatei ist „/etc/bind/named.conf.local “, in dieser Datei definieren wir die Zonendateien für unsere Domain, bearbeiten Sie die Datei und fügen Sie die folgenden Einträge hinzu:
[email protected]:~$ cd /etc/bind [email protected]:~$ sudo vi named.conf.local zone "linuxtechi.local" { type master; file "/etc/bind/forward.linuxtechi.local"; }; zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/reverse.linuxtechi.local"; };
Speichern Sie die Datei und beenden Sie sie. Hier haben wir Speicherorte für unsere Forward-Lookup-Zonendatei und Reverse-Lookup-Zonendateien erwähnt. Als nächstes erstellen wir die erwähnten Forward- und Reverse-Zonendateien.
Erstellen Sie zunächst die Forward-Lookup-Zonendatei. Beispielzonendateien (db.local) befinden sich bereits im Ordner „/etc/bind“ ‘, wir können die Beispielzonendatei verwenden und kopieren,
[email protected]:/etc/bind$ sudo cp db.local forward.linuxtechi.local [email protected]:/etc/bind$ sudo vi forward.linuxtechi.local $TTL 604800 @ IN SOA primary.linuxtechi.local. root.primary.linuxtechi.local. ( 6 ; Serial 604820 ; Refresh 86600 ; Retry 2419600 ; Expire 604600 ) ; Negative Cache TTL ;Name Server Information @ IN NS primary.linuxtechi.local. ;IP address of Your Domain Name Server(DNS) primary IN A 192.168.0.40 ;Mail Server MX (Mail exchanger) Record linuxtechi.local. IN MX 10 mail.linuxtechi.local. ;A Record for Host names www IN A 192.168.0.50 mail IN A 192.168.0.60 ;CNAME Record ftp IN CNAME www.linuxtechi.local.
Ihre Forward-Lookup-Datei sollte wie folgt aussehen:
Hier haben wir Informationen zu unserem DNS-Server hinzugefügt und auch A-Einträge für einige Server sowie einen Eintrag für einen Mailserver und einen CNAME-Eintrag hinzugefügt für FTP-Server. Stellen Sie sicher, dass Sie diese Datei an Ihr Netzwerk anpassen.
Als Nächstes erstellen wir eine Reverse-Lookup-Zonendatei am selben Speicherort, eine Beispiel-Reverse-Lookup-Zonendatei befindet sich unter „/etc/bind“. ‘-Ordner.
[email protected]:/etc/bind$ sudo cp db.127 reverse.linuxtechi.local [email protected]:~$ sudo vi /etc/bind/reverse.linuxtechi.local $TTL 604800 @ IN SOA linuxtechi.local. root.linuxtechi.local. ( 21 ; Serial 604820 ; Refresh 864500 ; Retry 2419270 ; Expire 604880 ) ; Negative Cache TTL ;Your Name Server Info @ IN NS primary.linuxtechi.local. primary IN A 192.168.0.40 ;Reverse Lookup for Your DNS Server 40 IN PTR primary.linuxtechi.local. ;PTR Record IP address to HostName 50 IN PTR www.linuxtechi.local. 60 IN PTR mail.linuxtechi.local.
Ihre Reverse Zone Lookup-Datei sollte wie folgt aussehen:
Datei speichern &beenden. Jetzt müssen wir nur noch den BIND-Dienst neu starten, um die vorgenommenen Änderungen zu implementieren,
[email protected]:~$ sudo systemctl restart bind9 [email protected]:~$ sudo systemctl enable bind9
Hinweis:- Falls die Betriebssystem-Firewall auf Ihrem Bindungsserver läuft, führen Sie den folgenden Befehl aus, um Port 53 zuzulassen
[email protected]:~$ sudo ufw allow 53 Rule added Rule added (v6) [email protected]:~$
Validierung der Syntax von bind9-Konfigurations- und Zonendateien
Wenn Sie die Syntax Ihrer bind 9-Konfigurationsdatei (benannt.conf.local) überprüfen möchten. Verwenden Sie den Befehl „named-checkconf “, Beispiel ist unten gezeigt:
[email protected]:~$ sudo named-checkconf /etc/bind/named.conf.local [email protected]:~$
Wenn es keinen Syntaxfehler in Ihrer Bind-Konfigurationsdatei gibt, sollte sie ohne Fehler zur Shell zurückkehren.
Um die Syntax Ihrer Forward- und Reverse-Lookup-Zonendateien zu überprüfen, verwenden Sie den Befehl „named-checkzone “, Beispiel ist unten gezeigt:
[email protected]:~$ sudo named-checkzone linuxtechi.local /etc/bind/forward.linuxtechi.local zone linuxtechi.local/IN: loaded serial 6 OK [email protected]:~$ [email protected]:~$ sudo named-checkzone linuxtechi.local /etc/bind/reverse.linuxtechi.local zone linuxtechi.local/IN: loaded serial 21 OK [email protected]:~$
Testen des DNS-Servers mit dig &nslookup
Um unseren BIND 9-DNS-Server zu testen, verwenden wir einen anderen Ubuntu-Computer und ändern dessen DNS, um auf unseren DNS-Server hinzuweisen. Um den DNS-Server zu ändern, öffnen Sie „/etc/resol.conf ‘ &machen Sie den folgenden DNS-Eintrag,
[email protected]:~$ sudo vi /etc/resolv.conf search linuxtechi.local nameserver 192.168.0.40
Speichern Sie die Datei und beenden Sie sie. Wir haben jetzt unseren Client bereit, wobei DNS auf unseren Server zeigt. Wir werden jetzt ein CLI-Tool namens "dig" verwenden ‘-Befehl, der verwendet wird, um DNS und die zugehörigen Informationen herauszufinden. Führen Sie den folgenden Befehl vom Terminal aus,
[email protected]:~$ dig primary.linuxtechi.local
&wir sollten die folgende Ausgabe des Befehls erhalten,
Diese Ausgabe zeigt, dass unser DNS einwandfrei funktioniert.
Führen wir eine Reverse-Lookup-Abfrage (PTR) durch:
[email protected]:~$ dig -x 192.168.0.40
Die Ausgabe des Befehls sollte in etwa so aussehen:
Wir können auch 'nslookup ausführen ‘-Befehl an unseren DNS-Server, um die Ausgabe des Befehls dig zu bestätigen,
[email protected]:~$ nslookup primary.linuxtechi.local
&es sollte die folgende Ausgabe erzeugen,
Hinweis:- Wenn Sie beim Ausführen des Befehls dig den Fehler „Befehl nicht gefunden“ erhalten, müssen wir das Paket „dnsutils“ installieren, da der Befehl dig Teil des Pakets „dnsutils“ ist,
[email protected]:~$ sudo apt-get install dnsutils -y
Jetzt, da unser Server einwandfrei funktioniert, können wir andere Server wie Mailserver, FTP-Server oder Webserver zu den Konfigurationsdateien des DNS-Servers hinzufügen, indem wir die entsprechenden Datensätze gemäß den Anforderungen erstellen. Außerdem haben wir in diesem Tutorial nur einen lokalen DNS-Server eingerichtet. Wenn Sie ein öffentliches DNS einrichten müssen, benötigen Sie dafür eine öffentliche IP-Adresse.
Damit beenden wir unser Tutorial zur Installation und Konfiguration von DNS-Servern unter Ubuntu/Debian mit BIND 9. Bitte senden Sie uns Ihr wertvolles Feedback/Ihre Fragen, wir werden uns gerne um sie alle kümmern.
Lesen Sie auch : So installieren und konfigurieren Sie Webmin unter Debian/Ubuntu