Opožděně jsem začal pracovat na cloudovém bezpečnostním projektu, kde potřebuji zjistit typ hypervizoru, který provozuje virtuální počítač. Pro experiment jsem nastavil testovací prostředí založená na cloudové platformě OpenStack s KVM jako základním hypervizorem a také samostatný KVM s QEMU, Xen a VirtualBox. Cílem je spustit virtuální stroj nad těmito prostředími a zjistit, zda dokážu detekovat virtualizační technologii, která pohání aktuální VM. Naštěstí je to super snadné.
Poznámka: Existuje několik nativních příkazů Linuxu, jako je dmesg (analýza systémového protokolu), lshw, dmidecode atd..., které vám pomohou dokončit tuto práci – které se budu věnovat v samostatném tutoriálu.
Zde použiji „Sys::Detect::Virtualization ” perl skript, který si můžete stáhnout z tohoto odkazu.
Jak zjistit typ virtualizace z virtuálního počítače (VM)
Jakmile budete mít „Sys::Detect::Virtualization ” skript stažený z výše uvedeného odkazu, zkopírujte jej na virtuální počítač a nainstalujte jej, jak je uvedeno níže:
[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
Vyrobit
[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
Instalovat
[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
Detekce virtualizace pomocí funkce virtdetect ‘ příkaz
[root@vm Sys-Detect-Virtualization-0.107]# virtdetect Multiple possible virtualization systems detected: Linux KVM Qemu
Můžete také spustit „virtdetect ‘ v nevirtualizovaném prostředí, abyste viděli, co příkaz vypíše.
[peter@non-virtualized-machine ]$ virtdetect No virtualization detected