Est-il possible de créer votre propre serveur DNS racine?

14

Je suis curieux. Je continue à lire sur la façon dont nos FAI et nos intermédiaires Internet enregistrent et gardent une trace de toutes les demandes DNS, laissant essentiellement une trace de chapelure dans de nombreux journaux, et permettant également le détournement de DNS à des fins publicitaires (je vous regarde Cox Communications!).

Quelles que soient les autres méthodes de confidentialité / sécurité, j'aimerais en particulier savoir s'il est possible d'exécuter un serveur DNS sur votre propre réseau local, _qui contient en fait les informations de zone des serveurs DNS racine (pour .com, .net ,. org) domaines.

Je sais que vous pouvez configurer un DNS qui mappe simplement les machines de votre domaine, mais est-il possible de demander essentiellement une copie / un transfert des informations DNS racine à stocker sur votre propre serveur DNS afin que vous puissiez contourner la connexion Internet pour DNS informations sur la navigation Web?

J'espère être clair. Je ne veux pas que mon serveur DNS ait uniquement des informations sur mon réseau interne - je veux qu'il ait des informations en double que les gros serveurs DNS Internet ont, mais je voudrais que ces informations localement sur mon serveur DNS.

Y a-t-il quelque chose comme des transferts de zone BGP mais pour DNS?

Mise à jour: Existe-t-il des produits / logiciels OSS qui pourraient "gratter" ces informations de la chaîne DNS externe dans le cache local en grande quantité afin qu'ils soient prêts lorsque vous en avez besoin, par rapport à la mise en cache lorsque vous demandez explicitement les enregistrements de domaine?

pythonnewbie
la source

Réponses:

12

DNS par conception ne permet pas d'avoir une copie faisant autorité de toutes les zones, car il utilise un système de nommage hiérarchique.

Les serveurs racine font autorité pour identifier le serveur responsable du domaine de premier niveau (TLD) en question. Par exemple, la résolution www.example.netinterroge d'abord un serveur racine pour identifier le serveur de noms faisant autorité pour .net. Le .netserveur de noms identifiera le serveur de noms faisant autorité pour example.net, qui renverra ensuite l'enregistrement pour www.example.net.

Vous ne pouvez pas télécharger une copie de toutes les zones. Cependant, vous pouvez exécuter un serveur de noms de mise en cache local. Le serveur de noms de mise en cache fournira une copie locale de tous les enregistrements résolus, qui expirent en utilisant le Time To Live (TTL) spécifié pour l'enregistrement. Veuillez garder à l'esprit que mon explication est une description simpliste du protocole DNS, qui peut être explorée en détail en lisant les définitions dans la demande de commentaires .

Bien que le détournement de NXDOMAIN puisse être évité en exécutant un cache local, gardez à l'esprit que tout le trafic de résolution DNS sera toujours transmis via votre connexion Internet non crypté. Votre FAI pourrait potentiellement surveiller ce trafic et toujours voir la communication. Les contrats que vous avez avec votre FAI ainsi que vos lois locales vont être vos moyens définitifs pour établir comment vos communications sont traitées. Les contrats de votre FAI comprendront les conditions d'utilisation, les politiques de confidentialité et tout contrat supplémentaire que vous pourriez avoir avec votre FAI.

L'utilisation de protocoles chiffrés est l'une des meilleures méthodes pour assurer vos données contre l'écoute clandestine pendant le transit. Cependant, même cela n'a aucune garantie d'anonymat. Il existe des protocoles supplémentaires tels que Tor et Freenet , qui tentent d'introduire l'anonymat sur Internet, car il n'a jamais été conçu pour être vraiment anonyme.

Warner
la source
1
La réponse simple est non, vous ne pouvez pas. La réponse technique se trouve ci-dessus dans la réponse de Warner. Il n'y a pas un seul ensemble de serveurs contenant toutes les informations DNS. Les serveurs racine se réfèrent simplement à l'un des serveurs TLD qui renvoie la demande plus loin sur la ligne.
Rex
1
Certains FAI offrent un moyen de désactiver le détournement de NXDOMAIN. Certains FAI proposent un mécanisme basé sur les cookies (stupide et faux) pour "désactiver" le détournement de NXDOMAIN. Il existe également d'autres serveurs de noms qui peuvent être utilisés à la place du serveur de noms de votre FAI.
Brian
3

Quelques choses:

Si vous configurez votre serveur pour utiliser les indices racine au lieu d'utiliser des redirecteurs, vous n'avez pas à vous soucier des problèmes MITM (au moins des FAI et des pirates de l'air DNS). Pour toute résolution DNS externe, votre serveur interrogerait les indices racine, ce qui vous dirigerait vers les serveurs gTLD pour le domaine de premier niveau en question (.com, etc.), qui vous dirigerait ensuite vers les serveurs NS pour le domaine en question .

Si vous voulez vraiment créer votre propre serveur racine, vous pouvez certainement le faire, même si je ne vois pas en quoi cela vous ferait beaucoup de bien. Voici comment procéder sur un serveur DNS Windows:

Téléchargez le fichier de la zone racine DNS et enregistrez-le en tant que root.dns dans le répertoire% systemroot% \ system32 \ dns sur votre serveur DNS Windows, utilisez l'assistant de création de zone DNS pour créer une nouvelle zone de recherche directe principale nommée "." (sans les guillemets), désélectionnez l'option pour créer une zone intégrée AD, tapez "." pour le nom de zone (sans les guillemets), sélectionnez l'option pour utiliser un fichier existant et le champ du nom de fichier de zone sera automatiquement rempli avec le nom root.dns (s'il ne le saisit pas), laissez l'option à pas autorisez les mises à jour dynamiques telles quelles, cliquez sur le bouton Terminer après avoir parcouru chaque étape de l'assistant. Vous avez maintenant un serveur racine avec des zones et des enregistrements de zone pour tous les serveurs gTLD.

Notez que cela désactivera les options de transfert et d'indications de racine sur le serveur (puisque votre serveur est maintenant un serveur racine) et notez également que si les informations gTLD changent, il n'y a aucun moyen pour votre serveur d'être informé de ces changements.

joeqwerty
la source
Rien n'empêche le FAI de détourner l'IP des serveurs racine (sauf DNSsec) ... A part ça, correct.
Chris S
1

Pour les serveurs étroitement liés, il existe des transferts de zone. Ceux-ci fonctionnent un peu comme les annonces BGP. Pour des raisons de sécurité, ceux-ci sont généralement bloqués pour les autres serveurs.

Si vous exécutez un serveur de noms en cache, il copiera la liste des serveurs racine et aura très bientôt les racines pour .com, .net, etc. Il y a une très bonne raison pour que DNS soit distribué. Sinon, tout le monde travaillerait avec des données obsolètes. La taille de la base de données serait assez importante et la majorité des données ne vous intéressent pas.

Il existe des options pour réduire le risque d'empoisonnement DNS et de bons logiciels traitent les problèmes dès qu'ils deviennent connus. Il existe des organisations qui travaillent à fournir des données aseptisées qui peuvent être utilisées comme fournisseurs en amont. Ceux-ci filtreront certaines tentatives d'empoisonnement. Envisagez d'utiliser OpenDNS ou Google en tant que fournisseurs en amont.

Les zones DNS racine sont maintenant signées, et je vois de plus en plus mon serveur de messagerie signaler que les données DNS ont été signées. La signature du DNS a été signalée comme une exigence pour IPV6. Le DNS signé rend l'empoisonnement du cache très difficile, mais ajoute à la difficulté de gérer le DNS.

BillThor
la source
1

Vous pouvez certainement configurer votre propre serveur et le rendre autoritaire pour la racine, mais je ne sais pas comment vous pouvez le préremplir avec les fichiers de zone des serveurs racine. Vous ne pouvez pas simplement demander un transfert de zone, donc je suppose que vous devrez le remplir en gardant vos caches.

Modifiez les root.hints sur vos autres serveurs de noms pour les diriger vers votre serveur racine privé et laissez les tests commencer.

Mais gardez à l'esprit que les serveurs racine ne savent que les serveurs faisant autorité pour les TLD, rien d'autre. Vous devrez essentiellement recréer toute la hiérarchie des serveurs, ce qui semble être une tâche impossible.

Martijn Heemels
la source
0

Oui, l'une des caractéristiques des serveurs DNS est la mise en cache locale des requêtes fréquemment demandées, en contournant trop souvent le ttl spécifié.

Vous pouvez certainement exécuter votre propre DNS, pas de problème. Mais les serveurs racine et les serveurs de domaine de premier niveau, vous devrez demander à l'oncle sam.

L'enregistrement de toutes les requêtes DNS est possible, mais serait insensé.


la source
Mais s'appuyer sur le cache impliquerait que vous avez déjà dû envoyer une demande DNS pour le domaine en question, ce qui va à l'encontre du but de tenter d'avoir uniquement (ou principalement) des demandes DNS locales uniquement.
pythonnewbie