Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

Usar DNS over HTTPS con Cloudflared en Raspbian

Solospam

Hace algún tiempo he logrado instalar entre otras aplicaciones el Pi-hole en mi Raspberry Pi 4.

Después de ver y analizar diferentes bondades, me quedé con la posibilidad de configurar DNS Over HTTPS directamente en la raspi y que se integrara de forma natural con Pi-hole.

Por algún motivo el DoH se escapa a mis capacidades, ya que siguiendo el manual oficicial no soy capaz que el sistema funcione

imagen.webp

Mi versión de Cloudflared es:

imagen.webp

sudo nano /etc/default/cloudflared

# Commandline args for cloudflared, using Cloudflare DNS
CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query`

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

[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

sudo nano /etc/cloudflared/config.yml

proxy-dns: true
proxy-dns-port: 5053
proxy-dns-upstream:
  - https://1.1.1.1/dns-query
  - https://1.0.0.1/dns-query
  #Uncomment following if you want to also want to use IPv6 for  external DOH lookups
  #- https://[2606:4700:4700::1111]/dns-query
  #- https://[2606:4700:4700::1001]/dns-query

sudo systemctl status cloudflared

pi@:/ $ sudo systemctl status cloudflared
● cloudflared.service - Argo Tunnel
   Loaded: loaded (/etc/systemd/system/cloudflared.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-12-30 00:09:37 CET; 21min ago
 Main PID: 3695 (cloudflared)
    Tasks: 9 (limit: 4915)
   CGroup: /system.slice/cloudflared.service
           └─3695 /usr/local/bin/cloudflared proxy-dns --port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query

Dec 30 00:09:37  systemd[1]: Started cloudflared DNS over HTTPS proxy.
Dec 30 00:09:37  cloudflared[3695]: INFO[2020-12-30T00:09:37+01:00] Adding DNS upstream - url: https://1.1.1.1/dns-query
Dec 30 00:09:37  cloudflared[3695]: INFO[2020-12-30T00:09:37+01:00] Adding DNS upstream - url: https://1.0.0.1/dns-query
Dec 30 00:09:37  cloudflared[3695]: INFO[2020-12-30T00:09:37+01:00] Starting DNS over HTTPS proxy server on: dns://localhost:5053
Dec 30 00:09:37  cloudflared[3695]: INFO[2020-12-30T00:09:37+01:00] Starting metrics server on 127.0.0.1:44915/metrics
Dec 30 00:10:39  systemd[1]: cloudflared.service: Current command vanished from the unit file, execution of the command list won't be resumed.
pi@:/ $

¿Alguien puede decirme donde tengo el error? ¿por qué el sistema no funciona?

En el Pi-hole tengo las DNS apuntando a 127.0.0.1

imagen.webp
vukits

EDIT: pues sí, me he equivocado

Nos ha jod*do…

Que yo sepa, este sistema es justamente para evitar resoluciones manipuladas. Esto se soluciona poniendo una entidad emisora de certificados propia, e instalando el certificado raiz en las máquinas cliente o algo así.

Corregidme si me equivoco

Josh escribió un par de articulos sobre el tema

BocaDePez
BocaDePez
2

Para que aparezca que estas usando DoH en 1.1.1.1/help tienes que desactivar la opción "Use DNSSEC" en Pi-hole. El funcionamiento de DoH es el mismo con la opción activada o desactivada pero para que aparezca en esa web tiene que estar desactivada.

🗨️ 2
Solospam

Efectivamente ya está solucionado

imagen.webp

Gracias!

Ahora analizando el tráfico del mikrotik veo que tengo un pupurri de DNS tanto al puerto 53 como al 443

imagen.webp

Entiendo que el puerto 443 es el cifrado que nos interesa, mientras que el 53 debería no existir, me equivoco¿?

La ip 172.16.1.70 corresponde a la raspberry

🗨️ 1
BocaDePez
BocaDePez

Tiene que haber trafico en el puerto 53 hacia la Raspberry Pi y trafico en el puerto 443 hacia internet.

El tráfico entre los dispositivos y la Raspberry Pi esta sin encriptar por lo que utiliza el puerto 53 de DNS y el tráfico entre la Raspberry Pi y en este caso Cloudflare si está encriptado por lo que utiliza en puerto 443 de HTTPS.

pepejil

Si no te funciona bien "cloudflared", yo tengo una RPI con DoH a Cloudflare usando DNScrypt-proxy.

Las peticiones hacia la RPI se harán por el 53, pero hacia Internet ya se hacen por 443. Comprueba que hacia la WAN no hay absolutamente ninguna petición a un servidor remoto en puerto 53.

BocaDePez
BocaDePez

El problema Segmentation fault para Raspberry Pi A, Zero, Zero W , Raspberry Pi Model B… Se soluciona de la siguiente forma:

Descargas la versión que mas te guste desde hobin.ca/cloudflared y copias el archivo cloudfared_xxxx.arm.tar.gz en el directorio /home/pi o donde tengas el archivo anterior

tar -xvzf cloudflared_xxxxxxx_arm.tar.gz

sudo cp ./cloudflared /usr/local/bin

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

cloudflared -v

ahora ya no te debe aparecer el error de Segmentation fault y en su lugar de aparecer

● cloudflared.service - Argo Tunnel

Loaded: loaded (/etc/systemd/system/cloudflared.service; enabled; vendor preset: enabled)

Active: active (running) since Fri 2021-04-30 01:42:15

Main PID: 8727 (cloudflared)

Tasks: 8 (limit: 877)

CGroup: /system.slice/cloudflared.service

└─8727 /usr/local/bin/cloudflared proxy-DNS –port 5053 –upstream https://1.1.1.1/DNS-query –upstream https://1.0.0.1/DNS-query

Ojala les funcione.