Unbound è un server di memorizzazione nella cache DNS ricorsivo, di convalida, molto sicuro e distribuito gratuitamente con licenza BSD. Unbound supporta DNS-over-TLS e DNS-over-HTTPS per aumentare la privacy online consentendo ai client di crittografare la propria connessione. A seconda della configurazione di rete, Unbound può supportare sia IPV4 che IPV6. L'installazione e la configurazione di Unbound nelle distribuzioni Linux è abbastanza semplice e diretta. Il pacchetto Unbound è disponibile nella maggior parte dei sistemi operativi moderni, inclusi CentOS, Ubuntu, Fedora. Le aziende che utilizzano il proprio dominio per servire applicazioni o siti Web internamente possono utilizzare unbound come server DNS. In questo articolo impareremo come installare e configurare un Unbound server in Ubuntu 20.04.
Installazione
L'installazione del server di risoluzione dei nomi Unbound in Ubuntu 20.04 è molto semplice e facile. Esegui il comando seguente per installare il pacchetto
$ sudo apt install unbound -y
Uscita:
Inoltre, esegui il comando seguente per installare pacchetti aggiuntivi che utilizzeremo per controllare le configurazioni del server DNS
$ sudo apt install bind-utils net-tools -y
Al termine dell'installazione, è possibile trovare il contenuto del file di configurazione utilizzando il comando:
$ cat /etc/unbound/unbound.conf
Uscita :
L'output mostra che dalla directory unbound.conf.d verranno caricati tutti i file .conf.
Creiamo un nuovo file di configurazione nella directory /etc/unbound/unbound.conf.d directory. In questo esempio ho creato un unbound_test.conf file. Puoi avere la tua ipotesi.
Aprire il file utilizzando l'editor di testo e aggiungere la seguente configurazione di esempio. Puoi modificare i parametri di conseguenza.
$ sudo nano /etc/unbound/unbound.conf.d/unbound_test.conf
server: port: 53 verbosity: 0 num-threads: 2 outgoing-range: 512 num-queries-per-thread: 1024 msg-cache-size: 32m interface: 127.0.0.1 interface: 192.168.5.5 rrset-cache-size: 64m cache-max-ttl: 86400 infra-host-ttl: 60 infra-lame-ttl: 120 outgoing-interface: 192.168.0.2 access-control: 127.0.0.0/8 allow access-control: 192.168.5.0/24 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
Now create a log file and assign permission to write logs $ sudo touch /var/log/unbound.log
$ sudo chown unbound:unbound /var/log/unbound.log
Riavvia il servizio Unbound per caricare la configurazione
$ sudo service unbound restart
Utilizzare il comando seguente per abilitare il servizio
$ sudo service unbound enable
Controlla se il servizio non associato è in esecuzione o non utilizza il comando:
$ sudo service unbound status
uscita :
Esegui il comando seguente per verificare quale porta non associata è in ascolto
$ sudo netstat -anlpt | grep LIST
Uscita:
L'output mostra che il servizio Unbound è in ascolto sulla porta 53 per accettare le richieste.
Spiegazione del file di configurazione:
porta :Porta in ascolto per Unbound
nascondi-versione :non visualizzare la versione di non vincolata
usa-syslog :specifica se vuoi scrivere i log in syslog
nome utente :Utente, sotto il quale viene eseguito unbound
verbosità :il livello di registro che va da 0 a 4 e 4 è il livello di registro di debug
interfaccia :Interfacce in cui verranno ascoltate le richieste non associate
interfaccia in uscita :Interfaccia attraverso la quale arriva Internet
num-thread :Numero di thread, consigliato per specificare lo stesso numero di core del processore
Apri la porta DNS nel firewall.
Una volta creato il file di configurazione, è necessario aprire una porta DNS per consentire ai client LAN locali di connettersi al server DNS di sola cache Unbound.
$ sudo ufw allow from any to any port 53 proto tcp
$ sudo ufw allow from any to any port 53 proto udp
Per controllare la regola del firewall, esegui il seguente comando
$ sudo ufw status
Uscita :
Ora siamo arrivati al punto finale per testare il nostro nuovo server DNS Unbound. Per i test possiamo usare lo scavare comando fornito con il pacchetto precedentemente installato bind-utils . Eseguire alcune query DNS nel server DNS effettivo. Per questo esempio, ho interrogato kernel.org per il test. Puoi avere la tua ipotesi.
$ dig kernel.org @localhost
Uscita:
Il tempo di risposta è di 4 msec nella prima query. Poiché abbiamo configurato il server DNS non associato, la query è ora memorizzata nella cache. Per verificare la cache DNS, esegui la seguente query con lo stesso nome di dominio.
$ dig kernel.org @localhost
Ora puoi scoprire che il tempo della query è 0 msec.
Se si desidera testare la configurazione del server DNS non associato dai client LAN, interrogare la risposta DNS che punta all'IP del server DNS non associato. (Nel mio caso l'IP del mio server DNS non legato è 192.168.178.130)
$ dig kernel.org @192.168.178.130
Ottimizzazione
La configurazione predefinita di Unbound funziona bene per utenti limitati, ma nel caso in cui sia necessario fornire un servizio a un numero elevato di utenti, è necessario apportare determinate ottimizzazioni. Ecco alcune opzioni di ottimizzazione che puoi implementare per ottenere prestazioni elevate.
num-thread: Metti lo stesso numero di core della CPU sul sistema, ad esempio, inserisci il valore 4 per 2 CPU con 2 core ciascuna.
so-reuseport:sì In Linux, questo aiuta a migliorare le prestazioni UDP
intervallo in uscita :puoi impostare il valore più grande possibile a seconda del numero di core.
così-sndbuf: Questo valore può essere impostato su un valore maggiore 4m o 8m per un server occupato.
Per maggiori dettagli puoi fare riferimento a
https://nlnetlabs.nl/documentation/unbound/howto-optimise/
Conclusione
Nell'articolo, abbiamo spiegato come installare e configurare il server di risoluzione dei nomi Unbound in Ubuntu con la configurazione di base. Alcuni test sono stati eseguiti utilizzando il comando dig per verificare la configurazione del server Unbound. Inoltre, abbiamo imparato come interrogare le risposte DNS dal client LAN locale utilizzando l'IP del server Unbound. Qualsiasi feedback e suggerimento sarà molto apprezzato.