Serveur DNS : Différence entre versions

De Wiki NCad
Aller à : navigation, rechercher
(Principe de fonctionnement)
(Filtrage DNS via RPZ)
Ligne 187 : Ligne 187 :
  
 
=== Déclaration de la zone RPZ ===
 
=== Déclaration de la zone RPZ ===
 +
 +
La déclaration de la zone s'effectue dans le fichier '''/etc/bind9/named.conf'''. Il faut y ajouter une section nommée '''response-policy''' dans la section options et y renseigner le nom de la zone RPZ :
 +
 +
options {
 +
  ...
 +
  response-policy {zone "rpz.lan"}
 +
}
  
 
=== Création de la zone ===
 
=== Création de la zone ===

Version du 6 août 2012 à 15:40

Introduction

Définition du DNS

Un serveur de DNS (Dynamic Name Server) - signifiant en français Serveur de Nom de Domaine - est un service permettant d'associer à l'adresse IP d'une machine (adresse permettant à une machine d'être identifier sur un réseau informatique) un nom de domaine.

Une adresse IPv4 est composé de 4 blocs de 8 octets ou pour IPv6 de 8 bloc de 16 octets. Quelques exemples d'adresses :

  • IPv4 : 193.54.12.3; 192.168.5.7, 10.255.1.7.
  • IPv6 : 2001:0045:f8b5:c101::5.

Ces adresses sont particulièrement difficiles à mémoriser et cela n'est pas exploitable pour le web par exemple. Sans DNS, au lieu de saisir le nom d'un site web - par exemple http://google.fr - il faudrait utiliser l'adresse IP du serveur hébergeant le site web en question : http://173.194.34.63.


Vocabulaire

  • Nom de domaine : Un nom de domaine désigne une adresse internet. Il se compose principalement du domaine et de l'extension. Ces deux parties étant séparée par un point. Exemple : ncad.fr avec le domaine ncad et son extension fr.
  • Résolveur DNS : appelé aussi serveur DNS. Ils permettent d'identifier quelle adresse IP est rattachée au nom de domaine.
  • Zone DNS : La zone DNS est matérialisé par un fichier texte contenant tous les enregistrements nécessaire ainsi que la déclaration de la zone permettant de résoudre un nom de domaine.
  • Enregistrement : Les enregistrements sont utilisés pour renseigner une zone DNS. Ils permettent de définir des sous-domaines - de configurer la zone DNS ou encore de paramétrer le service de courrier électronique.

Enregistrements DNS

Les enregistrements DNS permettent de configurer une zone DNS. Il existe plusieurs types d'enregistrement avec des usages bien précis.

A : Permet d'affecter une adresse IPv4 à un nom de domaine.

AAAA : Permet d'affecter une adresse IPv6 à un nom de domaine.

CNAME : Permet de rediriger un nom de domaine vers un autre nom de domaine.

MX : Permet de définir les serveurs de messagerie du nom de domaine.

PTR : Permet d'affecter un nom de domaine à une adresse IP.

SOA : Permet de déclarer la zone DNS du nom de domaine.

SPF : Permet de définir les serveurs mails autorisés à délivrer les messages dont l'adresse expéditeur comporte le nom de domaine.

Installation

Dépôts Ubuntu

Depuis un serveur Ubuntu il suffit d'installer le paquet bind9 :

ICON Terminal.png

sudo apt-get install bind9

Configuration

Fichier /etc/bind/named.conf.options

Si vous disposez de plusieurs sous-réseaux et que votre serveur doit être sollicité par ces machines de sous-réseaux différents, il sera alors nécessaire d'autoriser les requêtes depuis ces sous-réseaux vers votre serveur de DNS. Pour cela il faut ajouter la directive allow-query dans Bind et y définir les ranges IP de vos sous réseaux :

Allow-query {
  10.0.0.0/28;
  10.0.0.32/28;
};

Serveur DNS Public

Pour un serveur de DNS publique - toutes les machines peuvent interroger le serveur - on renseignera plutôt comme ceci la directive Allow-query :

Allow-query {
  any;
};
ICON boxWarning.png

Chaque déclaration se termine par un ";" - de même pour l'accolade finale.

Fichier /etc/bind/named.conf.local

Ce fichier regroupe l'ensemble des zones gérées par le serveur. C'est dans ce fichier que doit être déclaré la zone à gérer par Bind en y renseignant notamment :

  • le nom dns de la zone;
  • le mode de gestion (maître/esclave);
  • le chemin vers le fichier de configuration de la zone.

On va par exemple déclarer ici trois zones :

  • net.ncad.fr qui correspond au nom de domaine net.ncad.fr;
  • 0.0.10.in-addr.arpa qui correspond à la gestion du reverse DNS pour le réseau 10.0.0.0/24.
  • 0.0.a.b.0.f.e.f.0.d.1.4.1.0.0.2.ip6.arpa qui correspond à la gestion du reverse DNS pour le réseau "2001:41d0:fef0:ba00/64".

La déclaration de ces zones dans le fichier /etc/bind/named.conf.options donne les lignes suivantes :

 zone "net.ncad.fr" {
         type master;
         file "/etc/bind/db.net.ncad.fr";
 };
 zone "0.0.10.in-addr.arpa" {
         type master;
         notify no;
         file "/etc/bind/db.10";
 };
 zone "0.0.a.b.0.f.e.f.0.d.1.4.1.0.0.2.ip6.arpa" {
         type master;
         notify no;
         file "/etc/bind/db.0.0.a.b.0.f.e.f.0.d.1.4.1.0.0.2";
 };

Définition des zones DNS

Dans ce cas précis il faudra créer deux fichiers de configuration à la racine /etc/bind/ :

  • db.net.ncad.fr; pour notre nom de domaine;
  • db.10; pour notre reverse DNS.

Création d'une zone DNS

Nous définissons en premier lieu les informations de la zone :

$TTL    604800
@       IN      SOA     a-ncad-dns.net.ncad.fr. tech.ncad.fr. (
                       2012071201       ; Serial
                       10800   ; Refresh
                       3600    ; Retry
                       604800  ; Expire
                       38400 ) ; Negative Cache TTL
;
@       IN      NS      a-ncad-dns.net.ncad.fr.
a-ncad-dns      IN      A       10.0.0.37

Ensuite nous pouvons ajouter des enregistre additionnels :

machine-a       IN      A       10.0.0.30

Ce qui nous donne au final le fichier de configuration suivant :

$TTL    604800
@       IN      SOA     a-ncad-dns.net.ncad.fr. tech.ncad.fr. (
                    2012071202         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      a-ncad-dns.net.ncad.fr.
a-ncad-dns      IN      A       10.0.0.37
machine-a       IN      A       10.0.0.30
ICON Light.png
A chaque modification de ce fichier - ajout/suppression d'enregistrements - vous devez incrémenter le Serial (synthaxe du sérial : aaaammjjvv).

Création d'une zone DNS inverse (IPv4)

Comme pour le fichier précédent, nous devons renseigner les informations de la zone :

$ttl 38400
0.0.10.in-addr.arpa.	IN	SOA	a-ncad-dns.net.ncad.fr. tech.ncad.fr. (
                       2012071101       ; Serial
                       10800   ; Refresh
                       3600    ; Retry
                       604800  ; Expire
                       38400 ) ; Negative Cache TTL
0.0.10.in-addr.arpa.	IN	NS	a-ncad-dns.net.ncad.fr.

Dans le fichier précédent nous avions attribué le nom machine-a.net.ncad.fr à l'adresse IP 10.0.0.30. Ici nous allons faire l'inverse : associer l'IP 10.0.0.30 au nom de machine machine-a.net.ncad.fr.

30.0.0.10.in-addr.arpa. IN     PTR     machine-a.net.ncad.fr

Au final, nous obtenons le fichier de configuration suivant :

$ttl 38400
0.0.10.in-addr.arpa.	IN	SOA	a-ncad-dns.net.ncad.fr. tech.ncad.fr. (
                       2012071102       ; Serial
                       10800   ; Refresh
                       3600    ; Retry
                       604800  ; Expire
                       38400 ) ; Negative Cache TTL
0.0.10.in-addr.arpa.	IN	NS	a-ncad-dns.net.ncad.fr.
30.0.0.10.in-addr.arpa. IN     PTR     machine-a.net.ncad.fr
ICON Light.png
A chaque modification de ce fichier - ajout/suppression d'enregistrements - vous devez incrémenter le Serial.

Création d'une zone DNS inverse (IPv6)

ICON Build.png
section en construction

Cette section doit être complétée.

Filtrage DNS via RPZ

ICON Information.png

Cette fonctionnalité est disponible depuis la version 9.8.0 de Bind.

Principe de fonctionnement

On définit sur le serveur DNS une zone DNS RPZ. Lorsqu'une requête de résolution DNS sera soumise à Bind, il va vérifier si la zone demandée est présente dans la zone RPZ. Si c'est le cas, le serveur DNS retournera un code d'erreur indiquant au client qu'il n'a pas été en mesure de résoudre le nom de domaine.

Cette solution de filtrage est contournable : il suffit d'interroger un autre serveur DNS. Cependant, si le protocole DNS est limité seulement à l’envoi de requête sur le serveur DNS filtré il ne sera pas possible d'utiliser un service DNS tiers.

Déclaration de la zone RPZ

La déclaration de la zone s'effectue dans le fichier /etc/bind9/named.conf. Il faut y ajouter une section nommée response-policy dans la section options et y renseigner le nom de la zone RPZ :

options {
 ...
 response-policy {zone "rpz.lan"}
}

Création de la zone

Renseignement de la zone

Commandes utiles

Recharger la configuration

Une fois l'édition des fichiers terminés, il faut redémarrer Bind9. Pour cela, il suffit de taper en ligne de commande :

ICON Terminal.png

sudo /etc/init.d/bind9 restart