¿Tu operadora te está impidiendo acceder a ciertas páginas que necesitas visitar? ¿Quieres ver el fútbol gratis pero solo con fines didácticos? ¿Tienes por ahí una Raspberry guardada a la que no sabes qué uso darle? Si es así, sácala porque esto se va a poner más caliente que la siderúrgica gay de los Simpsons.
El otro día, visitando la web de meneame.net, ví un artículo sobre, «LaLiga recibe la peor noticia. Cloudflare ha reactivado ECH a lo grande y eso hace las webs imbloqueables«, y claro, me puse triste por Laliga y me fuí a llorar a un ricón.
La vuelta de ECH (Encrypted Client Hello) es una muy mala noticia para las operadoras, administración y entidades de gestión de derechos, ya que hace inviable meter el hocico en el tráfico generado por los usuarios. A las operadoras les complica la gestión de los recursos de su red y al resto de entidades les deja sin posibilidad de hacer efectivas las órdenes de bloqueo, que en su mayoría están respaldadas por órganos judiciales.
DNS over HTTPS es una mejora importante en términos de privacidad ya que los gobiernos y/o ISP no podrán aplicar restricciones ni filtrar el contenido que visitan los ciudadanos. Por este motivo algunos gobiernos, como el británico, están haciendo todo lo posible para que no se adopte este protocolo.
A partir de aquí haz un minuto de silencio por tu operadora, entidad de gestión, gobierno corrupto de tu país (sea cual se al tuyo) etc etc
Pi-hole.
Obviamente tendremos que tener instalado y configurado Pi-hole en nuestra Raspberry Pi.
Para configurar Pi-Hole puedes seguir las instrucciones que encontrarás en el siguiente enlace: Que hacer déspues de instalar pi-hole
Instalar y configurar DNS OVER HTTPS en Raspberry.
Si activamos DNS OVER HTTPS en un navegador, como por ejemplo Firefox o Chrome, únicamente tendremos DNS over HTTPS en el navegador, pero si queremos disponer de DNS sobre HTTPS en la totalidad de nuestras peticiones, recomiendo instalar el cliente DNS de Cloudflare en una Raspberry Pi. De este modo la Raspberry Pi actuará como cliente DNS de la totalidad de equipos que configuremos en nuestra red local.
Instalar el demonio Cloudflared en la Raspberry Pi
Cloudflared será el encargado de resolver la totalidad de peticiones DNS sobre HTTPS. El cliente está disponible para Windows, MacOS y Linux. En nuestro caso, será Linux y lo instalaremos en una Raspberry Pi del siguiente modo.
Ve a la web de desarrolladores de Cloudflare y elige el tipo de paquete y arquitectura que vas a usar en la instalación. Cloudflare Docs
Si no tienes claro que paquete usar y la arquitectura de tu Raspberry Pi, te recomiendo añadir el repositorio e instalar desde ahí, así la instalación escogerá el paquete adecuado para tu equipo.
Instalación desde repositorio
Aquí te dejo las instrucciones para Debian 12 Bookworm.
Abre una terminal y ve ejecutando las siguientes líneas.
Nota: En el primer apartado (# Add cloudflare gpg key)
no veo necesario crear la carpeta keyrings
y aplicarle los permisos 0755 ya que la carpeta ya está creada en el sistema y tiene esos mismos permisos. Compruébalo antes y si es así, empieza por donde dice curl – …… (te resalto en negrita las líneas que he usado yo)
Debian Bookworm
# Add cloudflare gpg key
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
# Add this repo to your apt repositories
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared bookworm main' | sudo tee /etc/apt/sources.list.d/cloudflared.list
# install cloudflared
sudo apt-get update && sudo apt-get install cloudflared
Una vez que está instalado sin errores, comprueba la versión que tienes instalada.
cloudflared -v
En mi caso el resultado obtenido ha sido el siguiente:
cloudflared version 2024.9.1 (built 2024-09-10-1730 UTC)
Crear un usuario para Cloudflared
Crearemos un usuario con nombre cloudflared. El usuario no tendrá partición home ni tendrá acceso a la Shell de Linux. Para ello ejecutaremos el siguiente comando en la terminal:
sudo useradd -s /usr/sbin/nologin -r -M cloudflared
Configurar el demonio Cloudflared DNS
El siguiente paso consistirá en generar el archivo de configuración de Cloudflared. Para ello ejecutamos el siguiente comando en la terminal:
sudo nano /etc/default/cloudflared
Una vez se abra el editor de textos nano pegaremos el siguiente código:
# Commandline args for cloudflared
CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query
Seguidamente tendremos que guardar los cambios realizados y cerrar el fichero. En el fichero de configuración hemos definido que tendremos un proxy local escuchando en el puerto 5053. Todas las peticiones DNS se dirigirán al puerto 5053 y serán resueltas por los servidores DNS de Cloudflare mediante protocolo DNS over HTTPS.
Finalmente cambiaremos de usuario y grupo al archivo binario y al archivo de configuración de Cloudflared. Para ello ejecutaremos los siguientes comandos en la terminal:
sudo chown cloudflared:cloudflared /etc/default/cloudflared
sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared
Crear un servicio de Systemd para Cloudflare
Para gestionar el servicio Cloudflare deberemos crear un servicio de systemd. Para ello ejecutaremos el siguiente comando en la terminal:
sudo nano /lib/systemd/system/cloudflared.service
Cuando se abra el editor de texto nano pegaremos 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
A continuación guardaremos los cambios y cerraremos el fichero.
Seguidamente ejecutaremos el siguiente comando para que Cloudflare se inicie de forma automática cada vez reiniciemos la Raspberry Pi.
sudo systemctl enable cloudflared
Finalmente arrancaremos el servicio ejecutando el siguiente comando en la terminal:
sudo systemctl start cloudflared
Para comprobar que el servicio se haya levantado de forma correcta puedes ejecutar el siguiente comando:
sudo systemctl status cloudflared
Verificar que Cloudflare está funcionando correctamente
Para comprobar que Cloudflare funciona de forma adecuada ejecutaremos el siguiente comando en la terminal:
dig @127.0.0.1 -p 5053 google.com
Si obtienes un resultado parecido al siguiente, puedes estar seguro que todo lo realizado hasta el momento funciona correctamente.
Configurar Pi-Hole para que pueda usar DNS over HTTPS
Para que Pi-hole pueda utilizar el cliente DNS over HTTPS de Cloudflare deberemos realizar lo siguiente:
- Accedemos al panel de administración de Pi-hole.
- Clicamos en la Opción Settings.
- A continuación clicamos en la pestaña DNS.
- Destildamos absolutamente todos los DNS que tengamos activados.
- Tildamos el campo Custom 1 (IPv4) y en el mismo campo pegamos 127.0.0.1#5053
Finalmente presionamos en el botón SAVE para que se hagan efectivos los cambios.
CONCLUSIONES Y FUNCIONAMIENTO
Para ver si todo está correcto entra en esta página de cloudflare.
https://www.cloudflare.com/es-es/ssl/encrypted-sni/#results
Te llevará a la web de comprobación de resultados
Pincha sobre Comprobar mi navegador y el resultado tiene que dar como la siguiente imagen.
Los cuatro apartados DNS seguro, DNSSEC, TLS 1.3 y Secure SNI están marcados como favorables.
El funcionamiento de DNS over HTTPS supone una mejora importante en términos de seguridad ya que la totalidad de peticiones DNS están cifradas, por lo que nadie, excepto Cloudflare, tendrá acceso a tu historial de navegación. Y ahora dirás, -¡claro, es que Cloudflare si puede ver mis datos de navegación!- a lo que yo te responderé -¡claro y antes esto era el coño de la Bernarda, en el que cualquiera ( tu operadora, gobierno, entidades de gestión etc) si podían verlos!-
Cloudflare promete que no guardará ningún historial durante más de 24 horas y que no asociará la dirección IP a un origen. A pesar de esto, todo el mundo sabe que del dicho al hecho, hay un buen trecho. Fíjate en Telegram, que tampoco iba a ceder nuestros datos, y cuando a Pável Dúrov (El multimillonario que afirma no poseer propiedades de lujo, aviones o yates) pero que le gusta viajar más que a un tonto un lápiz, a visto que se quedaba en tierra ……………. ¡a cantado la traviata!
Misceláneas
Este documento se ha realizado a través de los siguientes articulos
Te recomiendo estos articulos
https://bandaancha.eu/articulos/laliga-recibe-peor-noticia-cloudflare-11098
https://bandaancha.eu/articulos/como-activar-ech-chrome-acceder-webs-10689