Pour mettre en place un service DNS, le logiciel recommandé à l'AUF est BIND version 9. Le paquet Debian correspondant est bind9.

/!\ Cette page a été écrite à toute vitesssssse, merci aux DNSmen de la ré-écrire un peu plus proprement et plus en détail.

Installation

L'installation du service se fait simplement avec :

# aptitude install bind9

Cependant il est fortement recommandé (voir obligatoire !) de sécuriser le service DNS.

{i} Le nom du logiciel effectuant le service DNS (et donc du processus) est named, tandis que BIND (Berkeley Internet Name Daemon) est le nom du projet.

/!\ Veillez à bien installer bind9 (avec un 9 à la fin). Le paquet bind fournit quant à lui la version 8.x de BIND, ce qui n'est pas la même chose !

Configuration

Quand une zone est ajoutée ou mise à jour, lancez invoke-rc.d bind9 reload ou encore rndc reload.

{i} L'outil rndc (remote name daemon control) permet d'être plus fin dans les ordres envoyés à named, voir man rndc.

view/recursion

Il y a peu, en testant des outils en ligne de vérification de DNS, j'ai remarqué une erreur importante dans mon DNS, j'étais en "Open Server". Autrement dit, n'importe qui, dans le monde, peut utiliser mon DNS pour effectuer des requêtes autre que demander des informations sur mon réseau interne. Au passage, on peut utiliser cette propriété pour fournir de mauvaises informations au cache de Bind. Une documentation était fournit pour éviter d'être en "Open Server" : http://www.cymru.com/Documents/secure-bind-template.html. Le livre de Bind fournit aussi une bonne documentation : http://www.oreillynet.com/pub/a/oreilly/networking/news/views_0501.html

De manière basique, on peut donc créer une vue "interne" pour notre réseau, notre dmz, notre vpn, etc... qui autorise les requête récursives, et une vue "externe" qui n'autorise pas ce genre de requête.

// fichier /etc/bind/named.conf.local

acl "rezointerne" {
   192.168.1.0/24; // notre réseau interne
   10.XX.0.0/24; // notre rpv
   XX.XX.XX.XX/28; // notre plage d'adresse publique
};

view "interne" {
   match-clients { rezointerne; };
   recursion yes;

   zone "refer.ga" {
        type master;
        file "/etc/bind/local/interne.refer.ga.hosts";
   };
};

view "externe" {
   match-clients { any; };
   recursion no;

   zone "refer.ga" {
        type master;
        file "/etc/bind/local/externe.refer.ga.hosts";
   }; 
};

/!\ toutes vos zones doivent être définit dans toutes les vues (pour si vous en avez plus de 2). Donc si vous avez 2 vues, mais 15 zones, par exemple, vous pouvez intégrer vos zones dans un fichier à part utiliser un include pour que ce soit plus lisible.

DNSSEC

La gestion des noms de domaines est sujette à de nombreux types d'attaques informatiques. A la base, ces attaques consiste à transmettre aux serveurs "slave" ou aux "resolvers" des informations erronées afin de détourner le trafic destiné aux sites cibles de l'attaque.

Afin d'éviter ce problème, une serie de RFC ont permis l'extension du protocole DNS, lui permettant de supporter un certain nom d'opération cryptographique dans le but de:

A l'AUF, DNSSEC pourrait nous intéresser à plus d'un titre. D'abord pour sécuriser nos DNS, mais aussi il pourrait nous servir pour publier les certificats

Pour aller plus loin

Quelques liens :


CatégorieEbauche CatégorieRecommandationsARI

DNS (dernière édition le 2012-01-30 08:49:53 par NacerAdamouSaidou)