Usare VirtualBox
Cos’è VirtualBox
VirtualBox è un software commerciale proprietario in grado di virtualizzare hardware x86.
Oltre al processore, permette di emulare alcuni dispositivi hardware o utilizzare direttamente quelli della macchina host.
Una versione ridotta del software è stata rilasciata da Innotek nel gennaio del 2007 sotto licenza GNU General Public License (GPL) v2.
Innotek è stata in seguito acquistata da Sun Microsystems, a sua volta acquisita da Oracle Corporation.
Il software viene rilasciato anche in una versione closed-source, dotata di funzionalità aggiuntive, gratuita per uso personale e in ambito accademico.
Immagini a disposizione
Ogni postazione del laboratorio 130 e del laboratorio 193 ha a disposizione una serie di macchine virtuali:
-
win10: Windows 10
-
gspn81: ambiente per GreatSPN
-
netkit: Netkit, per Cyber Security I
-
ws-dojo34: Web Security Dojo 3.4, per Cyber Security I
-
kali: Kali Linux, per Cyber Security I e II
-
labtainers: Solo per gli studenti del corso di Cyber Security II
-
seed: Solo per gli studenti del corso di Cyber Security II
Immagini utente
È possible definire una macchina virtuale “privata”, creando un apposito file con estensione .settings all’interno della propria area utente, nella cartella ~/vbox-scripts/settings.
Per capire sintassi e parametri possibili, si può prendere come esempio uno dei file che definiscono le macchine virtuali a disposizione, presenti in /opt/vbox-scripts/settings.
Le macchine virtuali definite in questo modo verranno elencate dagli script vm-setup e vm-start con l’indicazione (user) al fianco.
Attenzione! Se si definisce una macchina virtuale privata che ha lo stesso nome di una di quelle a disposizione, quella privata sostituisce quella a disposizione e verrà eseguita al suo posto dal comando vm-start.
Aggiornamenti delle macchine virtuali
Macchine Windows
Le macchine virtuali con Windows vengono normalmente aggiornate una volta al mese, a seguito del rilascio da parte di Microsoft degli aggiornamenti di sistema.
In quel momento vengono anche aggiornati i browser (Chrome e Firefox).
Altre applicazioni eventualmente caricate nell’immagine potrebbero essere aggiornate con una frequenza inferiore.
Se avete già fatto il setup, e dopo qualche giorno la macchina non parte più, è possibile che la macchina virtuale sia stata aggiornata nel frattempo. In tal caso potete ripetere il setup per ripartire.
Altre macchine virtuali
Le altre immagini vengono aggiornate solitamente all’inizio dei corsi che le utilizzano, su richiesta del docente.
Configurazione
Per eseguire una macchina virtuale all’interno di VirtualBox è necessario
avere i corretti file di configurazione. Di default questi file risiedono
nella directory ~/.VirtualBox
o, dalle versioni più recenti, nella
directory ~/.config/VirtualBox
.
È possibile generare i file di configurazione per una specifica macchina virtuale e personalizzati per il proprio utente aprendo un terminale e digitando il comando seguente:
/opt/vm-images/scripts/vm-setup <id vm>
Se si digita il comando senza parametro verrà fornito l’elenco degli ID delle macchine virtuali disponibili.
Se la configurazione per una data macchina virtuale è già presente, verrà sovrascritta.
È anche possibile generare i file di configurazione per tutte le macchine virtuali disponibili con il comando seguente:
/opt/vm-images/scripts/vm-setup-all
Attenzione! Il programma di setup aggiorna i file di configurazione cercando di aggiungere/rispristinare solo la parte di configurazione relativa alla macchina virtuale che si sta installando. Se sono state fatte delle modifiche importanti ai propri file di configurazione, prima di eseguire il comando è opportuno salvarne una copia di backup, per non perderle.
Cartelle condivise
I file di configurazione che vengono generati automaticamente con il comando
vm-setup
sono personalizzati; all’interno della macchina virtuale è
automaticamente mappata come unità di rete l’area disco dell’utente che
ha eseguito il setup.
Per comodità, in alcune macchine virtuali è stato anche inserito sul desktop un collegamento alla cartella condivisa.
Fa eccezione la macchina virtuale per GreatSPN; in quella bisogna seguire le istruzioni presenti sul desktop della macchina virtuale per attivare le cartelle condivise.
Anche le macchine virtuali preparate per Cyber Security I e II potrebbero non avere le cartelle condivise già abilitate; seguite le istruzioni date dal docente a lezione.
Memorie USB
Tutte le memorie USB vengono montate nella cartella /run/media/nome_utente
del sistema host (per noi, Linux). Lo script vm-setup
crea un link
simbolico ~/vbox_media/nome_utente
, che punta alla suddetta cartella.
È questo link che viene poi mappato in modo automatico come unità di rete
all’interno della macchina virtuale.
Per comodità, in alcune macchine virtuali è stato anche inserito sul desktop un collegamento alla cartella in cui vengono aggiunti i dispositivi rimovibili.
Avviare VirtualBox
Per avviare una macchina virtuale è necessario aprire un terminale e digitare il comando seguente:
/opt/vm-images/scripts/vm-start <id vm>
Se si digita il comando senza parametro, verrà fornito l’elenco degli ID delle macchine virtuali configurate tramite il setup.
Nota: nel caso in cui compaia un messaggio di errore al momento dell’avvio, è possibile che i file di configurazione siano obsoleti, o siano stati corrotti in qualche modo. Per ripristinare la situazione conviene quindi cancellare tutti i file di configurazione con i seguenti comandi:
rm -rf ~/.VirtualBox rm -rf "~/VirtualBox VMs/" rm -rf ~/.config/VirtualBox
e lanciare nuovamente il comando
vm-setup
.
Esiste anche un programma grafico per la gestione delle macchine virtuali; si richiama da terminale con il comando:
/opt/vm-images/scripts/virtualbox
Attenzione! Se si esegue l’interfaccia grafica utilizzando il comando standard
VirtualBox
, incluso nel path, o la voce dei menu standard di Gnome o XFCE, l’avvio delle macchine virtuali non è garantito. Questo perché potrebbero mancare i dischi differenziali con gli snapshot, che vengono ricreati all’occorrenza dai nostri script.
In ogni caso, dopo avere avviato la macchina virtuale di Windows 10, il risultato dovrebbe essere simile a questo:
Recupero in caso di crash
Le macchine virtuali sono impostate per resettare il proprio stato ad ogni avvio.
Ciò significa che anche le modifiche sui dischi vengono perse all’avvio successivo.
In caso di crash della macchina virtuale è però possibile avviarla senza ripristinare
il disco e mantenendo quindi tutto quello che si era fatto prima del disastro.
A questo scopo si utilizza il flag -a
dello script vm-start
:
/opt/vm-images/scripts/vm-start <id vm> -a=off
Impostazioni avanzate di rete
Per alcuni corsi sarà necessario far parlare fra di loro due o più macchine virtuali, su una rete privata.
Queste impostazioni sono descritte sulla pagina VirtualBox NAT Network.