私は、ローカルDNS攻撃をシミュレートするサイバーセキュリティラボ(このラボはシラキュース大学のSEEDLabによって開発されています)の完成に取り組んでいます。安全なテストを実行するために、server_VM、user_VM、attacker_VMの3つの仮想マシンを作成することになっています。 Ubuntu16.04を実行しているVirtualBoxを使用しています。
VMを作成しましたが、Ubuntuターミナルにコマンドを入力するために、VMを同時に実行し、VMを同時に切り替える必要があります。それらを同時に実行しようとすると、次のメッセージが表示され続けます。
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?
私は仮想マシンを稼働させようとしているだけで、この時点でそれを機能させることができれば満足しています。どうもありがとう。
その他の情報:
各VMにデフォルトのネットワークモード(NAT)を使用しています。特定のラボサイトへのリンク ローカルDNSラボの説明 、およびラボの説明を提供するpdfへのリンク ローカルDNSラボの説明 。
エラーメッセージは、VMが同じメディアを使用していることが原因で発生します。
これは、VMに同じ仮想ハードディスクイメージを使用していて、それが機能しないことが原因である可能性があります。各VMには独自の仮想ハードディスクが必要です。
もう1つの可能性は、Ubuntuのインストールメディア(ISOファイル)が実行中に3つのVMすべてにリンクされていることです。このISOは基本インストールにのみ必要なので、最初のVM)のインストールが完了したら、ISOを切断して、2番目のVMに使用できます。
ネットワーク部分について:VMのNATとしてのセットアップは、10.0.0.x ip-rangeを使用して仮想ネットワークに配置されます。Virtualboxはそのサブネットのdhcpをセットアップし、DNSなどを確認します。通常のDNSに転送されます。これは、ホストシステムのネットワーク構成に基づいて行われるため、正しくセットアップする必要があります。
別の方法として、VM間にホストオンリーネットワークをセットアップすることもできます。この場合、VMは、VMとホストにのみ表示される分離されたネットワークで実行されます。
いずれにせよ、優れたVirtualboxマニュアルを参照してください。 GUI構成よりもはるかに多くの可能性を可能にする(コマンドラインのみの)コマンドを含む、ネットワーキングに関する広範なセクションがあります。
Vagrantを使用する場合は、次のVagrantfile
を使用して、3つのボックスをプロビジョニングできます(Ubuntu16.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
それを使用するには:
# launches all VMs
$ vagrant up
# ssh into box-101
$ vagrant ssh box-101
vagrant
の使用の詳細については、使用法を参照してください。
$ vagrant