Tarde, comencé a trabajar en un proyecto de seguridad en la nube en el que necesito detectar el tipo de hipervisor que ejecuta una máquina virtual. Para el experimento, configuré entornos de prueba basados en la plataforma en la nube OpenStack con KVM como hipervisor subyacente y también KVM independiente con QEMU, Xen y VirtualBox. La idea es iniciar una máquina virtual sobre estos entornos y ver si puedo detectar la tecnología de virtualización que alimenta la VM actual. Afortunadamente, es muy fácil.
Aquí, voy a usar "Sys::Detect::Virtualization ” perl script, que puede descargar desde este enlace.
Cómo detectar el tipo de virtualización de una máquina virtual (VM)
Una vez que tenga "Sys::Detect::Virtualization ” script descargado desde el enlace anterior, cópielo en una máquina virtual e instálelo como se muestra a continuación:
[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
Hacer
[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
Instalar
[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
Detectar virtualización usando 'virtdetect ‘ comando
[root@vm Sys-Detect-Virtualization-0.107]# virtdetect Multiple possible virtualization systems detected: Linux KVM Qemu
También puede ejecutar 'virtdetect ' en un entorno no virtualizado para ver qué genera el comando.
[peter@non-virtualized-machine ]$ virtdetect No virtualization detected