Out of the box kann Pi-hole bisher kein DoH, aber ein Docker Container eilt zur Hilfe: crazymax/cloudflared
Diesen kann man zusammen mit Pi-Hole starten und via TUNNEL_DNS_UPSTREAM einen oder mehrere DoH Server mitgeben. Pi-Hole bekommt dann den Container als DNS Server und nutzt dann (in-) direkt DoH.
version: "2.1" services: pihole: container_name: pihole image: pihole/pihole:latest ports: - "53:53/tcp" - "53:53/udp" - "8000:80/tcp" - "8443:443/tcp" environment: TZ: Europe/Berlin WEBPASSWORD: zaewooQu0kaequaZ DNS1: 192.168.1.130#5053 DNS2: 192.168.1.105#5053 ServerIP: 192.168.1.105 VIRTUAL_HOST: pihole.fritz.box volumes: - './etc-pihole/:/etc/pihole/' - './etc-dnsmasq.d/:/etc/dnsmasq.d/' dns: - 127.0.0.1 - 46.182.19.48 restart: unless-stopped networks: - pihole_net depends_on: - cloudflared cloudflared: image: crazymax/cloudflared:latest container_name: cloudflared ports: - "5053:5053/udp" - "49312:49312/tcp" environment: TZ: "Europe/Berlin" TUNNEL_DNS_UPSTREAM: "https://anycast.uncensoreddns.org/dns-query,https://unicast.uncensoreddns.org/dns-query,https://dns.digitale-gesellschaft.ch/dns-query,https://dot.ffmuc.net/dns-query" TUNNEL_DNS_PORT: 5053 restart: unless-stopped networks: - pihole_net networks: pihole_net: enable_ipv6: true driver: bridge driver_opts: com.docker.network.enable_ipv6: "true" ipam: driver: default config: - subnet: fc00::/64
Bei mir sind das dann 192.168.1.130#5053 und 192.168.1.105#5053. Redundanz muss sein. 😉 Und via Port 49312 gibt es noch ein paar Metriken im Prometheus Format.
DoT (DNS over TLS) wäre auch eine Alternative, habe ich bisher aber nicht ausprobiert. Vielleicht bekommt Pi-hole ja auch irgendwann einmal native DoH oder DoT Unterstützung, dann sind Bastellösungen wie diese überflüssig.
Abschließend: Braucht man das wirklich? Nein, kann man aber.
Kleines Update vom 04.02.2021: IPv6 Konfiguration hinzugefügt, damit Pi-Hole als auch Cloudflared via IPv6 erreichbar sind im LAN.
Schreibe den ersten Kommentar