Modification de DNS: Configuration des vues dans Bind

Attention : vous n’êtes pas connecté(e). Votre adresse IP sera visible de tout le monde si vous faites des modifications. Si vous vous connectez ou créez un compte, vos modifications seront attribuées à votre propre nom d’utilisateur(rice) et vous aurez d’autres avantages.

La modification peut être annulée. Veuillez vérifier les différences ci-dessous pour voir si c’est bien ce que vous voulez faire, puis publier ces changements pour finaliser l’annulation de cette modification.

Version actuelle Votre texte
Ligne 1 : Ligne 1 :
<metadesc>La configuration de vues dans bind permet d'avoir différents environnements dans le même serveur et ainsi avoir des comportements différents. Par exemple pour un SOA qui sert aussi de DNS interne.</metadesc>
{{Auteur|Adadov}}
{{Auteur|Adadov}}
__TOC__
__TOC__


L'utilisation de vues sur un serveur DNS revient pratiquement à multiplier les serveurs DNS, chaque vue aura son lot de zones et ses propres critères d'accès. Elles vont permettre de centraliser la gestion des serveurs DNS au lieu d'installer de multiples serveurs.
L'utilisation de vues sur un serveur DNS permet de séparer les zones qui seront renvoyées en fonction de différents paramètres.
Dans l'exemple suivant il a été choisi de séparer en fonction des clients qui viennent interroger le serveur afin de ne pas renvoyer les mêmes zones pour les clients internes et externes.


== Problématique ==
Les clients externes auront uniquement accès aux zones publiques, alors que les clients internes auront accès aux zones de recherche locales ainsi qu'à une version modifiée des zones externes pour éviter les problèmes de routage.


* Nous avons besoin de diffuser des zones DNS en tant que {{abbr|SOA|Source Of Authority}} et de gérer les requêtes des clients du réseau interne.
La séparation est faite en fonction de l'IP du client.
* Les clients internes doivent accéder à la zone DNS de recherche local mais elle ne doit pas être accessible depuis l'extérieur.
* Les clients internes doivent pouvoir effectuer des requêtes récursives contrairement aux clients externes.
* Pour les serveurs placés derrière le NAT, les IP renvoyées aux clients ne doivent pas être les mêmes s'ils sont internes ou externes. On se retrouve sinon avec des routes asymétrique sur le réseau et souvent les connexions n'aboutissent pas.
* Le serveur DNS n'a accès qu'à un seul réseau physique/logique.
 
Voilà donc le mini cahier des charges, il serait certainement plus simple de monter deux serveurs DNS, un pour les clients internes et un pour les SOA. Mais on serait obligés de se disperser pour l'administration et tout ce qui va avec.
 
On peut choisir de diriger les clients sur une vue ou une autre de multiples manières mais dans le cas présent, la séparation est faite en fonction de l'adresse IP du client. Nous pourrons ainsi séparer les clients externes des clients internes vu que nous connaissons toutes les pages des réseaux internes.


== Configuration générale du serveur ==
== Configuration générale du serveur ==
Ligne 24 : Ligne 16 :
J'ai choisi le local6 car il n'est pas utilisé par autre chose et donc il permet de séparer les logs du serveur DNS du reste.
J'ai choisi le local6 car il n'est pas utilisé par autre chose et donc il permet de séparer les logs du serveur DNS du reste.


<syntaxhighlight lang=text>
<file>
logging {
logging {
channel default_debug {
channel default_debug {
Ligne 33 : Ligne 25 :
category default { default_debug; };
category default { default_debug; };
};
};
</syntaxhighlight>
</file>


=== Configuration globale ===
=== Configuration globale ===
Ligne 41 : Ligne 33 :
La direction version permet quand à elle de cacher la version du serveur, ça permet d'éviter des tentatives d'attaque ciblées sur la version actuelle du serveur.
La direction version permet quand à elle de cacher la version du serveur, ça permet d'éviter des tentatives d'attaque ciblées sur la version actuelle du serveur.


<syntaxhighlight lang=text>
<file>
options {
options {
listen-on port 53 { any; };
listen-on port 53 { any; };
Ligne 50 : Ligne 42 :
version "Nothing to display";
version "Nothing to display";
};
};
</syntaxhighlight>
</file>


On autorise le controle du serveur via RNDC uniquement depuis localhost.
On autorise le controle du serveur via RNDC uniquement depuis localhost.


<syntaxhighlight lang=text>
<file>
controls {
controls {
inet 127.0.0.1 allow { localhost; };
inet 127.0.0.1 allow { localhost; };
};
};
</syntaxhighlight>
</file>


== Configuration de la vue interne ==
== Configuration de la vue interne ==
Ligne 69 : Ligne 61 :
On a placé les directives allow-query et allow-recursion ici afin de les appliquer aux clients de cette vue.
On a placé les directives allow-query et allow-recursion ici afin de les appliquer aux clients de cette vue.


<syntaxhighlight lang=text>
<file>
view "internal" {
view "internal" {
match-clients { 192.168.0.0/24; 127.0.0.1; ::1; };
match-clients { 192.168.0.0/24; 127.0.0.1; ::1; };
Ligne 84 : Ligne 76 :
type master;
type master;
file "data/internal/reverse.zone";
file "data/internal/reverse.zone";
allow-update { key DHCP_UPDATER; };
};
zone "ipv6.exemple.net" IN {
type master;
file "data/internal/ipv6.exemple.net";
allow-update { key DHCP_UPDATER; };
allow-update { key DHCP_UPDATER; };
};
};
Ligne 92 : Ligne 90 :
};
};
};
};
</syntaxhighlight>
</file>


== Configuration de la vue externe ==
== Configuration de la vue externe ==
Ligne 101 : Ligne 99 :
allow-recursion vaut "none" afin d'interdire l'utilisation du serveur comme serveur DNS pour une station de travail.
allow-recursion vaut "none" afin d'interdire l'utilisation du serveur comme serveur DNS pour une station de travail.


<syntaxhighlight lang=text>
<file>
view "external" {
view "external" {
match-clients { any; };
match-clients { any; };
Ligne 110 : Ligne 108 :
type master;
type master;
file "data/external/exemple.net";
file "data/external/exemple.net";
};
zone "exemple.com" IN {
type master;
file "data/external/exemple.com";
};
};
};
};
</syntaxhighlight>
</file>
 
[[Category:DNS]]
[[Category:DHCP-DNS]]
[[Category:Networking]]
Notez bien que toutes les contributions à Adadov.net wiki peuvent être modifiées, transformées ou supprimées par d’autres utilisateurs. Si vous ne désirez pas que vos écrits soient modifiés contre votre gré, merci de ne pas les soumettre ici.
Vous nous promettez aussi que vous avez écrit ceci vous-même ou que vous l’avez copié d’une source placée dans le domaine public ou d’une ressource libre similaire (voir AdadovNet:Copyrights pour plus de détails). N’utilisez aucun travail sous droits d’auteur sans autorisation expresse !
Annuler Aide pour la modification (s’ouvre dans une nouvelle fenêtre)

Modèles utilisés par cette page :