Bagaimana menemukan semua nama host di DNS yang dilampirkan ke satu IP?

24

Jika saya memiliki banyak host yang dikonfigurasi pada satu mesin ( VirtualHost ala apache), bagaimana saya bisa melakukan pencarian pada IP dan menemukan semua domain yang dikonfigurasi untuk mencapainya?

Sebagai contoh, saya memiliki beberapa domain web dan email yang terhubung ke server saya. Bagaimana saya bisa menemukan semua domain yang mengarah ke sana?

Apakah itu mungkin?

Saya memiliki entri DNS A untuk semua domain yang saya miliki, ditambah saya tahu beberapa domain teman menunjuk ke server saya. Yang ingin saya lihat adalah jika orang-orang yang saya tidak tahu menunjuk ke sana juga. (Atau jika seseorang telah menolak domain mereka di tempat lain, dan saya dapat menghapus situs web 'lama' mereka dari server saya.)

warren
sumber

Jawaban:

30

Tidak juga, tidak. Ini semua tentang perbedaan antara pencarian DNS maju dan mundur.

Pencarian maju adalah pencarian nama standar-> IP. Jadi, Anda harus tahu semua nama sebelumnya.

Yang Anda inginkan adalah melakukan pencarian nama IP->, tetapi entah bagaimana dapatkan semua nama yang telah Anda terapkan dalam konfigurasi Apache Anda dan dalam DNS sebagai catatan A (atau CNAMES atau apa pun).

Apa yang Anda mungkin akan temukan adalah melakukan reverse lookup (mis. Dig @nameserver $ ip -x) akan mengembalikan nama host yang diberikan ke IP tersebut oleh orang-orang yang memiliki netblock, yang bisa jadi ISP Anda. Itu mungkin memiliki nama seperti 45-23-45-231.big-isp.com, yang tidak berarti banyak bagi Anda. Dan yang terpenting, hanya ada satu catatan terbalik, tetapi berpotensi banyak yang maju.

Saya kira itu bermuara pada pertanyaan - bagaimana zona mundur tahu tentang catatan di zona maju? Di sebagian besar penyiapan, zona maju disediakan bagi pelanggan untuk melakukan perubahan, tetapi zona balik dikelola oleh pemilik netblock. Kedua sistem tidak perlu tahu apa-apa tentang satu sama lain untuk berfungsi.

Cawflands
sumber
2
Kedengarannya tepat bagi saya.
einstiien
Sayang - itu akan sangat berguna juga
warren
12

Tidak mungkin melakukannya dengan protokol DNS itu sendiri, karena biasanya hanya ada satu PTRcatatan untuk setiap alamat IP, meskipun mungkin ada banyak Acatatan yang menunjuk pada alamat IP itu.

Namun beberapa perusahaan (mis. Http://www.ip-adress.com/ ) telah berhasil mengompilasi database yang berisi apa yang Anda cari dengan menyimpan hasil seluruh pencarian DNS dan kemudian menawarkan kueri balik ke dalam milik mereka. basis data.

Namun, basis data tersebut tidak dapat definitif, mereka tidak dapat menjamin untuk mengetahui tentang setiap domain yang mungkin mengarah pada IP tersebut - mereka hanya dapat merekam rincian DNS untuk nama domain yang telah mereka cari.

Alnitak
sumber
itulah yang saya takutkan .. sialan: - |
warren
1
Hanya kepala-up bahwa saya belum menemukan layanan pencarian yang menangani semua TLD. Sebenarnya semua yang saya coba gagal mendaftarkan domain .com.au, bahkan ketika dihosting di server yang sama dengan domain .com.
John Gardeniers
1
aneh - tidak ada alasan layanan seperti ini bahkan harus peduli TLD situs mana yang aktif. Yang mengatakan, seperti yang saya sebutkan, database hanya tahu tentang situs yang orang tanyakan - Saya kira tidak cukup banyak orang peduli tentang domain .com.au ;-)
Alnitak
4

Satu-satunya cara untuk melakukan ini, adalah memiliki data konten nama domain yang ingin Anda periksa.

Dengan konten ini Anda dapat mengembangkan skrip rekursif untuk mencari nama host relatif terhadap IP Anda (rekursif karena CNAME akhirnya memeriksa).

Untuk mendapatkan data dari beberapa mitra nama domain, Anda dapat meminta untuk menjadi sekunder dan mendapatkan DATA dengan axfr menggali.

profy
sumber
3

Saya pikir Anda datang pada ini dari arah yang salah. Selain a) menanyakan setiap server DNS yang ada untuk setiap nama domain yang mungkin dan kemudian menyimpan hasilnya atau b) mendapatkan transfer zona dari server DNS yang Anda minati, tidak ada cara untuk melakukan ini dengan DNS.

Nah, jika Anda menjalankan vhost berbasis nama Apache, Anda sudah memiliki daftar domain yang akan mencapai server Anda. Selain vhost default, vhost berbasis nama hanya akan menjawab namanya. Jadi jika saya mengarahkan foobar.com di kotak saya, dan tidak memiliki foobar.com vhost, itu akan dilayani secara default atau tidak dijawab (jika Anda tidak memiliki server default).

Apache memiliki beberapa fitur logging yang sangat kuat. Seharusnya tidak menjadi masalah untuk menentukan format log khusus dengan baris permintaan yang Anda inginkan. Juga, selalu ada bidang pengarah.

Mail, di sisi lain, sedikit lebih menyusahkan. Tentang hal terbaik yang dapat saya pikirkan adalah memilih apa yang Anda bisa dari server log dan, jika Anda benar - benar perlu tahu , mengatur paket capture untuk SMTP.

Jason Antman
sumber
dengan apache vhosts Saya hanya tahu jalur apa yang saya bagikan ke domain tertentu ... tidak semua domain yang dikonfigurasi: jika Anda mengarahkan mynewdomain.tld ke server saya, karena tidak ada entri vhost, apache hanya akan mengembalikan default webroot
warren
1
mengambil-melalui log bisa bekerja, meskipun - tidak memikirkan hal itu sebagai cara melakukannya di server itu sendiri.
warren
LogFormat %{Host}i hostnamelog, lalu CustomLog /path/to/log hostnamelogdi VHost default Anda, pastikan itu terpisah dari VHost "asli" Anda. Kemudian sesekali sort /path/to/log | uniq -c | sort -nuntuk wawasan tentang apa yang memukul Anda.
BMDan
2

Anda harus memeriksa RobTex Bukan desain web terbaik, tetapi sangat berguna! Anda dapat mengetahui semua DNS yang terkait dengan IP.

Tentu saja, seperti yang dijelaskan Alnitak,

Tidak mungkin melakukannya dengan protokol DNS itu sendiri

Itu berarti bahwa situs web ini hanyalah basis data besar dari sebagian besar server DNS / IP. Itu cukup efisien tetapi tidak 100% lengkap.

Bonswouar
sumber
Tautan tampaknya rusak, atau memiliki SSL yang sangat buruk
Adam Nofsinger