遅くなって、仮想マシンを実行するハイパーバイザーのタイプを検出する必要があるクラウドセキュリティプロジェクトに取り組み始めました。実験のために、基盤となるハイパーバイザーとしてKVMを備えたOpenStackクラウドプラットフォームと、QEMU、Xen、VirtualBoxを備えたスタンドアロンKVMに基づいたテスト環境をセットアップしました。アイデアは、これらの環境上で仮想マシンを起動し、現在のVMを強化する仮想化テクノロジーを検出できるかどうかを確認することです。ありがたいことに、それはとても簡単です。
注: dmesgなどのネイティブLinuxコマンドはほとんどありません。 (システムログの分析)、 lshw、dmidecode など…これは、この仕事を達成するのに役立ちます。これについては、別のチュートリアルで説明します。
ここでは、「 Sys ::Detect ::Virtualization」を使用します 」perlスクリプト。このリンクからダウンロードできます。
仮想マシン(VM)から仮想化タイプを検出する方法
「Sys::Detect ::Virtualization 」を取得したら、 上記のリンクからダウンロードした「」スクリプトを仮想マシンにコピーして、以下に示すようにインストールします。
[root@vm ]# tar xvfz Sys-Detect-Virtualization-0.107.tar.gz
[root@vm ]# cd Sys-Detect-Virtualization-0.107
[root@vm Sys-Detect-Virtualization-0.107]# perl Makefile.PL Checking if your kit is complete... Looks good Warning: prerequisite ExtUtils::MakeMaker 6.59 not found. We have 6.30. Warning: prerequisite Test::Deep 0 not found. Warning: prerequisite Test::Exception 0 not found. Warning: prerequisite Test::More 0.82 not found. We have 0.62. Writing Makefile for Sys::Detect::Virtualization
作成
[root@vm Sys-Detect-Virtualization-0.107]# make cp lib/Sys/Detect/Virtualization.pm blib/lib/Sys/Detect/Virtualization.pm cp lib/Sys/Detect/Virtualization/linux.pm blib/lib/Sys/Detect/Virtualization/linux.pm cp lib/Sys/Detect/Virtualization/freebsd.pm blib/lib/Sys/Detect/Virtualization/freebsd.pm cp script/virtdetect blib/script/virtdetect /usr/bin/perl "-Iinc" "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/virtdetect Manifying blib/man1/virtdetect.1 Manifying blib/man3/Sys::Detect::Virtualization.3pm Manifying blib/man3/Sys::Detect::Virtualization::freebsd.3pm Manifying blib/man3/Sys::Detect::Virtualization::linux.3pm
インストール
[root@vm Sys-Detect-Virtualization-0.107]# make install Installing /usr/lib/perl5/site_perl/5.8.8/Sys/Detect/Virtualization.pm Installing /usr/lib/perl5/site_perl/5.8.8/Sys/Detect/Virtualization/linux.pm Installing /usr/lib/perl5/site_perl/5.8.8/Sys/Detect/Virtualization/freebsd.pm Installing /usr/share/man/man1/virtdetect.1 Installing /usr/share/man/man3/Sys::Detect::Virtualization::freebsd.3pm Installing /usr/share/man/man3/Sys::Detect::Virtualization::linux.3pm Installing /usr/share/man/man3/Sys::Detect::Virtualization.3pm Installing /usr/bin/virtdetect Writing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/Sys/Detect/Virtualization/.packlist Appending installation info to /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod
「virtdetect」を使用して仮想化を検出する ‘コマンド
[root@vm Sys-Detect-Virtualization-0.107]# virtdetect Multiple possible virtualization systems detected: Linux KVM Qemu
「virtdetect」を実行することもできます ‘非仮想化環境でコマンドの出力を確認します。
[peter@non-virtualized-machine ]$ virtdetect No virtualization detected