Uso della virtualizzazione e di SOAP per la
gestione remota dei PC delle aule e dei
laboratori
Michele Ricciardelli, Dario Russo1
Dipartimento DEMM - Università degli Studi del Sannio in Benevento
Piazza Guerrazzi N.1 82100 Benevento (BN)
[email protected]
1Dipartimento DEMM - Università degli Studi del Sannio in Benevento
Piazza Guerrazzi N.1 82100 Benevento (BN)
[email protected]
Questa esperienza progettuale nasce dall’esigenza di avere
dei laboratori informatici multidisciplinari con computer
controllabili da remoto. Nella pratica comune capita spesso
che sui computer condivisi possano nascere problemi di
funzionamento a causa della presenza di virus, di
manipolazioni della configurazione o per la non capillare
installazione di software, o essere oggetto di accessi non
autorizzati che possono comprometterne la sicurezza. Con
questo lavoro si intende proporre una soluzione a queste
criticità, con un modello che sfrutta la virtualizzazione per
creare delle macchine più facilmente controllabili, in grado di
essere gestite anche da remoto e dove viene limitata al
minimo la manutenzione. Il tutto sfruttando il ricorso al
mondo open-source, che rende il modello facilmente
esportabile in qualsiasi ambito didattico.
1. Introduzione
Spesso i PC presenti negli ambienti condivisi delle Università non
funzionano a causa di problemi dovuti alla presenza di virus, a problemi
hardware o a tentativi di manipolazione. Le principali cause alla base di questi
problemi sarebbero da ricercare nella mancanza di fondi per la manutenzione,
nella mancanza di personale e nelle debolezze intrinseche al sistema operativo
Windows, solitamente utilizzato in ambito accademico.
Ma è possibile intervenire su questi processi? Questo lavoro propone un
modello che, se implementato, permette di ridurre drasticamente gli interventi di
manutenzione, permettendo il controllo e la gestione dei computer anche da
remoto.
DIDAMATICA 2016 – ISBN 9788898091447
DIDAMATICA 2016
2. Obiettivi
Il primo obiettivo di questo lavoro è stato quello di creare dei sistemi in grado
di soddisfare differenti richieste didattiche. Per centrare questo obiettivo si è
pensato di sfruttare la virtualizzazione attraverso cui è stato possibile garantire
nei laboratori un’offerta multidisciplinare, sfruttando la possibilità di installare su
di un’unica piattaforma più sistemi operativi [Moriggia, 2009].
L’altro obiettivo è stato quello dell’affidabilità. L’uso continuo, soprattutto da
parte di utenti diversi, rende le macchine vulnerabili rispetto a modifiche della
configurazione iniziale, ad installazioni di software non autorizzate e, infine, alle
infezioni virali. Il modello proposto, con la virtualizzazione, realizza computer
affidabili ed a prova di manomissione.
L’ultimo obiettivo è stato quello del controllo a distanza. La carenza di
personale unita alla necessita di automatizzare molti processi, legati
all’installazione del software o al controllo, ci ha spinto a studiare delle soluzioni
che permettessero di intervenire da remoto su singoli PC, o programmare degli
interventi su gruppi di PC sfruttando le risorse che può offrire la virtualizzazione,
attraverso il controllo del sistema Host e Guest.
L’esperienza sul campo di architetture basate su tale modello ci permette di
affermare a ragion veduta che una buona parte di questi obiettivi sono stati
raggiunti.
3. Il modello
Il modello contempla un PC con Linux (nel nostro caso abbiamo optato per
la distribuzione CentOS, versione 6.4) come sistema operativo Host, su cui
girano delle macchine virtuali, gestite mediante VirtualBox. In particolare
abbiamo predisposto due macchine virtuali: una con Windows 7, con installati il
pacchetto Office ed i browser Crome e Firefox, antivirus e tutto quanto
necessario per le comuni esigenze didattiche; un'altra con Linux, una macchina
questa predisposta per lo sviluppo software e l’analisi statistica, con ambiente
grafico, compilatori, software matematici, etc.
Al boot dell'Host, dal menu di Grub viene scelta la macchina virtuale da
utilizzare. Il sistema Host è stato configurato in modo da prevedere l'auto-login.
In automatico viene così attivata la macchina virtuale con il sistema operativo
scelto. Questa poi prende il controllo di tutto il desktop.
L'utente finale quasi non percepisce che sta operando all'interno di un
ambiente virtuale avendo a disposizione sia l'accesso ad Internet, sia le risorse
audio, video e di stampa, insieme all’utilizzo dei dispositivi USB e CD Rom.
I vantaggi di questa architettura sono diversi, significativi sono il controllo da
remoto dell'Host, attraverso lo strato Linux, anche con accessi da terminale
mediante SSH e la sostituzione della macchina virtuale con la semplice copia
del file di Virtualbox.
2
Uso della virtualizzazione e di SOAP per la gestione remota dei PC delle aule e dei laboratori
4. L'architettura del sistema
Il sistema contempla l'utilizzo di un un Host Linux su cui gira il software
VirtualBox, che gestisce le macchine virtuali Windows e Linux, su cui operano
gli utenti. Per le aule abbiamo predisposto una macchina virtuale con Windows
7, con installati il pacchetto Office ed i browser Crome e Firefox, antivirus e tutto
quanto necessario per le comuni esigenze didattiche. Per i laboratori, alla
macchina virtuale precedente si è aggiunta una macchina virtuale con Linux,
completa di ambiente grafico GNOME, librerie e compilatori per lo sviluppo
software e l’analisi statistica (Fig. 1).
GUEST LINUX
-gcc
-java
-python + Idle
-R
GUEST WINDOWS7
-Office
-Web Browsers
-Antivirus
-VLC
Livello Utente
VIRTUAL BOX
Amministrazione
HOST LINUX
Fig. 1 - L'architettura del Client
3
DIDAMATICA 2016
Tutti i PC prevedono la presenza di una partizione dedicata ad ospitare una
copia locale di backup delle macchine virtuali utilizzate. Si è fatta questa scelta
per poter sostituire facilmente una macchina virtuale corrotta in pochi istanti,
volendo anche da remoto, mediante degli script appositamente predisposti.
5. Il client
Al boot dell'Host, dal menu di Grub viene scelta la macchina virtuale da
utilizzare, oppure una delle voci di manutenzione o ripristino automatizzato
protette da password, che sono state predisposte. Le configurazioni per uso
didattico prevedono l'auto-login sull'Host Linux di un utente a bassi privilegi. In
automatico viene attivata ---a pieno schermo--- la macchina virtuale con il
sistema operativo scelto, il cui caricamento é mascherato da una finestra
grafica di avviso contenente una netiquette temporizzata, che si chiude a
caricamento effettuato, lasciando l'utente libero d'interagire con il sistema
operativo Guest. L'utente finale quasi non percepisce di essere all'interno di un
ambiente virtuale, avendo a disposizione sia l'accesso ad Internet, sia tutte le
risorse locali, quali: dispositivi USB, servizi audio/video e di stampa, e tutte le
normali scorciatoie da tastiera previste dal sistema operativo.
I vantaggi di questa architettura sono diversi e comprendono: la possibilità
di controllare da remoto il Guest attraverso il VirtualBox Web Server [Oracle
Corporation, 2014], lasciato in ascolto in background sul sistema operativo Host
Linux, ad esempio mediante il programma phpVirtualbox; oppure con accessi
diretti da terminale via SSH, per operazioni di manutenzione o di emergenza;
oppure con script da noi realizzati che operano sia sul’Host che sul Guest.
Gli script messi a punto finora forniscono la possibilità: di filtrare e
monitorare i servizi internet della singola macchina; di mettere in lock da remoto
un PC, avvalendosi anche delle funzioni del protocollo X11 [Nye, 1995]; di
avviare da remoto il software del sistema operativo Guest; di ricostruire una
macchina virtuale copiando semplicemente la sua immagine (file VDI di
VirtualBox) dalla partizione di backup; di ripristinare una partizione del disco
fisso o l’intero PC da un clone server.
6. Il funzionamento dell'Host Linux
L'Host Linux è predisposto per essere completamente invisibile all'utente,
ma accessibile al personale all'occorrenza, mediante il richiamo all'avvio di
specifiche voci del menu di Grub. Su esso, oltre al gestore delle macchine
virtuali sono installati alcuni script, che si possono distinguere in due tipologie
principali: script di gestione degli eventi e script di manutenzione.
4
Uso della virtualizzazione e di SOAP per la gestione remota dei PC delle aule e dei laboratori
Gli script di gestione degli eventi sono scritti in Python sfruttando le API
messe a disposizione da VirtualBox e con esso s'interfacciano. I compiti
principali che assolvono sono: lanciare il banner con la netiquette all'avvio della
macchina virtuale, provvedere allo spegnimento software della macchina Host
nel momento in cui la macchina Guest viene spenta.
Consentono anche il blocco di mouse e tastiera di specifici PC, oppure di
disabilitare/abilitare le connessioni di rete (ad esempio in occasione di un
esame), avviare/fermare la registrazione della sessione di lavoro per poterla
successivamente condividere in rete, si occupano di montare in modo
trasparente i dispositivi USB inseriti nelle porte del PC sul Guest. A tal fine è
stata scritta anche una specifica regola di udev.
Gli script di manutenzione sono quelli che si occupano della
personalizzazione della specifica macchina, come l’assegnazione dell’indirizzo
IP, hostname, l’aggancio al dominio, etc. sia nella parte Host che nella parte
Guest. Per queste operazioni si sono utilizzati script bash sul lato Linux e, per la
macchina virtuale Windows i normali batch di DOS.
Uno dei vantaggi derivanti dall’uso di una macchina virtuale è che grazie al
sistema operativo Linux dell’Host, la macchina virtuale è indipendente
dall’hardware fisico. Nel nostro caso infatti l’immagine della macchina virtuale
Windows, utilizzata sia nelle aule che nei laboratori, è la stessa e gira su
architetture fisiche differenti. Ovviamente a questa macchina sono state
applicate delle personalizzazioni funzionali all’attività ed all’ambiente in cui
questa deve operare.
7. Il funzionamento del Guest Windows
Il Guest Windows è una macchina Windows 7 con tutti i normali applicativi
didattici, quali il pacchetto office, i plug-in flash dei browser, i programmi di
visualizzazione dei video e dei file Pdf. La macchina virtuale opera esattamente
come una macchina fisica e non si avvertono differenze o rallentamenti
significativi nella gestione dei processi.
Per la configurazione di Windows si è fatto uso dei modelli amministrativi
messi a disposizione da questo sistema operativo: sia per limitare le attività
potenzialmente dannose da parte degli utenti, negando loro specifici privilegi o
la possibilità di effettuare talune operazioni, ad esempio cambiare lo sfondo del
desktop, oppure lanciare eseguibili da una pennetta USB; sia per operazioni di
fine-tuning, come consentire il riconoscimento dei dispositivi inseriti dagli utenti
non-amministratori, oppure prevedere la cancellazione automatica della cache
del browser. Si raggiunge così un buon compromesso tra usabilità della
macchina e sicurezza.
5
DIDAMATICA 2016
8. VBoxManage
VBoxManage è un’interfaccia di Virtualbox da linea di comando. Con essa è
possibile controllare una macchina virtuale con comandi eseguiti sul sistema
Host. Utilizzando il comando Execute, previsto nel set di comandi della
specifica Guestcontrol, è possibile lanciare dei programmi nel sistema operativo
Guest. Sfruttando questa possibilità abbiamo creato un insieme di script per
Windows, collocati in una directory accessibile solo all’amministratore della
macchina Guest, con cui si configura o si interviene sul funzionamento del
sistema operativo Windows (per la macchina virtuale Linux il discorso è
analogo, sono script bash di proprietà di root). Questi script vengono lanciati
dalla macchina Host attraverso il canale di comunicazione definito
dall’interfaccia VBoxManage sulla macchina Guest.
Avendo un canale di comunicazione tra la macchina Host Linux e la
macchina Guest è stato naturale pensare ad un controllo remoto del PC.
Configurando infatti un web server sulla macchina Host Linux si è utilizzato il
protocollo HTTP per interagire da remoto con dei servizi residenti sull’Host.
Questi servizi lanciano, con delle chiamate di sistema fatte dalle pagine PHP
(linguaggio con cui sono stati scritti i servizi) dei comandi esterni residenti sul
file-system Linux. Un vantaggio derivante da questa scelta è di costruire delle
interfacce utenti gestibili attraverso un browser. Alcuni di questi comandi
utilizzano l’interfaccia VBoxManage per fare eseguire gli script presenti sul
sistema Guest, altri invece eseguono azioni direttamente sull’Host. In questo
modo, attraverso un browser, si riesce ad interagire a distanza sia con l’Host
che con il Guest lanciando dei comandi presenti sui loro filesystem. Questi
possono essere degli eseguibili o degli script di shell che operano direttamente
all’interno dei sistemi operativi delle macchine Host e Guest, senza che vi sia la
necessità di aprire delle sessioni da terminale o attivare delle sessioni di
desktop remoto. Questo aspetto è determinante per consentire al personale che
non ha grosse conoscenze tecniche di poter controllare a distanza i computer
delle aule o dei laboratori. Permettendo di demandare una gestione di primo
livello anche al personale ausiliario, liberando così risorse tecniche per altri
compiti.
6
Uso della virtualizzazione e di SOAP per la gestione remota dei PC delle aule e dei laboratori
9. Pear NET_Ping
Il controllo dello stato di un PC, ovvero se questi risulta essere acceso o
spento, è la prima e più importante azione da compiere in un sistema di
controllo remoto. Per verificare se un PC di un’aula o di un laboratorio risulta
acceso, e quindi se l’Host Linux è attivo, si è pensato di utilizzare il modulo
Net_Ping della libreria PEAR. Attraverso questo modulo vengono inviati, dal
server Web Joomla che ospita l’interfaccia utente del servizio (modulo client),
dei pacchetti ICMP verso l’indirizzo IP dell’Host Linux per verificare se questi è
in funzione.
La risposta viene intercettata e riportata a video mostrando un’icona verde
che rappresenta l’Host in funzione. L’operazione viene svolta in background e
viene eseguita una volta che si accede alla pagina del servizio. Quindi risulta
essere trasparente all’utente che si ritrova, nel caso in cui l’Host risulti attivo, i
bottoni dei comandi per il lancio degli script cliccabili (ovviamente non cliccabili
se l’Host non è attivo).
10. Il servizio web SOAP
Come abbiamo precedentemente accennato, quale sistema di controllo a
distanza dei PC delle aule o dei laboratori si è pensato di utilizzare
un’interfaccia web-based, questo per gli intuibili vantaggi legati all’utilizzo di un
browser come client.
Per lo sviluppo dei servizi web in grado di scambiare dei messaggi (che
identificano dei comandi) tra client e server, si è optato per il protocollo SOAP.
Questi è un protocollo nato proprio per lo scambio di messaggi tra componenti
software, che gestisce informazioni strutturate basate su XML. I messaggi
SOAP posso essere veicolati con il protocollo HTTP, quindi è possibile scrivere
delle applicazioni client/server utilizzando come mezzo di trasporto il Web.
Inoltre questo protocollo, visto che gestisce delle informazioni fortemente tipate
risulta essere affidabile e sicuro, caratteristiche queste che si sposano
perfettamente con le esigenze di un sistema di controllo a distanza dei PC delle
aule o dei laboratori.
In pratica sugli Host Linux, ovvero sui PC presenti nella aule e nei laboratori,
nella directory controllata dal Web server Apache è stato inserito il programma
che opera da server SOAP con il relativo documento WSDL, che definisce la
struttura dei messaggi scambiati. Documento questo che si basa su XML. Il
nostro client SOAP, invece, è un componente di Joomla, il CMS con cui è
realizzato il portale del Dipartimento. Tutto il software con cui sono stati
implementati sia il client che i server è stato scritto in PHP [Ed Lecky et al,
2009].
7
DIDAMATICA 2016
Fig. 2 La gestione client/server mediante SOAP
Il client è utilizzabile solo dal personale preventivamente autorizzato, che
accede a questo servizio autenticandosi sul CMS di Dipartimento, utilizzando le
credenziali assegnate. Il client SOAP comunica inviando messaggi con i server
SOAP presenti su ciascuno degli Host Linux ubicati nelle aule e nei laboratori.
Quindi volendo fare eseguire un comando all’interno della macchina virtuale
Windows di un certo PC, l’operazione che viene fatta è di collegarsi, mediante
un browser, al sito web del Dipartimento, autenticarsi ed accedere alla pagina
web del servizio che gestisce i client SOAP dei vari PC e selezionare il modulo
client del PC che interessa. Questi interagirà con il server SOAP presente
sull’Host Linux di quel PC. A questo punto, cliccando su semplici bottoni
presenti nell’interfaccia web del servizio, si lanceranno i programmi che
verranno eseguiti sul PC remoto (Fig. 2). Alcuni di questi programmi
eseguiranno azioni sulla macchina Guest utilizzando l’interfaccia VboxManage,
mentre altri opereranno direttamente sull’Host.
11. Conclusioni
Il modello proposto ha permesso di trasformare i laboratori del Dipartimento
in ambienti multidisciplinari e multifunzionali in maniera trasparente per docenti
e studenti. Ha permesso inoltre di utilizzare i laboratori in maniera indistinta ed
intensiva ed ha ridotto gli interventi di manutenzione.
La sperimentazione effettuata ci permette di affermare che il modello
proposto rende di fatto i laboratori affidabili. Eventuali malfunzionamenti, inoltre,
possono essere risolti rapidamente, con interventi programmati anche da
remoto.
Da non sottovalutare, infine, la possibilità di utilizzare da remoto delle
interfacce di gestione e controllo delle aule e dei laboratori, demandando una
gestione operativa di primo livello al personale ausiliario, in modo da liberare
risorse tecniche per altri scopi ed ottimizzare i processi lavorativi.
8
Uso della virtualizzazione e di SOAP per la gestione remota dei PC delle aule e dei laboratori
Bibliografia
[Grayson J.], Python and Tkinter Programming, Manning, 2000.
[Moriggia F.], Computer Infiniti, PC Professionale, 2009, 225, 32-49.
[Oracle Corporation], Oracle VM VirtualBox Programming Guide and Reference,
2014.
[Nye A.], X Protocol Reference Manual for X11 Release 6, O’Reilly and Associates,
1995.
[Ed Lecky, S. D. Nowicki, T. Meyer], PHP6 guida per lo sviluppatore, Hoepli, 2009
9