In ritardo, ho iniziato a lavorare su un progetto di sicurezza cloud in cui ho bisogno di rilevare il tipo di hypervisor che esegue una macchina virtuale. Per sperimentare, ho configurato ambienti di test basati sulla piattaforma cloud OpenStack con KVM come hypervisor sottostante e anche KVM standalone con QEMU, Xen e VirtualBox. L'idea è di avviare una macchina virtuale su questi ambienti e vedere se riesco a rilevare la tecnologia di virtualizzazione che alimenta la VM corrente. Per fortuna, è semplicissimo.
Nota: Esistono pochi comandi Linux nativi come dmesg (analisi del log di sistema), lshw, dmidecode ecc... questo ti aiuta a portare a termine questo lavoro, che tratterò in un tutorial separato.
Qui userò "Sys::Detect::Virtualization " perl script, che puoi scaricare da questo link.
Come rilevare il tipo di virtualizzazione da una macchina virtuale (VM)
Una volta che hai "Sys::Detect::Virtualization ” scaricato dal link sopra, copialo su una macchina virtuale e installalo come mostrato di seguito:
[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
Crea
[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
Installa
[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
Rileva la virtualizzazione utilizzando 'virtdetect ' comando
[root@vm Sys-Detect-Virtualization-0.107]# virtdetect Multiple possible virtualization systems detected: Linux KVM Qemu
Puoi anche eseguire "virtdetect ' in un ambiente non virtualizzato per vedere cosa restituisce il comando.
[peter@non-virtualized-machine ]$ virtdetect No virtualization detected