Come impostare un risolutore DNS locale con Unbound su Rocky Linux 9
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 questo tutorial, configurerò un server DNS locale con Unbound su un server Rocky Linux 9. Configurerai Unbound come DNS autorevole, di convalida e con memorizzazione nella cache ricorsiva. Oltre a ciò, configurerai anche Unbound come risolutore DNS per la tua rete locale con DNS-over-TLS (DoT) abilitato sopra di esso.
Alla fine di questo tutorial, configurerai anche i log non associati tramite Rsyslog e Logrotate e configurerai anche un computer client Linux per utilizzare Unbound come risolutore DNS e verificare l'intera installazione da lì.
Prerequisiti
Prima di iniziare con questo tutorial, assicurati di possedere i seguenti requisiti:
- Un server con Rocky Linux 9 installato: questo esempio utilizza un Rocky Linux con il nome host 'unbound-rocky' e l'indirizzo IP '192.168.5.25'.
- Un utente non root con privilegi di amministratore root/sudo.
- Un SELinux è in esecuzione in modalità permissiva.
E questo è tutto. Se tutti i requisiti sono soddisfatti, vai avanti e inizia a installare Unbound sul tuo server.
Installazione di Unbound
Unbound è un software server DNS che supporta la maggior parte dei sistemi operativi, inclusi Linux, BDS e macOS. Su Rocky Linux, il pacchetto Unbound è disponibile per impostazione predefinita nel repository ufficiale Rocky Linux AppStream.
In questo primo passaggio installerai il pacchetto Unbound sul tuo sistema Rocky Linux.
Ora esegui il comando dnf riportato di seguito per verificare il pacchetto 'unbound' disponibile nel repository AppStream. Al momento in cui scrivo, il repository Rocky Linux AppStream fornisce Unbound 1.16.
sudo dnf info unbound
Produzione :
Installa Unbound tramite il comando dnf riportato di seguito. Quando richiesto, inserire y per confermare e premere INVIO per procedere.
sudo dnf install unbound
Produzione :
Una volta installato unbound, avviare e abilitare il servizio 'unbound' tramite l'utilità di comando systemctl riportata di seguito. Questo avvierà Unbound sul tuo server Rocky Linux e ne consentirà l'esecuzione automatica all'avvio del sistema.
sudo systemctl start unbound
sudo systemctl enable unbound
Verificare il servizio non associato utilizzando il comando systemctl riportato di seguito. L'output "attivo (in esecuzione)" conferma che il servizio non associato è in esecuzione. E l'output e' caricato....; abilitato;...' conferma che il servizio Unbound è abilitato.
sudo systemctl status unbound
Produzione :
Il tuo Unbound è ora installato e in esecuzione con il file di configurazione predefinito '/etc/unbound/unbound.conf'. Successivamente, modificherai il file di configurazione Unbound '/etc/unbound/unbound.conf' e configurerai Unbound come DNS autorevole, di convalida e con memorizzazione nella cache ricorsiva e abiliterai inoltre Unbound come risolutore DNS con DoT abilitato.
Configurazione non associata
Per impostazione predefinita, il file di configurazione Unbound si trova in "/etc/unbound/unbound.conf". In questo passaggio modificherai il file di configurazione "/etc/unbound/unbound.conf", quindi configurerai e ottimizzerai l'installazione di Unbound.
Configurerai Unbound per l'esecuzione come DNS autorevole, di convalida e con memorizzazione nella cache ricorsiva. Oltre a ciò, ottimizzerai anche l'installazione Unbound per prestazioni, privacy e sicurezza. Infine, configurerai Unbound come risolutore DNS per le reti locali.
Innanzitutto, esegui il comando wget seguente per scaricare il file DNS root su '/etc/unbound/root.hints'. Quindi, modifica la proprietà del file '/etc/unbound/root.hints' nell'utente e nel gruppo 'unbound'.
wget https://www.internic.net/domain/named.root -O /etc/unbound/root.hints
sudo chown unbound:unbound /etc/unbound/root.hints
Successivamente, esegui il backup del file di configurazione Unbound predefinito su '/etc/unbound/unbound.conf.orig' e modifica il file originale '/etc/unbound/unbound.conf' utilizzando il comando dell'editor nano riportato di seguito.
sudo cp -v /etc/unbound/unbound{.conf,.conf.orig}
sudo nano /etc/unbound/unbound.conf
Ora iniziamo a configurare Unbound.
Configurazione di base non associata
Innanzitutto, imposterai quale indirizzo IP e porta deve essere in esecuzione il servizio Unbound. Successivamente, configurerai anche un pacchetto di certificati che verrà utilizzato per autenticare le connessioni effettuate a monte e aggiungere i server DNS root tramite il parametro "root-hints".
Aggiungi le seguenti righe nella sezione "server:". Con queste impostazioni, eseguirai Unbound su un indirizzo IP locale '192.168.5.25' con la porta UDP predefinita "53".
server:
...
...
# interface-automatic: no
do-ip6: no
interface: 192.168.5.25
port: 53
prefetch: yes
tls-cert-bundle: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
root-hints: /etc/unbound/root.hints
Parametri di dettaglio:
- do-ip6: utilizza "sì" per eseguire Unbound con IPv6 o imposta "no" per disabilitare IPv6.
- interfaccia: l'interfaccia di rete o l'indirizzo IP non associato verrà eseguito. È possibile utilizzare un indirizzo IP o il nome dell'interfaccia come "eth0". Inoltre, puoi eseguire in una porta specifica aggiungendo un formato come questo "IP-ADDRESS@PORT".
- 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 "sì" per abilitare la prelettura delle voci della cache dei messaggi quasi scaduti.
- tls-cert-bundle: certificati utilizzati per autenticare le connessioni effettuate a monte. Nella distribuzione basata su RHEL, il file del certificato si trova in '/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'.
- root-hints: un file che contiene i dettagli del server DNS root. Hai scaricato questo file su '/etc/unbound/root.hints'.
Abilita cache DNS
Ora aggiungi le seguenti righe per abilitare la memorizzazione nella cache ricorsiva del DNS tramite Unbound. Ciò memorizzerà nella cache le query DNS effettuate dai client sul server non associato per un determinato periodo di tempo.
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.
Indurimento non legato
Alcuni parametri di privacy e sicurezza per Unbound sono abilitati per impostazione predefinita nella distribuzione basata su RHEL. Ma puoi anche aggiungere più parametri come queste righe.
hide-identity: yes
hide-version: yes
use-caps-for-id: yes
Parametri di dettaglio:
- 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.
Definizione di indirizzi privati e elenchi di controllo degli accessi
Successivamente, dovrai definire l'indirizzo privato e gli ACL (access control list) per le tue reti locali. Assicurati di modificare 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.
Configurazione del nome di dominio locale e dei sottodomini
Dopo aver configurato gli elenchi di indirizzi privati e di controllo degli accessi, creerai ora nomi di dominio locali tramite il parametro "local-zone" non associato. 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, imposterai un dominio locale "statico" "garden.lan" e creerai più sottodomini tramite il dominio "local-data<'. 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 modifiche illimitate
Successivamente, aggiungi le seguenti righe per ottimizzare l'installazione Unbound. È possibile regolare e modificare i parametri seguenti a seconda dell'ambiente attuale.
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:
- 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 come risolutore DNS upstream.
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 il DNS Quad9 con DNS-over-TLS (DoT) abilitato.
Ora salva ed esci dal file '/etc/unbound/unbound.conf' quando tutto è finito.
Successivamente, esegui il comando seguente per verificare le configurazioni non associate e assicurarti di avere una configurazione corretta e corretta. In caso di esito positivo, dovresti ottenere un output 'unbound-checkconf: no error in /etc/unbound/unbound.conf'.
unbound-checkconf
Ora riavvia il servizio Unbound tramite l'utilità di comando systemctl di seguito e applica le modifiche.
sudo systemctl restart unbound
Con questo, hai completato la configurazione non associata e ora è in esecuzione sull'indirizzo IP "192.168.5.25" con la porta UDP predefinita "53".
Nei passaggi successivi configurerai il firewalld per aprire la porta DNS e configurerai la registrazione non associata tramite Rsyslog e Logrotate.
Configurazione di Firewalld
Pertanto, Unbound è attivo e funzionante sulla porta UDP predefinita 53. Ora devi aprire la porta DNS 53/UDP su firewalld e consentire ai client di accedere al tuo server DNS non associato.
Esegui il comando firewall-cmd riportato di seguito per aggiungere il nuovo servizio "dns". Quindi ricaricare il firewall per applicare le modifiche. In caso di successo, dovresti ottenere un output come "success" sul tuo terminale.
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
Successivamente, esegui il comando seguente per verificare l'elenco dei servizi abilitati su firewalld. Dovresti vedere il servizio "dns" aggiunto al firewalld.
sudo firewall-cmd --list-all
Produzione :
Configurazione del registro non associato tramite Rsyslog e Logrotate
Dopo aver configurato il firewalld, 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 '/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. Con questo, Rsyslog creerà un nuovo file di registro '/var/log/unbound.log' per '$programname' == 'unbound'.
# Log messages generated by unbound application
if $programname == 'unbound' then /var/log/unbound.log
# stop processing it further
& stop
Una volta terminato, salvare ed uscire dal file '/etc/rsyslog.d/unbound.conf'.
Successivamente, crea un nuovo file di configurazione di 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.
Infine, esegui la seguente utilità di comando systemctl per riavviare entrambi i servizi Rsyslog e Logrotate e applicare le modifiche al tuo sistema.
sudo systemctl restart rsyslog
sudo systemctl restart logrotate
Con questo, hai terminato l'installazione di Unbound. Nel passaggio successivo imparerai come configurare un computer client locale per utilizzare Unbound come risolutore DNS utilizzando due metodi, quindi verificherai il server DNS Unbound da lì.
Configurazione del risolutore DNS per il client
Per configurare il risolutore DNS sui computer client, puoi utilizzare diversi metodi. In questo passaggio imparerai come impostare i risolutori DNS tramite NetworkManager e tramite systemd-resolved combinato con NetworkManager.
Tramite NetworkManager
Se desideri configurare il risolutore DNS direttamente tramite NetworkManager, devi modificare le configurazioni dell'interfaccia di rete, che sono archiviate nella directory '/etc/NetworkManager/system-connections/'.
In questo esempio, la connessione principale per la macchina client è 'eth0', quindi la configurazione su NetworkManager dovrebbe essere '/etc/NetworkManager/system-connections/eth0.nmconnection '. Potresti avere nomi di interfaccia diversi come eth1 e molti altri.
Aprire il file di configurazione dell'interfaccia NetworkManager '/etc/NetworkManager/system-connections/eth0.nmconnection' utilizzando il comando dell'editor nano riportato di seguito.
sudo nano /etc/NetworkManager/system-connections/eth0.nmconnection
Aggiungi le seguenti righe alla sezione "[ipv4]". Inoltre, assicurati di modificare l'indirizzo IP nel parametro "dns" con il tuo server DNS non associato.
[ipv4]
...
dns=192.168.5.25
ignore-auto-dns=true
Salvare ed uscire dal file una volta terminato.
Successivamente, esegui il comando systemctl seguente per riavviare il servizio NetworkManager e applicare le modifiche. Quindi, verifica il file di configurazione del risolutore DNS '/etc/resolv.conf' tramite il comando cat.
sudo systemctl restart NetworkManager
cat /etc/resolv.conf
Dovresti ottenere un output che indica che l'indirizzo IP "192.168.5.25" è configurato come risolutore DNS predefinito per il tuo computer client.
Tramite systemd-resolved e NetworkManager
Un altro modo per impostare un risolutore DNS è tramite systemd-resolved e NetworkManager. Con questo, puoi facilmente modificare il risolutore DNS a livello di sistema e non dipendere dalle interfacce di rete del tuo sistema.
Nelle distribuzioni basate su RHEL, systemd-resolved non è ancora installato. Puoi installarlo facilmente tramite il comando dnf di seguito. Quando richiesto, inserire y per confermare e premere INVIO per procedere.
sudo dnf install systemd-resolved
Produzione :
Dopo aver installato systemd-resolved, apri il file di configurazione '/etc/systemd/resolved.conf' utilizzando il comando dell'editor nano riportato di seguito.
sudo nano /etc/systemd/resolved.conf
Nella sezione '[Resolver]', rimuovi il commento dal parametro "DNS" e aggiungi l'indirizzo IP del tuo server DNS non associato.
[Resolver]
DNS=192.168.5.25
Salvare ed uscire dal file una volta terminato.
Successivamente, esegui il comando systemctl riportato di seguito per avviare e abilitare il servizio "risolto da systemd".
sudo systemctl start systemd-resolved
sudo systemctl enable systemd-resolved
Ora verifica il servizio 'systemd-resolved' per assicurarti che sia in esecuzione. Dovresti ricevere un output come "attivo (in esecuzione)", che conferma che il servizio è in esecuzione. E l'output 'Loaded ../../systemd-resolved.service; abilitato;..' conferma che il servizio è abilitato e si avvierà automaticamente all'avvio del sistema.
sudo systemctl status systemd-resolved
Produzione :
Con il sistema risolto in esecuzione, modificherai successivamente il backend DNS per il servizio NetworkManager.
Apri il file di configurazione di NetworkManager '/etc/NetworkManager/NetworkManager.conf' utilizzando il comando dell'editor nano riportato di seguito.
sudo nano /etc/NetworkManager/NetworkManager.conf
Nella sezione "[main]", aggiungi il parametro "dns" con il valore "systemd-resolved". Ciò sovrascriverà il server DNS sul tuo NetworkManager per utilizzare il servizio 'risolto da systemd'.
[main]
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. Il nuovo risolutore DNS per NetworkManager è scritto nel file '/run/NetworkManager/resolv.conf'.
sudo systemctl restart NetworkManager
Esegui il comando seguente per rimuovere il file predefinito "/etc/resolve.conf". Quindi, crea un nuovo file di collegamento simbolico da '/run/NetworkManager/resolv.conf' a '/etc/resolv.conf'.
rm -f /etc/resolv.conf
ln -s /run/NetworkManager/resolv.conf /etc/resolv.conf
Con questo, il tuo computer client ora utilizza systemd-resolved come risolutore DNS. Dietro "systemd-resolved", stai utilizzando il server DNS non associato.
Di seguito sono riportati i dettagli del file '/etc/resolv.conf' dopo aver utilizzato systemd-resolved e NetworkManager.
cat /etc/resolv.conf
Produzione :
Verifica 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.25" garantisce che stai utilizzando un server DNS non associato che viene eseguito sull'indirizzo IP "192.168.5.25".
dig @192.168.5.25
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 client possano accedere ai nomi di dominio su Internet.
dig google.com
dig fb.com
Una volta completata l'operazione, dovresti ricevere un record DNS con i dettagli di output per il dominio "google.com" e "fb.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 visualizzare il "Tempo della query" per ciascuna query, il "Tempo della query" per il dominio "google.com" è "74ms' e per 'fb.com' è '154ms'.
Output per google.com:
Output per fb.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 google.com
dig fb.com
Produzione :
Successivamente, verifica il dominio locale o il sottodominio tramite il comando dig riportato di seguito. In caso di esito positivo, ciascun 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 tramite il comando dnf riportato di seguito.
sudo dnf 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 è in esecuzione sull'indirizzo IP "192.168.5.25" 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 twitter.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 RHEL tramite systemd-resolved e NetworkManager.
Conclusione
In questa guida hai installato il server DNS locale non associato su un server Rocky Linux 9. 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 distribuzioni basate su RHEL tramite NetworkManager e systemd-resolved. E ho anche imparato l'utilizzo di base del comando dig per controllare il server DNS.