Ricerca nel sito web

Come impostare un risolutore DNS locale con Unbound su Debian


Unbound è un software server DNS gratuito e open source che può essere utilizzato per la convalida, la ricorsione e la memorizzazione nella cache dei risolutori DNS. È un server DNS ricco di funzionalità che supporta DNS-over-TLS (DoT), DNS-over-HTTPS (DoH), minimizzazione dei nomi delle query, uso aggressivo della cache convalidata DNSSEC e supporto per le zone di autorità. Unbound si concentra sulla privacy e sulla sicurezza del DNS, ma senza sacrificare la velocità e le prestazioni.

Unbound è sviluppato principalmente da NLnet Labs e distribuito con licenza BSD e supporta funzionalità moderne su standard aperti del server DNS. Unbound è stato rigorosamente controllato e può essere eseguito su Linux, BSD e macOS. Unbound è disponibile per la maggior parte di questi sistemi operativi e può essere installato tramite il gestore pacchetti di sistema.

In questa guida imparerai come configurare un server DNS privato con Unbound su un server Debian 11 e Debian 12. Configurerai Unbound come server DNS locale con alcune funzionalità come un server DNS autorevole, abiliterai la cache DNS, imposterai l'indirizzo IP locale e gli elenchi di controllo degli accessi (ACL), configurerai i nomi di dominio locali, quindi configurerai Unbound come DNS risolutore con DNS-over-TLS (DoT) abilitato.

Oltre a ciò, configurerai anche la registrazione per il servizio Unbound tramite Rsyslog e Logrotate.

Prerequisiti

Per completare questa guida è necessario possedere i seguenti requisiti.

  • Un sistema che esegue un server Debian 11 o un server Debian 12.
  • Un account utente con privilegi di amministratore sudo/root.

Questo è tutto. Ora puoi iniziare a installare Unbound come server DNS locale.

Installazione di Unbound

Per impostazione predefinita, il pacchetto Unbound è disponibile nel repository Debian. Puoi installarlo tramite APT. In questo primo passaggio installerai il pacchetto Unbound, che include "dns-root-data" sul tuo server Debian.

Prima di iniziare, aggiorna e aggiorna l'indice del tuo pacchetto Debian tramite il comando apt di seguito.

sudo apt update

Ora esegui il comando apt seguente per controllare il pacchetto 'unbound' disponibile nel repository Debian.

sudo apt info unbound

L'output seguente conferma che il pacchetto Unbound è disponibile per impostazione predefinita sul repository del server Debian con la versione corrente 1.13.

Ora esegui il comando apt seguente per installare non associato al tuo sistema Debian. Quando richiesto, inserire y per confermare e premere INVIO per procedere.

sudo apt install unbound

Produzione :

Una volta installato Unbound, esegui il comando systemctl seguente per verificare il servizio Unbound e assicurarti che il servizio sia abilitato e in esecuzione.

sudo systemctl is-enabled unbound
sudo systemctl status unbound

Il servizio Unbound è abilitato e verrà avviato automaticamente all'avvio del sistema. E lo stato del servizio Unbound è in esecuzione.

Nota aggiuntiva: se hai disabilitato IPv6 sul tuo server Debian, Unbound non potrà avviarsi. Per risolvere questo problema, puoi aggiungere il parametro 'do-ip6: no' alla sezione 'server' nel file di configurazione non associato '/etc/unbound/ unbound.conf'.

Con Unbound installato, inizierai a configurare Unbound sul tuo sistema.

Configurazione del server DNS non associato

La configurazione Unbound predefinita si trova in "/etc/unbound/unbound.conf". In questo passaggio, modificherai il file di configurazione principale di Unbound "/etc/unbound.conf" tramite il tuo editor preferito.

Ora imparerai la configurazione di base di un server DNS non associato.

Configurazione di base

Apri il file di configurazione Unbound predefinito '/etc/unbound/unbound.conf' utilizzando il tuo editor preferito. Questo esempio utilizza nano per modificare il file di configurazione '/etc/unbound/unbound.conf'.

sudo nano /etc/unbound/unbound.conf

Aggiungi le seguenti righe al file. Puoi impostare configurazioni di base non associate nella sezione "server". In questo esempio, eseguirai Unbound sull'indirizzo IP locale '192.168.5.20' con la porta predefinita 53. Inoltre, configurerai la registrazione sui messaggi Syslog e disabiliterai IPv6. Infine, configurerai Unbound per interrogare ricorsivamente qualsiasi nome host dai server DNS root tramite il file "root-hints".

#Adding DNS-Over-TLS support
server:
    use-syslog: yes
    username: "unbound"
    directory: "/etc/unbound"
    tls-cert-bundle: /etc/ssl/certs/ca-certificates.crt
    
    do-ip6: no
    interface: 192.168.5.20
    port: 53
    prefetch: yes
    root-hints: /usr/share/dns/root.hints
    harden-dnssec-stripped: yes

Parametri di dettaglio:

  • use-syslog: abilita la registrazione sui messaggi Syslog.
  • nome utente: esegui come utente non associato, che è l'utente predefinito.
  • directory: la directory di lavoro predefinita per Unbound è la directory '/etc/unbound'.
  • tls-cert-bundle: certificati utilizzati per autenticare le connessioni effettuate a monte. Nella distribuzione basata su Debian, il file del certificato si trova in '/etc/ssl/certs/ca-certificates.crt'.
  • do-ip6: utilizza "" per eseguire Unbound con IPv6 o imposta "no" per disabilitare IPv6.
  • interfaccia: l'interfaccia di rete o l'indirizzo IP non associato verrà eseguito. Puoi utilizzare un indirizzo IP o il nome dell'interfaccia come "eth0". Inoltre, puoi eseguire l'esecuzione in una porta specifica aggiungendo un formato come questo "INDIRIZZO IP@PORTA".
  • porta: specifica la porta su cui verrà eseguito Unbound e le connessioni del client verranno gestite da questa porta. La porta DNS predefinita è 53.
  • prelettura: imposta su "" per abilitare la prelettura delle voci della cache dei messaggi quasi scaduti.
  • root-hints: un file che contiene i dettagli del server DNS root. Il file '/usr/share/dns/root.hints' è fornito dal pacchetto 'dns-root-data'. Inoltre, puoi scaricare il file root-hints da qui "https://www.internic.net/domain/named.cache".
  • harden-dnssec-stripped: impostalo su "" per rafforzare la protezione contro la ricezione di dati privati di DNSsec.

Abilita cache DNS

Successivamente, aggiungi le seguenti righe per abilitare la query della cache DNS sull'installazione non associata.

    cache-max-ttl: 14400
    cache-min-ttl: 1200

Parametri di dettaglio:

  • cache-max-ttl: TTL o Time To Live per RRSets e messaggi nella cache DNS. Il formato è in secondi.
  • cache-min-ttl: Time To Live minimo per la cache. Il valore predefinito è 0, ma puoi modificarlo a tuo piacimento, ad esempio "1200" secondi. Non impostarlo per più di 1 ora o potresti avere problemi a causa di dati non aggiornati.

Privacy e sicurezza illimitate

Ora puoi aggiungere le seguenti righe per configurare la privacy e la sicurezza di base per Unbound.

    aggressive-nsec: yes
    hide-identity: yes
    hide-version: yes
    use-caps-for-id: yes

Parametri di dettaglio:

  • aggressive-nsec: impostato su "yes" per abilitare NSEC aggressivo, che utilizza la catena NSEC DNSSEC per sintetizzare NXDOMAIN e altri rifiuti. Controlla la pagina web IETF su 'NSEC' https://www.ietf.org/archive/id/draft-ietf-dnsop-nsec-ttl-00.html.
  • hide-identity: imposta su sì per disabilitare le risposte dalle query di associazione su id.server o hostname.bind.
  • hide-version: imposta su sì per disabilitare le query version.server e version.bind.
  • use-caps-for-id: imposta su sì per abilitare l'uso di "0x20-encoded" nella query per sventare i tentativi di spoofing.

Definire la rete privata e gli elenchi di controllo degli accessi (ACL)

Successivamente, devi definire l'indirizzo privato delle tue reti e gli ACL (Elenchi di controllo degli accessi). Modifica la sottorete locale nelle righe seguenti con il tuo attuale ambiente di rete.

    private-address: 192.168.0.0/16
    private-address: 169.254.0.0/16
    private-address: 172.16.0.0/12
    private-address: 10.0.0.0/8
    private-address: fd00::/8
    private-address: fe80::/10
    #control which clients are allowed to make (recursive) queries
    access-control: 127.0.0.1/32 allow_snoop
    access-control: ::1 allow_snoop
    access-control: 127.0.0.0/8 allow
    access-control: 192.168.5.0/24 allow

Parametri di dettaglio:

  • indirizzo-privato: definisci le sottoreti della rete privata sulla tua infrastruttura. Solo i nomi "dominio-privato" e "dati-locali" possono avere questi indirizzi privati.
  • controllo degli accessi: definisce il controllo degli accessi in cui i client possono effettuare query (ricorsive) al server non associato. Il parametro "allow" abiliterà il ricorsivo, mentre "allow_snoop" abiliterà sia il ricorsivo che il non ricorsivo.

Imposta dominio locale

Dopo aver configurato gli elenchi di indirizzi privati e di controllo degli accessi, definirai ora la zona locale per il tuo nome di dominio locale. Questo è molto utile, soprattutto se hai più applicazioni self-hosted sulla tua rete locale. Puoi facilmente definire il tuo nome di dominio o sottodomini e puntare all'indirizzo IP di destinazione specifico.

In questo esempio creerai la zona per il dominio 'garden.lan' con il tipo 'static', quindi creerai più sottodomini tramite il metodo 'local-data 'parametro. Ogni sottodominio verrà indirizzato a un indirizzo IP specifico e inoltre creerai record PTR tramite il parametro "local-data-ptr".

    # local zone
    local-zone: "garden.lan." static
    local-data: "firewall.garden.lan.  IN A 10.0.0.1"
    local-data: "vault.garden.lan.    IN A 10.0.0.2"
    local-data: "media.garden.lan.   IN A 10.0.0.3"
    local-data: "docs.garden.lan.       IN A 10.0.0.4"
    local-data: "wiki.garden.lan.     IN A 10.0.0.5"
    local-data-ptr: "10.0.0.1  firewall.garden.lan"
    local-data-ptr: "10.0.0.2  vault.garden.lan"
    local-data-ptr: "10.0.0.3  media.garden.lan"
    local-data-ptr: "10.0.0.4  docs.garden.lan"
    local-data-ptr: "10.0.0.5  wiki.garden.lan"

Parametri di dettaglio:

  • local-zone: definisci qui il dominio locale.
  • local-data: definisce un record per i sottodomini e quale indirizzo IP locale verrà risolto.
  • local-data-ptr: definisci il record ptr per i tuoi sottodomini.

Ottimizzazione e modifica delle prestazioni illimitate

Aggiungi le seguenti righe per ottenere maggiori prestazioni. Puoi regolare i parametri seguenti con il tuo ambiente attuale.

    num-threads: 4
    msg-cache-slabs: 8
    rrset-cache-slabs: 8
    infra-cache-slabs: 8
    key-cache-slabs: 8
    rrset-cache-size: 256m
    msg-cache-size: 128m
    so-rcvbuf: 8m

Parametri di dettaglio:

  • num-thread: il numero di thread che verranno creati. Il valore deve corrispondere ai core della CPU del server.
  • msg-cache-slabs: il numero di plates da utilizzare per la cache dei messaggi. Impostalo su 8 per ottimizzare Unbound per utilizzare più memoria per la memorizzazione nella cache.
  • rrset-cache-slabs: il numero di plates da utilizzare per la cache RRset. Impostarlo su 8 per ottimizzare Unbound per utilizzare più memoria per la cache RRSet.
  • infra-cache-slabs: il numero di lastre da utilizzare per la cache dell'infrastruttura. Impostalo su 8 per ottimizzare Unbound per utilizzare più memoria per la cache dell'infrastruttura.
  • key-cache-slabs: il numero di plates da utilizzare per la cache delle chiavi. Impostalo su 8 per ottimizzare Unbound per utilizzare più memoria per la cache delle chiavi.
  • rrset-cache-size: specifica la quantità di memoria per la cache RRSet. Questo esempio utilizza 256 MB, mentre il valore predefinito è solo 4 MB.
  • msg-cache-size: specifica la quantità di memoria per la cache dei messaggi. Questo esempio utilizza 128 MB, mentre il valore predefinito è solo 4 MB.
  • so-rcvbuf: imposta la dimensione del buffer per la porta DNS 53/udp su 8 MB.

Configurazione non associata come risolutore DNS con DNS-over-TLS (DoT)

Infine, aggiungi una nuova sezione "forward-zone" per configurare Unbound come risolutore DNS per le tue reti locali. In questo esempio vengono utilizzati server DNS Quad9 con DoT (DNS-over-TLS) abilitato.

forward-zone:
    name: "."
    forward-ssl-upstream: yes
    ## Also add IBM IPv6 Quad9 over TLS
    forward-addr: 9.9.9.9@853#dns.quad9.net
    forward-addr: 149.112.112.112@853#dns.quad9.net

Dettagli parametri:

  • forward-zone: definisce la zona forward per Unbound.
  • nome: imposta su "." per inoltrare tutte le query DNS.
  • forward-addr: utilizza un forwarder specifico per inoltrare tutte le query DNS. In questo esempio viene utilizzato Quad9 DNS con DNS-over-TLS (DoT) abilitato.

Una volta terminato, salvare ed uscire dal file '/etc/unbound/unbound.conf'. Con il file di configurazione Unbound modificato, ora puoi riavviare il servizio Unbound e applicare le modifiche.

Esegui il comando seguente e verifica la configurazione non associata. In caso di successo, dovresti ottenere un output come 'unbound-checkconf: no error in /etc/unbound/unbound.conf'.

sudo unbound-checkconf

Successivamente, esegui il comando systemctl riportato di seguito per riavviare il servizio Unbound e applicare le modifiche.

sudo systemctl restart unbound

Ora che hai terminato le configurazioni non associate, configurerai il firewall UFW e aprirai la porta DNS predefinita 53.

Configurazione del firewall UFW

In questo passaggio configurerai il firewall UFW sul server Debian e aprirai la porta DNS 53/udp. Ma prima devi installare i pacchetti UFW dal repository Debian tramite APT.

Esegui il comando apt seguente per installare il firewall UFW sul tuo server Debian. Immettere y quando richiesto e premere INVIO per procedere.

sudo apt install ufw

Produzione :

Una volta installato UFW, devi aprire il servizio OpenSSH su UFW tramite il comando seguente. Quindi puoi aggiungere la porta DNS53/udp al firewall UFW.

sudo ufw allow OpenSSH
sudo ufw allow 53/udp

Successivamente, esegui il comando seguente per avviare e abilitare il servizio firewall UFW. Quando richiesto, inserire y per confermare e premere INVIO per procedere.

sudo ufw enable

L'output 'Il firewall è attivo e abilitato all'avvio del sistema' conferma che il firewall UFW è in esecuzione ed è abilitato, il che significa che il firewall UFW si avvia automaticamente all'avvio del sistema.

Produzione :

Ora esegui il comando ufw seguente per verificare lo stato del firewall UFW. Dovresti ricevere un output che indica che lo stato UFW è 'attivo' con il servizio OpenSSH e la porta DNS53/udp abilitata.

sudo ufw status

Produzione :

Log non associato tramite Rsyslog e Logrotate

Dopo aver configurato il firewall UFW, imposterai ora un file di registro per Unbound tramite rsyslog e logrotate. Il servizio rsyslog creerà un file di registro specifico per Unbound e il logrotate ruoterà il file di registro Unbound in un determinato periodo di tempo.

Crea un nuovo file di configurazione Rsyslog '/etc/rsyslog.d/unbound.conf' utilizzando il comando dell'editor nano riportato di seguito.

sudo nano /etc/rsyslog.d/unbound.conf

Aggiungi le seguenti righe al file. In questo modo, i log non associati verranno archiviati in '/var/log/unbound.log'.

# Log messages generated by unbound application 
if $programname == 'unbound' then /var/log/unbound.log
# stop processing it further
& stop

Salvare il file e uscire dall'editor una volta terminato.

Ora esegui l'utilità di comando systemctl seguente per riavviare il servizio "rsyslog" e applicare le modifiche.

sudo systemctl restart rsyslog

Successivamente, imposterai la rotazione dei log per il file di log non associato '/var/log/unbound.log'. E puoi raggiungere questo obiettivo tramite il servizio logrotate.

Crea un nuovo file di configurazione logrotate '/etc/logrotate.d/unbound' utilizzando il comando dell'editor nano riportato di seguito.

sudo nano /etc/logrotate.d/unbound

Aggiungi le seguenti righe al file. Ciò creerà una rotazione giornaliera del log per il file di log non associato '/var/log/unbound.log'.

/var/log/unbound.log {
  daily
  rotate 7
  missingok
  create 0640 root adm
  postrotate
    /usr/lib/rsyslog/rsyslog-rotate
  endscript
}

Salvare il file e uscire dall'editor una volta terminato.

Ora esegui l'utilità di comando systemctl seguente per riavviare il servizio logrotate e applicare le modifiche.

sudo systemctl restart logrotate

Con questo, ora hai installato e configurato con successo il server DNS non associato e configurato la registrazione tramite Rsyslog e Logrotate. I log non associati verranno salvati nel file '/var/unbound/unbound.log'.

Impostazione del risolutore DNS sul client Linux

In questo passaggio imparerai come configurare un risolutore DNS sui computer client. Questo ti mostrerà due metodi per diverse distribuzioni Linux.

Per i client Ubuntu: la rete su Ubuntu è gestita da NetworkManager. Per impostare un risolutore DNS, puoi combinare NetworkManager con systemd-resolved come backend.
Per i client Debian: sui sistemi Debian (versione minima), la rete è gestita dal tradizionale file di configurazione '/etc/network/ interfaccia'. È possibile definire la directory del risolutore DNS nel file '/etc/network/interface' o utilizzare il servizio risolto da systemd, che è disponibile per impostazione predefinita sul server Debian.

Per client Ubuntu con NetworkManager e risoluzione Systemd

Questo è per gli utenti Ubuntu che utilizzano NetworkManager come configurazione di rete predefinita. Configurerai systemd-resolved come backend per il server DNS su NetworkManager.

Apri il file '/etc/NetworkManager/NetworkManager.conf' utilizzando il comando dell'editor nano riportato di seguito.

sudo nano /etc/NetworkManager/NetworkManager.conf

Togli il commento dal parametro "dns" e aggiungi il backend come "risolto da systemd".

dns=systemd-resolved

Salvare ed uscire dal file una volta terminato.

Ora esegui il comando systemctl seguente per riavviare il servizio NetworkManager e applicare le modifiche.

sudo systemctl restart NetworkManager

Successivamente, definirai il DNS locale non associato in systemd-resolved.

Apri il file di configurazione risolto da systemd '/etc/systemd/resolved.conf' utilizzando il comando dell'editor nano riportato di seguito.

sudo nano /etc/systemd/resolved.conf

Nella sezione "[Risolvi]", rimuovi il commento dal parametro "DNS" e inserisci l'indirizzo IP del tuo server DNS non associato.

[Resolve]
DNS= 192.168.5.20

Salvare ed uscire dal file una volta terminato.

Successivamente, esegui il comando systemctl riportato di seguito per avviare e abilitare il servizio 'systemd-resolved'.

sudo systemctl start systemd-resolved
sudo systemctl enable systemd-resolved

Ora verifica lo stato del servizio 'systemd-resolved' tramite il comando seguente. Dovresti vedere che systemd-resolved è abilitato e verrà eseguito automaticamente all'avvio del sistema. E lo stato del servizio 'systemd-resolved' è ora in esecuzione.

sudo systemctl status systemd-resolved

Puoi anche verificare la configurazione del tuo risolutore DNS tramite il comando 'resolvectl' di seguito. Dovresti vedere che il risolutore predefinito è il tuo server DNS non associato con indirizzo IP "192.168.5.20".

resolvectl status

Per i client Debian

Per il sistema Debian, puoi anche utilizzare il servizio systemd-resolved per impostare un risolutore DNS.

Apri il file di configurazione risolto da systemd '/etc/systemd/resolved.conf' utilizzando il nano editor riportato di seguito.

sudo nano /etc/systemd/resolved.conf

Aggiungi il parametro 'DNS' seguito dall'indirizzo IP del server non associato alla sezione '[Resolver]'.

[Resolve]
DNS=192.168.5.20

Salvare il file e uscire dall'editor una volta terminato.

Ora esegui il comando systemctl seguente per avviare e abilitare il servizio risolto da systemd.

sudo systemctl start systemd-resolved
sudo systemctl enable systemd-resolved

Produzione :

Quindi, verifica lo stato del servizio risolto da systemd per assicurarti che sia in esecuzione. L'output 'active (running)' conferma che systemd-resolved è in esecuzione e l'output 'loaded ../../../systemd-resolved.service; abilitato;..' conferma che il servizio è abilitato.

sudo systemctl status systemd-resolved

Produzione :

Puoi verificare la configurazione del tuo risolutore DNS tramite il comando 'resolvectl' di seguito. Dovresti vedere che il risolutore predefinito è il tuo server DNS non associato con indirizzo IP "192.168.5.20".

resolvectl status

Produzione :

Test del server DNS non associato

Esegui il comando dig riportato di seguito per assicurarti che il DNS non associato funzioni come un risolutore DNS. Il parametro '@192.168.5.20' garantisce che stai utilizzando un server DNS non associato che viene eseguito sull'indirizzo IP "192.168.5.20".

dig @192.168.5.20

In caso di successo, riceverai una risposta dal server DNS root come l'output seguente. Inoltre, noterai il flag "annuncio" (dati autentici) nell'output dell'intestazione, il che significa che DNSSEC è abilitato.

Successivamente, esegui il comando seguente per assicurarti che i clienti possano accedere ai nomi di dominio online.

dig github.com
dig duckduckgo.com

In caso di esito positivo, dovresti ricevere un record DNS con i dettagli di output per il dominio "github.com" e "duckduckgo.com". Puoi vedere che il risolutore DNS che risponde alla query è '127.0.0.53#53', che è il risolutore systemd che utilizza Unbound come risolutore predefinito. Inoltre, puoi vedere il "Tempo della query" per ciascuna query, il "Tempo della query" per il dominio "github.com" è "1367" e "duckduckgo.com" è "1059".

Output per github.com:

Uscita per duckduckgo.com:

Se esegui nuovamente il comando dig in alto, il 'Tempo di query' dovrebbe essere ridotto. E questo conferma che le tue query sono state memorizzate nella cache e che la cache DNS funziona.

dig github.com
dig duckduckgo.com

Produzione :

Successivamente, verifica il dominio locale o il sottodominio tramite il comando dig riportato di seguito. In caso di successo, ogni sottodominio verrà indirizzato all'indirizzo IP corretto come configurato nel file di configurazione Unbound '/etc/unbound/unbound.conf'.

dig firewall.garden.lan +short
dig vault.garden.lan +short
dig media.garden.lan +short

Produzione :

Ora esegui il comando dig riportato di seguito per assicurarti che i record PTR puntino al nome di dominio corretto.

dig -x 10.0.0.1 +short
dig -x 10.0.0.2 +short
dig -x 10.0.0.3 +short

Produzione :

Infine, puoi anche verificare DoT (DNS su TLS) tramite tcpdump. Installa il pacchetto 'tcpdump' sul tuo server non associato.

sudo apt install tcpdump

Immettere y quando richiesto e premere INVIO per procedere.

Ora esegui il comando tcpdump riportato di seguito per monitorare i traffici sull'interfaccia 'eth0' con la porta DoT 853. In questo esempio, il DNS non associato viene eseguito sull'indirizzo IP "192.168.5.20" con l'interfaccia "eth0".

tcpdump -vv -x -X -s 1500 -i eth0 'port 853'

Passare al computer client ed eseguire il comando seguente per accedere ai nomi di dominio esterni/Internet tramite il comando dig riportato di seguito.

dig google.com

Produzione :

Successivamente, torna al server Unbound e ora dovresti ottenere un output simile a questo sull'output tcpdump.

Con questo, ora hai installato e configurato il server DNS locale tramite Unbound. Inoltre, hai configurato un risolutore DNS sui client Ubuntu tramite systemd-resolved e NetworkManager e sui client Debian tramite systemd-resolved.

Conclusione

In questa guida hai installato il server DNS locale non associato su un server Debian 11. Hai abilitato la cache DNS, DNSSEC (abilitato per impostazione predefinita), configurato l'indirizzo privato e gli ACL, aggiunto il dominio locale tramite zona locale, quindi configurato Unbound come risolutore DNS con DoT (DNS-over-TLS).

In aggiunta a ciò, hai configurato la privacy e la sicurezza DNS di base, ottimizzato Unbound e configurato i log Unbound tramite rsyslog e logrotate.

Alla fine di questa guida, hai anche imparato come impostare un risolutore DNS su macchine Ubuntu e Debian tramite NetworkManager e systemd-resolved. E ho anche imparato l'utilizzo di base del comando dig per controllare il server DNS.

Articoli correlati: