GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar el solucionador de DNS no vinculado en Ubuntu 20.04

Unbound es un servidor de almacenamiento en caché de DNS gratuito, de código abierto, recursivo y de validación. Utiliza DNS sobre TLS y DNS sobre HTTPS para cifrar conexiones entre clientes. En comparación con Bind9, Unbound es liviano y extremadamente rápido. Un servidor de almacenamiento en caché lo ayudará a reducir el tiempo de carga del sitio web al mantener la base de datos de caché en un servidor Unbound. También es capaz de validación de DNSSEC y puede servir como ancla de confianza.

En esta publicación, le mostraremos cómo configurar Unbound DNS Resolver en Ubuntu 20.04.

Requisitos

  • Un nuevo servidor Ubuntu 20.04 en Atlantic.Net Cloud Platform
  • Una contraseña de root configurada en su servidor

Paso 1:crear el servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 20.04 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor Ubuntu 20.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

apt-get update -y

Paso 2:instalar las dependencias requeridas

Antes de comenzar, deberá instalar algunas herramientas básicas de DNS en su sistema. Puede instalarlos todos usando el siguiente comando:

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

Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.

Paso 3:instalar y configurar DNS independiente

apt-get install unbound -y

Después de instalar Unbound DNS, deberá configurarlo. De forma predeterminada, el archivo de configuración principal de Unbound se encuentra en /etc/unbound/unbound.conf. Sin embargo, se recomienda crear un archivo de configuración independiente:

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

Agregue las siguientes líneas:

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

Guarde y cierre el archivo, luego valide el archivo de configuración con el siguiente comando:

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

Deberías obtener el siguiente resultado:

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

A continuación, cree un archivo de registro para Unbound y establezca los permisos adecuados:

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

Paso 4:iniciar el servicio de DNS independiente

En este punto, Unbound DNS está instalado y configurado. Ahora, reinicie el servicio Unbound y habilítelo para que se inicie al reiniciar el sistema:

systemctl restart unbound
systemctl enable unbound

También puede verificar el estado de Unbound con el siguiente comando:

systemctl status unbound

Salida de muestra:

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

En este punto, el servicio Unbound se inicia y escucha en el puerto 53. Puede verificarlo con el siguiente comando:

ss -antpl | grep 53

Salida de muestra:

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

Paso 5:Probar el DNS independiente

Ahora, necesitará usar el comando dig y realizar algunas consultas de DNS para probar el servidor DNS sin vincular.

Usaremos ubuntu.com para las pruebas.

dig ubuntu.com @localhost

Salida de muestra:

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

Como puede ver, el tiempo de consulta es 307 mseg en la primera consulta. Su consulta ahora está almacenada en caché.

A continuación, ejecutemos la misma consulta de nuevo:

dig ubuntu.com @localhost

Salida de muestra:

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

Como puede ver, el tiempo de consulta es 0 mseg.

También puede probar el servidor DNS independiente desde la máquina cliente. En este caso, deberá especificar la IP de su servidor DNS sin vincular con la consulta:

dig ubuntu.com @69.87.221.220

Salida de muestra:

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

Paso 6:Solución de problemas de Unbound

Si desea verificar el estado del DNS sin vincular, ejecute el siguiente comando:

unbound-control status

Salida de muestra:

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

Si desea realizar una copia de seguridad de una caché de DNS en un archivo de texto, ejecute el siguiente comando:

unbound-control dump_cache > cache.txt

Puede verificar el archivo cache.txt con el siguiente comando:

cat cache.txt

Salida de muestra:

START_RRSET_CACHE
END_RRSET_CACHE
START_MSG_CACHE
END_MSG_CACHE
EOF

En algunos casos, su servidor DNS no puede responder a su consulta. En este caso, puede vaciar la caché de DNS con el siguiente comando:

unbound-control flush ubuntu.com

Conclusión

En la guía anterior, explicamos cómo instalar y usar un servidor de almacenamiento en caché de DNS sin límites en Ubuntu 20.04. También realizamos algunas pruebas con el comando dig para consultar el DNS no vinculado y obtener una respuesta. ¡Pruébalo en tu VPS de Atlantic.Net hoy!


Linux
  1. Cómo configurar el solucionador de DNS local usando Dnsmasq en Ubuntu 20.04

  2. Ubuntu - ¿Cómo configurar una IP estática en Ubuntu?

  3. Cómo instalar el sistema de resolución de DNS Unbound en Ubuntu 22.04

  4. Cómo configurar claves SSH en Ubuntu 18.04

  5. ¿Cómo configurar la resolución de DNS en Fedora usando el administrador de red?

Configurar un solucionador de DNS local en Ubuntu 18.04, 16.04 con BIND9

Configurar el solucionador de DNS local en Ubuntu 20.04 con BIND9

Configurar el solucionador de DNS independiente en el servidor Ubuntu 20.04

Cómo configurar servidores virtuales Apache en Ubuntu 18.04

Cómo borrar la caché de DNS en Ubuntu

Cómo vaciar la caché de DNS en Ubuntu