é possível para um servidor saber qual cliente (IP) fez uma consulta DNS para seu nome de domínio?

2

Vamos supor que eu tenha um nome de domínio, por exemplo, myproxy.com . Então eu tenho muitos sites, como kitty.myproxy.com , wow.myproxy.com Eu quero configurar um servidor DNS autoritativo para o nome de domínio.

Espero que, se um usuário quiser visitar esses sites, quando o navegador enviar uma consulta DNS, a consulta DNS finalmente chegará ao servidor DNS autoritativo. e desta forma, o autoritativo pode obter o IP do host que fez a consulta DNS.

minha expectativa é: todas as consultas DNS para esses sites devem ser enviadas para o servidor DNS autoritativo para que eu possa conhecer todos os hosts que fizeram as consultas DNS. É possível ou não?

Eu tenho medo de alguns outros servidores DNS que armazenam em cache os registros DNS, para que esse servidor DNS responda às consultas DNS, então essas consultas não são encaminhadas para o servidor DNS autoritativo. É possível evitar isso?

Nota: Estou fazendo um trabalho de pesquisa. Minha meta é fazer um proxy. Existem muitos servidores da web que se registram no proxy. Apenas o proxy conhece o IP desses servidores da web. Quando um navegador deseja visitar um desses servidores da Web, ele pode obter o IP do proxy da consulta DNS. E então ele se conecta ao proxy. Espero que o proxy possa saber exatamente qual servidor web este navegador quer visitar quando o TCP SYN vier (antes da requisição HTTP, de fato, analisando a requisição HTTP, o proxy pode saber qual servidor web o navegador quer visitar) . Portanto, se o navegador da Web fizer uma consulta DNS e essa consulta for conhecida pelo proxy, o proxy poderá armazenar em cache um mapeamento entre o servidor da Web e o IP do host do navegador. Quando o TCP SYN é fornecido, o proxy verifica imediatamente o mapeamento e conhece qual servidor da Web o navegador realmente deseja visitar. obrigado!

    
por misteryes 28.05.2013 / 21:19

2 respostas

7

O que você está tentando realizar? Meu palpite é que você está tentando fazer algo e acha que "monitorar o DNS é a resposta" quando não funciona.

Se você deseja ver um hit de um IP cliente em cada solicitação de DNS, isso nunca acontecerá. O DNS é colocado em camadas e os clientes são configurados para acessar um servidor DNS local, que eventualmente atingirá seu servidor DNS.

Se você deseja ver uma solicitação (de alguém) em todas as solicitações de DNS, tente ajustar seu TTL para algo pequeno, como um segundo. Você veria então um golpe de alguém, em algum lugar. Isso pode não ser 100% - depende de todos que respeitam o seu TTL, o que não é um dado.

UPDATE

Se eu ler corretamente, você está tentando associar uma solicitação DNS a uma solicitação HTTP futura. Isso falhará por vários motivos.

  1. Armazenamento em cache. Os mapeamentos DNS - IP são muito acessíveis e, portanto, são muito armazenados em cache. Mesmo a configuração do TTL não ajudará muito, já que alguns ISPs ignoram o TTL e o cache por uma hora / dia, independentemente da configuração. Os navegadores também têm seu próprio cache de DNS. Existem muitos níveis para você controlar todos.

  2. Vários usuários - um endereço IP. Entre NAT (e NAT de Carrier Grade está no horizonte) e vários usuários normais por máquina, você não pode mais mapear um IP para um navegador (não que você realmente pudesse). Até mesmo vários navegadores por usuário ou várias guias podem desativar esse sistema.

  3. As pessoas podem usar o DNS por outros motivos. E se alguém apenas fizer um nslookup em um domínio, mas depois acertar outro (com o IP no cache). Você encaminharia o site errado.

  4. Vários pontos de saída. Embora menos comum agora, costumava ser muito comum os provedores enviarem solicitações por procuração e, às vezes, um único assinante pode ser rotacionado em pontos de saída (o que você veria como seu IP) em uma única sessão. AOL costumava fazer isso muito, e como eles caíram em popularidade, eu vi outras ferramentas (Opera móvel) usar proxies também.

  5. O encaminhamento de DNS não funciona dessa maneira . Se alguém tentar procurar um nome de host em seu site, a maior parte do tempo eles acabarão pedindo o servidor 8.8.8.8 do google ou o servidor DNS recursivo do ISP. Em ambos os casos, o endereço IP que consulta seu servidor DNS em busca de um nome de host não será o mesmo que o endereço IP de origem do navegador da Web que aparece um pouco depois.

Em suma, você não pode chegar lá a partir daqui. Endereços IP não são (nunca foram) identificadores únicos de 1-1 para um usuário. Você quebraria o HTTP. Você está preso olhando para o fluxo HTTP e análise. Certifique-se de que seu proxy ofereça suporte a Keep-Alive e diminua um pouco o hit.

    
por 28.05.2013 / 21:48
1

Como o navegador / usuário saberia qual solicitação http para permitir que seu proxy determinasse o servidor solicitado?

Se você planeja ter um portal a partir do qual o usuário selecionaria o servidor que deseja, poderá gerar subdomínios aleatórios para o seu proxy, dependendo das escolhas / acessibilidade do usuário.

Você pode ver uma implementação semelhante em uma demonstração de ataque de religação em que o usuário acessaria um servidor e desde o servidor conhece o ip do usuário, o servidor cria um novo subdiretório gerado aleatoriamente, assina o endereço IP do servidor desejado no registro DNS e redireciona o usuário para esse subdomínio.

Você não consegue encontrar o endereço IP do usuário no servidor DNS.

Como outros escreveram anteriormente, você não deve confiar no TTL, já que nem todos os resolvedores de DNS o respeitam.

    
por 29.05.2013 / 18:12