phpVirtualbox en Debian
phpVirtualbox es una aplicación en PHP que permite administrar VirtualBox gráficamente de forma remota (y local) mediante una interfaz muy similar a la GUI original.
Contenido
Instalación y configuración
Instalamos los paquetes libapache2-mod-php5
y apache2
, los nombres lo dicen todo uno es el servidor web y el otro para dar soporte a php.
Bajamos phpVirtualBox desde la página oficial. Lo descomprimimos y movemos al directorio raíz de la página por defecto, en un subdirectorio o creamos un nuevo virtualhost.
El paquete viene con un fichero de configuración genérico que debemos utilizar de plantilla para el nuestro.
Se edita el nuevo fichero y se cambia el valor de las variables $username
y password
por el nombre de usuario que ejecuta VirtualBox.
Por último cambiamos los permisos del directorio raíz de forma recursiva.
Instalar VirtualBox
Si aun no tenemos instalado VirtualBox debemos instalarlo antes de continuar. Podemos descargar el paquete específico para nuestro sistema desde la página oficial o añadir el repositorio e instalarlo con apt. Si estamos instalando phpVirtualBox en un servidor distinto al que corre las máquinas virtuales no es necesario.
vboxwebsrv
phpVirtualbox funciona con la API Web vboxwebsrv
, podemos comprobar si funciona iniciando vboxwebsrv
con el usuario definido anteriormente y entrando en 127.0.0.1
o de forma remota con la IP local.
El usuario y contraseña de phpVirtualbox por defecto es admin:admin.
Iniciar vboxwebsrv en el arranque
apache2 se añade automáticamente al inicio pero vboxwebsrv
no, es convniente añadirlo al sobretodo si se trata de un servidor que siempre tendrá máquinas corriendo.
systemd
Añadimos el servicio vboxweb-service.service
al inicio con systemctl
.
Debemos crear el fichero /etc/default/virtualbox
, una configuración mínima puede ser la siguiente:
init
Por defecto al instalar VirtualBox se crea el servicio vboxweb-service, lo añadimos al inicio.
Debemos crear el fichero /etc/default/virtualbox
, una configuración mínima puede ser la siguiente:
Autenticación externa
phpVirtualBox viene con una serie de configuraciones de las que podemos hacer uso, podemos autenticarnos contra un dominio, servidor LDAP, o en este caso la autenticación básica de apache.
Creamos un nuevo usuario desde la interfaz web como en la siguiente imagen.
Utilizando htpasswd
se crea el fichero .htpasswd
que contiene los usuarios y contraseñas autorizados. Si el fichero no existe como es mi caso, al añadir el primer usuario se ha de especificar la opción -c
.
Se edita el virtualhost correspondiente y se añade lo siguiente:
Por último modificamos el fichero de configuración de phpVirtualBox y le indicamos que esta será la forma de autenticación.
De forma remota
Es posible tener el servidor web y phpVirtualBox en un servidor distinto al que corre vboxwebsrv y las máquinas virtuales, incluso es posible hacer que la aplicación interactue con múltiples servidores a la vez.
Un solo servidor
Debemos seguir los mismos pasos anteriores añadiendo algunas modificaciones. Editamos el fichero de configuración e indicamos la IP y el nombre de usuario y contraseña de la máquina remota.
En el servidor que corre VirtualBox y vboxwebsrv
editamos el fichero creado anteriormente y cambiamos localhost por su IP local. Esta directiva le indica en que dirección y puerto debe estar escuchando.
Si reiniciamos el servicio veremos los cambios.
Y esto es todo, ya podemos controlar las máquinas virtuales desde un servidor distinto.
Múltiples servidores
Editamos el fichero de configuración config.php
, descomentamos y adaptamos el array $servers
.
Notas finales
Podemos utilizar fail2ban para evitar ataques de fuerza bruta. En la página oficial podemos encontrar mas información y otras configuraciones mas complejas.