Como posso obter várias máquinas virtuais para se comunicar na mesma rede usando o VirtualBox e o Ubuntu 16.04? [fechadas]

1

Estou trabalhando para concluir um laboratório de segurança cibernética (o laboratório é desenvolvido pela SEEDLab na Universidade de Syracuse) que simula um ataque DNS local. Eu devo criar três máquinas virtuais para realizar testes seguros: server_VM, user_VM e attacker_VM. Eu estou usando o VirtualBox rodando o Ubuntu 16.04.

Eu criei as VMs e agora preciso executá-las ao mesmo tempo, alternando entre elas simultaneamente para inserir comandos no terminal do Ubuntu. Quando tento executá-los ao mesmo tempo, recebo a seguinte mensagem:

Failed to open a session for the virtual machine User.

Locking of attached media failed. A possible reason is that one of the media is attached to a running VM.

Result Code: VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)

Component: SessionMachine

Interface: IMachine {b2547866-a0a1-4391-8b86-6952d82efaa0}
How do I go about getting the VMs to run simultaneously so that I can communicate with each one by way of command line?

Estou apenas tentando colocar as máquinas virtuais em funcionamento e ficaria satisfeito se conseguisse fazer isso funcionar nesse momento. Muito obrigado.

Outras informações:

Estou usando o modo de rede padrão (NAT) para cada uma das VMs. Veja aqui os links para o descrição do laboratório DNS local do site de laboratório específico, e também para o pdf que contém as instruções do laboratório instruções locais do laboratório de DNS .

    
por reverb1010 13.07.2018 / 03:45

2 respostas

1

Se você usar o Vagrant, você pode usar o seguinte Vagrantfile , que provisionará 3 caixas (Ubuntu 16.04).

$ cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :


##############
### References
# - https://www.vagrantup.com/docs/vagrantfile/machine_settings.html
# - https://www.vagrantup.com/docs/vagrantfile/tips.html
# - https://www.vagrantup.com/docs/networking/forwarded_ports.html
##############

#unless Vagrant.has_plugin?("HostManager")
#  raise 'HostManager plugin not installed!'
#end

image = "ubuntu/xenial64"

Vagrant.configure("2") do |config|
  vboxName1 = "box-101"
  hostname1 = "box1"
  config.vm.define "#{vboxName1}" do |box|
    box.vm.box = "#{image}"
    #box.vm.network :private_network, ip: "192.168.56.101"
    box.vm.network :public_network, use_dhcp_assigned_default_route: true
    box.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "#{hostname1}"]
    end
  end

  vboxName2 = "box-102"
  hostname2 = "box2"
  config.vm.define "#{vboxName2}" do |box|
    box.vm.box = "#{image}"
    #box.vm.network :private_network, ip: "192.168.56.103"
    box.vm.network :public_network, use_dhcp_assigned_default_route: true
    box.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "#{hostname2}"]
    end
  end

  vboxName3 = "box-103"
  hostname3 = "box3"
  config.vm.define "#{vboxName3}" do |box|
    box.vm.box = "#{image}"
    #box.vm.network :private_network, ip: "192.168.56.103"
    box.vm.network :public_network, use_dhcp_assigned_default_route: true
    box.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "#{hostname3}"]
    end
  end
end

Para usá-lo:

# launches all VMs
$ vagrant up

# ssh into box-101
$ vagrant ssh box-101

Para mais informações sobre o uso de vagrant , consulte o uso:

$ vagrant
    
por 13.07.2018 / 05:04
1

Suas mensagens de erro são causadas pelas VMs usando a mesma mídia.
Isso pode ser porque você usou a mesma imagem de disco rígido virtual para as VMs e isso não funcionará. Cada VM precisa de seu próprio disco rígido virtual. A outra possibilidade é que a mídia de instalação (arquivo ISO) para o Ubuntu esteja vinculada a todas as 3 VMs enquanto elas estiverem em execução. Este ISO é necessário apenas para a instalação básica, portanto, após concluir a instalação da primeira VM, você pode desconectar o ISO e usá-lo para a segunda VM.

Quanto à parte da rede: a configuração da VM como NAT é colocada em uma rede virtual usando um intervalo de ip 10.0.0.x. O Virtualbox irá configurar o dhcp para essa sub-rede e fará com que o DNS e tal sejam encaminhados para o DNS regular. Ele faz isso com base na configuração de rede do sistema host, de forma que precisa da configuração corretamente.
Como alternativa, você também pode configurar uma rede somente de host entre as VMs. Nesse caso, as VMs são executadas em uma rede isolada, visível apenas para as VMs e o host.
Em qualquer caso, consulte o excelente manual do Virtualbox. Ele possui uma extensa seção sobre rede incluindo os comandos (somente linha de comando) que permitem muito mais possibilidades do que a configuração da GUI.

    
por 13.07.2018 / 08:10