Una vez que tenemos GNS3 instalado y funcionando en nuestro Zimablade, es hora de configurar todos los componentes necesarios para montar nuestra red de pruebas. ¡Vamos a sumergirnos en el proceso!
Herramientas Necesarias
Para este proyecto, utilizaremos:
– Docker y Docker Compose
– VirtualBox
– QEMU/KVM
Los métodos de instalación de estos requisitos se encuentran documentados en sus respectivas webs ofíciales.
Aunque GNS3 es compatible con productos de VMware, en este caso no los usaremos. Sin embargo, si en algún momento necesitáramos utilizar imágenes de VMware, es posible convertirlas a otro formato compatible (qcow2, ova…).
Optimización de Recursos en Zimablade
Dado que nuestro Zimablade cuenta con 16 GB de RAM y 4 núcleos, es fundamental optimizar el uso de estos recursos. Para lograrlo:
Docker será una pieza clave. Muchos de los nodos de nuestra red de pruebas estarán dockerizados, lo que reduce significativamente el consumo de recursos, permitiendo un entorno de pruebas más amplio.
VM GNS3: Ejecutaremos la VM de GNS3 en modo headless (sin interfaz gráfica) para ahorrar recursos.
Otras VMs: Podremos añadir alguna VM específica según necesitemos, siempre teniendo en cuenta el consumo de recursos, y que como máximo vamos a poder disponer de una o dos máquinas virtuales completas, debido a las limitaciones del hardware.
La idea es instalar los docker en el sistema host local, y las VM a través de la GNS3 VM, accesible todo desde el cliente GNS3 local. Más adelante veremos cómo configurar esta parte.
GNS3 Web vs. Cliente Gráfico
GNS3 ofrece una interfaz web (actualmente en beta), pero durante nuestras pruebas no funcionó de manera óptima. Algunos nodos no se podían añadir y aparecían varios errores. Por ello, optamos por utilizar el cliente gráfico de GNS3, que ofrece una experiencia más estable y completa.
Para que nuestro equipo pueda acceder al cliente gráfico de GNS3 desde cualquier lugar a través de la VPN Tailscale, solo necesitamos tener el puerto SSH abierto en el servidor, y por supuesto, Tailscale configurado. Esto nos permite redirigir la interfaz gráfica de GNS3 a través del túnel SSH, accesible desde la VPN. Para ello el servicio debe estar accesible desde la consola de administración de Tailscale VPN.
Habilitando X11 Forwarding en el Servidor
Para redirigir la interfaz gráfica de GNS3 a través de SSH, debemos habilitar X11 Forwarding en nuestro servidor Zimablade. Aquí te explico cómo hacerlo:
Editar el archivo de configuración de SSH: /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
Reiniciar el servicio SSH:
sudo systemctl restart ssh
Con esto, cualquier cliente conectado a través de SSH podrá abrir la interfaz gráfica de GNS3 en su propia máquina, como si estuviera directamente en el servidor.
Diagrama de Red
Aquí te dejo un esquema de la configuración base de nuestra red de laboratorio:
Acceso al Cliente Gráfico de GNS3
Para conectar al cliente gráfico de GNS3 desde nuestros equipos remotos a través de Tailscale VPN, usamos el siguiente comando en nuestra terminal:
ssh -XC usuario@tailscaleIP
Donde usuario es tu nombre de usuario y tailscaleIP es la IP asignada por Tailscale al servidor Zimablade.
Se abrirá GNS3 en modo gráfico:
Aunque este método de conexión resuelve poder conectar a cualquier miembro del equipo, sin necesidad de abrir puertos para el Zimablade, desde el punto de vista de la latencia, no es del todo eficiente. Si abrimos consolas en los nodos del lab, vamos a notar una latencia importante, lo cual termina en una experiencia de usuario realmente pobre, especialmente si hay muchos saltos en la ruta entre cliente-servidor, debido al doble túnel (Tailscale VPN + Redirección SSH).
Esto lo podemos solventar de varias formas:
– Instalando Tailscale en la GNS3 VM. De esta forma puede ser utilizado remotamente desde otros hosts dentro de la misma red, en modo headless. Esto nos permitirá conectar directamente con esta máquina, que estará dentro del rango de IP’s host-only, del adaptador de Virtualbox. Dado que la latencia obtenida dentro de esta VPN es bastante buena, es una solución óptima.
Zimablade Server
GNS3 VM
– Redirigiendo por el túnel SSH, en lugar del entorno de las X completo, solamente la conectividad con las interfaces web, y el propio servicio GNS3. Esto tiene asociado el problema que hemos comentado anteriormente, que la web es todavía bastante poco estable, aunque para la conexión directa del cliente GNS3 (desde cualquier OS) es una buena solución.
ssh -L 3080:localhost:3080 tailscaleIP
– Importar todos los nodos e imágenes en local, o configurar las direcciones IP dentro de la Tailscale VPN del host Zimablade, y de la GNS3 VM, dentro del cliente GNS3 como servidores remotos, y trabajar desde ahí. Aunque de este modo, perderíamos el poder trabajar en equipo simultáneamente sobre el mismo proyecto, es la forma más eficiente de todas. Con una rutina de ir actualizando en el servidor las nuevas modificaciones que se hagan al laboratorio GNS3, sería una solución muy factible.
Próximos Pasos
Ahora que hemos configurado todos los servicios y comunicaciones básicas, estamos listos para adentrarnos en la configuración del laboratorio de Red Team. En el próximo capítulo, exploraremos cómo configurar y utilizar cada nodo y herramienta dentro de nuestro laboratorio.
¡Mantente atento para más detalles en la siguiente entrega!