Todos os subdomínios para um IP no arquivo hosts?

8

Eu tenho uma VM VirtualBox executando com rede somente host. Esta VM está executando o Apache, e eu quero configurar vários hosts virtuais baseados em nome que podem ser acessados ​​a partir do navegador da Web na máquina host.

O problema é que toda vez que adiciono um novo subdomínio a um host virtual, tenho que adicioná-lo ao arquivo hosts. Agora eu tenho algo parecido com isto:

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

Eu quero alcançar o mesmo efeito que este

192.168.56.3 vm *.vm

Eu sei que * não funciona como um curinga em um arquivo de hosts. Existe outra maneira de alcançar o resultado desejado, sem a execução de um servidor DNS real? Devo apenas sugá-lo e continuar adicionando ao meu arquivo hosts manualmente?

Apreche
fonte

Respostas:

8

Não há uma maneira curinga de fazer isso - você precisa implementar um servidor DNS ou continuar adicionando entradas ao arquivo de hosts.

Se você instala um servidor DNS, não precisa instalá bind-lo - você pode instalar um servidor DNS com cache simples totd, como dnsmasq, ou maradns.

Independentemente do que você faz, você precisa garantir que ele resolv.confcontenha o novo servidor DNS e a seguinte entrada deve aparecer lá (neste exemplo, o servidor DNS está instalado no host local) ...

nameserver 127.0.0.1
Xerxes
fonte
Isso é algo interessante. No momento, essa parece ser a resposta correta, por isso vou marcar como tal. No entanto, ele realmente não resolve o meu problema, talvez porque não possa ser resolvido. Apenas algo para se pensar.
Apreche
Outra nota. Consegui usar o dnsmasq para fazer esse trabalho. No entanto, no Ubuntu, tive que modificar a configuração do cliente dhcp da máquina host para acrescentar 127.0.0.1 ao resolv.conf.
01 Apr09
Sim - resolv.conf é a única maneira de definir servidores DNS, acrescentarei isso à postagem para ser concluída.
Xerxes
2

Você pode usar dnsmasqpara isso, basta adicionar no arquivo de configuração:

endereço = /. vm / 192.168.56.3
drybjed
fonte
0

Esta é uma pergunta interessante. O arquivo host em si não suporta caracteres curinga, como você mencionou. Seria muito fácil configurar o bind na máquina apache e fazer com que ele fosse o servidor auth dns e aponte * .vm corretamente, mas essa é uma solução alternativa (mesmo que seja a solução "correta").

Deve haver uma maneira de enganar o nscd, mas ainda não o descobri. Dê-me mais tempo e eu atualizarei esta resposta

Editar

Tudo bem, sua melhor aposta, sem recorrer à tarefa simples de preencher seu arquivo host com um imenso número de hosts virtuais, ou a tarefa um pouco mais complexa de configurar a ligação à autenticação para esse domínio, é usar essa vulnerabilidade para envenenar o cache nscd : http://linuxgazette.net/154/misc/lg/conspire_dns_vulnerability_details.html

Pelo menos, é o mais longe que eu vou hoje. Talvez se eu ficar entediado mais tarde, vou verificar a fonte para o nscd e descobrir como injetar as informações diretamente.

Matt Simmons
fonte
4
Eu seriamente não recomendaria explorar uma vulnerabilidade para atingir uma meta. Quero dizer, e se você depender disso, e a vulnerabilidade ficar ... er corrigida? ... entre outras 100 coisas que posso ver, isso é errado nisso. Mas além disso - parece divertido brincar com chutes :).
Xerxes
2
hehe "... o meu recurso favorito no software ficou fixo na última revisão ..." ;-)
Matt Simmons