DNS sobre HTTPS (DoH): qué es, para qué sirve, y cómo configurarlo.

Por Víctor Aracil - abril 02, 2022


Con esta entrada, voy a cerrar el tema sobre la privacidad a través del protocolo DNS. Vendría a ser una segunda parte, que complementa a esta otra que escribí en su día. Donde explico cómo convertir tu Raspberry en un servidor DNS.

Con esto, tendremos una mejora importante en cuanto a nuestra privacidad al navegar por Intenet.

Y no, navegar desde una ventana en modo incógnito no te libra de perder tu privacidad. Esto solo evitará que se guarde tu historial y caché de navegación. Puede ser útil para no dejar rastro si se navega desde otro dispositivo.

¿QUÉ ES DNS OVER HTTPS (DoH)?

DoH es un protocolo que funciona como DNS. La diferencia radica, en que todo el tráfico para resolver las peticiones DNS estará cifrado, al usar los protocolos https y https/2; peticiones que se realizarán por el puerto 443, en lugar del 53.

Ojo👀: DoH solo cifra el tráfico DNS (peticiones de cambio de URL a IP), entre cliente y servidor.; y no el tráfico de datos de extremo a extremo. 

Ventajas.

  • Nadie, excepto la empresa que resuelve las peticiones DNS (en mi caso Cloudflare), conocerá las páginas que visitamos. Así que, nuestro ISP no podrá bloquearnos por DNS las webs que ellos consideren que no podemos acceder.
  • Más seguridad y privacidad, evitando ataques Man in the Middle, como DNS Spoofing.
  • Menor latencia y mayor velocidad en la carga de páginas web.
Ahora que ya sabemos un poco la teoría, lo siguiente será ponerlo en funcionamiento, configurando el servicio Pi-Hole que ya tendremos instalado.

Instalación del servicio Cloudflare en la Raspberry Pi

Descargamos el cliente de Cloudflare en la Raspberry, para que resuelva todas las peticiones DNS mediante el protocolo HTTPS:

wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz


Descomprimimos el zip:

tar -xvzf cloudflared-stable-linux-arm.tgz

Copiamos el binario en la ubicación correspondiente.

sudo cp ./cloudflared /usr/local/bin

Le damos permisos de ejecución.

sudo chmod +x /usr/local/bin/cloudflared

Una vez instalado, comprobamos la versión.

cloudflared -v






Creación de usuario 

Creamos el usuario cloudflare sin partición home ni acceso al Shell:

sudo useradd -s /usr/sbin/nologin -r -M cloudflared

Generamos el archivo de configuración (demonio):

sudo nano /etc/default/cloudflared

y pegamos las instrucciones en el editor:

CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query




Aquí hemos especificado que tenemos un proxy local 'escuchando' en el puerto 5053. Las peticiones DNS se dirigirán al puerto 5053, y se resolverán por los servidores DNS de Cloudflare ca través del protocolo DoH.

Guardamos los cambios y cerramos el archivo.

Para terminar, cambiamos el usuario y el grupo del archivo binario y de configuración:

sudo chown cloudflared:cloudflared /etc/default/cloudflared sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared


Creación del servicio Systemd

Creamos el servicio Systemd para gestionar Cloudflare:

sudo nano /lib/systemd/system/cloudflared.service

Pegamos el siguiente código:


[Unit]
Description=cloudflared DNS over HTTPS proxy
After=syslog.target network-online.target

[Service]
Type=simple
User=cloudflared
EnvironmentFile=/etc/default/cloudflared
ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target


Guardamos y cerramos el archivo. 

Ahora haremos que Cloudflare se inicie automáticamente cuando reiniciemos la máquina.

sudo systemctl enable cloudflared

Arrancamos el servicio y comprobamos que funciona:

sudo systemctl start cloudflared

sudo systemctl status cloudflared

Comprobamos que todo ha salido bien:

dig @127.0.0.1 -p 5053 google.com

Con un resultado similar, verificamos su correcto estado:



Editar la configuración de Pi-Hole para que use DNS over HTTPS

Accedemos a la interfaz web de Pi-Hole, y dentro de los ajustes de DNS, desmarcamos todos los DNS.
En Custom 1 (IPv4) pegamos 127.0.0.1#5053




Guardamos para que los cambios se hagan efectivos, y listo.

A partir de este momento todas las peticiones DNS estarán cifradas. Nadie, excepto Cloudflare, tendrá acceso al historial de navegación. Y según ellos lo eliminan en 24h.

Ni los gobiernos, ni los proveedores de servicios de internet (ISP) podrán ver el contenido que visitamos. Por eso, algunos países están haciendo lo posible para intentar hacer desaparecer este protocolo.


  • Comparte:

Puede que también te guste

0 Reviews

Vuelve arriba