XinCTO/un peu de sécurité avec pi-hole

Ecrit le Sun, 25 March 2018 13:48:32 +0000

un peu de sécurité avec pi-hole

Les bloqueurs de publicité c’est pas mal, mais le fait d’avoir à instrumenter le filtrage au niveau des logiciels clients est assez complexe et ne permet pas de couvrir ni des menaces complémentaires, ni des équipements non administrables, comme les IOT par exemples.

A la maison ou dans une petite entreprise, il n’est pas courant de disposer d’élément de sécurité avancé, mettre ses mains dans les serveurs DNS ou installer des composants n’est pas à la portée de tout le monde et par conséquent on retrouve à ces endroits des vulnérabilités qui peuvent être en partie endiguées avec un filtrage à base de DNS. La solution pi-hole est assez accessible et permet de mettre en place un premier rempart assez efficace, la preuve en images…

Vous qui utilisez probablement à la maison des équipements variés, des smartphones, des tablettes, un assistant vocal, un frigo connecté, une console de jeux connectée, vous ne vous doutez pas de la quantité de trafic initié par ces petites bêtes et qui pourrait potentiellement être vulnérable ou tout simplement partageant des données personnelles qui vous ne souhaitez pas voir sortir de chez vous. Autant sur votre PC, vous avez peut-être installé des outils spécifiques de sécurité permettant de supprimer quelques sites particuliers, mais sur les équipements plus intégrés comme les IOT c’est souvent impossible à faire. L’avènement des IOT va complexifier le processus car la plupart se comportent comme des boites noires, impossible de mettre ses mains dedans et de voir l’ensemble des trafics échangés, sans déployer un peu de technicité, mais tout le monde ne manipule pas couramment l’analyseur de protocole sur son réseau.

La solution pi-hole

La solution pi-hole s’annonce comme un trou noir contre les publicités sur internet. Même si l’usage principal est bien celui-ci, il permet également de filtrer quelques menaces comme des sites de malwares, des sites de minage de cryptomonnaie, des sites permettant la diffusion de ransomwares ou encore des sites de télémétrie, couramment répandus chez certains GAFAM.

Comment ça marche

Le principe de fonctionnement est assez simple finalement, pi-hole réalise un filtrage sur la base des domaines DNS consommés demandés par l’ensemble des équipements du réseau local et applique un filtrage sur la base de listes blanches et noires. Si le domaine demandé est dans une liste noire, alors la réponse (l’adresse IP donc) est modifiée pour pointer sur un serveur en local indiquant que cette ressource est bloquée par pi-hole. Si vous consommez un site filtré vous verrez apparaitre cette page spécifique permettant éventuellement de modifier la liste noire, dans la majorité des cas, les ressources sont consommées en arrière plan et vous ne verrez pas la page en question.

Gros avantage de cette approche, elle gère également très bien les sites sécurisés en https, ce qui est plus complexe à faire avec une solution analysant les URL en transit, par exemple dans les pare-feus.

Afin de rendre la solution efficace, pi-hole doit donc remplacer votre serveur DNS local, si vous êtes particulier c’est au niveau de votre box internet qu’il faudra faire un paramétrage spécifique, si vous disposez d’un serveur d’entreprise, c’est à son niveau que vous pourrez agir. Donc en général on modifie la configuration de son serveur DHCP qui assigne les adresses IP dynamiquement aux équipements et qui indiquera alors l’adresse du nouveau serveur DNS.

Il est également possible d’activer le service DHCP dans la solution pi-hole, il faudra donc désactiver celle de sa box, ce qui est parfois plus simple à faire que de modifier le paramétrage. Cette solution permet en plus de disposer des noms des machines de votre réseau dans l’interface de statistiques, c’est assez pratique pour creuser un peu.

Mise en oeuvre

Comme son nom peut l’indiquer, une solution pour installer la solution pi-hole est de le mettre en oeuvre sur un raspberry pi. D’une part c’est assez logique en terme de dimensionnement car le trafic DNS est largement acceptable pour une petite machine de ce genre, d’autre part c’est simple à installer, le coût est modéré et la consommation électrique modeste. Même si vous avez un serveur Linux qui traine à la maison (on est déjà bien avancé là donc), la solution raspberry pi est probablement la plus efficace.

Personnellement j’ai installé la solution à la maison sur un PI 1 modèle B+, pas bien puissant mais largement suffisant. Vous pourrez bien entendu monter sur un modèle supérieur, mais pas indispensable. On parle donc d’un investissement d’environ 40€ avec l’alimentation. Pour pousser le principe j’ai même utilisé une connectivité Wi-Fi car ne disposant pas de port disponible sur le switch de ma box internet, le délai supplémentaire sur les réponses DNS n’est pas sensible, pour les puristes ou les réseaux d’entreprise un peu plus conséquent que quelques postes, on pourra utiliser de l’Ethernet (filaire donc).

Je vous laisse consulter le site de l’éditeur pour l’installation de votre pi-hole, plutôt simple et bien faite celle-ci prend l’ensemble des composants en compte, y compris l’interface web d’administration.

Vous n’aurez qu’à prendre en compte les aspects connexes, de mon côté j’ai ajouté la partie Wi-Fi et le NTP pour avoir une machine à l’heure.

Paramétrages complémentaires

L’interface web d’administration permet de consulter les statistiques, les fichiers de log, d’ajuster les listes (blanches et noires) et de paramétrer l’ensemble du système. Certaines actions sont également disponibles comme la purge des journaux, le redémarrage ou la désactivation du filtrage de façon temporaire, pour 10 secondes, 30, 5 minutes ou de façon permanente.

Blocklists

La liste des noms de domaines à prendre en compte dans le filtrage est issue de listes téléchargées régulièrement sur Internet. La base proposée avec pi-hole est orientée publicité et tracking, on peut y ajouter des listes spécifiques. A noter que les listes peuvent contenir plusieurs fois le même domaine, l’outil effectue une déduplication. Attention ici à ne pas ajouter de liste d’URL.

Vous pouvez regarder également ces sources pour des sujets qui vous intéressent (ou plus exactement que vous souhaiteriez filtrer) :

Pour une vision plus large des listes de filtrage, vous pouvez compléter votre lecture avec mon article {%post_link dns-blacklist DNS blacklist %} qui porte le nombre de domaines filtrés à environ 500k.

DNS

Puisque pi-hole agit comme un proxy DNS (via le module dnsmasq), il faut le configurer. Un point intéressant ici est que vous pouvez mettre plusieurs sources qui seront utilisées de façon cyclique, ce qui rend moins efficace le tracking depuis les logs des serveurs en question sur votre activité. Pensez à utiliser IPv4 et IPv6 car une part grandissante de votre trafic utilise la version 6. Dans la liste des serveurs proposés, vous trouverez Google, OpenDNS, Level3, Norton, Comodo, DNS.WATCH et Quad9, vous pourrez en ajouter si vous le souhaitez.

API/Web interface

L’interface présentant les statistiques est assez riche, parfois la liste des 10 domaines validés ou bloqués est trop courte et les premières lignes sont bien connues, vous pourrez à votre guise filtrer les domaines que vous ne souhaitez pas voir dans l’interface de statistiques, ainsi que les clients de votre réseau. Ceci permettra entre autres de gérer du filtrage sur des données qui pourraient être qualifiées de personnelles (pensez à la GDPR).

Teleporter

Le dernier menu est pratique puisqu’il permet d’extraire dans une archive l’ensemble des fichiers de configuration et par conséquent la possibilité de les recharger dans une configuration toute neuve. Bien pensé.

Résultats

Pour vous motiver un peu plus, voici quelues résulats collectés sur mon réseau, donc un usage très basique avec des équipements multiples.

Statut global

Pratique, l’interface présente des données pour les personnes qui ne sont pas administrateur de la solution, le fonctionnement global, des valeurs brutes et ratio, un historique des dernières 24h :

Ici on constate (croyez moi) une charge système de l’ordre de 0.35 sur 5 minutes, le PI 1 est donc suffisant, une liste de 143k domaines filtrés et une moyenne de filtrage de 29%. Cette dernière valeur est significative car cela signifie qu’au moins 29% de requêtes n’aboutissent pas, la corrélation domaine/requête n’étant pas directe néanmoins.

Statistiques DNS

Sur le graphe de gauche, la typologie des requêtes DNS en fonction du protocole IP utilisé, ici, un peu plus d’IPv6. Sur la droite, la répartition des requêtes effectuées aux serveurs DNS, l’ensemble des serveurs configurés est utilisé, on fait donc une répartition rendant difficile le suivi par le fournisseur DNS ou votre fournisseur internet.

Audit log

La vision audit permet de consulter les principaux domaines autorisés (à gauche) et filtrés (à droite), ceci permet éventuellement d’ajuster via les listes blanches et noires sur des comportements ou des usages. Le bouton audit permet de supprimer de la vue les domaines bien connus afin de pouvoir se concentrer. Cette vue est très pratique sur les premiers jours d’utilisation.

API

Pour les plus avantureux, une API est disponible et permet de récupérer l’ensemble des informations et d’effectuer quelques actions sans utiliser l’interface web. Par exemple :

 1http://pi-hole.local/admin/api.php?summary
 2{
 3 "domains_being_blocked": "143,242",
 4 "dns_queries_today":      "61,477",
 5 "ads_blocked_today":      "18,116",
 6 "queries_forwarded":      "27,207",
 7 "queries_cached":         "16,154",
 8 "clients_ever_seen":"17",
 9 "unique_clients":"16",
10 "ads_percentage_today":   "29.5",
11 "unique_domains":         "2,138",
12 "status":"enabled"
13}

On trouvera par exemple ici le taux de cache qui n’est pas disponible dans l’interface et pourtant significatif de l’ordre de 26%, donc la moitié des requêtes effectuées à pi-hole sont effectivement envoyées à un serveur DNS externe ; c’est toujours cela de pris. Egalement le nombre de domaines requêtés, ici plus de 2000 ; ça cause un réseau local personnel !

Conclusion

Avec un peu de matériel et une petite heure de travail, profitez d’un premier niveau de filtrage ayant vocation à vous simplifier la vie et celles des utilisateurs de votre accès Internet, y compris vos IOT qui sont très vulnérables et bénéficieront ainsi peut-être d’un peu plus d’intimité.


Photo from Bernard Hermant