Presque 3 ans que j’utilise Blocky qui est un proxy DNS parlant DoH et DoT et qui permet de cacher les réponses et d’utiliser des blocklists pour bloquer les pubs et autres saletés.
Maintenant Blocky permet d’exporter des stats vers Prometheus et on peut donc s’amuser à regarder un peu tout ça.
IO
Blocky me semble être une alternative à Unbound, qui est hautement “paramétrable” aussi, non ?!
Unbound est un “vrai” résolveur DNS. Son boulot est d’aller interroger les serveurs roots puis de faire la récursion. Il peut également faire du blocage bien que ce ne soit pas dans ses fonctionnalités initiales.
Blocky lui n’est pas un vrai résolveur, il va par contre consulter des résolveurs (de ce fait je le qualifie de proxy). Par contre lui est vraiment taillé pour le blocage, du coup il sait charger des blocklist mais surtout il sait les mettre à jour de lui-même et régulièrement. Et il a pour gros avantage de pouvoir parler à plusieurs serveurs récursifs simultannément et ce via les nouveaux protocoles que sont DoT et DoH qui permettent de chiffrer la communication entre le résolveur et lui.
Du coup d’un point de vue extérieur les deux logiciels font sensiblement la même chose, mais sous le capot ça ne marche pas pareil.
Les deux ont leurs avantages.
Unbound permet de directement parler aux roots ainsi qu’au serveurs faisant autorité c’est donc un fonctionnement plus décentralisé. L’inconvénient c’est que du coup le trafic est en clair.
À contrario, blocky fait appels à des résolveurs extérieurs et donc plus centralisés (tout en permettant d’en utiliser de multiples et donc éviter de trop cette centralisation) mais avec du chiffrement.
unbound fait du DoT assurément, et même du DoH. ;)
Concernant les métriques, il semble possible de les envoyer au couple Prometheus/Grafana, aussi.
À-propos des listes de blocages, il est vrai qu’il faut mettre en place un script/système de màj par ses petites mimines, et redémarrer le service.
Oui il fait du DoT et DoH mais pas au même endroit, en gros tu te retrouves avec ça :
Serveurs roots + la récursion < – DNS en clair – > (X)|Unbound < – DNS / DoH / DoT – > clients
et avec blocky tu as
Serveurs roots + la récursion < – DNS en clair – > Résolveurs upstreams < – DNS / DoH / DoT – > (X)|Blocky < – DNS – > clients
Du coup au niveau de ton routeur (X), le trafic vu avec unbound sera du DNS en clair, alors qu’avec blocky ça sera du DNS/DoT/DoH donc potentiellement chiffré.
Ha bha je viens de voir ton article et je ne savais pas que Unbound pouvais parler à des résolveurs DoT ^__^
Absolument, et celui depuis quelques années maintenant… Tu comprends mieux ma “surprise” et mes questions ;)
Dans les faits, c’était “expérimental” début 2018 et vers la fin de ladite année est devenu “supportée”. Voilà !
Même si je ne l’ai pas exprimé, j’avoue avoir eu du mal avec ton commentaire précédent, puisqu’unbound est capable de communiquer en DoT, depuis l’année précisée ci-dessus. Il suffit de “pointer” vers des serveurs DNS gérant ce protocole. Bien-sûr, il gère aussi très bien les requêtes selon le chiffrement DNSSEC, et le fait même avec les serveurs DNS roots, sans aucun soucis.
J’utilise unbound pour la simple raison que le service est intégré nativement sous Open… BSD, depuis des années - c’est même là que je l’ai découvert ; quand je me suis mis à Open… WRT, j’ai cherché à l’utiliser logiquement.
Pour tout avouer, j’ai même intégré le proxy DoH dans OpenWRT ; qui me semble très bien fait, et qui intègre la possibilité de divers listes de filtrage, dont la plupart des serveurs DNS supportant DoH, supportent aussi DoT, voire se mettent même à faire du Quic-over-DNS. (d’où le partage de la liste dans mon article)
Ainsi, sans grande modification, j’ai dans mon OpenWRT, dnsmasq le chef d’orchestre qui forward en premier à unbound les requêtes DNS sur DoT - depuis mes deux sous-réseaux, Lan et Wifi -, et si pour une raison ou un autre, il bascule sur le proxy DoH, qui envoie/enverra les requêtes DNS vers plusieurs serveurs différents, sur les deux couches IPv(4|6). (“ceinture et bretelles”)
Voilà ! :D (tu sais tout… ou presque)