Cette étape est optionnelle au sens strict — Unbound seul est déjà un résolveur privé — et pourtant presque tout le monde la veut. AdGuard Home vous donne des listes de blocage, des politiques par client, un journal de requêtes lisible pendant que vous déboguez, et, chose la plus utile, des écouteurs DNS-over-TLS et DNS-over-HTTPS natifs pour que les téléphones et les navigateurs puissent parler à votre résolveur depuis des réseaux où un VPN n'est pas pratique.
L'agencement est une chaîne, et bien régler les ports est toute l'astuce : AdGuard Home possède le 53 et fait face aux clients, Unbound se trouve sur 127.0.0.1:5335 et fait face à internet. Rien d'autre sur la machine n'écoute sur le 53.
curl -fsSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
# Web interface: http://<vps>:3000 — reach it over the SSH tunnel below,
# never by opening 3000 to the internet.
ssh -N -L 3000:127.0.0.1:3000 root@<vps>
Faites l'assistant de première exécution via ce tunnel. Réglez l'écouteur d'administration sur 127.0.0.1 ou sur l'adresse du tunnel, jamais sur 0.0.0.0, et donnez-lui un mot de passe long — cette interface peut réécrire chaque nom que votre réseau résout, ce qui la rend aussi sensible que le résolveur lui-même.
Puis réglez exactement un upstream : dans Paramètres → Paramètres DNS, videz la liste par défaut et entrez votre instance Unbound. Une ligne, rien d'autre. S'il reste un résolveur public dans cette case, tout ce qui a été fait à l'étape 01 est annulé.
127.0.0.1:5335
Laissez « Parallel requests » désactivé — avec un seul upstream, ça ne fait que dupliquer le trafic — et désactivez « Use private reverse DNS resolvers » à moins que vous ne fassiez tourner une véritable zone interne. Réglez les serveurs bootstrap sur quelque chose en qui vous avez confiance ; ils ne servent qu'à résoudre les noms d'hôte des serveurs upstream, et avec un upstream en IP brute, ils ne seront jamais consultés du tout.
Listes de blocage : commencez petit. L'instinct, c'est d'activer tout sur la page des listes et de profiter du compteur. Résistez-y. Chaque liste est un ensemble de choix de jugement faits par quelqu'un d'autre sur ce que vos appareils sont autorisés à atteindre, et les pannes sont discrètes et déroutantes — une page à moitié chargée, un bouton qui ne fait rien, une appli bancaire qui refuse de s'ouvrir. Commencez avec le filtre DNS par défaut d'AdGuard, ou avec un agrégat unique et bien maintenu comme OISD, vivez avec pendant quinze jours, et ajoutez-en seulement ensuite. Gardez une liste d'autorisation et utilisez-la sans culpabilité.
Le journal des requêtes est la partie gênante
Vous venez de construire une machine dont le but est d'empêcher quelqu'un d'autre de tenir la liste de chaque nom que résolvent vos appareils — et la première chose que fait AdGuard Home, c'est de tenir exactement cette liste, activée par défaut, pendant quatre-vingt-dix jours. C'est réellement utile pendant que vous réglez les listes de blocage, et c'est le fichier le plus sensible du serveur. Décidez délibérément : 24 heures suffisent pour répondre à « qu'est-ce que cet appareil vient de demander ? », zéro est le réglage honnête une fois le réglage terminé, et quatre-vingt-dix jours est une décision que personne ne devrait prendre en laissant un défaut tel quel. Paramètres → Général → Journal des requêtes, et réglez aussi la rétention des statistiques pendant que vous y êtes.
Pointez le pare-feu vers le nouvel agencement — AdGuard Home possède désormais le port 53 sur l'interface du tunnel, et Unbound n'est joignable que sur loopback. Rien ne change du côté de l'interface publique : elle n'a toujours aucun DNS dessus.