GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare un risolutore DNS non legato su Ubuntu 20.04

Unbound è un server di cache DNS gratuito, open source, ricorsivo e di convalida. Utilizza DNS-over-TLS e DNS-over-HTTPS per crittografare le connessioni tra i client. Rispetto a Bind9, Unbound è leggero ed estremamente veloce. Un server di cache ti aiuterà a ridurre il tempo di caricamento del sito Web mantenendo il database della cache su un server Unbound. È anche in grado di convalidare DNSSEC e può fungere da ancoraggio di fiducia.

In questo post, ti mostreremo come configurare unbound DNS Resolver su Ubuntu 20.04.

Prerequisiti

  • Un nuovo server Ubuntu 20.04 sulla piattaforma Atlantic.Net Cloud
  • Una password di root configurata sul tuo server

Fase 1:crea un server cloud Atlantic.Net

Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 20.04 come sistema operativo con almeno 2GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.

Dopo aver effettuato l'accesso al tuo server Ubuntu 20.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.

apt-get update -y

Passaggio 2:installazione delle dipendenze richieste

Prima di iniziare, dovrai installare alcuni strumenti DNS di base nel tuo sistema. Puoi installarli tutti usando il seguente comando:

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

Una volta installati tutti i pacchetti, puoi procedere al passaggio successivo.

Fase 3 – Installa e configura il DNS non associato

apt-get install unbound -y

Dopo aver installato Unbound DNS, dovrai configurarlo. Per impostazione predefinita, il file di configurazione principale Unbound si trova in /etc/unbound/unbound.conf. Tuttavia, si consiglia di creare un file di configurazione separato:

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

Aggiungi le seguenti righe:

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

Salva e chiudi il file, quindi convalida il file di configurazione con il seguente comando:

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

Dovresti ottenere il seguente output:

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

Quindi, crea un file di registro per Unbound e imposta le autorizzazioni appropriate:

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

Fase 4:avvia il servizio DNS illimitato

A questo punto, Unbound DNS è installato e configurato. Ora riavvia il servizio Unbound e abilitalo per l'avvio al riavvio del sistema:

systemctl restart unbound
systemctl enable unbound

Puoi anche verificare lo stato di Unbound con il seguente comando:

systemctl status unbound

Esempio di output:

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

A questo punto, il servizio Unbound è avviato ed è in ascolto sulla porta 53. Puoi verificarlo usando il seguente comando:

ss -antpl | grep 53

Esempio di output:

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

Passaggio 5:verifica del DNS non associato

Ora dovrai usare il comando dig ed eseguire alcune query DNS per testare il server DNS non legato.

Useremo ubuntu.com per i test.

dig ubuntu.com @localhost

Esempio di output:

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

Come puoi vedere, il tempo della query è 307 msec nella prima query. La tua query è ora memorizzata nella cache.

Quindi, eseguiamo di nuovo la stessa query:

dig ubuntu.com @localhost

Esempio di output:

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

Come puoi vedere, il tempo della query è 0 msec.

Puoi anche testare il server DNS non associato dalla macchina client. In questo caso, dovrai specificare l'IP del tuo server DNS non legato con la query:

dig ubuntu.com @69.87.221.220

Esempio di output:

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

Fase 6 – Risoluzione dei problemi senza limiti

Se vuoi controllare lo stato del DNS Unbound, esegui il comando seguente:

unbound-control status

Esempio di output:

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

Se desideri eseguire il backup di una cache DNS in un file di testo, esegui il comando seguente:

unbound-control dump_cache > cache.txt

Puoi verificare il file cache.txt con il seguente comando:

cat cache.txt

Esempio di output:

START_RRSET_CACHE
END_RRSET_CACHE
START_MSG_CACHE
END_MSG_CACHE
EOF

In alcuni casi, il tuo server DNS non può rispondere alla tua richiesta. In questo caso, puoi svuotare la cache DNS usando il seguente comando:

unbound-control flush ubuntu.com

Conclusione

Nella guida sopra, abbiamo spiegato come installare e utilizzare un server di cache DNS non associato su Ubuntu 20.04. Abbiamo anche eseguito alcuni test utilizzando il comando dig per interrogare unbound DNS e ottenere una risposta. Provalo oggi stesso sul tuo VPS di Atlantic.Net!


Linux
  1. Come configurare il risolutore DNS locale utilizzando Dnsmasq su Ubuntu 20.04

  2. Ubuntu:come impostare un IP statico in Ubuntu?

  3. Come installare il resolver DNS Unbound su Ubuntu 22.04

  4. Come configurare le chiavi SSH su Ubuntu 18.04

  5. Come impostare il resolver DNS in Fedora usando il gestore di rete?

Configura un risolutore DNS locale su Ubuntu 18.04, 16.04 con BIND9

Configura il risolutore DNS locale su Ubuntu 20.04 con BIND9

Imposta un risolutore DNS non legato sul server Ubuntu 20.04

Come configurare gli host virtuali Apache su Ubuntu 18.04

Come cancellare la cache DNS su Ubuntu

Come svuotare la cache DNS su Ubuntu