Bind : résolution des noms internes possible de l'exterieur

Hello,

J’ai un petit soucis qui n’en est pas vraiment un, mais d’un point de vue sécurité, je tique un peu quand même, voilà un exemple de ma conf :
J’ai un domaine, abcdefg.com, qui existe, enregistré et géré par mon serveur de noms. Sur mon serveur, je déclare une machine avec le nom “test”. Donc dans mon réseau local, ma machine est bien joignable si je fais un “ping test.abcdefg.com”. Maintenant, si je fais un “nslookup test.abcdefg.com”, toujours à l’intérieur de mon réseau, ça résoud sans problème, je chope mon adresse locale.
Le truc qui me pose problème, c’est que lorsque je fais le même nslookup depuis l’exterieur de mon réseau, je résoud encore ! Ok, je récupère l’adresse ip locale, mais quand même… pour une personne qui connait le nom local de ma machine, ça peut lui donner des indications sur l’archi de mon réseau et ça, j’aimerais que ça ne soit pas possible.

Y-a-t il une option à désactiver dans bind pour interdire la résolution locale des machines depuis l’exterieur ? genre avec une ACL ou autre ?

merci

Si je comprends bien, tu as une zone DNS qui contient à la fois des enregistrements à usage interne et des enregistrements à usage global ?

Dans ce cas tu peux définir deux “vues” (view) ayant chacune une version différente de la zone : une contenant les enregistrements publics et privés, accessible seulement depuis le réseau local, et une contenant seulement les enregistrements publics, accessible depuis le reste du monde.

Plus précisement tu fais quelque chose de ce type:

Fichier /etc/bind/named.conf

include "/etc/bind/named.conf.options"; acl "cestalinterieur" { { 127.0.0.0/8; }; { 10.0.0.0/8; }; { 192.168.0.0/16; }; }; // en fait tu y mets les réseaux de confiance view "interieur" { match-clients { cestalinterieur ; }; zone "." { type hint; file "/etc/bind/db.root"; }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; include "/etc/bind/named.conf.local.interieur"; }; view "exterieur" { match-clients { any ; }; zone "." { type hint; file "/etc/bind/db.root"; }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; include "/etc/bind/named.conf.local.exterieur"; }; /etc/bind/named.conf.local.interieur et /etc/bind/named.conf.local.exterieur contiennent les zones définies pour l’intérieur et pour l’extérieur. Je crois qu’on ne peut pas mettre de zone en dehors des «vues» (= views). J’ai eu ce souci également (un DNS «multi usage»), j’avais commencé par faire deux DNS puis j’ai découvert cette notion de «views».

merci pour ces deux réponses.

Mais concrètement, d’un point de vue sécurité, est-ce que ça représente vraiment un problème ? Les gens pas deviner le nom de mes machines, partant de ça, il y peut de risque que des infos transitent.

En fait, ma question est plutôt ! est-ce que ça vaut le coup de faire une modif assez importante pour ça ? Que feriez-vous à ma place ?

La modification est très rapide et se fait en 15 montre en main en terminant par un
/etc/init.d/bind9 reload
Personnellement, j’ai fait cette modification et avant je gérais deux DNS (un pour l’intérieur et un pour l’extérieur…)

Même si l’apport en terme de sécurité est discutable, tu auras au moins la satisfaction d’être conforme aux RFC (pas de diffusion d’adresses privées sur l’internet public). D’autre part, si un serveur DNS externe sert de secondaire/esclave pour ta zone, ce qui est normalement obligatoire pour un domaine public, celui-ci n’aura que la version publique de la zone.