Plus tard, j'ai commencé à travailler sur un projet de sécurité cloud dans lequel je dois détecter le type d'hyperviseur qui exécute une machine virtuelle. Pour l'expérience, j'ai configuré des environnements de test basés sur la plate-forme cloud OpenStack avec KVM comme hyperviseur sous-jacent et également KVM autonome avec QEMU, Xen et VirtualBox. L'idée est de démarrer une machine virtuelle au-dessus de ces environnements et de voir si je peux détecter la technologie de virtualisation qui alimente la machine virtuelle actuelle. Heureusement, c'est super facile.
Remarque : Il existe peu de commandes Linux natives telles que dmesg (analyse du journal système), lshw, dmidecode etc… qui vous aide à accomplir ce travail - que je couvrirai dans un tutoriel séparé.
Ici, je vais utiliser "Sys::Detect::Virtualization ” script perl, que vous pouvez télécharger à partir de ce lien.
Comment détecter le type de virtualisation à partir d'une machine virtuelle (VM)
Une fois que vous avez "Sys::Detect::Virtualization ” script téléchargé à partir du lien ci-dessus, copiez-le sur une machine virtuelle et installez-le comme indiqué ci-dessous :
[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
Faire
[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
Installer
[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
Détecter la virtualisation à l'aide de 'virtdetect ‘commande
[root@vm Sys-Detect-Virtualization-0.107]# virtdetect Multiple possible virtualization systems detected: Linux KVM Qemu
Vous pouvez également exécuter 'virtdetect ‘ sur un environnement non virtualisé pour voir ce que la commande affiche.
[peter@non-virtualized-machine ]$ virtdetect No virtualization detected