AdGuard Home : serveur DNS pour bloquer les publicités et les traqueurs sur tout le réseau
(github.com/AdguardTeam)- AdGuard Home est un serveur DNS open source gratuit qui, une fois installé, s’applique à tous les appareils du réseau domestique et bloque les publicités ainsi que les traqueurs sans logiciel côté client
- Son fonctionnement consiste à rediriger les domaines de suivi vers un « black hole » via le DNS sinkholing, empêchant ainsi les appareils de se connecter à ces serveurs, et il partage une grande partie de son code avec les serveurs publics AdGuard DNS
- En l’exécutant sur son propre serveur, on peut choisir soi-même ce qui est bloqué ou autorisé, surveiller l’activité du réseau et ajouter des règles de filtrage personnalisées
- À l’image de Pi-Hole, il prend en charge le blocage des publicités et des traqueurs ainsi que la personnalisation des listes de blocage, mais AdGuard Home fournit en standard des fonctionnalités comme des upstream DNS chiffrés, l’exécution comme serveur DoH/DoT, le blocage des domaines de phishing et de malware, le contrôle parental et l’application forcée de Safe Search
- Le blocage au niveau DNS ne peut pas bloquer les publicités YouTube ou Twitch, ni les publications sponsorisées de Facebook, Twitter ou Instagram lorsque les publicités utilisent le même domaine que le contenu, et la future prise en charge d’un proxy de blocage de contenu ne résoudra pas tous les cas
Rôle d’AdGuard Home et fonctionnement
- AdGuard Home est un serveur DNS de blocage des publicités et des traqueurs à l’échelle de tout le réseau, présenté comme un centre de protection de la vie privée pour les utilisateurs et leurs appareils
- Une fois installé, il couvre tous les appareils du réseau domestique sans nécessiter l’installation d’un logiciel client distinct sur chaque appareil
- Il fonctionne comme serveur DNS et redirige les domaines de suivi vers un « black hole », ce qui empêche les appareils de se connecter à ces serveurs
- Il repose sur le logiciel utilisé pour le serveur public AdGuard DNS, et les deux produits partagent une grande partie de leur code
Installation et intégration
- Sous Linux, Unix, macOS, FreeBSD et OpenBSD, il est possible d’exécuter le script d’installation automatique avec
curl,wgetoufetch-c <channel>: utiliser le canal indiqué-r: réinstaller AdGuard Home-u: supprimer AdGuard Home-v: sortie détaillée-ret-une peuvent pas être utilisés simultanément
- L’installation manuelle et la configuration des appareils sont décrites dans la documentation Getting Started
- L’image Docker officielle est fournie sur Docker Hub
- Les utilisateurs Linux peuvent l’installer via le Snap Store
- En cas de besoin d’intégration, une REST API est disponible, ainsi qu’un client Python
- Ce client Python est utilisé pour créer l’add-on AdGuard Home Hass.io
Différences avec AdGuard DNS public
- Exploiter son propre serveur AdGuard Home offre davantage de contrôle que l’utilisation du serveur DNS public
- L’utilisateur peut choisir lui-même ce que le serveur bloque ou autorise
- Il est possible de surveiller l’activité du réseau
- Des règles de filtrage personnalisées peuvent être ajoutées
- Comme le serveur appartient à l’utilisateur, c’est lui qui en garde le contrôle
Comparaison avec Pi-Hole et les bloqueurs de publicités traditionnels
- AdGuard Home et Pi-Hole bloquent tous deux les publicités et les traqueurs via le DNS sinkholing, avec possibilité de personnaliser les cibles bloquées
- AdGuard Home vise à fournir de nombreuses fonctionnalités en standard, sans installation de logiciel supplémentaire ni configuration manuelle
- D’après le tableau comparatif du README, AdGuard Home propose les fonctionnalités suivantes
- blocage des publicités et des traqueurs
- personnalisation des listes de blocage
- serveur DHCP intégré
- HTTPS pour l’interface d’administration
- upstream DNS chiffrés DNS-over-HTTPS, DNS-over-TLS et DNSCrypt
- exécution multiplateforme
- exécution comme serveur DNS-over-HTTPS ou DNS-over-TLS
- blocage des domaines de phishing et de malware
- contrôle parental avec blocage des domaines pour adultes
- application forcée de Safe Search sur les moteurs de recherche
- paramètres par appareil
- paramètres d’accès pour choisir les utilisateurs d’AGH DNS
- exécution sans privilèges root
- Par rapport aux bloqueurs de publicités traditionnels, le DNS sinkholing permet de bloquer une grande part des publicités, mais reste moins flexible et moins puissant
- Les bloqueurs basés sur le DNS peuvent être utiles sur les Smart TV, enceintes connectées et appareils IoT où il n’est pas possible d’installer un bloqueur traditionnel, afin de bloquer les requêtes publicitaires, de suivi et d’analyse
Limites connues et orientations futures
- Un bloqueur au niveau DNS ne peut pas bloquer, par exemple :
- les publicités YouTube et Twitch
- les publications sponsorisées de Facebook, Twitter et Instagram
- Les publicités qui partagent le même domaine que le contenu ne peuvent pas être bloquées par un bloqueur au niveau DNS
- Le DNS seul ne peut pas traiter ce problème ; un proxy de blocage de contenu est nécessaire, comme dans l’application AdGuard autonome
- AdGuard Home prévoit d’ajouter à l’avenir la prise en charge d’une fonctionnalité de proxy de blocage de contenu
- Même dans ce cas, certains scénarios pourront rester insuffisamment couverts ou nécessiter une configuration complexe
Compilation des sources et développement
- Pour préparer l’environnement de développement, exécuter
make init - La compilation nécessite :
- Pour une compilation standard, cloner le dépôt puis exécuter
make - Le drapeau non standard
-jn’est actuellement pas pris en charge ;make -j 4ou une configurationMAKEFLAGScontenant-j 4risque de casser la compilation- si nécessaire, il est possible de forcer
make -j 1
- si nécessaire, il est possible de forcer
- La compilation croisée est possible pour les cibles OS/ARCH prises en charge par Go en définissant
GOOSetGOARCHlors de l’exécution demake - La préparation d’une build de release nécessite
snapcraftet utilisemake build-release CHANNEL='...' VERSION='...' - L’image Docker locale se construit avec
make build-docker, tandis que l’image officielle utilise Docker Buildx - Pour le débogage frontend, exécuter une build de développement en mode watch dans le répertoire
client, puis lancer le binaireAdGuardHomeavec le drapeau--local-frontendafin d’utiliser les fichiers du répertoire./build/au lieu des fichiers frontend intégrés - Les tests frontend E2E utilisent Playwright et se trouvent dans
tests/e2enpm run test:e2e: exécuter tous les tests en mode headlessnpm run test:e2e:interactive: tests interactifsnpm run test:e2e:debug: mode débogagenpm run test:e2e:codegen: générer du nouveau code de test- Playwright télécharge et installe ses propres binaires de navigateur, qui peuvent différer des navigateurs installés sur le système
Contribution, canaux instables et projets externes
- Les contributeurs peuvent forker le dépôt, apporter leurs modifications puis envoyer une pull request, en suivant les code guidelines
- Il n’est pas nécessaire de contribuer simultanément à l’UI et au backend ; idéalement, l’implémentation backend incluant paramètres, API et fonctionnalités arrive d’abord, puis l’UI peut être ajoutée plus tard dans une autre pull request
- Il existe deux canaux de versions instables
beta: version bêta relativement stable, généralement publiée toutes les deux semaines ou plus fréquemmentedge: dernière version de la branche de développement, avec de nouvelles mises à jour poussées chaque jour
- Les versions instables peuvent être installées via les canaux
betaetedgedu Snap Store, les tagsbetaetedgesur Docker Hub, le script d’installation automatique ou les builds autonomes du Wiki - Il existe des projets liés créés par des développeurs tiers et des fans, sans affiliation avec AdGuard
- AdGuard Home Remote : application iOS
- Python library
- Home Assistant add-on
- OpenWrt LUCI app
- AdGuardHome sync
- AdGuardian-Term : surveillance du trafic en temps réel et statistiques dans le terminal
- Chocolatey package
Vie privée et technologies utilisées
- L’idée centrale d’AdGuard Home est que l’utilisateur doit contrôler ses propres données
- AdGuard Home ne collecte pas de statistiques d’utilisation et n’utilise pas de services web sauf si l’utilisateur l’a configuré ainsi
- La privacy policy complète inclut en théorie tous les éléments qu’AdGuard Home pourrait envoyer
- Les principales technologies sous-jacentes appartiennent aux écosystèmes Go et Node.js
- Côté bibliothèques Go, il utilise
gcache,miekg's dns,go-yaml,service,dnsproxy,urlfilter - Côté Node.js, il utilise React.js, Tabler et plusieurs paquets Node.js
- Les données de
whotracks.mesont également utilisées
- Côté bibliothèques Go, il utilise
- AdGuard Home n’utilise plus CoreDNS, qui avait été mentionné auparavant
1 commentaires
Avis sur Hacker News
Après avoir fait tourner pendant des années sur mon réseau domestique le projet concurrent Pi-hole[0], j’ai découvert NextDNS[1]
Côté performances, j’y ai perdu l’avantage d’éviter que les requêtes sortent de chez moi, mais la portabilité qui permet à tous les appareils de l’utiliser à la maison comme à l’extérieur, ainsi que le temps économisé, ont largement compensé
Pi-hole fonctionnait bien à 90 %, mais quand ça tombait en panne, il fallait y consacrer du temps, et à 20 $ par an, il était difficile de rivaliser avec NextDNS en auto-hébergement
Ce n’est pas une promo pour NextDNS, et je pense que ce genre de projet doit absolument exister, mais NextDNS est vraiment un outil SaaS très simple avec un excellent rapport qualité-prix
0 - https://pi-hole.net/
1 - https://nextdns.io
99,9 % des corruptions de carte SD viennent d’un adaptateur d’alimentation sous-dimensionné, donc si vous ne voulez pas vous embêter à trouver une alimentation USB correcte de 2,5 à 3 A, achetez simplement l’adaptateur secteur officiel Raspberry Pi
Avec 20 $ par an, vous pouvez acheter chaque année un RPi Zero 2W de secours et une carte SD, et il vous restera encore de quoi vous offrir un sandwich de célébration chez Sheetz
La combinaison Pi-hole + WireGuard + achat unique d’un RPi Zero à 15 $ est difficile à battre
Mon instance a tourné pendant des années sans le moindre souci, et je suis passé à AdGuard Home il y a environ un an parce que je voulais l’exécuter sur une box OPNSense
J’ai configuré un VPN WireGuard automatique sur les appareils pour qu’ils se connectent au réseau domestique quand ils ne sont pas sur mon SSID, donc le DNS local fonctionne aussi à distance
Il faut donc penser à le désactiver pour se connecter au Wi‑Fi dans l’avion, etc., ce qui me fait hésiter à le recommander à des amis non techniciens
On dirait qu’il y a maintenant environ trois candidats
Si vous envisagez de payer 20 $ par an uniquement pour le chiffrement DNS et le blocage, ça peut valoir le coup de considérer aussi une montée en gamme vers Mullvad, qui offre en plus du blocage publicitaire DNS, de l’anonymat IP et du tunneling, entre autres
J’ai récemment regardé Pi-hole et j’ai finalement choisi AdGuard Home
À première vue, l’interface semblait meilleure et l’ensemble paraissait plus abouti, et pour un outil aussi soigné, il propose étonnamment beaucoup de personnalisation, comme le renvoi des requêtes de domaines privés locaux vers un DNS interne
Je ne sais pas vraiment pourquoi AdGuard fournit cela gratuitement, et il faudrait peut-être se pencher sur la question, mais pour l’instant cela m’a semblé être un choix relativement peu risqué
La disparition des pubs pénibles rend l’usage d’apps comme celle du NYTimes infiniment plus agréable, on ne le dira jamais assez
La fonction de DNS fractionné contient toutes les options imaginables
Je pensais qu’il me faudrait un deuxième serveur DNS derrière, mais j’ai pu mettre directement toutes les règles nécessaires dans AdGuard Home
Il prend aussi en charge les upstreams DoT et DoH, ce qui reste rare sur beaucoup de routeurs domestiques
Documentation : https://github.com/AdguardTeam/AdGuardHome/wiki/Configuratio...
Ils ont peut-être configuré leurs propres serveurs DNS comme upstream par défaut en espérant que beaucoup de gens garderont les valeurs par défaut
Le DNS est l’une des meilleures technologies pour le data mining et la vente de données, et à mon avis c’est aussi pour cela qu’il existe des serveurs DNS faciles à retenir comme 8.8.8.8 ou 1.1.1.1
Google et Cloudflare ne font probablement pas cela uniquement par pure bonté
Cela dit, AdGuard affirme ne pas vendre les données de ses clients
On lit la doc, on installe le produit, on le fait fonctionner correctement, puis on se vante auprès de ses amis qu’il n’y a plus de pubs agaçantes sur son réseau domestique
Alors les amis diront : « Installe-le-moi aussi »
On peut l’installer, mais pas assurer la maintenance, donc on finit par dire : « Sinon, pour éviter toute cette complexité, il existe une configuration simple basée sur une application qui fonctionne tout de suite pour toute la famille à 29 $ par an »
Et au cours de la soirée, cinq amis téléchargent le service et paient
J’ai l’impression que c’est aussi la philosophie de beaucoup de startups tech aujourd’hui : partir d’un produit open source et bâtir un business commercial par-dessus
AdGuard est une société russe avec des ingénieurs russes, beaucoup de développeurs et d’employés travaillent à Moscou, et l’entreprise est enregistrée à Chypre
Ce n’est pas une combinaison très rassurante, et je l’éviterais pour des raisons de sécurité
Si MacPaw considère les logiciels développés en Russie comme un risque, c’est parce que l’État peut à tout moment accéder aux données, mais ici on parle d’un logiciel open source auto-hébergé
Le FSB ne peut pas accéder à un serveur local sur simple ordonnance judiciaire arbitraire
Donc cela me semble moins être une inquiétude légitime qu’une forme de russophobie, et c’est d’autant plus déplacé que je sais directement à quel point les développeurs russes souffrent de la stupidité de leur propre gouvernement
py-hole pourrait aussi vous intéresser
Il se compose uniquement de scripts Python et d’une configuration dnsmasq, fonctionne sur OpenWrt, est gratuit et consomme quasiment 0 CPU
https://github.com/time4tea-net/py-hole
Un autre point appréciable d’AdGuard, c’est qu’il est proposé comme module complémentaire Home Assistant
Comme il s’intègre au reste de HA, on peut par exemple ajouter sur le tableau de bord un interrupteur pour activer ou désactiver le blocage
AdGuard Home est excellent
J’ai utilisé Pi-hole pendant un certain temps, mais il y avait assez souvent de petits problèmes
Rien de grave, mais ce genre d’outil n’est vraiment utile que lorsqu’il fonctionne, tout simplement
Sur ma configuration Pi, il tourne sans problème avec docker-compose[1], et j’utilise un super conteneur appelé adguardhome-sync[2] pour faire tourner un deuxième Pi en sauvegarde et synchroniser la configuration
Désormais, je ne vois plus de publicités sur le réseau, et c’est aussi assez intéressant de voir à quel point certains appareils envoient des requêtes de suivi/publicité
1 - https://thesmarthomejourney.com/2021/05/24/adguard-pihole-dn...
2 - https://thesmarthomejourney.com/2023/02/12/adguardhome-sync-...
Une quantité impressionnante d’appareils et d’apps essaient d’aller directement vers des serveurs DNS codés en dur pour le suivi et le ciblage publicitaire
Je ne sais pas si quelqu’un ici utilise Technitium DNS
C’est open source, gratuit, et ça fonctionne même sur un matériel très modeste
Je le fais tourner sur un Orange Pi 3 LTS
https://technitium.com/dns/
Il est écrit « Technitium DNS Server is an open source authoritative as well as recursive DNS server », et je me demande si Pi-hole ou AdGuard sont eux aussi des serveurs DNS récursifs ou simplement des bloqueurs
J’utilise Pi-hole depuis longtemps et j’essaie de comprendre ce que cela apporte comme avantage
C’est faisable gratuitement avec un peu de configuration
Je ne connaissais pas AdGuard, mais même si ça a l’air bien, je n’ai pas vraiment envie de l’essayer
Comme c’est basé sur .NET, c’est aussi multiplateforme
Il existe aussi une image Docker si c’est la voie que vous préférez
J’ai vu quelques avis globalement positifs sur NextDNS, mais je poste à part parce que j’envisage de quitter NextDNS
La raison, c’est que j’utilise actuellement Mac/Safari et que je voudrais activer la fonction « masquer l’adresse IP aux traqueurs », mais quand je l’active, les publicités sur les sites web que NextDNS bloquait normalement recommencent à s’afficher
Je dois donc laisser cette option désactivée et je ne peux pas profiter de la fonctionnalité d’Apple
Dans l’ensemble, les deux semblent incompatibles, et il y a aussi un problème signalé à ce sujet sur le site d’aide de NextDNS
https://help.nextdns.io/t/q6yq4xy/nextdns-stops-working-prop...
Je me demande si quelqu’un sait si c’est aussi un problème connu avec AdGuard ou Pi-hole
Quand le relais est activé, la connexion passe par un proxy et n’utilise pas le serveur DNS du réseau local
C’est pareil avec Pi-hole, NextDNS ou AdGuard
Je ne vois pas bien quel est l’objectif de ce second produit
On dirait qu’il y a sur HN un intervalle fixe au-delà duquel on ne peut pas tenir sans qu’un billet sur Pi-hole ou AdGuard Home apparaisse
Bien
Dans le même genre, si vous faites tourner pfSense sur votre réseau, pfBlockerNG vaut aussi le détour. Personnellement, je l’aime beaucoup : https://docs.netgate.com/pfsense/en/latest/packages/pfblocke...