Come trovare tutti i nomi host in DNS collegati a un IP?


24

Se ho più host configurati su una macchina ( VirtualHosts di a la apache), come posso fare una ricerca sull'IP e trovare tutti i domini configurati per raggiungerlo?

Ad esempio, ho diversi domini Web ed e-mail collegati al mio server. Come posso trovare tutti i domini che lo puntano?

È anche possibile?

Ho voci DNS A per tutti i domini che possiedo, inoltre so che alcuni domini di amici puntano al mio server. Quello che mi piacerebbe vedere è se anche le persone che non conosco stanno indicando lì. (O se qualcuno ha reimpostato il proprio dominio altrove e posso eliminare il loro "vecchio" sito Web dal mio server.)

Risposte:


30

Non proprio no. Questo è tutto sulla differenza tra ricerche DNS forward e reverse.

Una ricerca diretta è il nome standard-> Ricerca IP. Quindi, dovresti conoscere tutti i nomi in anticipo.

Quello che vuoi è fare una ricerca per nome IP->, ma in qualche modo ottenere tutti i nomi che hai applicato nella tua configurazione di Apache e nel DNS come record A (o CNAMES o altro).

Quello che probabilmente troverai è che facendo una ricerca inversa (es. Dig @nameserver $ ip -x) restituirai il nome host assegnato a quell'IP dalle persone che possiedono quel netblock, che potrebbe essere il tuo ISP. Potrebbe avere un nome come 45-23-45-231.big-isp.com, il che non significa molto per te. E soprattutto, c'è solo un record inverso, ma potenzialmente molti record in avanti.

Suppongo che si riduca alla domanda: come fa la zona inversa a sapere dei record nella zona in avanti? Nella maggior parte delle configurazioni, la zona diretta viene messa a disposizione del cliente per apportare modifiche, ma la zona inversa viene gestita dai proprietari del netblock. I due sistemi non hanno bisogno di sapere nulla l'uno dell'altro per funzionare.


2
Mi sembra giusto.
einstiien,

peccato - sarebbe anche molto utile
warren

12

Non è possibile farlo con il protocollo DNS stesso, perché in genere esiste un solo PTRrecord per ciascun indirizzo IP, anche se potrebbero esserci molti Arecord che puntano a quell'indirizzo IP.

Tuttavia, alcune aziende (ad es. Http://www.ip-adress.com/ ) sono riuscite a compilare database contenenti ciò che stai cercando archiviando i risultati di un intero carico di ricerche DNS e quindi offrendo una query inversa nella propria banche dati.

Questi database non possono essere definitivi, tuttavia, non possono garantire di conoscere tutti i possibili domini che potrebbero capitare a quell'IP - possono solo registrare i dettagli DNS per i nomi di dominio che hanno effettivamente cercato.


questo è quello di cui avevo paura .. dannazione Sorry |
Warren,

1
Solo un avvertimento che devo ancora incontrare un tale servizio di ricerca che gestisce tutti i TLD. In effetti, tutti quelli che ho provato non sono riusciti a elencare i domini .com.au, anche se ospitati sullo stesso server dei domini .com.
John Gardeniers,

1
strano - non c'è motivo per cui un servizio come questo dovrebbe interessarsi del TLD sul sito. Detto questo, come ho già detto, i database conoscono solo i siti di cui le persone chiedono - suppongo che non abbastanza persone si preoccupino dei domini .com.au ;-)
Alnitak

4

L'unico modo per farlo è disporre dei dati di contenuto del nome di dominio che si desidera controllare.

Con questo contenuto è possibile sviluppare uno script ricorsivo per cercare il nome host relativo al proprio IP (ricorsivo a causa dell'eventuale CNAME da verificare).

Per ottenere i dati di alcuni partner di nomi di dominio, puoi chiedere di essere secondario e ottenere DATI con un dig -t axfr.


3

Penso che tu stia arrivando dalla direzione sbagliata. A parte uno a) interrogare ogni server DNS esistente per ogni possibile nome di dominio e quindi archiviare il risultato oppure b) ottenere trasferimenti di zona dai server DNS che ti interessano, non c'è modo di farlo con DNS.

Bene, se stai eseguendo vhost basati sul nome Apache, hai già un elenco di domini che raggiungeranno il tuo server. A parte il vhost predefinito, un vhost basato sul nome risponderà solo per il suo 'nome. Quindi, se indico foobar.com nella mia casella e non ho un vhost foobar.com, verrà servito per impostazione predefinita o non riceverà risposta (se non si dispone di un server predefinito).

Apache ha alcune funzionalità di registrazione molto potenti. Non dovrebbe essere un problema definire un formato di registro personalizzato con le righe di richiesta desiderate. Inoltre, c'è sempre il campo referrer.

La posta, d'altra parte, è un po 'più una seccatura. La cosa migliore che mi viene in mente è quella di scegliere quello che puoi dai registri del server e, se hai davvero bisogno di saperlo , impostare una cattura di pacchetti per SMTP.


con apache vhosts so solo quali percorsi sto distribuendo a domini specifici ... non tutti i domini che sono configurati: se punti mynewdomain.tld sul mio server, dato che non esiste una voce vhost, apache restituirà semplicemente il webroot predefinito
warren

1
la raccolta dei registri potrebbe funzionare, tuttavia, non ci avevo pensato come un modo per farlo sul server stesso.
Warren,

LogFormat %{Host}i hostnamelog, quindi CustomLog /path/to/log hostnamelognel tuo VHost predefinito, assicurandoti che sia separato da qualsiasi dei tuoi "veri" VHost. Quindi di tanto sort /path/to/log | uniq -c | sort -nin tanto per capire cosa ti sta colpendo.
BMDan,

2

Dovresti controllare RobTex Non il miglior web design, ma molto utile! Puoi scoprire tutto il DNS associato a un IP.

Certo, come spiegato Alnitak,

Non è possibile farlo con il protocollo DNS stesso

Ciò significa che questo sito Web è solo un enorme database della maggior parte dei server DNS / IP. È piuttosto efficiente ma non esaustivo al 100%.


Il collegamento sembra interrotto o SSL molto scadente
Adam Nofsinger,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.