changer ses DNS dans Mate

Ce tuto est valable pour Ubuntu et ses dérivés. Il fonctionne sans soucis sur Linux Mint 17 (Et 18).

Le serveur DNS, c’est ce qui permet de relier le nom d’un site (lehollandaisvolant.net) à un serveur ailleurs sur le net (5.39.16.10 pour ce site).

En général, vous utilisez les DNS de votre opérateur, mais ceux-ci vont devenir malsain au fur et à mesure que les gouvernements vont leur demande de bloquer des sites dérangeant.
Vous pouvez utiliser les serveurs DNS alternatifs, comme ceux de Google ou d’OpenDNS, mais ces serveurs DNS subiront le même problème que ceux des opérateurs, en plus de constituer un problème manifeste pour la vie privée.

Sachez qu’il est possible d’installer un serveur DNS directement sur votre ordinateur : quand vous voudrez vous connecter à un site, votre ordinateur contactera lui-même les serveurs DNS racine, sans passer par un serveur DNS intermédiaire.
Dans mon cas, la navigation est également devenu sensiblement plus rapide.

Sous Ubuntu et ses dérivés, il y a un paquet à installer. Ouvrez un terminal et copiez ceci :

sudo apt-get install unbound

Exécutez la commande par la touche Entrée, tapez votre mot de passe et validez de nouveau par la touché Entrée. Le paquet va alors s’installer.

Ensuite, changez les DNS dans le gestionnaire de réseau. Faites un clic droit sur l’icône réseau, puis « modification des connexions ». Sélectionnez sur votre connexion réseau puis cliquez sur « Modifier ».

Allez dans l’onglet IPv4, mettez « Adresses automatique seulement (DHCP) » et changez le serveur DNS pour 127.0.0.1. Pour l’IPv6, si c’est applicable, faites la même chose dans l’onglet IPv6, sauf que pour l’adresse DNS, il faut simplement mettre « ::1 » :

changer ses DNS dans Mate
Quand c’est fini, copiez et exécutez successivement ces commandes  :

sudo sed -i 's/dns=dnsmasq/#dns=dnsmasq/g' /etc/NetworkManager/NetworkManager.conf
sudo service network-manager restart
sudo service unbound stop
sudo /etc/init.d/dns-clean restart
sudo unbound -c /etc/unbound/unbound.conf
sudo unbound-anchor -a "/var/lib/unbound/root.key"
sudo service unbound start

Voilà, vous pouvez surfer normalement et vous utilisez maintenant un serveur DNS directement sur votre ordinateur.

Vous pouvez vérifier par la commande suivante :

nmcli dev show | grep DNS

Qui devrait retourner ça :

IP4.DNS[1]:                             127.0.0.1
IP6.DNS[1]:                             ::1

La présence du « 127.0.0.1 » et du « ::1 » indique que c’est bien votre ordinateur qui constitue le serveur DNS.

Les 6 commandes consécutives ci-dessus ont pour fonction respective :

  • de désactiver dnsmask, qui est l’outil DNS par défaut du gestionnaire de réseau d’Ubuntu. Vous pouvez voir qu’il n’apparaît plus quand vous faites sudo lsof -i :53 : seul unbound apparaît maintenant.
  • de relancer le gestionnaire de réseau. Cette commande va vous déconnecter le réseau, puis va vous reconnecter.
  • de désactiver le service unbound le temps de faire les commandes suivantes
  • de supprimer le cache-DNS local
  • de dire à unbound d’utiliser les fichiers de configuration qu’on a installé
  • de dire à unbound d’utiliser la clé DNS-Sec, qui permet de s’assurer que les réponses DNS sont légitimes.
  • de relancer unbound.

Si vous vous amusez à refaire un :

sudo service unbound stop

Vous ne pourrez plus accéder à mon site via son nom (lehollandaisvolant.net) mais ça marchera encore via l’IP (5.39.16.10).

N’oubliez pas de réactiver unbound avec ça :

sudo service unbound start

Ça prouvera que vous utilisez bien le serveur DNS sur votre ordinateur et non celui de votre routeur ou d’un autre programme.

N’oubliez pas de faire en sorte que votre ordinateur ne serve de serveur DNS qu’à vous et pas au reste du réseau (y compris le net) si c’est ce que vous voulez :

Ouvrez le fichier de configuration :

gksudo gedit /etc/unbound/unbound.conf

Et ajoutez ceci à la fin pour limiter le service qu’à votre ordinateur :

access-control: 0.0.0.0/0 refuse
access-control: ::0 refuse
access-control: 127.0.0.0/8 allow
access-control: ::1 allow

Puis relancez unbound :

sudo service unbound restart

Liens :

  • Un script pour automatiser l’installation d’Unbound : install_unbound.sh (merci Frank !) : lien mort. Une copie est dispo là : unbound.sh