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

So richten Sie einen ungebundenen DNS-Resolver unter Ubuntu 20.04 ein

Unbound ist ein kostenloser, quelloffener, rekursiver und validierender DNS-Caching-Server. Es verwendet DNS-over-TLS und DNS-over-HTTPS, um Verbindungen zwischen Clients zu verschlüsseln. Im Vergleich zu Bind9 ist Unbound leicht und extrem schnell. Ein Caching-Server hilft Ihnen, die Ladezeit der Website zu verkürzen, indem die Cache-Datenbank auf einem Unbound-Server gehalten wird. Es ist auch zur DNSSEC-Validierung fähig und kann als Vertrauensanker dienen.

In diesem Beitrag zeigen wir Ihnen, wie Sie den Unbound DNS Resolver unter Ubuntu 20.04 einrichten.

Voraussetzungen

  • Ein frischer Ubuntu 20.04-Server auf der Atlantic.Net Cloud Platform
  • Ein auf Ihrem Server konfiguriertes Root-Passwort

Schritt 1 – Atlantic.Net Cloud-Server erstellen

Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 20.04 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.

Sobald Sie sich bei Ihrem Ubuntu 20.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.

apt-get update -y

Schritt 2 – Erforderliche Abhängigkeiten installieren

Bevor Sie beginnen, müssen Sie einige grundlegende DNS-Tools in Ihrem System installieren. Sie können alle mit dem folgenden Befehl installieren:

apt-get install bind9-utils dnsutils net-tools -y

Sobald alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.

Schritt 3 – Ungebundenes DNS installieren und konfigurieren

apt-get install unbound -y

Nach der Installation von Unbound DNS müssen Sie es konfigurieren. Standardmäßig befindet sich die Unbound-Hauptkonfigurationsdatei unter /etc/unbound/unbound.conf. Es wird jedoch empfohlen, eine separate Konfigurationsdatei zu erstellen:

nano /etc/unbound/unbound.conf.d/myunbound.conf

Fügen Sie die folgenden Zeilen hinzu:

server:
port: 53
verbosity: 0
num-threads: 2
outgoing-range: 512
num-queries-per-thread: 1024
msg-cache-size: 32m
interface: 0.0.0.0
rrset-cache-size: 64m
cache-max-ttl: 86400
infra-host-ttl: 60
infra-lame-ttl: 120
access-control: 127.0.0.0/8 allow
access-control: 0.0.0.0/0 allow
username: unbound
directory: "/etc/unbound"
logfile: "/var/log/unbound.log"
use-syslog: no
hide-version: yes
so-rcvbuf: 4m
so-sndbuf: 4m
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
remote-control:
control-enable: yes
control-port: 953
control-interface: 0.0.0.0

Speichern und schließen Sie die Datei und validieren Sie dann die Konfigurationsdatei mit dem folgenden Befehl:

unbound-checkconf /etc/unbound/unbound.conf.d/myunbound.conf

Sie sollten die folgende Ausgabe erhalten:

unbound-checkconf: no errors in /etc/unbound/unbound.conf.d/myunbound.conf

Erstellen Sie als Nächstes eine Protokolldatei für Unbound und legen Sie die richtigen Berechtigungen fest:

touch /var/log/unbound.log
chown unbound:unbound /var/log/unbound.log

Schritt 4 – Starten Sie den ungebundenen DNS-Dienst

An diesem Punkt ist Unbound DNS installiert und konfiguriert. Starten Sie jetzt den ungebundenen Dienst neu und aktivieren Sie ihn, um beim Systemneustart zu starten:

systemctl restart unbound
systemctl enable unbound

Sie können den Status von Unbound auch mit dem folgenden Befehl überprüfen:

systemctl status unbound

Beispielausgabe:

● unbound.service - Unbound DNS server
     Loaded: loaded (/lib/systemd/system/unbound.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-08-15 06:30:33 UTC; 7s ago
       Docs: man:unbound(8)
    Process: 2788 ExecStartPre=/usr/lib/unbound/package-helper chroot_setup (code=exited, status=0/SUCCESS)
    Process: 2791 ExecStartPre=/usr/lib/unbound/package-helper root_trust_anchor_update (code=exited, status=0/SUCCESS)
   Main PID: 2804 (unbound)
      Tasks: 2 (limit: 2353)
     Memory: 4.8M
     CGroup: /system.slice/unbound.service
             └─2804 /usr/sbin/unbound -d

Aug 15 06:30:32 ubuntu2004 systemd[1]: Starting Unbound DNS server...
Aug 15 06:30:33 ubuntu2004 package-helper[2796]: /var/lib/unbound/root.key has content
Aug 15 06:30:33 ubuntu2004 package-helper[2796]: success: the anchor is ok
Aug 15 06:30:33 ubuntu2004 systemd[1]: Started Unbound DNS server.

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

ss -antpl | grep 53

Beispielausgabe:

LISTEN    0         256                0.0.0.0:53               0.0.0.0:*        users:(("unbound",pid=3407,fd=6))                                              
LISTEN    0         256                0.0.0.0:53               0.0.0.0:*        users:(("unbound",pid=3407,fd=4))                                              
LISTEN    0         4096         127.0.0.53%lo:53               0.0.0.0:*        users:(("systemd-resolve",pid=356,fd=13))                                      
LISTEN    0         256                0.0.0.0:953              0.0.0.0:*        users:(("unbound",pid=3407,fd=7))                                              

Schritt 5 – Ungebundenes DNS testen

Jetzt müssen Sie den Befehl dig verwenden und einige DNS-Abfragen durchführen, um den ungebundenen DNS-Server zu testen.

Wir werden ubuntu.com zum Testen verwenden.

dig ubuntu.com @localhost

Beispielausgabe:

; <<>> DiG 9.16.1-Ubuntu <<>> ubuntu.com @localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6037
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ubuntu.com.			IN	A

;; ANSWER SECTION:
ubuntu.com.		60	IN	A	91.189.88.181
ubuntu.com.		60	IN	A	91.189.88.180

;; Query time: 307 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Aug 15 06:32:18 UTC 2021
;; MSG SIZE  rcvd: 71

Wie Sie sehen, beträgt die Abfragezeit 307 msec in der ersten Abfrage. Ihre Abfrage ist jetzt zwischengespeichert.

Als Nächstes führen wir dieselbe Abfrage erneut aus:

dig ubuntu.com @localhost

Beispielausgabe:

; <<>> DiG 9.16.1-Ubuntu <<>> ubuntu.com @localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37832
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ubuntu.com.			IN	A

;; ANSWER SECTION:
ubuntu.com.		49	IN	A	91.189.88.180
ubuntu.com.		49	IN	A	91.189.88.181

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Aug 15 06:33:36 UTC 2021
;; MSG SIZE  rcvd: 71

Wie Sie sehen, beträgt die Abfragezeit 0 ms.

Sie können den ungebundenen DNS-Server auch vom Clientcomputer aus testen. In diesem Fall müssen Sie die IP Ihres ungebundenen DNS-Servers mit der Abfrage angeben:

dig ubuntu.com @69.87.221.220

Beispielausgabe:

; <<>> DiG 9.9.5-3ubuntu0.4-Ubuntu <<>> ubuntu.com @69.87.221.220
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 28051
;; flags: qr rd ad; QUERY: 0, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; Query time: 365 msec
;; SERVER: 69.87.221.220#53(69.87.221.220)
;; WHEN: Sun Aug 15 12:04:37 IST 2021
;; MSG SIZE  rcvd: 12

Schritt 6 – Fehlerbehebung bei Unbound

Wenn Sie den Status des ungebundenen DNS überprüfen möchten, führen Sie den folgenden Befehl aus:

unbound-control status

Beispielausgabe:

version: 1.9.4
verbosity: 0
threads: 2
modules: 3 [ subnet validator iterator ]
uptime: 65 seconds
options: reuseport control(ssl)
unbound (pid 3407) is running...

Wenn Sie einen DNS-Cache in einer Textdatei sichern möchten, führen Sie den folgenden Befehl aus:

unbound-control dump_cache > cache.txt

Sie können die cache.txt-Datei mit dem folgenden Befehl überprüfen:

cat cache.txt

Beispielausgabe:

START_RRSET_CACHE
END_RRSET_CACHE
START_MSG_CACHE
END_MSG_CACHE
EOF

In einigen Fällen kann Ihr DNS-Server Ihre Anfrage nicht beantworten. In diesem Fall können Sie den DNS-Cache mit dem folgenden Befehl leeren:

unbound-control flush ubuntu.com

Schlussfolgerung

In der obigen Anleitung haben wir erklärt, wie man einen ungebundenen DNS-Caching-Server unter Ubuntu 20.04 installiert und verwendet. Wir haben auch einige Tests mit dem Befehl dig durchgeführt, um unbound DNS abzufragen und eine Antwort zu erhalten. Probieren Sie es noch heute auf Ihrem VPS von Atlantic.Net aus!


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

  2. Ubuntu – Wie stellt man eine statische IP in Ubuntu ein?

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

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

  5. Wie setze ich $LD_LIBRARY_PATH in Ubuntu?

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

Richten Sie den ungebundenen DNS-Resolver auf dem Ubuntu 20.04-Server ein

So richten Sie Apache Virtual Hosts unter Ubuntu 18.04 ein

So löschen Sie den DNS-Cache unter Ubuntu

So leeren Sie den DNS-Cache unter Ubuntu