GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie den lokalen DNS-Resolver mit Dnsmasq unter Ubuntu 20.04 ein

Dnsmasq steht für "kurz für DNS-Masquerade" und ist ein einfacher, leichtgewichtiger und benutzerfreundlicher DNS-Forwarder, der für ein kleines Netzwerk verwendet wird. Es kann als DNS-Cache und DHCP-Server konfiguriert werden und unterstützt sowohl das IPv4- als auch das IPv6-Protokoll. Wenn es DNS-Anfragen erhält, beantwortet es sie aus seinem Cache oder leitet sie an den anderen DNS-Server weiter.

Dnsmasq besteht aus drei Subsystemen:

  • DNS-Subsystem : Es wird zum Zwischenspeichern verschiedener Datensatztypen verwendet, einschließlich A, AAAA, CNAME und PTR.
  • DHCP-Subsystem : Es unterstützt DHCPv4, DHCPv6, BOOTP und PXE
  • Router Advertisement Subsystem : Es bietet eine grundlegende Autokonfiguration für IPv6-Hosts. Es kann eigenständig oder in Verbindung mit DHCPv6 verwendet werden.

In diesem Tutorial zeigen wir Ihnen, wie Sie einen lokalen DNS-Server mit Dnsmasq auf einem Ubuntu 20.04-Server einrichten.

Voraussetzungen

  • Ein Server mit Ubuntu 20.04.
  • Ein Root-Passwort wird auf dem Server konfiguriert.

Erste Schritte

Zunächst wird empfohlen, Ihre Systempakete auf die neueste Version zu aktualisieren. Sie können alle Pakete aktualisieren, indem Sie den folgenden Befehl ausführen:

apt-get update -y

Nachdem Sie alle Pakete aktualisiert haben, müssen Sie den von Systemd aufgelösten Dienst in Ihrem System deaktivieren. Der vom System aufgelöste Dienst wird für die Netzwerknamensauflösung für lokale Anwendungen verwendet.

Sie können es deaktivieren, indem Sie den folgenden Befehl ausführen:

systemctl disable --now systemd-resolved

Sobald der Dienst deaktiviert ist, müssen Sie die Standarddatei resolv.conf entfernen und eine neue mit Ihren benutzerdefinierten DNS-Serverdetails erstellen.

Sie können die Standarddatei resolv.conf mit dem folgenden Befehl entfernen:

rm -rf /etc/resolv.conf

Fügen Sie als Nächstes den Google-DNS-Server mit dem folgenden Befehl zur Datei „resolv.conf“ hinzu:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Dnsmasq installieren

Standardmäßig ist Dnsmasq im Standard-Repository von Ubuntu 20.04 verfügbar. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:

apt-get install dnsmasq dnsutils ldnsutils -y

Sobald die Installation abgeschlossen ist, werden die Dnsmasq-Dienste automatisch gestartet. Sie können den Status von Dnsmasq mit dem folgenden Befehl überprüfen:

systemctl status dnsmasq

Sie sollten die folgende Ausgabe erhalten:

dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-11-02 11:02:01 UTC; 15s ago
   Main PID: 17726 (dnsmasq)
      Tasks: 1 (limit: 2282)
     Memory: 868.0K
     CGroup: /system.slice/dnsmasq.service
             ??17726 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e>

Nov 02 11:02:12 ubuntu2004 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Nov 02 11:02:12 ubuntu2004 dnsmasq[17705]: dnsmasq: syntax check OK.
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: started, version 2.80 cachesize 150
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: DNS service limited to local subnets
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfi>
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: reading /etc/resolv.conf
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: using nameserver 8.8.8.8#53
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: read /etc/hosts - 7 addresses
Nov 02 11:02:12 ubuntu2004 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Dnsmasq konfigurieren

Als nächstes müssen Sie Dnsmasq als lokalen DNS-Server konfigurieren. Sie können dies tun, indem Sie die Hauptkonfigurationsdatei von Dnsmasq bearbeiten:

nano /etc/dnsmasq.conf

Ändern Sie die folgenden Zeilen:

port=53
domain-needed
bogus-priv
listen-address=127.0.0.1,your-server-ip
expand-hosts
domain=dns-example.com
cache-size=1000

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

Als nächstes müssen Sie Ihre Server-IP-Adresse als primären Nameserver in Ihrer resolv.conf-Datei hinzufügen. Sie können es mit dem folgenden Befehl hinzufügen:

nano /etc/resolv.conf

Fügen Sie über der Zeile „nameserver 8.8.8.8“ die folgende Zeile hinzu:

nameserver your-server-ip

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Überprüfen Sie als Nächstes den Server mit dem folgenden Befehl auf Konfigurationsfehler:

dnsmasq --test

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:

dnsmasq: syntax check OK.

Starten Sie abschließend den Dnsmasq-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart dnsmasq

An diesem Punkt wird Dnsmasq gestartet und überwacht Port 53. Sie können dies mit dem folgenden Befehl überprüfen:

ss -alnp | grep -i :53

Sie sollten die folgende Ausgabe erhalten:

udp     UNCONN   0        0                                             0.0.0.0:53                                                0.0.0.0:*                      users:(("dnsmasq",pid=41051,fd=4))                                             
udp     UNCONN   0        0                                                [::]:53                                                   [::]:*                      users:(("dnsmasq",pid=41051,fd=6))                                             
tcp     LISTEN   0        32                                            0.0.0.0:53                                                0.0.0.0:*                      users:(("dnsmasq",pid=41051,fd=5))                                             
tcp     LISTEN   0        32                                               [::]:53                                                   [::]:*                      users:(("dnsmasq",pid=41051,fd=7))                                             

DNS-Einträge zum Dnsmasq-Server hinzufügen

Als nächstes müssen Sie Ihre /etc/hosts-Datei bearbeiten und den Eintrag des lokalen DNS-Servers hinzufügen.

nano /etc/hosts

Fügen Sie die folgende Zeile hinzu:

your-server-ip host1.dns-example.com

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

Dnsmasq-Serverauflösung überprüfen

An diesem Punkt ist Dnsmasq installiert und konfiguriert. Nein, es ist an der Zeit, die DNS-Auflösung zu überprüfen.

Sie können den Befehl dig verwenden, um die DNS-Auflösung wie unten gezeigt zu überprüfen:

dig host1.dns-example.com +short

Wenn alles in Ordnung ist, sollten Sie Ihre Server-IP in der folgenden Ausgabe sehen:

your-server-ip

Sie können die externe DNS-Auflösung auch mit dem folgenden Befehl überprüfen:

dig howtoforge.com +short

Sie sollten die folgende Ausgabe erhalten:

172.67.68.93
104.26.3.165
104.26.2.165

Konfigurieren Sie den Remote-Client für die Verwendung des DNS-Servers von Dnsmasq

Als Nächstes müssen Sie einen Remote-Client konfigurieren, um Ihren Dnsmasq-DNS-Server als Standard-DNS-Server zu verwenden.

Installieren Sie zuerst die DNS-Tools mit dem folgenden Befehl:

apt-get install dnsutils ldnsutils -y

Nach der Installation müssen Sie die Datei /etc/resolv.conf und Ihren Dnsmasq-DNS-Servereintrag bearbeiten.

nano /etc/resolv.conf

Fügen Sie am Anfang der Datei die folgende Zeile hinzu:

nameserver your-server-ip

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

Überprüfen Sie als Nächstes die lokale DNS-Auflösung mit dem folgenden Befehl:

dig host1.dns-example.com

Sie sollten die folgende Ausgabe sehen:

; DiG 9.9.5-3ubuntu0.4-Ubuntu host1.dns-example.com
;; global options: +cmd
;; Got answer:
;; HEADER opcode: QUERY, status: NOERROR, id: 26401
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;host1.dns-example.com.		IN	A

;; ANSWER SECTION:
host1.dns-example.com.	0	IN	A	45.58.32.165

;; Query time: 301 msec
;; SERVER: 45.58.32.165#53(45.58.32.165)
;; WHEN: Mon Nov 02 16:49:37 IST 2020
;; MSG SIZE  rcvd: 66

Als nächstes müssen Sie Ihren DNS-Server für das Caching verifizieren. Sie können dies mit dem Drill-Dienstprogramm überprüfen.

Führen Sie zuerst den folgenden Befehl aus:

drill google.com | grep "Query time"

Sie sollten die folgende Ausgabe sehen:

;; Query time: 290 msec

Führen Sie als Nächstes den Befehl erneut aus, um zu überprüfen, ob das Caching funktioniert oder nicht:

drill google.com | grep "Query time"

Sie sollten sehen, dass die Abfragezeit jetzt auf 4 ms abnimmt:

;; Query time: 4 msec

Schlussfolgerung

Herzliche Glückwünsche! Sie haben erfolgreich Dnsmasq als lokalen DNS-Server und Ubuntu 20.04 installiert und konfiguriert. Ich hoffe, Sie können es jetzt problemlos in Ihrem lokalen Netzwerk zur Namensauflösung implementieren.


Ubuntu
  1. 4 Schritte zum Einrichten eines lokalen Repositorys in Ubuntu mit APT-Mirror

  2. So richten Sie HAProxy in Ubuntu 16.04 ein

  3. So richten Sie die UFW-Firewall unter Ubuntu 18.04 ein

  4. So installieren Sie den ungebundenen DNS-Resolver unter Ubuntu 22.04

  5. Wie stelle ich den DNS-Resolver in Fedora mit dem Netzwerkmanager ein?

So richten Sie den zentralen Protokollierungsserver mit Rsyslog unter Ubuntu 20.04 ein

So konfigurieren Sie den DNS-Server unter Ubuntu 18.04 / Ubuntu 16.04

So richten Sie OpenVPN auf Ubuntu Server ein

So richten Sie ein VPN unter Ubuntu ein

Richten Sie einen lokalen DNS-Resolver auf Ubuntu 18.04, 16.04 mit BIND9 ein

Richten Sie den lokalen DNS-Resolver unter Ubuntu 20.04 mit BIND9 ein