A l’heure des tentatives de flicages, blocages et autres digressions portant plus ou moins atteinte à nos libertés de surf sur la vague Internet, je vous propose un article simple pour vous monter un serveur DNS sur votre Windows (Et oui c’est possible, c’est dégueulasse mais ça fonctionne très bien !)

Si vous êtes tombé sur cette page par hasard et que vous ne comprenez pas le pourquoi du DNS, vous voici un peu de lecture !

http://fr.wikipedia.org/wiki/Domain_Name_System

Restons simple, le service le plus populaire pour gérer des DNS est BIND développé par l’ISC, je vais donc l’utiliser pour vous montrer comment en faire votre ami sur Windows.

Commencer par télécharger l’archive qui correspond à votre architecture (x64 ou x86) :

Pour mon système ça sera cette version :

Décompresser l’archive dans un coin de disque puis lancer l’installation en mode administrateur avec BINDInstall.exe

La seule chose à changer enfin à saisir, est le mot de passe pour le compte qui va lancer votre service named.

02

L’installation maintenant complétée, créer les répertoires « logs » et « zones » à l’emplacement suivant :

C:\Program Files\ISC BIND 9

Configurer le service named peut paraître un peu fastidieux mais les recueils de configurations et les bonnes pratiques sont nombreux sur le sujet du cache DNS pour BIND. Je vous propose donc une configuration type que je vous invite à optimiser selon vos besoins et vos éventuels déboires…

Le fichier named.conf doit être crée et placé dans C:\Program Files\ISC BIND 9\etc. Par défaut, vous ne pouvez pas écrire à cet emplacement, lancer votre éditeur de texte préféré en mode administrateur.


acl "trusted" {
127.0.0.0/8;
10.0.0.0/8;
172.16.0.0/12;
192.168.0.0/16;
};

options {
directory "C:\Program Files\ISC BIND 9\zones";
auth-nxdomain no;
listen-on-v6 { any; };
listen-on { any; };
allow-query-cache {
trusted;
};
allow-recursion {
trusted;
};
allow-query {
any;
};
};

logging {
channel security_file {
file "C:\Program Files\ISC BIND 9\logs\security.txt" versions 3 size 30m;
severity dynamic;
print-time yes;
};
category security {
security_file;
};

channel queries_log {
file "C:\Program Files\ISC BIND 9\logs\queries.txt" versions 3 size 30m;
print-severity yes;
print-time yes;
};
category queries {
queries_log ;
};
};

zone "." IN {
type hint;
file "db.root.hint.txt";
};

Dans les grandes lignes, cette configuration permet de :

  • Résoudre les noms DNS depuis les serveurs racines jusqu’au serveur DNS du propriétaire du nom de domaine sans intermédiaire
  • Autoriser les ordinateurs de votre réseau local à utiliser votre service DNS
  • Savoir quelles requêtes DNS sont envoyées pour voir à qui vous avez souhaité parler (surprenant en général)

Pour entrer dans les détails n’hésitez pas à lire la documentation pour chacun des mots clefs.

En l’état il reste encore une chose à faire, récupérer les enregistrements de la racine, oui le fameux point que personne ne voit mais qui est la base du système (si si vérifiez le schéma sur wikipedia !)

Pour récupérer ces enregistrements il faut payer, et non ! Pour générer le dernier fichier qui nous manque, nous allons utiliser la commande suivante depuis le répertoire C:\Program Files\ISC BIND 9 dans une invite de commande Windows lancée en administrateur :

bin\dig NS . @m.root-servers.net > zones\db.root.hint.txt

Le fichier C:\Program Files\ISC BIND 9\zones\db.root.hint.txt contient maintenant les adresses de tous les serveurs racines du système DNS d’internet en ipv4 et en ipv6.

Régler les permissions du répertoire C:\Program Files\ISC BIND 9 en ajoutant l’utilisateur crée pendant l’installation « named » avec les droits contrôle total.

05

Tout est maintenant prêt pour lancer votre service DNS !

Pour le lancer, ouvrez la console des services de votre ordinateur, dans l’invite de commande en tapant services.msc soit en passant par le panneau de configuration puis outils d’administration et services.

03

Vérifier que le service est bien configuré pour un Type de démarrage Automatique

04

Cliquer démarrer pour lancer le service named.

Si une erreur est rencontrée dans le démarrage, je vous invite à vérifier la configuration named.conf certains caractères peuvent avoir été altéré lors de votre copier/coller ou encore les droits sur le répertoire C:\Program Files\ISC BIND 9.

Pour aller plus loin dans la recherche des erreurs, lancez l’observateur d’événements windows, eventvwr.msc dans une invite de commande ou via outils d’administration dans le panneau de configuration. Dans les journaux Windows, ouvrez le journal application et vérifier les entrées depuis la source Named.

Il reste maintenant à tester que tout fonctionne en changeant votre paramétrage DNS sur votre/vos cartes réseaux !

06

Dans mon cas le protocole IPv6 est désactivé car non supporté par mon opérateur au couleur d’Halloween.

Dans les propriétés IPv4 de votre carte, renseignez votre adresse ip de bouclage 127.0.0.1 et le tour est joué !

07

Comment tester ?

Le test simple lancer votre navigateur et entrer l’adresse de mon blog www.mighty-studio.net.

Ca ne fonctionne pas ou ça s’est affiché après un temps vraiment long !

Et oui normal, à la première requête DNS effectuée par navigateur, il faut que le service DNS remonte toute la chaîne pour trouver les enregistrements correspondants à chaque partie du nom DNS. Plus vous surfez, plus le cache retient d’enregistrements, moins le temps d’affichage sera long !

Pour les férus d’invite de commande windows, vous pouvez utiliser un nslookup ou même dig (inclus dans les outils installés par BIND à lancer en mode invite de commande administrateur)

08

Dans cette capture, la réponse obtenue avec l’utilitaire dig montre que le cache fonctionne très bien puisque la réponse a été obtenue en 0msec ! Elle est en cache et ne nécessite donc plus d’interroger les DNS de la toile.

Vous pouvez aussi regarder le fichier C:\Program Files\ISC BIND 9\logs\queries.txt et vous essayer à l’art des statistiques 😉

Voilà, vous avez gagné un peu d’autonomie, de respect de votre vie privée quand vous surfez et surtout vous ne craignez plus un blocage de certains sites par des réponses DNS volontairement trafiquées par votre fournisseur d’accès à internet !

N’hésitez pas à soumettre des idées d’améliorations de ce petit tutoriel!