Bloquer les pubs grâce aux DNS : AdGuard une très bonne alternative à Pi-Hole

Publié par Tpeltier le

Depuis quelques années j’utilise Pi-Hole ( cf installation pi-hole ) sur mon réseau local afin de bloquer au maximum les pubs sur mes différents appareils.

Pi-Hole va assurer le rôle de serveur DNS grâce à Dnsmasq et des fichiers texte contenant des domaines bloqués pointant vers 0.0.0.0 (une adresse non routable). En sorte c’est un bon vieux DNS menteur. Plutôt que d’utiliser votre box/routeur comme DNS il faudra que toutes vos machines pointent vers Pi-Hole pour la résolution IP.
Cela permet même de bloquer les publicités là où c’est normalement pas possible (console de jeu, camera IP connectée au cloud, etc).

Il existe maintenant d’autres alternatives et en particulier AdGuard Home qui remplit les mêmes fonctions, voir un peu plus comme le montre ce tableau comparatif :

AdGuard vs PiHole

Les OS actuellement supportés sont les suivants :

Installation

Dans mon cas, comme pour Pi-hole, j’utilise un ancien raspberry qui fait très bien l’affaire. les prérequis avant de commencer son installation :

Raspberry PI 3
  • Raspbian installé sur votre Raspberry Pi          ( Installation sur SSD )
  • Avoir son Raspberry connecté au réseau local
  • Avoir une IP fixe sur le Raspberry
  • Connaître l’IP de sa box

    L’installation est simplissime ! Il suffit de se connecter sur son Raspberry, de créer un répertoire où l’on souhaite installer AdGuard et de lancer la commande :


    # curl -sSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh

    AdGuardHome s’installe dans le répertoire /opt/AdGuardHome

    Et c’est tout ! Il suffit ensuite de se rendre sur l’URL : http://ip_de_son_raspberry:3000 pour terminer l’installation en renseignant les ports que l’on souhaite utiliser ( un autre port par défaut si on ne souhaite pas le port 80 pour l’interface web d’administration ) et donnant un login/password.

    Adguard configuration

    Adguard configuration

    Ce port 3000 ne sert qu’une seul fois pour finaliser l’installation. On accède ensuite à l’interface web par l’ip du raspberry : http://ip_de_son_raspberry

    Ce qui donne une interface moderne :

    adguard_web

    Reste à configurer vos appareils pour qu’il puisse utiliser AdGuard en tant que serveur DNS sinon l’intérêt est plus que limité 😆 .

    Configuration sur le réseau

    Pour cela plusieurs méthodes en fonction de la configuration de votre réseau.

    Pour ma part toutes les adresses IP de mon réseau sont données par le serveur DHCP de Pi-Hole et si j’ai besoin d’adresse fixe je configure ce même DHCP pour une réservation d’adresse avec l’adresse MAC. Donc la configuration DNS de mes appareils est fournie par la configuration DHCP de mon serveur. J’ai donc arrêté Pi-Hole et démarré le serveur DHCP de AdGuard et hop ! le tour est joué ! Tous mes appareils ( PC, NAS, Tablette, smartphone, etc … )  feront des requêtes DNS sur AdGuard 😎

    Le principe est le même dans le cas d’une box ( Livebox, Freebox, etc … ). Il faut se rendre sur la configuration du serveur DHCP et remplacer le serveur DNS par l’adresse du serveur AdGuard.

    Utilisation de AdGuard Home

    Les principales commandes sont les suivantes :

    • AdGuardHome -s uninstall – désinstallation de AdGuard Home service.
    • AdGuardHome -s start – démarrer le service.
    • AdGuardHome -s stop – arrêter le service.
    • AdGuardHome -s restart – redémarre le service.
    • AdGuardHome -s status – afficher le status du service.

    Ne pas oublier de lancer AdGuard au démarrage de la machine en utilisant systemctl :

    # systemctl enable AdGuardHome.service
    # systemctl start AdGuardHome.service

    Remarque !

    Attention pour ceux qui ont des Livebox !! On ne peut pas désactiver le serveur DHCP de la Livebox car dans ce cas le décodeur TV orange ne fonctionne plus !! Il a besoin des DNS de la Livebox !

    Pour cela il existe une méthode de contournement :

    • Restreindre le serveur DHCP De la Livebox,
    • Empêcher l’accès du Décodeur TV au serveur DHCP d’Adguard Home,
    • Activer le serveur DHCP d’Adguard Home,
    • Rendre les règles iptable persistantes sous Raspbian avec iptable-persistent.


    Restreindre le serveur DHCP De la Livebox

    Avec seulement le Raspberry sur lequel est installé Adguard Home et votre décodeur TV branchés sur le réseau, allez dans le menu de configuration approprié (Options – réseau), dans les Paramètres du serveur DHCP de la Livebox, laissez « Activé le serveur DHCP » coché et entrez les paramètres suivants :

    Addresse IP de votre Livebox : 192.168.1.1
    Masque de sous-réseau du LAN : 255.255.255.0
    Adresse IP de début : 192.168.1.2
    Adresse IP de fin : 192.168.1.3

    Ensuite, dans les Baux statiques, ajoutez les deux équipements : Adguard Home et le décodeur TV Orange. En donnant l’adresse IP 192.168.1.2 pour le décodeur et 192.168.1.3 pour AdGuard Home. On sauvegarde et on redémarre le décodeur TV pour vérifier que tout est ok.

    Vous avez maintenant terminé avec la partie configuration de la Livebox.

    Empêcher l’accès du Décodeur TV au serveur DHCP d’Adguard Home

    Pour être sûr que le décodeur ne chercher pas à s’enregistrer auprès du serveur DHCP de AdGuard Home, on ajoute une règle sur le firewall du Raspberry. Depuis un terminal, on se connecte en ssh au Raspberry et on utilise l’outil iptables pour bloquer l’adresse MAC du décodeur.

    $ sudo iptables -I INPUT -m mac –mac-source xx :xx :xx :xx :xx :xx -j DROP

     Rendre les règles iptable persistantes sous Raspbian avec iptable-persistent

    Le problème avec iptable c’est que la règle entrée pour bloquer l’accès du décodeur TV au serveur DHCP de la Livebox est « volatile ». Si le Raspberry qui héberge Adguard Home redémarre, la règle disparait et la TV Orange ne fonctionne plus.

     Nous allons donc utiliser le package permettant d’automatiser le chargement des règles iptables au démarrage : iptables-persistent.

    Installation de iptables-persistent :       # apt install iptables-persistent

     A l’installation il vous sera demandé si vous souhaitez sauvegarder les règles de firewal actuellement en place, répondre oui.

    Ce paquet vous a créé plusieurs fichiers dont

    –           /etc/iptables/rules.v4 : Le fichier qui sera lu par le script de démarrage pour charger vos règles IPV4.

    –           /etc/iptables/rules.v6 : Le fichier qui sera lu par le script de démarrage pour charger vos règles IPV6.

    Ensuite, après chaque modification des règles iptables, il suffit d’utiliser iptables-save et rediriger la sortie de la commande vers ces fichiers

    Sauvegarder des règles :

    1          # iptables-save > /etc/iptables/rules.v4

    2          # iptables-save > /etc/iptables/rules.v6

    Dans cette configuration le système est fonctionnel.


    2 commentaires

    CEDRICNo Gravatar · 4 octobre 2022 à 7 h 31 min

    Bonjour.
    Je trouve votre tuto très intéressant.
    Juste une petite question, je suis sur Livebox mais je n’ai pas de décodeur (car j’ai opté pour un firestick d’Amazon qui fait aussi bien le taf, sans payer les 5€ par mois).
    Dans ce cas, est-ce que je peux sans crainte désactiver le DHCP de ma Livebox ?
    Merci pour le retour.

    TpeltierNo Gravatar · 4 octobre 2022 à 8 h 29 min

    Bonjour, oui sans problème.
    Laissez le DHCP sur la box ne concerne que le cas du décodeur TV. Sans sa présence autant qu’Adguard gère toute la partie attribution d’adresse IP.

    Laisser un commentaire

    Emplacement de l’avatar

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.