Virtualizzare un server

Molti gestori di servizi ricorrono alla virtualizzazione per avere su una singola macchina più server web, server di posta, ecc... Per l'utente, invece, può essere comodo virtualizzare una distribuzione Linux per avere un ambiente su cui sperimentare e fare test senza intaccare la macchina fisica. VirtualBox consente infatti di avviare una virtual machine senza interfaccia grafica e di accedervi come fosse un server reale in rete.
Checklist
Prima di procedere, è necessario aver già:
- Installato VirtualBox, ovviamente...;
- Creato una macchina virtuale, secondo la procedura standard;
- Installato il sistema desiderato, es. Debian;
- Nel sistema virtualizzato, deve essere presente un server ssh, per potervi accedere dall'host (il sistema vero e proprio)
Forwardare le porte
Il sistema guest (quello virtualizzato) solitamente condivide la rete con l'host: per avere un dialogo host ↔ guest è necessario stabilire un canale di comunicazione. Per esempio, prendiamo l'SSH, che normalmente è in ascolto sulla porta 22. VirtualBox dovrà reindirizzare sulla porta 22 del sistema guest le richieste che l'host invia su una porta scelta a piacere, ad esempio 5022: per evitare conflitti è bene evitare di usare sull'host il valore di default.
Per fare tutto questo basta entrare nelle impostazioni della macchina virtuale, e cliccare su Port Forwarding nella tab Rete. Nella finestra che si apre è possibile inserire tutte le porte che ci interessano. I campi IP Host e IP Guest possono essere lasciati vuoti, in Host Port va inserita la porta a cui si accede dal sistema reale (per esempio 5022), mentre in Guest Port la corrispondente sul sistema virtualizzato (per esempio 22).
Allo stesso modo si può fare per il server web (es. 5080 e 80) e per tutti gli altri servizi di cui si ha bisogno.

Avviata la macchina virtuale, è possibile testare il port forwarding collegandosi via SSH. L'IP della macchina è il computer stesso (127.0.0.1), perché, come già detto, è VirtualBox che si occupa di reindirizzare le richieste al guest.
$ ssh utente@127.0.0.1 -p 5022
Avvio senza GUI
VirtualBox permette di avviare il sistema guest in background, senza un interfaccia grafica (GUI). Per fare questo è sufficiente lanciare il seguente comando, che avvia una vm chiamata debian-serv:
VBoxHeadless --startvm "debian-serv" --vrde off
L'opzione --vrde off
serve a disabilitare il servizio di desktop remoto che VirtualBox mette opzionalmente a
disposizione. Siccome sul guest è presente solo la riga di comando, questo è superfluo ed è possibile disattivarlo.
