Ich habe spät abends angefangen, an einem Cloud-Sicherheitsprojekt zu arbeiten, bei dem ich den Typ des Hypervisors erkennen muss, der eine virtuelle Maschine ausführt. Für Experimente hatte ich Testumgebungen basierend auf der OpenStack-Cloud-Plattform mit KVM als zugrunde liegendem Hypervisor und auch Standalone-KVM mit QEMU, Xen und VirtualBox eingerichtet. Die Idee ist, eine virtuelle Maschine auf diesen Umgebungen zu starten und zu sehen, ob ich die Virtualisierungstechnologie erkennen kann, die die aktuelle VM antreibt. Zum Glück ist es super einfach.
Hinweis: Es gibt nur wenige native Linux-Befehle wie dmesg (Analyse des Systemprotokolls), lshw, dmidecode etc… das hilft Ihnen, diese Aufgabe zu erfüllen – die ich in einem separaten Tutorial behandeln werde.
Hier verwende ich „Sys::Detect::Virtualization ” Perl-Skript, das Sie von diesem Link herunterladen können.
So erkennen Sie den Virtualisierungstyp einer virtuellen Maschine (VM)
Sobald Sie „Sys::Detect::Virtualization ”-Skript, das Sie über den obigen Link heruntergeladen haben, kopieren Sie es auf eine virtuelle Maschine und installieren Sie es wie unten gezeigt:
[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
Machen
[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
Installieren
[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
Virtualisierung mit 'virtdetect erkennen ‘Befehl
[root@vm Sys-Detect-Virtualization-0.107]# virtdetect Multiple possible virtualization systems detected: Linux KVM Qemu
Sie können auch „virtdetect“ ausführen ‘ in einer nicht virtualisierten Umgebung, um zu sehen, was der Befehl ausgibt.
[peter@non-virtualized-machine ]$ virtdetect No virtualization detected