1 points par GN⁺ 2024-02-09 | 1 commentaires | Partager sur WhatsApp
  • 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, wget ou fetch
    • -c <channel> : utiliser le canal indiqué
    • -r : réinstaller AdGuard Home
    • -u : supprimer AdGuard Home
    • -v : sortie détaillée
    • -r et -u ne 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

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 :
    • Go v1.25 ou supérieur
    • Node.js v24.10.0 ou supérieur
    • npm v10.8 ou supérieur
  • Pour une compilation standard, cloner le dépôt puis exécuter make
  • Le drapeau non standard -j n’est actuellement pas pris en charge ; make -j 4 ou une configuration MAKEFLAGS contenant -j 4 risque de casser la compilation
    • si nécessaire, il est possible de forcer make -j 1
  • La compilation croisée est possible pour les cibles OS/ARCH prises en charge par Go en définissant GOOS et GOARCH lors de l’exécution de make
  • La préparation d’une build de release nécessite snapcraft et utilise make 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 binaire AdGuardHome avec le drapeau --local-frontend afin 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/e2e
    • npm run test:e2e : exécuter tous les tests en mode headless
    • npm run test:e2e:interactive : tests interactifs
    • npm run test:e2e:debug : mode débogage
    • npm 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équemment
    • edge : 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 beta et edge du Snap Store, les tags beta et edge sur 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

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.me sont également utilisées
  • AdGuard Home n’utilise plus CoreDNS, qui avait été mentionné auparavant

1 commentaires

 
GN⁺ 2024-02-09
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

    • Je ne sais pas quel problème aurait pu faire que Pi-hole soit indisponible 10 % du temps, mais ce genre d’exagération ressemble à de la promo
      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
    • Je serais curieux de savoir quels problèmes ont été rencontrés avec Pi-hole
      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
    • J’aime bien NextDNS, mais il a un problème assez important sur iPhone : quand il est activé, il ne gère pas les portails captifs
      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
    • De mon côté, Pi-hole a tellement bien tourné pendant si longtemps que j’en ai même oublié comment m’y connecter, mais je compte réévaluer les options quand je reconfigurerai bientôt mon réseau domestique
      On dirait qu’il y a maintenant environ trois candidats
    • Je n’ai pas testé NextDNS, j’ai utilisé Pi-hole, et je fais maintenant tourner AdGuard Home
      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

    • C’est vraiment excellent
      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...
    • La partie gratuite m’intriguait aussi
      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
    • Ils pourraient aussi élargir leur base d’utilisateurs puis, une fois un volume suffisant atteint, passer à un modèle sous licence
    • À mes yeux, la logique est la suivante
      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
    • Pi-hole prend aussi en charge le transfert conditionnel
  • 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é

    • C’est un logiciel open source
      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
    • Comme c’est open source, on peut le vérifier soi-même
    • Les MacBook aussi sont fabriqués en Chine
  • 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

    • C’est aussi possible avec NextDNS, je viens justement de le configurer
  • 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-...

    • Le vrai moment où ça ouvre les yeux, c’est quand on commence à rediriger les requêtes DNS 53 vers son propre serveur DNS et à bloquer DoT/DoQ/DoH
      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/

    • Ça a l’air bien
      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
    • On peut y ajouter des listes de blocage publicitaire, ce qui permet d’avoir un DNS robuste avec blocage des pubs, et d’éviter les problèmes DNS aléatoires qui font tourner YouTube en boucle
      C’est faisable gratuitement avec un peu de configuration
    • Je le fais tourner sur un Pi 4 et j’en suis content, car la configuration et l’utilisation sont simples
      Je ne connaissais pas AdGuard, mais même si ça a l’air bien, je n’ai pas vraiment envie de l’essayer
    • Je l’utilise depuis des années et j’en suis satisfait
      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
    • Je ne l’ai pas choisi parce qu’il est écrit en C#/.NET et relativement récent, je suis plutôt parti sur Unbound
  • 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

    • Si vous parlez d’iCloud Private Relay, c’est le comportement attendu avec un bloqueur de pub basé sur le DNS
      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
    • Vous utilisez un produit pour bloquer les pubs et les traqueurs, puis un autre produit pour contourner cela afin d’y accéder malgré tout, en les faisant passer par un tiers
      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

    • J’ai mis dans mon calendrier une tâche récurrente tous les six mois : HN : Pi-hole / AdGuard ? ;-)
  • 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...