2 votes

est-il possible pour un serveur de savoir quel client (IP) a fait une requête DNS pour son nom de domaine ?

Supposons que je possède un nom de domaine, par exemple, myproxy.com . Ensuite, j'ai de nombreux sites web, comme kitty.myproxy.com , wow.myproxy.com Je veux configurer un serveur DNS faisant autorité pour le nom de domaine.

J'espère que si un utilisateur veut visiter ces sites Web, lorsque le navigateur envoie une requête DNS, celle-ci arrivera finalement au serveur DNS faisant autorité. De cette façon, l'autorité peut obtenir l'IP de l'hôte qui a fait la requête DNS.

Je m'attends à ce que toutes les requêtes DNS pour ces sites Web soient envoyées au serveur DNS faisant autorité afin que je puisse connaître tous les hôtes qui ont effectué les requêtes DNS. Est-ce possible ou non ?

Je crains que d'autres serveurs DNS ne mettent en cache les enregistrements DNS, de sorte que ces serveurs DNS répondent aux requêtes DNS et que ces requêtes ne soient pas transmises au serveur DNS faisant autorité. Est-il possible d'empêcher cela ?

Note : Je fais un travail de recherche. Mon objectif est de créer un proxy. Il y a beaucoup de serveurs web qui s'enregistrent sur le proxy. Seul le proxy connaît l'IP de ces serveurs web. Quand un navigateur veut visiter un de ces serveurs web, il peut obtenir l'adresse IP du proxy par une requête DNS. Ensuite, il se connecte au proxy. J'espère que le proxy peut savoir exactement quel serveur web ce navigateur veut visiter lorsque le TCP SYN arrive (avant la requête HTTP, en effet, en analysant la requête HTTP, le proxy peut savoir quel serveur web le navigateur veut visiter). Ainsi, si le navigateur Web effectue une requête DNS et que cette requête est connue du proxy, ce dernier peut alors mettre en cache une correspondance entre le serveur Web et l'IP hôte du navigateur. Lorsque le TCP SYN arrive, le proxy vérifie immédiatement le mappage et sait quel serveur web le navigateur veut réellement visiter. Merci !

8voto

Lark Points 1640

Qu'essayez-vous d'accomplir ? A mon avis, vous essayez de faire quelque chose et vous pensez que "surveiller les DNS est la solution" alors que ça ne marche pas.

Si vous cherchez à voir un hit d'une IP cliente à chaque requête DNS, cela n'arrivera jamais. Le DNS est en couches, et les clients sont configurés de manière à ce qu'ils atteignent un serveur DNS local, qui finira par atteindre votre serveur DNS.

Si vous cherchez à voir une requête (de quelqu'un) à chaque demande DNS, vous pouvez essayer de régler votre TTL sur quelque chose de petit, comme une seconde. Vous verrez alors un hit de quelqu'un, quelque part. Ce n'est peut-être pas une solution à 100 %, car il faut que tout le monde respecte votre TTL, ce qui n'est pas garanti.

UPDATE

Si je lis correctement, vous essayez d'associer une requête DNS à une future requête HTTP. Cela échouera pour plusieurs raisons.

  1. Mise en cache. Les mappages DNS - IP sont très faciles à mettre en cache, et donc ils sont mis en cache de manière intensive. Même le réglage de la TTL ne sera pas d'une grande aide, car certains FAI ignorent la TTL et mettent en cache pendant une heure ou un jour, quel que soit le réglage. Les navigateurs ont également leur propre cache DNS. Il y a trop de niveaux pour que vous puissiez tous les contrôler.

  2. Plusieurs utilisateurs - une seule adresse IP. Entre le NAT (et le NAT de qualité opérateur se profile à l'horizon) et les utilisateurs multiples normaux par machine, il n'est plus possible d'associer une IP à un navigateur (même si cela n'a jamais été le cas). Même des navigateurs multiples par utilisateur ou des onglets multiples pourraient perturber ce système.

  3. Les gens peuvent utiliser le DNS pour d'autres raisons. Que se passe-t-il si quelqu'un fait un nslookup sur un domaine, mais tombe ensuite sur un autre (avec l'IP dans le cache). Vous feriez suivre le mauvais site.

  4. Points de sortie multiples. Bien que cela soit moins courant aujourd'hui, il était très fréquent que les FAI envoient des requêtes par proxy et il arrivait qu'un seul abonné reçoive plusieurs points de sortie (ce que vous voyez comme son IP) au cours d'une seule session. AOL le faisait souvent, et comme ils ont perdu en popularité, j'ai vu d'autres outils (Opera mobile) utiliser des proxys également.

  5. La redirection DNS ne fonctionne pas de cette manière . Si quelqu'un essaie de rechercher un nom d'hôte sur votre site, la grande majorité du temps, il finira par demander soit le serveur 8.8.8.8 de Google, soit le serveur DNS récursif de son fournisseur d'accès. Dans les deux cas, l'adresse IP qui interroge votre serveur DNS pour un nom d'hôte sera no être la même que l'adresse IP source du navigateur web qui vient voir un moment plus tard.

En bref, vous ne pouvez pas y arriver en partant d'ici. Les adresses IP ne sont pas (et n'ont jamais été) des identifiants uniques 1-1 pour un utilisateur. Vous briseriez HTTP. Vous êtes coincé en regardant le flux HTTP et en l'analysant. Assurez-vous que votre proxy prend en charge la fonction Keep-Alive et vous atténuerez un peu le problème.

1voto

Dss Points 351

Comment le navigateur/utilisateur pourrait-il savoir quelle requête http effectuer afin de permettre à votre proxy de déterminer le serveur réellement demandé ?

Si vous prévoyez d'avoir un portail à partir duquel l'utilisateur sélectionnerait le serveur qu'il souhaite, vous pourriez générer des sous-domaines aléatoires pour votre proxy en fonction des choix/de l'accessibilité de l'utilisateur.

Vous pouvez voir une mise en œuvre similaire sur la démonstration d'une attaque de rebind où l'utilisateur se rend sur un serveur et, puisque le serveur connaît l'adresse IP de l'utilisateur, il crée un nouveau sous-domaine généré de manière aléatoire, en attribuant l'adresse IP du serveur souhaité dans l'enregistrement DNS et redirige l'utilisateur vers ce sous-domaine.

Vous ne trouvez pas l'adresse IP de l'utilisateur sur le serveur DNS.

Comme d'autres l'ont écrit précédemment, vous ne devriez pas vous fier au TTL, car tous les résolveurs DNS ne le respectent pas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X