Como encontrar todos os nomes de host no DNS anexados a um IP?

24

Se eu tiver vários hosts configurados em uma máquina ( VirtualHosts à la apache), como posso pesquisar no IP e encontrar todos os domínios configurados para alcançá-lo?

Por exemplo, tenho vários domínios da web e de email conectados ao meu servidor. Como posso encontrar todos os domínios que apontam para ele?

Isso é possível?

Tenho entradas DNS A para todos os domínios que possuo, além de saber que os domínios de alguns amigos apontam para o meu servidor. O que eu gostaria de ver é se as pessoas que eu não conheço estão apontando para lá também. (Ou se alguém tiver renomeado seu domínio em outro lugar e eu puder excluir o site 'antigo' do meu servidor.)

Warren
fonte

Respostas:

30

Não, realmente não. Isso é tudo sobre a diferença entre pesquisas de DNS avançadas e reversas.

Uma pesquisa direta é o nome padrão-> pesquisa de IP. Então, você precisaria conhecer todos os nomes com antecedência.

O que você deseja é fazer uma pesquisa de nome IP->, mas de alguma forma obter todos os nomes que você aplicou na sua configuração do Apache e no DNS como registros A (ou CNAMES ou o que for).

O que você provavelmente encontrará é que, fazendo uma pesquisa inversa (por exemplo, dig @nameserver $ ip -x) retornará o nome de host dado a esse IP pelas pessoas que possuem esse netblock, que poderia ser seu ISP. Pode ter um nome como 45-23-45-231.big-isp.com, que não significa muito para você. E, crucialmente, há apenas um registro reverso, mas potencialmente muitos registros avançados.

Suponho que tudo se resume à questão - como a zona reversa conhece algum dos registros na zona direta? Na maioria das configurações, a zona direta é disponibilizada ao cliente para fazer alterações, mas a zona reversa é mantida pelos proprietários do netblock. Os dois sistemas não precisam saber nada um sobre o outro para funcionar.

Cawflands
fonte
2
Parece certo para mim.
einstiien
vergonha - seria muito útil também
warren
12

Não é possível fazer isso com o próprio protocolo DNS, porque normalmente há apenas um PTRregistro para cada endereço IP, mesmo que haja muitos Aregistros apontando para esse endereço IP.

No entanto, algumas empresas (por exemplo, http://www.ip-adress.com/ ) conseguiram compilar bancos de dados contendo o que você procura, armazenando os resultados de uma carga completa de pesquisas de DNS e oferecendo uma consulta reversa por conta própria. bancos de dados.

Esses bancos de dados não podem ser embora definitiva, eles não podem garantir de saber sobre todos os domínios possível que pode acontecer a ponto em que o IP - eles só podem registrar os detalhes de DNS para os nomes de domínio que eles realmente olhou para cima.

Alnitak
fonte
era disso que eu tinha medo .. maldito: - |
Warren
1
Apenas um aviso de que ainda não encontrei esse serviço de pesquisa que lida com todos os TLDs. De fato, todos aqueles que tentei não conseguiram listar domínios .com.au, mesmo quando hospedados no mesmo servidor que os domínios .com.
John Gardeniers
1
estranho - não há razão para que um serviço como esse deva se importar com o TLD em que o site está. Dito isto, como já referi, os bancos de dados só sei sobre os sites que as pessoas perguntam sobre - Eu acho que não basta as pessoas se preocupam com .com.au domínios ;-)
Alnitak
4

A única maneira de fazer isso é ter dados de conteúdo do nome de domínio que você deseja inspecionar.

Com esse conteúdo, você pode desenvolver um script recursivo para pesquisar o nome do host em relação ao seu IP (recursivo devido à eventual verificação de CNAME).

Para obter dados de algum parceiro de nome de domínio, você pode pedir para ser secundário e obter DATA com um dig -t axfr.

profy
fonte
3

Eu acho que você está chegando na direção errada. Além de a) consultar todos os servidores DNS existentes para obter todos os nomes de domínio possíveis e, em seguida, armazenar o resultado ou b) obter transferências de zona dos servidores DNS nos quais você está interessado, não há como fazer isso com o DNS.

Bem, se você estiver executando vhosts baseados em nome do Apache, já terá uma lista de domínios que alcançarão seu servidor. Além do vhost padrão, um vhost baseado em nome responderá apenas por seu 'nome. Portanto, se eu apontar foobar.com na minha caixa e não tiver um vhost foobar.com, ele será atendido pelo padrão ou não será respondido (se você não tiver um servidor padrão).

O Apache possui alguns recursos de log muito poderosos. Não deve ser um problema definir um formato de log personalizado com as linhas de solicitação que você deseja. Além disso, sempre há o campo de referência.

O correio, por outro lado, é um pouco mais difícil. A melhor coisa que consigo pensar é escolher o que você pode nos logs do servidor e, se você realmente precisar saber , configurar uma captura de pacote para SMTP.

Jason Antman
fonte
com apache vhosts, só sei quais caminhos estou entregando a domínios específicos ... nem todos os domínios configurados: se você apontar mynewdomain.tld para o servidor, como não há entrada de vhost, o apache retornará o webroot padrão
warren
1
escolher os logs poderia funcionar, no entanto - não havia pensado nisso como uma maneira de fazê-lo no próprio servidor.
Warren
LogFormat %{Host}i hostnamelog, CustomLog /path/to/log hostnamelogno VHost padrão, verifique se ele está separado de qualquer um dos seus VHosts "reais". Ocasionalmente, sort /path/to/log | uniq -c | sort -npara ter uma ideia do que está atingindo você.
BMDan
2

Você deve verificar se o RobTex não é o melhor web design, mas muito útil! Você pode descobrir todo o DNS associado a um IP.

Claro, como explicou Alnitak,

Não é possível fazer isso com o próprio protocolo DNS

Isso significa que este site é apenas um enorme banco de dados da maioria dos servidores DNS / IP. Isso é bastante eficiente, mas não 100% exaustivo.

Bonswouar
fonte
Fazer a ligação parece estar quebrado, ou tem muito ruim SSL
Adam Nofsinger