Semua sub-domain ke satu IP dalam file host?

8

Saya menjalankan VM VirtualBox dengan jaringan khusus host. VM ini menjalankan Apache, dan saya ingin mengatur sekelompok host virtual berbasis nama di dalamnya yang dapat diakses dari browser web pada mesin host.

Masalahnya adalah, setiap kali saya menambahkan sub-domain baru untuk host virtual, saya harus menambahkannya ke file host. Saat ini saya memiliki sesuatu seperti ini:

192.168.56.3 vm site1.vm site2.vm site3.vm site4.vm ...

Saya ingin mencapai efek yang sama seperti ini

192.168.56.3 vm *.vm

Saya tahu bahwa * tidak berfungsi sebagai wildcard di file hosts. Apakah ada cara lain untuk mencapai hasil yang diinginkan sebelum menjalankan server DNS yang sebenarnya? Haruskah saya menyedotnya dan terus menambahkan ke file host saya secara manual?

Apreche
sumber

Jawaban:

8

Tidak ada cara wildcard untuk melakukan ini - Anda harus mengimplementasikan server DNS, atau terus menambahkan entri ke file host Anda.

Jika Anda pergi dengan menginstal server DNS, Anda tidak perlu menginstal bind- Anda dapat menginstal sederhana caching DNS server seperti totd, dnsmasq, atau maradns.

Terlepas dari apa yang Anda lakukan, Anda harus memastikan yang resolv.confberisi server DNS baru, dan entri berikut harus muncul di sana (dalam contoh ini, server DNS diinstal pada localhost) ...

nameserver 127.0.0.1
Xerxes
sumber
Ini sesuatu yang menarik. Pada saat ini, ini sepertinya jawaban yang benar, jadi saya akan menandainya. Namun, itu tidak benar-benar menyelesaikan masalah saya, mungkin karena tidak dapat dipecahkan. Hanya sesuatu untuk dipikirkan.
Apreche
Catatan lain. Saya bisa menggunakan dnsmasq untuk membuat ini berfungsi. Namun, pada Ubuntu saya harus memodifikasi konfigurasi klien dhcp dari mesin host untuk menambahkan 127.0.0.1 ke resolv.conf.
Apreche
Ya - resolv.conf adalah satu-satunya cara untuk mendefinisikan server DNS, saya akan menambahkannya ke posting agar lengkap.
Xerxes
2

Anda dapat menggunakannya dnsmasquntuk itu, cukup tambahkan file konfigurasi:

address = /. vm / 192.168.56.3
drybjed
sumber
0

Ini pertanyaan yang menarik. File host itu sendiri tidak mendukung wildcard, seperti yang Anda sebutkan. Akan sangat mudah untuk mengatur bind pada mesin apache dan menjadikannya server autent dns dan menunjuk * .vm dengan benar, tapi itu solusinya (meskipun itu solusi "benar").

Pasti ada cara untuk mengelabui nscd ke dalamnya, tapi saya belum mengetahuinya. Beri saya lebih banyak waktu, dan saya akan memperbarui jawaban ini

Edit

Baiklah, taruhan terbaik Anda, tanpa menggunakan tugas sederhana untuk mengisi file host Anda dengan sejumlah besar host virtual, atau tugas yang sedikit lebih kompleks untuk mengonfigurasi bind ke auth untuk domain itu, adalah menggunakan kerentanan ini untuk meracuni cache nscd : http://linuxgazette.net/154/misc/lg/conspire_dns_vulnerability_details.html

Setidaknya, sejauh itulah yang akan saya lakukan hari ini. Mungkin jika saya bosan nanti saya akan memeriksa sumber untuk nscd dan mencari cara untuk langsung menyuntikkan info.

Matt Simmons
sumber
4
Saya benar-benar tidak akan merekomendasikan mengeksploitasi kerentanan untuk mencapai tujuan. Maksud saya, bagaimana jika Anda bergantung padanya, dan kerentanannya ... diperbaiki? ... di antara 100 hal lain yang bisa kulihat itu salah dengan itu. Tapi selain itu - memang terlihat menyenangkan untuk bermain :).
Xerxes
2
hehe "... fitur favorit saya dalam perangkat lunak mendapat tetap dalam revisi terakhir ..." ;-)
Matt Simmons