GNU/Linux >> Linux Esercitazione >  >> Linux

Come rilevare la virtualizzazione utilizzando lo script Sys::Detect::Virtualization Perl?

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

Linux
  1. Come sostituire gli spazi nei nomi dei file usando uno script bash

  2. Nello script Python, come imposto PYTHONPATH?

  3. Come eseguire lo script Python come servizio?

  4. Come controllare l'accesso a Internet usando lo script bash in Linux?

  5. Come uscire dal terminale Linux usando lo script Python?

Come sincronizzare i file in due modi utilizzando Osync Script in Linux

Come configurare l'esecuzione automatica di uno script Python utilizzando Systemd

Come installare i moduli Perl usando CPAN su CentOS 8

Come monitorare le prestazioni di Ubuntu utilizzando Netdata

Come installare i moduli Perl usando CPAN su CentOS 8

Come installare i moduli Perl usando cPanel?