La censure via les DNS est maintenant une réalité en France. Cette censure est inefficace et surtout facilement contournable. Il suffit de paramétrer un autre serveur DNS sur son ordinateur pour accéder aux sites bloqués.

Et en surfant un peu, j'ai constaté que le serveur DNS préféré des Français est celui de Google (8.8.8.8 et 8.8.4.4). Seulement voilà... Ca me dérange que tout le monde commence à utiliser les DNS de Google, car :

  • 1/ Google utilise ces données pour mieux nous traquer et cibler sa publicité.
  • 2/ Tout votre surf (en tout cas, le listing des sites que vous visitez) est maintenant en possession du gouvernement américain \o/.

Alors que faire ? J'ai cherché la solution la plus simple pour être autonome avec ses DNS et je l'ai trouvée !!! Il ne s'agit pas de la solution la plus propre du monde et les nazis du DNS vont sûrement me tomber sur le paletot, mais, peu importe, ça fonctionne. Même si vous êtes débutant complet que vous n'y comprenez pas grand chose, il suffit de suivre ce tuto et ce sera bon. Un peu comme pour mon article sur comment s'installer un serveur Open VPN les yeux fermés.

L'idée est simple... Puisque les DNS de nos FAI mentent et que ceux des US sont aux US, la solution la plus logique qui s'offre à nous est de faire tourner son propre serveur DNS en local. Je suis d'abord tombé sur SimpleDNS Plus, un logiciel Windows qui permet de faire ça simplement sauf que c'est uniquement sous Windows et que c'est payant.

Évidemment j'ai aussi pensé à Bind, mais la config est assez relou et vous serez plein à passer à côté. Puis en fouillant du côté de Wikipedia, j'ai vu qu'il existait un outil baptisé Unbound qui permet de faire ça aussi bien sous Linux que Windows et OSX.

Surtout, la config de base est suffisante pour ne pas avoir à mettre les mains dans le cambouis. Alors concrètement, comment ça se passe ?

D'abord, allez télécharger Unbound DNS ici. Pour Windows c'est facile, car il s'agit d'un installateur tout ce qu'il y a de plus traditionnel. Pas la peine de réfléchir, allez jusqu'au bout de l'installation en laissant tous les paramètres par défaut.

unbound

Une fois terminé, vous pourrez voir dans la liste des services Windows (Démarrer -> Exécuter -> Services.msc), un service Unbound qui est censé être démarré et en démarrage automatique. Si ce n'est pas le cas, configurez-le pour que ça démarre automatiquement et lancez-le.

services

Et voilà c'est terminé !

Maintenant il faut configurer votre Windows pour qu'il utilise votre DNS local dont l'adresse sera 127.0.0.1. Allez dans les paramètres du réseau et mettez 127.0.0.1 dans le champ DNS (et rien dans le second champ DNS). Et voilà...

dns

Pour vérifier que ça fonctionne, lancez un terminal et entrez la commande nslookup. Et demandez-lui de résoudre certains domaines... Vous devriez voir quelque chose comme ça :

nslookup

On voit bien ici que Twitter.com et Facebook.com sont résolues grâce au DNS local 127.0.0.1. Vous pouvez aussi utiliser la commande dig comme ceci :

dig korben.info @127.0.0.1

Enfin, lancez votre navigateur et entrez l'URL de votre choix. Il se peut que l'URL ne se résolve pas tout de suite. Insistez un peu, attendez un peu et ça devrait ensuite se résoudre. C'est normal que ça prenne un peu de temps, car c'est la première fois... Mais ensuite c'est mis en cache chez vous alors ce sera beaucoup plus rapide.

Pour Linux et OSX, utilisez votre gestionnaire de paquets préféré (apt-get, macport...etc.) pour installer Unbound. Par exemple sous OSX, il faut entrer la ligne de commande :

sudo port install unbound

Initialisez ensuite le fichier de config comme ceci :

sudo cp /opt/local/etc/unbound/unbound.conf-dist /opt/local/etc/unbound/unbound.conf

Et dites à OSX de lancer Unbound automatiquement avant la commande suivante :

sudo launchctl load -w /Library/LaunchDaemons/org.macports.unbound.plist

Configurez ensuite votre système d'exploitation pour qu'il utilise votre DNS 127.0.0.1 et roule ma poule !

dnsSi vous avez plusieurs machines à la maison, il est peut-être bon de faire la même chose sur la machine qui est toujours allumée (le serveur de la maison, un Raspberry Pi, votre NAS...etc.) et configurer Unbound (et votre firewall) pour qu'il autorise les connexions à partir d'autres ordinateurs sur le port 53.

Modifiez le fichier conf de Unbound avec les paramètres suivants :

# provide Ipv4 service.

interface: 0.0.0.0

# provide ipv6 service, uncomment on Vista or if ipv6 is available.

#interface: ::0

# allow access by the local network.

access-control: 192.168.0.0/16 allow

# if you have Ipv6 enter your /64 as well and uncomment.

#access-control: 2001:db8::/64 allow

Ensuite, vous n'aurez plus qu'à configurer vos DNS avec l'IP de cette machine.

Je ne rentre pas plus dans le détail, car après on peut aller vraiment loin avec Unbound, mais sachez que si vous voulez vous plonger un peu plus dans le paramétrage de ce serveur DNS, il y a tout ce qu'il faut comme documentation sur leur site.

Maintenant, vous n'avez plus aucune excuse pour ne pas le faire :-)