Crear pequeño cluster de servervidores en Virtualbox

Saludos.

Luego de algo de tiempo sin escribir un artículo hoy les comparto un pequeño script que realicé con la gran ayudad de los maravillosos manuales.
El propósito inicial era automatizar un poco la creación de máquinas virtuales en un perqueño server de pruebas local. La idea es tener un pequeño cluster de servidores virtuales pero a falta de $ para una licencia de VMWare ESXI pues el software opensource puede ayudar.

SERVIDOR

Lo que se me ocurrió es utilizar una máquina con Debian, VirtualBox y un servidor SSH instalados.

Hay muchas formas de implementar estas tecnologías solo les comparto algunas:

* Nuestro equipo debe tener una ip fija.
* Podemos agregar llaves para una conexión SSH sin contraseña (y a un usuario sin privilegios para luego escalar a root).
* En caso de querer agregar seguridad podemos configurar un firewall como NetFilter (o un frontend como ufw) o la nueva generación de FW llamada Nftables (de la cual escribiré un artículo pronto).

La ventaja de esto es que podemos montar varios servidores y hacer pruebas con ellos (como un cluster). Esto claro limitado por las capacidades de nuestro equipo servidor.

SCRIPT

Cuando ya tengamos montado nuestro equipo con las especificaciones, podemos utilizar el siguiente script que dejo en mi github.

Podemos copiar este script dentro de nuestro servidor con scp y modificar las variables que tiene. Está documentado con comentarios, así que es fácil de implementar y hasta modificar al gusto.

VBOXHEADLESS

 Ahora viene la pregunta,  ¿pero cómo hacemos para administrar estas máquinas virtuales desde un equipo remoto? Bueno es aquí donde vboxheadless viene al rescate.

Casi al final del  script viene una sentencia "if" para agregar o no la funcionalidad de "vrde" a la máquina virtual. Esto significa que si queremos ser capaces de acceder de forma remota por medio de un escritorio remoto. Solamente necesitaremos un cliente para poder conectarnos

Primero iniciamos la máquina en el server remoto (obviamente desde nuestra sesión SSH):

vboxheadless --startvm "vm_name" &

Es necesario especificar el nombre de la máquina virtual entre comillas. Yo les recomiendo que no utilicen nombres con espacios, por aquello de las broncas luego. Lo que este comando hará será iniciar un server RDP accessible con cualquier cliente rdesktop. Voilá! Ya tenemos acceso remoto a la máquina virtual.

RESUMEN

Es obvio que el rendimiento de este "cluster de servers" no será el mismo que el de VMWare, pero 
funciona para pruebas (o tal vez si es mejorable con un Kernel al gusto y optimizado además de mejoras en la interacción al mismo).

Como algo más hay un tópico del que se habla mucho y es la microsegmentación. Es posible hacer algo de ello con máquinas virtuales, no es un concepto nuevo. Se trata de utilizar equipos de red virtuales (normalmente firewalls). Si quieres aprender a hacerlo, puedes comenzar por jugar con la idea del post. Eso o montar un GNS3 y jugar un poco con SDN y virtualización de equipos de red.

Otro de los puntos a tomar en cuenta es que se pueden crear certificados para cifrar las conexiones RDP de nuestro server VBox. Todo ello está en la documentación.

Está claro que la idea es mejorable pero eso se los dejo a su criterio e imaginación.

By: Krh3rtz
Happy Hacking!

__Exploiting vulnerabilities, creating new ways through__

Comentarios

Entradas más populares de este blog

Android - Persistencia en sistemas móviles (reverse shell).

Buffer Overflows POC - Análisis de Stack, su organización y explotación