Il est facile d’installer un serveur de DNS sur son réseau local avec Unbound. Il est encore plus facile d’utiliser Unbound ainsi installé, par exemple sur une carte Raspberry Pi, pour bloquer les contenus en provenance de régies publicitaires.
Voici une méthode parmi d’autres pour bloquer la publicité avec Unbound.
Pré-requis pour utiliser Unbound pour bloquer la publicité
Pour configurer unbound de manière à bloquer les contenus publicitaires, il faut… avoir installé unbound ! Les publicités ne seront bloquées que pour les machines configurées pour utiliser la machine sur laquelle tourne unbound en tant que serveur de DNS.
Principe de la méthode
Des listes d’URL correspondant à des serveurs hébergeant le contenu publicitaire provenant de diverses plateformes sont partagées et mises à jour bénévolement par certains utilisateurs. Dans cet exemple, on utilisera la liste maintenue par Dan Pollock. Le serveur unbound est configuré pour mentir lorsqu’il est sollicité pour traduire l’un de ces noms d’hôtes par l’adresse IP correspondante : au lieu d’indiquer l’adresse IP, il dit au client que le nom de domaine correspond à une adresse locale qui ne renvoie vers… rien. Les contenus publicitaires sont alors précipités dans le néant.
Concrètement, cela revient à placer dans le fichier de configuration des redirections vers 127.0.0.1.
Utilisation d’un script pour formater la liste
Pour formater la liste de Dan Pollock en vue de l’intégrer à la configuration d’Unbound, j’utilise un script disponible ici : unbound-block-hosts.
On récupère le script et on le rend exécutable :
# wget https://raw.githubusercontent.com/jodrell/unbound-block-hosts/master/unbound-block-hosts
# chmod 755 unbound-block-hosts
On exécute le script pour écrire la liste formatée dans un fichier placé dans le répertoire de configuration d’unbound :
# unbound-block-hosts --file=/etc/unbound/local-blocking-data.conf ;
On indique dans le fichier de configuration principal d’unbound qu’il faut inclure local-blocking-data.conf dans le bloc serveur ; dans /etc/unbound/unbound.conf, après server:, ajouter la ligne suivante :
include: /etc/unbound/local-blocking-data.conf
Pour que le blocage soit effectif, il faut redémarrer unbound :
# systemctl restart unbound
Pour mettre à jour la liste, il suffit de reparcourir ces étapes… ou d’en faire un script exécuté régulièrement via une tâche programmée via crontab.