« DNS: Configuration des vues dans Bind » : différence entre les versions
Annulation des modifications 1882 de Adadov (discussion) |
(by SublimeText.Mediawiker) |
||
Ligne 9 : | Ligne 9 : | ||
La séparation est faite en fonction de l'IP du client. | La séparation est faite en fonction de l'IP du client. | ||
= Configuration générale du serveur = | == Configuration générale du serveur == | ||
== Gestion des logs == | === Gestion des logs === | ||
Pour gérer les logs on utilisera simplement le syslog du système. | Pour gérer les logs on utilisera simplement le syslog du système. | ||
Ligne 27 : | Ligne 27 : | ||
</file> | </file> | ||
== Configuration globale == | === Configuration globale === | ||
La configuration est plutôt standard, on écoute sur toutes les interfaces en IPv4 et IPv6, on utilise le dossier <code>/var/named</code> comme base pour les fichiers de zone. | La configuration est plutôt standard, on écoute sur toutes les interfaces en IPv4 et IPv6, on utilise le dossier <code>/var/named</code> comme base pour les fichiers de zone. | ||
Ligne 52 : | Ligne 52 : | ||
</file> | </file> | ||
= Configuration de la vue interne = | == Configuration de la vue interne == | ||
La vue interne référence toutes les zones internes et les zones externes qui nécessitent d'utiliser des IP internes dans la configuration des zones. | La vue interne référence toutes les zones internes et les zones externes qui nécessitent d'utiliser des IP internes dans la configuration des zones. | ||
Ligne 92 : | Ligne 92 : | ||
</file> | </file> | ||
= Configuration de la vue externe = | == Configuration de la vue externe == | ||
La vue externe ne référence que les zones publiques, elle sera utilisée par tous les clients qui ne sont pas dans les plages définies pour la vue interne. | La vue externe ne référence que les zones publiques, elle sera utilisée par tous les clients qui ne sont pas dans les plages définies pour la vue interne. |
Version du 12 février 2015 à 07:57
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.
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.
La séparation est faite en fonction de l'IP du client.
Configuration générale du serveur
Gestion des logs
Pour gérer les logs on utilisera simplement le syslog du système. 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.
<file> logging { channel default_debug { syslog local6; severity info; };
category default { default_debug; }; }; </file>
Configuration globale
La configuration est plutôt standard, on écoute sur toutes les interfaces en IPv4 et IPv6, on utilise le dossier /var/named
comme base pour les fichiers de zone.
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.
<file> options { listen-on port 53 { any; }; listen-on-v6 { any; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; version "Nothing to display"; }; </file>
On autorise le controle du serveur via RNDC uniquement depuis localhost.
<file> controls { inet 127.0.0.1 allow { localhost; }; }; </file>
Configuration de la vue interne
La vue interne référence toutes les zones internes et les zones externes qui nécessitent d'utiliser des IP internes dans la configuration des zones.
Le filtrage se fait via la directive "match-clients", on listera dedans toutes les plages IP qui doivent être dirigés vers cette vue. La première vue dont les règles correspondent au client sera utilisée.
On a placé les directives allow-query et allow-recursion ici afin de les appliquer aux clients de cette vue.
<file> view "internal" { match-clients { 192.168.0.0/24; 127.0.0.1; ::1; }; allow-query { any; }; allow-recursion { any; };
zone "exemple.loc" IN { type master; file "internal/data/exemple.loc"; allow-update { key DHCP_UPDATER; }; };
zone "0.168.192.in-addr.arpa" IN { type master; file "internal/data/reverse.zone"; allow-update { key DHCP_UPDATER; }; };
zone "ipv6.exemple.net" IN { type master; file "internal/data/ipv6.exemple.net"; allow-update { key DHCP_UPDATER; }; };
zone "exemple.net" IN { type master; file "internal/data/exemple.net"; }; }; </file>
Configuration de la vue externe
La vue externe ne référence que les zones publiques, elle sera utilisée par tous les clients qui ne sont pas dans les plages définies pour la vue interne.
On a placé les directives allow-query et allow-recursion ici afin de les appliquer aux clients de cette vue. allow-recursion vaut "none" afin d'interdire l'utilisation du serveur comme serveur DNS pour une station de travail.
<file> view "external" { match-clients { any; }; allow-query{ any; }; allow-recursion { none; };
zone "exemple.net" IN { type master; file "external/data/exemple.net"; }; }; </file>