DNSMASQ – Votre serveur Dns à échelle humaine

A quoi sert un serveur DNS en local ?

Si vous êtes le seul développeur dans votre entreprise, la réponse à cette question est : à rien! (autant gérer directement vos domaine en local via le fichier hosts)

Sous Windows vous trouverez ce fichier à cet emplacement :

Et sous Mac et GNU/Linux

Ce fichier est disponible à cet emplacement :

Personnellement j’utilise ce fichier uniquement dans le cas ou je dois forcer les DNS d’un site web durant le temps d’attente d’un transfert de nom de domaine (ce qui prend généralement un certain temps à être validé!)

Car dans un environnement de développement web ou plusieurs personnes sont amenés à travailler sur une même base (à moins de modifier le fichier hosts de chacun de vos collaborateur à chaque nouveau domaine), cela peut devenir rapidement chronophage et très peu efficace.

Pour répondre à cette problématique nous allons installer un serveur dns.

dnmasq – le choix de la simplicité

Le choix du serveur DNS dnsmasq s’est porté sur sa facilité de mise en oeuvre et sa simplicité d’utilisation au quotidien pour un petit réseaux web.
Celui-ci supporte actuellement plus de 300 domaines sans aucun problèmes.

Dans le cas ou vous avez plusieurs collaborateur travaillant sur des projets différents basé sur un même serveur physique je vous invite à lire la suite d’article disponible dans la catégorie OpenVZ et vous pourrez ainsi créer un conteneur dédié à la gestion de votre serveur DNS et votre serveur Proxy

Installation de dnsmasq

Ouvrez un terminal et insérer la commande suivante:

et c’est tout pour l’installation, simple non ?

Configuration de dnsmasq

Nous utiliserons la configuration suivante sur un conteneur OpenVZ contenant notre serveur DNS Dnsmasq, avec un serveur Proxy Squid3 qui au final nous permettra de switcher rapidement et ceux, sans changer l’url d’un site local à un disant par un simple clic sur votre plugin Chrome : TunnelSwitch

Editer le fichier suivant :

Et ajouter y autant de ligne que de projets ou collaborateur que vous avez comme ci-dessous :

En créant ces différents fichiers vous pourrez alors de donner à chacun de vos collaborateur son propre fichier hosts à modifier selon son gré sans avoir de problématiques liée à l’ouverture et l’enregistrement multiples du fichier /etc/hosts 

Puis editer le fichier :

En y ajoutant les 2 lignes suivantes dans l’ordre:

  • 127.0.0.1 afin de rechercher les domaine en local dans un premier temps (là ou est installé le serveur dnsmasq)
  • 8.8.8.8 dans un 2eme temps pour rechercher les domaine sur le web, dans le cas ou ceux-ci ne sont pas présent dans les fichier hosts de dnsmasq.

Il s’agit ici de l’adresse IP des serveurs DNS de google, mais vous pouvez également mettre les serveurs fournis par votre FAI ou alors l’adresse IP de votre serveur physique dans le cas vous êtes dans un conteneur OpenVZ et que celui-ci  est relié à internet en ayant effectué un routage des ports vers ses conteneur (voir l’article sur l’installation de votre serveur OpenVZ)

Note : à savoir que dans le cas d’un conteneur OpenVZ à chaque redémarrage de votre instance ce fichier resolv.conf sera réinitialisé (allez savoir pourquoi ils ont codé cela…), il existe cependant une astuce l’utilisation de la commande linux chattr qui interdit la modification d’un fichier.

Empêcher la modification avec:

Permettre la modification à nouveau avec  :

Il ne reste plus qu’a remplir chacun des fichiers /hostsfile_user1 (2,3,…) de la façon suivante :

Une fois cette opération terminé ainsi qu’a chaque ajout de ligne dans l’un de ses fichier vous devrez redémarre le serveur dnsmasq à l’aide de la commande:
ou alors :
Et voila votre serveur DNS est fonctionnel!

N’hésitez pas à suivre notre tutoriel sur la gestion des utilisateur en fonction leurs environnement pour un réseaux interne plus adapté et sécurisé!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partenaires

Cekome Graal Network Panoramaweb