Aller au contenu
InstagramYouTubeFacebook

Tutorial

Bloquer les pubs sur MikroTik avec AdList

Bloquez les publicités au niveau DNS sur les routeurs MikroTik avec la fonction AdList native de RouterOS v7.15+ — sans Pi-hole ni matériel extra.

Résumé MikroTik AdList (RouterOS v7.15+) bloque les publicités au niveau DNS pour tous les appareils du LAN, sans Pi-hole ni matériel supplémentaire. Ce guide couvre les prérequis, la configuration de blocklists publiques et personnalisées, les tests, la mise en liste blanche et les limites à anticiper (les pubs in-app et les pubs vidéo YouTube restent hors de portée d’un filtrage DNS).

Pourquoi AdList plutôt que Pi-hole ?

AdList est le bloqueur de publicités basé sur le DNS intégré à MikroTik. Contrairement à un conteneur Pi-hole, AdList tourne nativement dans RouterOS et n’exige ni machine séparée, ni runtime de conteneur, ni reconfiguration DNS. Une fois activé, il filtre les requêtes vers les serveurs publicitaires connus (enregistrements A et AAAA) en renvoyant 0.0.0.0 au lieu de l’IP réelle. Chaque téléphone, TV, console et objet IoT du LAN hérite automatiquement du blocage tant qu’il utilise le MikroTik comme DNS.

Comparé au déploiement d’un Pi-hole, AdList gagne sur trois plans opérationnels : la configuration tient dans un seul panneau de IP → DNS au lieu de provisionner un hôte séparé ; les mises à jour suivent celles de RouterOS plutôt qu’un cycle apt parallèle ; et il y a un point de défaillance unique en moins sur le réseau. Le compromis se joue sur la RAM — les grandes listes mangent du cache, il faudra peut-être l’augmenter.

Préparer le routeur

Deux prérequis doivent être en place avant qu’AdList ne soit utile :

Passer à RouterOS v7.15 ou plus récent. AdList est arrivé en v7.15. Allez dans System → Packages → Check for updates et installez la version stable la plus récente. Les anciennes versions n’exposent tout simplement pas le chemin /ip dns adlist.

Augmenter la taille du cache DNS. Les adlists vivent dans le cache DNS ; la taille par défaut est trop petite pour toute liste sérieuse et provoque l’erreur adlist read: max cache size reached. Dans IP → DNS, portez Cache size à une valeur suffisante pour vos listes — pour un routeur de 128 Mo de RAM avec une ou deux listes, 30–40 Mo est une cible raisonnable.

/ip/dns set cache-size=40000
Panneau IP DNS de MikroTik avec cache-size réglé à 40 Mo

Vérifiez que Allow Remote Requests est activé, pour que les appareils du LAN puissent interroger le routeur en DNS.

Ajouter une adlist publique

Les blocklists publiques comme le fichier hosts de StevenBlack offrent une large couverture publicité et trackers dès le premier jour. Dans IP → DNS → Adlist, cliquez sur +, collez l’URL de la liste et désactivez SSL Verify sauf si vous avez déjà importé l’autorité de certification. La liste apparaît avec un match-count et un name-count une fois analysée.

Équivalent en CLI :

/ip/dns/adlist add \
url=https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts \
ssl-verify=no

Pour voir combien de domaines ont été chargés et combien de requêtes ont été bloquées :

/ip/dns/adlist/print

match-count est le nombre de requêtes bloquées ; name-count est le nombre d’entrées que contient la liste.

Terminal RouterOS affichant la sortie de /ip/dns/adlist/print avec match-count et name-count

Liste blanche et forwarders

Il arrive qu’un domaine que vous voulez réellement atteindre figure dans une blocklist publique. Ajoutez une entrée statique de forward pour qu’AdList ignore ce nom précis :

/ip/dns/static add name=example.com type=FWD

Les forwarders permettent aussi de définir des résolveurs amont (Quad9, Cloudflare) pour des domaines spécifiques. Définissez d’abord le pool de forwarder, puis pointez les entrées statiques dessus :

/ip/dns/forwarders add dns-servers=1.1.1.1,8.8.8.8 name=my-fwd
/ip/dns/static add name=example.com type=FWD forward-to=my-fwd

Créer et importer une blocklist personnalisée

Pour plus de contrôle, montez votre propre liste. Chaque ligne utilise le format 0.0.0.0 domaine :

0.0.0.0 adverts.com
0.0.0.0 click.adclick.com
0.0.0.0 malware-site.com
0.0.0.0 fraud.scam.com

Créez ou téléversez le fichier dans RouterOS :

/file/add name=adbl.txt
/file/edit adbl.txt contents

Saisissez la liste de domaines, sauvegardez avec Ctrl-O, puis rattachez le fichier à AdList :

/ip/dns/adlist add file=adbl.txt

Vérifiez l’analyse du fichier en consultant name-count via /ip/dns/adlist/print.

Fichier adlist personnalisé RouterOS chargé avec name-count visible

Tester et diagnostiquer

Videz le cache DNS d’un client et interrogez un domaine publicitaire connu :

ipconfig /flushdns
nslookup someadserver.com

La réponse doit renvoyer 0.0.0.0 au lieu de l’IP réelle.

Résultat nslookup affichant 0.0.0.0 pour un domaine publicitaire bloqué

Surveillez match-count dans le temps pour voir si la liste rend vraiment service. Si vous voyez adlist read: max cache size reached, augmentez le cache ou retirez une liste. Pour un durcissement DNS plus poussé qui complète tout cela, voyez nos guides sur la configuration DNS over HTTPS et sur le blocage du trafic vers un pays.

Maintenance et limites

  • Mises à jour automatiques. RouterOS rafraîchit les adlists toutes les quatre heures. Le rechargement manuel via /ip/dns/adlist/reload est disponible mais rarement nécessaire.
  • Budget mémoire. Les grosses listes consomment de la RAM. Calibrez le nombre et la taille des listes sur la mémoire libre de l’équipement ; un hAP ac² n’a pas du tout la même marge qu’un RB5009.
  • Blocage DNS uniquement. AdList ne peut pas bloquer les pubs servies depuis le même hôte que le contenu (les pubs vidéo YouTube en particulier). Doublez avec une extension de navigateur si elles vous gênent.
  • Contournement DoH/DoT. Les clients équipés de leurs propres résolveurs DoH ou DoT contournent entièrement le DNS du routeur. Bloquez le DNS sortant vers tout sauf le routeur via une règle pare-feu pour imposer la politique.

Mettez le blocage de pubs à l’échelle sur tous les sites

Maintenir AdList sur un routeur est facile. Le maintenir sur une flotte — avec des listes blanches par client, des budgets de taille de liste par modèle d’équipement et la dérive inévitable entre sites — est plus difficile qu’il n’y paraît.

MKController pousse en une seule opération la même configuration AdList, les listes personnalisées et les règles de forwarder sur chaque MikroTik de votre inventaire. Quand match-count chute brutalement ou quand les erreurs max cache size commencent à apparaître dans les logs, le tableau de bord met en avant les équipements concernés pour que vous interveniez avant que les clients ne s’en aperçoivent.

Démarrez votre essai gratuit MKController