Cómo configurar un resolvedor DNS local con Unbound en Rocky Linux 9

Unbound es un software de servidor DNS gratuito y de código abierto que puede utilizarse para resolver DNS de validación, recursivos y de caché. Es un servidor DNS rico en funciones que admite DNS sobre TLS (DoT), DNS sobre HTTPS (DoH), minimización de nombres de consulta, uso agresivo de caché validada por DNSSEC y compatibilidad con zonas de autoridad. Unbound se centra en la privacidad y seguridad del DNS, pero sin sacrificar la velocidad y el rendimiento.

Unbound está desarrollado principalmente por NLnet Labs y distribuido bajo licencia BSD, y es compatible con las modernas funciones sobre estándares abiertos del Servidor DNS. Unbound ha sido rigurosamente auditado, y puede ejecutarse en Linux, BSD y macOS. Unbound está disponible para la mayoría de estos sistemas operativos y puede instalarse mediante el gestor de paquetes del sistema.

En este tutorial, configuraré un Servidor DNS Local con Unbound en un servidor Rocky Linux 9. Configurarás Unbound como DNS autoritativo, validador y de caché recursivo. Además, también configurarás Unbound como un resolver DNS para tu red local con DNS sobre TLS (DoT) habilitado sobre él.

Al final de este tutorial, también configurarás los registros de Unbound a través de Rsyslog y Logrotate, y también configurarás una máquina cliente Linux para utilizar Unbound como DNS resolver y verificar toda tu instalación desde allí.

Requisitos previos

Antes de empezar con este tutorial, asegúrate de que tienes los siguientes requisitos:

  • Un servidor con Rocky Linux 9 instalado – Este ejemplo utiliza un Rocky Linux con el nombre de host ‘unbound-rocky’ y la dirección IP ‘192.168.5.25‘.
  • Un usuario no root con privilegios de administrador root/sudo.
  • Un SELinux se ejecuta en modo permisivo.

Y ya está. Si se cumplen todos los requisitos, sigue adelante y empieza a instalar Unbound en tu servidor.

Instalación de Unbound

Unbound es un software de servidor DNS compatible con la mayoría de los sistemas operativos, incluidos Linux, SDE y macOS. En Rocky Linux, el paquete Unbound está disponible por defecto en el repositorio oficial Rocky Linux AppStream.

En este primer paso, instalarás el paquete Unbound en tu sistema Rocky Linux.

Ahora ejecuta el siguiente comando dnf para verificar que el paquete«unbound» está disponible en el repositorio AppStream. En el momento de escribir esto, el repositorio AppStream de Rocky Linux proporciona Unbound 1.16.

sudo dnf info unbound

Salida:

paquetes de información sin consolidar

Instala Unbound mediante el siguiente comando dnf. Cuando se te solicite, introduce y para confirmar y pulsa ENTER para continuar.

sudo dnf install unbound

Salida:

instalar sin vincular

Una vez instalado Unbound, inicia y activa el servicio ‘unbound’ mediante la utilidad de comandos systemctl que se indica a continuación. Esto iniciará Unbound en tu servidor Rocky Linux y permitirá que se ejecute automáticamente al iniciarse el sistema.

sudo systemctl start unbound
sudo systemctl enable unbound

Verifica el servicio Unbound utilizando el siguiente comando systemctl. La salida‘activo (en ejecución)’ confirma que el servicio Unbound se está ejecutando. Y la salida‘loaded ….; enabled;…’ confirma que el servicio Unbound está activado.

sudo systemctl status unbound

Resultado:

verificar sin consolidar

Tu Unbound ya está instalado y funcionando con el archivo de configuración por defecto‘/etc/unbound/unbound.conf’. A continuación, modificarás el archivo de configuración de Unbound‘/etc/unbound/unbound.conf’ y configurarás Unbound como un DNS autoritativo, validador y de caché recursivo, y también habilitarás Unbound como un resolver DNS con DoT habilitado.

Configurar Unbound

Por defecto, el archivo de configuración de Unbound se encuentra en ‘/etc/unbound/unbound.conf’. En este paso, modificarás el archivo de configuración «/etc/unbound/unbound.conf» y, a continuación, configurarás y optimizarás la instalación de Unbound.

Configurarás Unbound para que funcione como DNS autoritativo, validador y de caché recursivo. Además, también optimizarás la instalación de Unbound en cuanto a rendimiento, privacidad y seguridad. Y, por último, configurarás Unbound como resolver DNS para redes locales.

En primer lugar, ejecuta el siguiente comando wget para descargar el archivo DNS raíz en‘/etc/unbound/root.hints‘. A continuación, cambia la propiedad del archivo «/etc/unbound/root.hints» al usuario y grupo«unbound«.

wget https://www.internic.net/domain/named.root -O /etc/unbound/root.hints
sudo chown unbound:unbound /etc/unbound/root.hints

A continuación, haz una copia de seguridad del archivo de configuración predeterminado de Unbound en‘/etc/unbound/unbound.conf.orig‘ y modifica el archivo original ‘/etc/unbound/unbound.conf’ utilizando el siguiente comando del editor nano.

sudo cp -v /etc/unbound/unbound{.conf,.conf.orig}
sudo nano /etc/unbound/unbound.conf

Ahora vamos a empezar a configurar Unbound.

Configuración básica de Unbound

En primer lugar, configurarás qué dirección IP y qué puerto debe ejecutar el servicio Unbound. Después, también configurarás un paquete de certificados que se utilizará para autenticar las conexiones realizadas en sentido ascendente y añadirás los servidores DNS raíz mediante el parámetro ‘root-hints’.

Añade las siguientes líneas dentro de la sección‘servidor:‘. Con esta configuración, ejecutarás Unbound en una dirección IP local ‘192.168.5.25’ con el puerto UDP predeterminado’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

Parámetros detallados:

  • do-ip6: usa ‘yes’ para ejecutar Unbound con IPv6 o pon‘no‘ para desactivar IPv6.
  • interfaz: interfaz de red o dirección IP en la que se ejecutará Unbound. Puedes utilizar una dirección IP o el nombre de la interfaz, como «eth0». También puedes ejecutar en un puerto específico añadiendo un formato como este ‘DIRECCIÓN-IP@PUERTO’.
  • puerto: especifica el puerto en el que se ejecutará Unbound y por el que se gestionarán las conexiones de los clientes. El puerto DNS por defecto es el 53.
  • prefetch: establece«yes» para activar la prefetch de las entradas de la caché de mensajes casi caducadas.
  • tls-cert-bundle: Certificados utilizados para autenticar las conexiones realizadas en sentido ascendente. En la distribución basada en RHEL, el archivo cert se encuentra en ‘/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem’.
  • root-hints: un archivo que contiene detalles del servidor DNS raíz. Has descargado este archivo en ‘/etc/unbound/root.hints‘.

Habilitar la caché DNS

Ahora añade las siguientes líneas para habilitar la caché DNS recursiva a través de Unbound. Esto almacenará en caché las consultas DNS realizadas por los clientes en el servidor de Unbound en la cantidad de tiempo.

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

Parámetros detallados:

  • cache-max-ttl: TTL o Tiempo de Vida para los RRSets y mensajes en la caché DNS. El formato es en segundos.
  • cache-min-ttl: Tiempo de vida mínimo para la caché. El valor por defecto es 0, pero puedes cambiarlo a tu gusto, como por ejemplo«1200» segundos. No lo establezcas en más de 1 hora o tendrás problemas con los datos obsoletos.

Endurecimiento de Unbound

Algunos parámetros de privacidad y seguridad de Unbound están activados por defecto en la distribución basada en RHEL. Pero, también puedes añadir más parámetros como los de estas líneas.

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

Parámetros detallados:

  • hide-identidad: configurado como sí para desactivar las respuestas de las consultas bind sobre id.servidor o hostname.bind.
  • hide-version: establece sí para desactivar las consultas versión.servidor y versión.bind.
  • use-caps-for-id: establece sí para activar el uso de «0x20-encoded » en la consulta para frustrar los intentos de suplantación.

Definir listas privadas de direcciones y de control de acceso

A continuación, tendrás que definir la dirección privada y las ACL (Listas de Control de Acceso) para tus redes locales. Asegúrate de cambiar la subred local en las líneas de abajo con tu entorno de red actual.

    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

Parámetros detallados:

  • dirección-privada: define subredes de red privadas en tu infraestructura. Sólo los nombres«private-domain» y «local-data» pueden tener estas direcciones privadas.
  • access-control: define el control de acceso en el que se permite a los clientes hacer consultas (recursivas) al servidor de Unbound. El parámetro «allow» permitirá las recursivas, mientras que«allow_snoop» permitirá tanto las recursivas como las no recursivas.

Configurar el nombre de dominio local y los subdominios

Tras configurar las listas de direcciones privadas y de control de acceso, ahora crearás nombres de dominio locales mediante el parámetro ‘local-zone’ de Unbound. Esto es muy útil, especialmente si tienes varias aplicaciones autoalojadas en tu red local. Puedes definir fácilmente tu nombre de dominio o subdominios y apuntar a la dirección IP de destino específica.

En este ejemplo, establecerás un dominio local«estático»«garden.lan» y crearás varios subdominios mediante el parámetro«local-data«. Cada subdominio apuntará a una dirección IP concreta, y también crearás registros PTR mediante el parámetro «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"

Parámetros detallados:

  • local-zone: define aquí el dominio local.
  • local-data: define el registro A para los subdominios y qué dirección IP local se resolverá.
  • local-data-ptr: define el registro ptr para tus subdominios.

Optimización y ajustes en Unbound

A continuación, añade las siguientes líneas para optimizar tu instalación de Unbound. Puedes ajustar y retocar los parámetros siguientes en función de tu entorno actual.

    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

Parámetros detallados:

  • msg-cache-slabs: el número de losas a utilizar para la caché de mensajes. Ajústalo a 8 para optimizar Unbound para que utilice más memoria para la caché.
  • rrset-cache-slabs: número de losas a utilizar para la caché de RRset. Establécelo en 8 para optimizar Unbound para que utilice más memoria para la caché RRSet.
  • infra-cache-slabs: el número de losas a utilizar para la caché de Infraestructura. Establécelo en 8 para que Unbound utilice más memoria para la caché de Infraestructura.
  • key-cache-slabs: el número de losas a utilizar para la caché de claves. Establécelo en 8 para que Unbound utilice más memoria para la caché de claves.
  • rrset-cache-size: especifica la cantidad de memoria para la caché RRSet. Este ejemplo utiliza 256MB, siendo el valor por defecto de sólo 4MB.
  • msg-cache-size: especifica la cantidad de memoria para la caché de mensajes. Este ejemplo utiliza 128MB, siendo el valor por defecto de sólo 4MB.
  • so-rcvbuf: establece el tamaño del búfer para el puerto DNS 53/udp en 8MB.

Configurar Unbound como resolvedor DNS con DNS-sobre-TLS (DoT)

Por último, añade una nueva sección«forward-zone» para configurar Unbound como resolvedor DNS para tus redes locales. Este ejemplo utiliza servidores DNS Quad9 con DoT (DNS-over-TLS) activado como resolvedor DNS ascendente.

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

Parámetros detallados:

  • forward-zone: define la zona de reenvío para Unbound.
  • name: establece «.» para reenviar todas las consultas DNS.
  • forward-addr: utiliza un reenviador específico para reenviar todas las consultas DNS. Este ejemplo utiliza Quad9 DNS con DNS sobre TLS (DoT) activado.

Ahora guarda y sal del archivo‘/etc/unbound/unbound.conf ‘ cuando todo haya terminado.

A continuación, ejecuta el siguiente comando para verificar la configuración de Unbound y asegurarte de que la configuración es correcta y adecuada. Si lo consigues, deberías obtener el resultado«unbound-checkconf: no errors in /etc/unbound/unbound.conf«.

unbound-checkconf

configuración sin consolidar

Ahora reinicia el servicio Unbound mediante la utilidad de comandos systemctl que aparece a continuación y aplica los cambios.

sudo systemctl restart unbound

Con esto, ya has terminado la configuración de Unbound y ahora se ejecuta en la dirección IP«192.168.5.25» con el puerto UDP predeterminado«53«.

En los siguientes pasos, configurarás el cortafuegos para abrir el puerto DNS y configurarás el registro de Unbound mediante Rsyslog y Logrotate.

Configurar el cortafuegos

Así pues, el Unbound está funcionando en el puerto UDP 53 por defecto. Ahora debes abrir el puerto DNS 53/UDP en firewalld y permitir que los clientes accedan a tu servidor DNS de Unbound.

Ejecuta el siguiente comando firewall-cmd para añadir el nuevo servicio‘dns‘. A continuación, recarga el firewalld para aplicar los cambios. Cuando se apliquen correctamente, deberías obtener una salida como‘success’ en tu terminal.

sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload

A continuación, ejecuta el siguiente comando para verificar la lista de servicios habilitados en firewalld. Y deberías ver el servicio«dns» añadido al firewalld.

sudo firewall-cmd --list-all

Salida:

configurar firewalld

Configurar el registro no enlazado mediante Rsyslog y Logrotate

Tras configurar el firewalld, ahora configurarás un archivo de registro para Unbound mediante rsyslog y logrotate. El servicio rsyslog creará un archivo de registro específico para Unbound y el logrotate rotará el archivo de registro de Unbound en un tiempo determinado.

Crea un nuevo archivo de configuración‘/etc/rsyslog.d/unbound.conf‘ utilizando el siguiente comando del editor nano.

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

Añade las siguientes líneas al archivo. Con esto, el Rsyslog creará un nuevo archivo de registro ‘/var/log/unbound.log’ para el‘$nombredelprograma’ == ‘unbound‘.

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

Guarda y sal del archivo‘/etc/rsyslog.d/unbound.conf‘ cuando hayas terminado.

A continuación, crea un nuevo archivo de configuración de Logrottate‘/etc/logrotate.d/unbound‘ utilizando el siguiente comando del editor nano.

sudo nano /etc/logrotate.d/unbound

Añade las siguientes líneas al archivo. Esto creará una rotación de registro para el archivo de registro de Unbound‘/var/log/unbound.log‘ diariamente.

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

Guarda el archivo y sal del editor cuando hayas terminado.

Por último, ejecuta el siguiente comando systemctl para reiniciar los servicios Rsyslog y Logrotate y aplicar los cambios a tu sistema.

sudo systemctl restart rsyslog
sudo systemctl restart logrotate

Con esto, ya has terminado la instalación de Unbound. En el siguiente paso, aprenderás a configurar una máquina cliente local para que utilice Unbound como resolvedor DNS utilizando dos métodos, y a partir de ahí verificarás el servidor DNS de Unbound.

configurar log no enlazado mediante rsyslog y logrotate

Configurar el resolvedor DNS en el cliente

Para configurar el resolver DNS en máquinas cliente, puedes utilizar distintos métodos. En este paso, aprenderás a configurar los resolvedores DNS a través de NetworkManager y a través de systemd-resolved combinado con NetworkManager.

A través de NetworkManager

Si quieres configurar el resolvedor DNS a través de NetworkManager directamente, debes editar las configuraciones de tu interfaz de red, que se almacenan en el directorio‘/etc/NetworkManager/system-connections/’.

En este ejemplo, la conexión principal para la máquina cliente es‘eth0‘, por lo que la configuración en NetworkManager debe ser ‘/etc/NetworkManager/system-connections/eth0.nmconnection‘. Puedes tener otros nombres de interfaz, como eth1 y muchos más.

Abre el archivo de configuración de la interfaz de NetworkManager‘/etc/NetworkManager/system-connections/eth0.nmconnection‘ utilizando el siguiente comando del editor nano.

sudo nano /etc/NetworkManager/system-connections/eth0.nmconnection

Añade las siguientes líneas a la sección ‘[ipv4]‘. Además, asegúrate de cambiar la dirección IP en el parámetro‘dns‘ con tu Servidor DNS Unbound.

[ipv4]
...
dns=192.168.5.25
ignore-auto-dns=true

Guarda el archivo y sal de él cuando hayas terminado.

resolución dns mediante gestor de red

A continuación, ejecuta el siguiente comando systemctl para reiniciar el servicio NetworkManager y aplicar los cambios. A continuación, comprueba el archivo de configuración del resolver DNS ‘/etc/resolv.conf ‘ mediante el comando cat.

sudo systemctl restart NetworkManager
cat /etc/resolv.conf

Deberías obtener una salida que indique que la dirección IP‘192.168.5.25‘ está configurada como el resolver DNS por defecto para tu máquina cliente.

resolución dns mediante gestor de red

Mediante systemd-resolved y NetworkManager

Otra forma de configurar un resolvedor DNS es a través de systemd-resolved y NetworkManager. Con esto, puedes cambiar fácilmente el resolvedor DNS en todo el sistema y no depender de las interfaces de red de tu sistema.

En las distribuciones basadas en RHEL, systemd-resolved aún no está instalado. Puedes instalarlo fácilmente mediante el siguiente comando dnf. Cuando se te solicite, introduce y para confirmar y pulsa ENTER para continuar.

sudo dnf install systemd-resolved

Resultado:

instalar systemd-resuelto

Una vez instalado systemd-resolved, abre el archivo de configuración‘/etc/systemd/resolved.conf‘ utilizando el comando editor nano que se indica a continuación.

sudo nano /etc/systemd/resolved.conf

En la sección ‘[Resolver]’, descomenta el parámetro‘DNS‘ y añade la dirección IP de tu servidor DNS Unbound.

[Resolver]
DNS=192.168.5.25

Guarda el archivo y sal de él cuando hayas terminado.

A continuación, ejecuta el siguiente comando systemctl para iniciar y activar el servicio «systemd-resolved».

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

configurar systemd-resuelto

Ahora verifica el servicio «systemd-resolved» para asegurarte de que se está ejecutando. Deberías recibir una salida como ‘activo (en ejecución)‘, que confirma que el servicio se está ejecutando. Y la salida ‘ Loaded ../../systemd-resolved.service; enabled;..‘ confirma que el servicio está activado y se iniciará automáticamente al arrancar el sistema.

sudo systemctl status systemd-resolved

Resultado:

verificar sistema resuelto

Con systemd-resolved ejecutándose, a continuación modificarás el backend DNS para el servicio NetworkManager.

Abre el archivo de configuración de NetworkManager‘/etc/NetworkManager/NetworkManager.conf‘ utilizando el comando editor nano que aparece a continuación.

sudo nano /etc/NetworkManager/NetworkManager.conf

En la sección ‘[main]‘, añade el parámetro‘dns‘ con el valor‘systemd-resolved‘. Esto anulará el servidor DNS de tu NetworkManager para que utilice el servicio ‘systemd-resolved‘.

[main]
dns=systemd-resolved

Guarda el archivo y sal de él cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio NetworkManager y aplicar los cambios. El nuevo DNS resolver para NetworkManager está escrito en el archivo‘/run/NetworkManager/resolv.conf ‘.

sudo systemctl restart NetworkManager

Ejecuta el siguiente comando para eliminar el archivo por defecto ‘/etc/resolve.conf’. A continuación, crea un nuevo archivo symlink de‘/run/NetworkManager/resolv.conf ‘ a‘/etc/resolv.conf‘.

rm -f /etc/resolv.conf
ln -s /run/NetworkManager/resolv.conf /etc/resolv.conf

Con esto, tu máquina cliente está utilizando ahora systemd-resolved como el DNS resolver. Detrás del ‘systemd-resolved‘, estás utilizando el Servidor DNS Unbound.

A continuación se muestran los detalles del archivo ‘/etc/resolv.conf ‘ después de utilizar el systemd-resolved y NetworkManager.

cat /etc/resolv.conf

Resultado:

dns resolver mediante systemd-resolved

Verificación del Servidor DNS Unbound

Ejecuta el comando dig que aparece a continuación para asegurarte de que el DNS Unbound está funcionando como resolver DNS. El parámetro‘@192.168.5.25‘ garantiza que estás utilizando un servidor DNS Sin Encuadernar que se ejecuta en la dirección IP‘192.168.5.25‘.

dig @192.168.5.25

Si se ejecuta correctamente, recibirás una respuesta del servidor DNS raíz como la que se muestra a continuación. Además, observarás la bandera«ad» (datos auténticos) en la salida de la cabecera, lo que significa que la DNSSEC está activada.

verificar resolución dns no vinculada

A continuación, ejecuta el siguiente comando para asegurarte de que los clientes pueden acceder a los nombres de dominio en Internet.

dig google.com
dig fb.com

Si lo consigues, deberías recibir una salida con los detalles del registro DNS para el dominio«google.com» y«fb.com«. Puedes ver que el resolvedor DNS que responde a la consulta es‘127.0.0.53#53‘, que es el systemd-resolved que utiliza Unbound como resolvedor por defecto. También puedes ver el«Tiempo de consulta» para cada consulta, el«Tiempo de consulta» para el dominio«google.com» es«74 ms» y para«fb.com» es«154 ms«.

Resultado para google.com:

excavar google.com

Salida para fb.com:

cavar fb.com

Si vuelves a ejecutar el comando dig encima, elTiempo de consulta’ debería reducirse. Esto confirma que tus consultas se han almacenado en caché y que la caché DNS funciona.

dig google.com
dig fb.com

Salida:

excavar google.com después de la caché

cavar fb.com después de la caché

A continuación, verifica el dominio o subdominio local mediante el comando dig que aparece a continuación. Si tiene éxito, cada subdominio apuntará a la dirección IP correcta, tal y como se configuró en el archivo de configuración de Unbound‘/etc/unbound/unbound.conf‘.

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

Resultado:

verificar dominios locales

Ahora ejecuta el siguiente comando dig para asegurarte de que los registros PTR apuntan al nombre de dominio correcto.

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

Resultado:

verificar registros ptr

Por último, también puedes verificar DoT (DNS sobre TLS) mediante tcpdump. Instala el paquete«tcpdump» en tu servidor Unbound mediante el siguiente comando dnf.

sudo dnf install tcpdump

Introduce y cuando te lo pida y pulsa ENTER para continuar.

instalar tcpdump

Ahora ejecuta el siguiente comando tcpdump para supervisar el tráfico en la interfaz«eth0» con el puerto 853 de DoT. En este ejemplo, el DNS no unido se está ejecutando en la dirección IP«192.168.5.25» con la interfaz«eth0«.

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

Desplázate a la máquina cliente y ejecuta el siguiente comando para acceder a los nombres de dominio externos/internet mediante el comando dig que aparece a continuación.

dig twitter.com

Resultado:

verificar DNS sobre TLS

Después de esto, vuelve al servidor Unbound y ahora deberías obtener una salida similar a ésta en la salida de tcpdump.

verificar DNS-sobre-TLS tcpdump

Con esto, ya has instalado y configurado el Servidor DNS Local a través de Unbound. Además, has configurado un resolver DNS en clientes RHEL mediante systemd-resolved y NetworkManager.

Conclusión

En esta guía, has instalado el Servidor DNS Local de Unbound en un servidor Rocky Linux 9. Has activado la caché DNS, DNSSEC (activada por defecto), configurado la dirección privada y las ACL, añadido el dominio local mediante local-zone, y configurado Unbound como DNS resolver con DoT (DNS-over-TLS).

Además, has configurado la privacidad y seguridad básicas del DNS, has optimizado Unbound y has configurado los registros de Unbound mediante rsyslog y logrotate.

Al final de esta guía, también has aprendido a configurar un resolver DNS en distribuciones basadas en RHEL mediante NetworkManager y systemd-resolved. Y también has aprendido el uso básico del comando dig para comprobar el servidor DNS.

También te podría gustar...