Table des matières

PiHole

Tester combien de trackers sont bloqués : https://d3ward.github.io/toolz/adblock

Mettre à jour PiHole

pihole -up

Pas besoin d'être root.

Faire du DNS-over-HTTPS

Avec son serveur DNS-over-HTTPS

Cloudflared

Sources:

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64
mv cloudflared-linux-arm64 /usr/local/bin/cloudflared
chmod +x /usr/local/bin/cloudflared
useradd -s /usr/sbin/nologin -r -M cloudflared

Créer le fichier /etc/cloudflared pour configurer cloudflared :

/etc/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

Donner les droits sur ce fichier à l'utilisateur cloudflared :

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

Créer un service pour démarrer Cloudflared :

/etc/systemd/system/cloudflared.service
[Unit]
Description=cloudflare DNS over HTTPS
After=syslog.target network-online.target
 
[Service]
Type=simple
User=cloudflared
EnvironmentFile=/etc/cloudflared
ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS
Restart=on-failure
RestartSec=10
KillMode=process
 
[Install]
WantedBy=multi-user.target

Activer ce service :

systemctl enable cloudflared
systemctl start cloudflared
systemctl status cloudflared

Tester :

dig @127.0.0.1 -p 5053 ph-sw.fr

Dans la configuration de PiHole, indiquer comme résolveur DNS Custom 1: 127.0.0.1#5053.

Il est possible de vérifier que DNS over HTTPS est bien utilisé en allant sur ce site: https://1.1.1.1/help.

Faire du DNS-over-TLS

Principe : c'est PiHole qui reçoit les requêtes DNS, il les fait suivre en clair à un serveur Unbound local, qui lui les fait suivre en DoT à un autre serveur.

apt install unbound

Configuration dans /etc/unbound/unbound.conf :

include-toplevel: "/etc/unbound/unbound.conf.d/*.conf"

server:
    port: 5053
    prefer-ip4: no
    do-ip4: yes
    do-ip6: no
    access-control: 127.0.0.0/8 allow
    access-control: 192.168.1.0/24 allow
    hide-identity: yes
    hide-version: yes
    prefetch: yes
    tls-cert-bundle: "/etc/ssl/certs/ca-certificates.crt"

forward-zone:
    name: "."
    forward-tls-upstream: yes
    forward-addr: 45.67.81.23@853#dns.aquilenet.fr
    # forward-addr: 1.1.1.1@853#one.one.one.one

Tester :

dig google.fr @127.0.0.1 -p 5053

Configurer PiHole pour utiliser Unbound comme serveur DNS 127.0.0.1#5053.

Pour vérifier que les requêtes DNS partent bien en DoT :

apt install tcpdump
tcpdump "tcp port 853"

et lancer :

dig perdu.com @192.168.1.53

Déplacer une installation PiHole

  1. Installer une version neuve de PiHole
  2. Utiliser la fonctionnalité Teleporter pour exporter la configuration de l'ancienne installation et l'importer dans la nouvelle. Tous les paramètres (serveur DNS utilisé, par exemple) ne sont pas mis à jour.
  3. Il est aussi possible de récupérer l'historique des requêtes (pour les statistiques, par exemple) en copiant /etc/pihole/pihole-FTL.db.

Synchroniser des instances PiHole