Contexte
Vous le savez peut-être déjà mais le gouvernement a fait voter une loi qui lui permet de censurer n’importe quel site s’il ne correspond pas à ses attentes. Feu islamic-news.info vient d’en faire les frais. La question ici n’est pas de déterminer si ce site est effectivement peu fréquentable ou pas, mais de savoir se prémunir de ce genre de pratiques vu qu’elles se font sans l’intervention du juge.Savoir comment ça marche pour savoir comment se protéger
Afin de mettre en œuvre cette censure, le gouvernement utilise la méthode dite du « DNS menteur ». Le DNS pour Domain Name System est un protocole utilisé sur Internet pour traduire le nom de domaine d’un site en adresse IP compréhensible par tous les PCs, serveurs et routeur. Si nous prenons l’exemple de ce site, nous voyons qu’il correspond aux IPs 89.234.140.133, 2001:470:1f13:138:715d:2fa0:b591:532f et 2a00:5881:4008:400::1 :$ dig +short A www.swordarmor.fr
pokedex.swordarmor.fr.
89.234.140.133
$ dig +short AAAA www.swordarmor.fr
pokedex.swordarmor.fr.
2001:470:1f13:138:715d:2fa0:b591:532f
2a00:5881:4008:400::1
Si nous allons un peu plus loin dans la technique, nous remarquons que ces réponses ne tombent
pas du ciel, elle viennent d’un serveur. Quand ce serveur sert à résoudre des noms de domaine en
adresse IP, on dit que l’on a affaire à un résolveur DNS. Généralement vous utilisez celui de votre
FAI, mais nous verrons que nous ne sommes pas du tout obligés.En effet, si nous n’utilisons pas un résolveur DNS sur lequel nous avons un minimum de contrôle nous nous exposons à des réponses erronées, d’où l’appellation de « DNS menteur ». Nous le voyons très bien dans le cas de islamic-news.info :
$ dig +short islamic-news.info @192.168.0.254 # derrière une freebox
90.85.16.52
$ dig +short islamic-news.info @192.168.1.1 # derrière une livebox
90.85.16.52
$ dig +short islamic-news.info @192.168.0.2 # chez moi
37.59.14.72
Les DNS de free et orange mentent alors que le mien donne bien la bonne IP.
Savoir comment faire pour savoir comment se protéger
Il va maintenant être temps de passer à l’action. La solution que je propose consiste à s’intaller son propre résolveur dans un coin et à l’utiliser au lieu d’utiliser celui du FAI.Comme tout service qui devra être disponible en permanance, il faut l’installer sur une machine qui tourne sans arrêt. Cependant, un résolveur DNS ne prend vraiment pas beaucoup de ressources, vous devriez pouvoir le faire tourner sur à peu près tout : beaglebone, rasberry pi, vielle tour qui ne sert plus (c’est mon cas, et ça marche parfaitement bien du haut de ses 256 Mo de RAM, son PIII 600 MHz et ses 8 Go de disque).
Ensuite, installez la distribution linux de votre choix, puis le résolveur à proprement parlé avec
apt-get install unbound
sur debian (et debian-based) ou emerge unbound
sur gentoo, ou
tout autre commande en fonction de votre gestionnaire de paquets.Pour finir, mettez un configuration du genre dans
/etc/unbound/unbound.conf
en faisant attention aux commentaires.
server:
auto-trust-anchor-file: "/var/lib/unbound/root.key"
access-control: 192.168.0.0/16 allow_snoop
access-control: 10.0.0.0/8 allow_snoop
access-control: 172.16.0.0/12 allow_snoop
access-control: 127.0.0.0/8 allow_snoop
interface: 127.0.0.1 # obligatoire
interface: 0.0.0.0 # Pour écouter sur toutes les interfaces, à la fois en
interface: ::0 # IPv4 et en IPv6
Pour tester votre résolveur, faites dig swordarmor.fr @$IPduResolveur
et
normalement vous devriez avoir une réponse en 95.130.9.160.Si cela fonctionne, vous pouvez maintenant dire au serveur DHCP de votre box de l’annoncer dans ses réponses (ou offres) DHCP. Vous devriez trouver comment faire si vous tappez « dns dhcp monFAIbox » ou un truc du genre dans votre moteur de recherche préféré.