En aquest post descriuré com instal·lar l’Ubuntu Server en una màquina virtual amb VirtualBox i poder fer-lo servir per a servir pàgines web a través d’Internet. Les mateixes instruccions també haurien de ser aplicables per a altres distribucions de GNU/Linux.

Instal·lació del VirtualBox

Primer de tot, instal·la el VirtualBox que correspongui a la teva distribució des d’aquí. Si prefereixes utilitzar la OSE (Open Source Edition, versió GPL però amb algunes mancances) també hauria de funcionar; tingues en compte que si vols utilitzar el VirtualBox per a ús comercial has d’utilitzar la versió OSE o bé comprar una llicència per a la completa (de franc només està disponible per a ús privat).

Instal·lació del sistema operatiu

Crea una màquina virtual i instal·la l’Ubuntu Server o la distribució que prefereixis. En el cas de l’Ubuntu, si després d’instal·lar-lo proves d’arrencar la màquina virtual i et surt un error del nucli, fes el següent: apaga la màquina virtual, vés a la finestra «Paràmetres» de la màquina virtual, i a la pestanya «Avançat» de l’apartat «General» marca la casella «Habilita PAE/NX»; un cop fet això hauria de funcionar.

Opcional: Instal·lació de les Guest Additions

Si ho desitges, instal·la les «Guest Additions» (jo no he vist que facin res en l’Ubuntu Server, però si tens una GUI instal·lada fan possible compartir el porta-retalls entre el sistema host i el virtualitzat). Per a això, instal·la les dependències amb «sudo aptitude install make gcc linux-headers-2.6.24-23» (on 2.6.24-23 és la versió del nucli que facis servir), llavors al menú de la finestra on s’executi la màquina virtual ves a «Dispositius -> Instal·la les Guest Additions…», munta el CD-ROM que això simula fent «sudo mount /dev/cdrom /media/cdrom» i en acabat executa l’instal·lador amb «sudo /media/cdrom/VBoxLinuxAdditions-x84.run» (canviant x84 a amd64 si el sistema que has instal·lat és de 64 bits).

Configuració de les redireccions

Ara hem de configurar redireccions per als ports que ens interessi, tal com explica aquí.

Primer de tot hem de trobar el nom de la nostra màquina virtual, amb «VBoxManage list vms | grep Name»; en el meu cas és «Ubuntu Server» (quan aquesta cadena aparegui a continuació en una ordre l’hauras de substituir pel nom de la teva màquina virtual).

Ara post establir el port al que vols que els usuaris s’hagin de connectar, fent:

VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222

El port al qual arribarà el tràfic, amb:

VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22

I el tipus de connexió (que en principi sempre és el mateix):

VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP

Executant aquestes tres comandes ara pots connectar-te via SSH a la màquina virtual (sempre i quant l’openssh-server estigui instal·lat) amb «ssh -p 2222 localhost», on localhost és la màquina host. Pots repetir el mateix procediment per a qualsevol altre port, canviant «/ssh/» a qualsevol altre nom i els nombres dels ports (2222 i 22) per als que corresponguin. Per a exemple, per a servir pàgines web a través del port 8080:

VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/HostPort" 8080
VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/GuestPort" 80
VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/Protocol" TCP

(En lloc d’«http» pots utilitzar qualsevol altre nom que vulguis, com ara «web» o «elefant»). Per a que quedi clar, amb això tot el tràfic que arribi al port 8080 de l’ordinador host arribarà al port 80 de la màquina virtual. Tingues en compte que cal apagar i tornar a encendre la màquina virtual (amb reiniciar no n’hi ha prou) per tal que els canvis prenguin efecte.