GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit Unbound DNS Resolver na Ubuntu 20.04

Unbound je bezplatný, open-source, rekurzivní a ověřující server pro ukládání do mezipaměti DNS. K šifrování spojení mezi klienty používá DNS-over-TLS a DNS-over-HTTPS. Ve srovnání s Bind9 je Unbound lehký a extrémně rychlý. Server pro ukládání do mezipaměti vám pomůže zkrátit dobu načítání webu tím, že bude databázi mezipaměti udržovat na nevázaném serveru. Je také schopen validace DNSSEC a může sloužit jako důvěryhodná kotva.

V tomto příspěvku vám ukážeme, jak nastavit Unbound DNS Resolver na Ubuntu 20.04.

Předpoklady

  • Nový server Ubuntu 20.04 na cloudové platformě Atlantic.Net
  • Heslo uživatele root nakonfigurované na vašem serveru

Krok 1 – Vytvořte cloudový server Atlantic.Net

Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 20.04 s alespoň 2 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.

Jakmile se přihlásíte ke svému serveru Ubuntu 20.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.

apt-get update -y

Krok 2 – Instalace požadovaných závislostí

Než začnete, budete muset do svého systému nainstalovat některé základní nástroje DNS. Všechny je můžete nainstalovat pomocí následujícího příkazu:

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

Jakmile jsou všechny balíčky nainstalovány, můžete přejít k dalšímu kroku.

Krok 3 – Instalace a konfigurace nevázaných DNS

apt-get install unbound -y

Po instalaci Unbound DNS jej budete muset nakonfigurovat. Ve výchozím nastavení je hlavní konfigurační soubor Unbound umístěn v /etc/unbound/unbound.conf. Doporučuje se však vytvořit samostatný konfigurační soubor:

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

Přidejte následující řádky:

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

Uložte a zavřete soubor a poté ověřte konfigurační soubor pomocí následujícího příkazu:

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

Měli byste získat následující výstup:

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

Dále vytvořte soubor protokolu pro Unbound a nastavte správná oprávnění:

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

Krok 4 – Spusťte službu Unbound DNS

V tomto okamžiku je nainstalován a nakonfigurován Unbound DNS. Nyní restartujte službu Unbound a povolte její spuštění při restartu systému:

systemctl restart unbound
systemctl enable unbound

Stav Unbound můžete také ověřit pomocí následujícího příkazu:

systemctl status unbound

Ukázkový výstup:

● 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.

V tomto okamžiku je spuštěna služba Unbound a naslouchá na portu 53. Můžete to zkontrolovat pomocí následujícího příkazu:

ss -antpl | grep 53

Ukázkový výstup:

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))                                              

Krok 5 – Test nevázaných DNS

Nyní budete muset použít příkaz dig a provést několik DNS dotazů, abyste otestovali Unbound DNS server.

K testování použijeme ubuntu.com.

dig ubuntu.com @localhost

Ukázkový výstup:

; <<>> 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

Jak vidíte, čas dotazu je 307 msec v prvním dotazu. Váš dotaz je nyní uložen do mezipaměti.

Dále spustíme stejný dotaz znovu:

dig ubuntu.com @localhost

Ukázkový výstup:

; <<>> 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

Jak vidíte, čas dotazu je 0 ms.

Nevázaný server DNS můžete také otestovat z klientského počítače. V tomto případě budete muset zadat IP vašeho Unbound DNS serveru pomocí dotazu:

dig ubuntu.com @69.87.221.220

Ukázkový výstup:

; <<>> 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

Krok 6 – Odstraňování problémů bez vazby

Pokud chcete zkontrolovat stav Unbound DNS, spusťte následující příkaz:

unbound-control status

Ukázkový výstup:

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...

Pokud chcete zálohovat mezipaměť DNS do textového souboru, spusťte následující příkaz:

unbound-control dump_cache > cache.txt

Soubor cache.txt můžete ověřit pomocí následujícího příkazu:

cat cache.txt

Ukázkový výstup:

START_RRSET_CACHE
END_RRSET_CACHE
START_MSG_CACHE
END_MSG_CACHE
EOF

V některých případech váš server DNS nemůže odpovědět na váš dotaz. V tomto případě můžete vyprázdnit mezipaměť DNS pomocí následujícího příkazu:

unbound-control flush ubuntu.com

Závěr

Ve výše uvedené příručce jsme vysvětlili, jak nainstalovat a používat mezipaměťový server Unbound DNS na Ubuntu 20.04. Provedli jsme také nějaké testování pomocí příkazu dig k dotazu na Unbound DNS a získání odpovědi. Vyzkoušejte to na svém VPS od Atlantic.Net ještě dnes!


Linux
  1. Jak nastavit Local DNS Resolver pomocí Dnsmasq na Ubuntu 20.04

  2. Ubuntu – Jak nastavit statickou IP v Ubuntu?

  3. Jak nastavit $LD_LIBRARY_PATH v Ubuntu?

  1. Jak nainstalovat Unbound DNS resolver na Ubuntu 22.04

  2. Jak nastavit klíče SSH na Ubuntu 18.04

  3. Jak nastavit DNS resolver ve Fedoře pomocí správce sítě?

  1. Jak nainstalovat Redis na Ubuntu 20.04 / 18.04

  2. Jak nastavit DNS Nameserver na Ubuntu 20.04

  3. Jak nastavit Raspberry Pi jako DNS server