SwordArMor

Installer son propre résolveur DNS pour contourner la censure du gouvernement

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é.