Homelab SOC #10 - Incorporando OPNsense: Construyendo el perímetro del laboratorio
Hasta este momento nuestro laboratorio ya es capaz de recopilar eventos provenientes de equipos Windows y Linux mediante Wazuh.
Sin embargo, todos los equipos continúan compartiendo una topología relativamente simple y aún no existe ningún dispositivo encargado de proteger el perímetro de la red, controlar el tráfico entre segmentos o registrar las conexiones que posteriormente analizará nuestro SOC.
En una infraestructura empresarial, esa responsabilidad recae sobre un Firewall.
Por este motivo, en este capítulo incorporaremos OPNsense, una distribución basada en FreeBSD orientada a seguridad perimetral, ampliamente utilizada tanto en entornos profesionales como en laboratorios de ciberseguridad.
Con esta incorporación nuestro laboratorio comienza a evolucionar desde un conjunto de máquinas virtuales hacia una arquitectura mucho más cercana a la utilizada en organizaciones reales.
Objetivo de este capítulo
La pregunta que responderemos será:
¿Cómo incorporar un Firewall profesional a nuestro Homelab SOC para comenzar a segmentar la red y preparar el laboratorio para IDS/IPS?
Al finalizar este capítulo tendremos:
- Firewall OPNsense instalado.
- Dos interfaces de red correctamente configuradas.
- Segmentación entre WAN y LAN.
- Acceso a la interfaz Web.
- Servidor DHCP funcionando.
- El laboratorio preparado para incorporar Suricata.
Arquitectura del laboratorio
Hasta el capítulo anterior la infraestructura tenía un aspecto similar al siguiente.
HOMELAB SOC
Arch Linux (Host)
│
VirtualBox NAT
│
┌──────────┴──────────┐
│ │
Debian (Wazuh) Windows 11
Aunque funcional, toda la infraestructura dependía de la conectividad proporcionada por VirtualBox y no existía ningún elemento encargado de controlar el tráfico entre redes.
Después de este capítulo, la arquitectura evolucionará hacia el siguiente diseño.
Internet
│
NAT VirtualBox
│
WAN (em0)
OPNsense FW
LAN (em1)
│
Red LAN-SOC
192.168.1.0/24
│
┌──────────┬────────┴───────┐
│ │ │
Kali Linux (Equipos) Servidores
Este firewall será el encargado de actuar como puerta de enlace entre Internet y nuestra red interna, permitiendo posteriormente incorporar reglas, políticas, VPN, IDS/IPS y múltiples mecanismos adicionales de seguridad.
En esta primera etapa únicamente construiremos la infraestructura base del Firewall.
En los siguientes capítulos incorporaremos Suricata, reglas de filtrado y posteriormente integraremos todos los registros generados por OPNsense dentro de Wazuh.
Descargando OPNsense
La imagen oficial puede descargarse directamente desde el sitio web del proyecto (https://opnsense.org/download/).
En la página de descargas seleccionamos:
- System Architecture: amd64
- Image Type: VGA
- Mirror: el más cercano a nuestro país
¿Por qué utilizar la imagen VGA?
La distribución de OPNsense ofrece distintos formatos de descarga dependiendo del entorno donde será instalada.
Para VirtualBox, VMware, Hyper-V o Proxmox, la imagen VGA es la opción recomendada por el propio proyecto, ya que está diseñada para utilizar una consola gráfica durante el proceso de instalación.
Las imágenes Nano están orientadas a dispositivos embebidos, mientras que Serial está pensada para equipos administrados mediante consola serie.
Por este motivo utilizaremos la variante VGA.
Después de descargar el archivo obtendremos algo similar a:
OPNsense-26.7-vga-amd64.img.bz2
Una vez descomprimido tendremos:
OPNsense-26.7-vga-amd64.img
En este punto pensé que podía utilizar directamente dicha imagen como disco duro virtual de VirtualBox.
Sin embargo, descubriría más adelante que este enfoque no era el más adecuado.
Primer intento: convertir la imagen a VDI
Como VirtualBox no permite utilizar directamente archivos .img como disco virtual, decidí convertir la imagen utilizando la utilidad VBoxManage.
VBoxManage convertfromraw \
OPNsense-26.7-vga-amd64.img \
OPNsense.vdi \
--format VDI
La salida obtenida fue similar a:
Converting from raw image...
Creating dynamic image...
2521 MB
Podemos comprobar posteriormente la información del disco utilizando:
VBoxManage showhdinfo OPNsense.vdi
Obtendremos una salida similar a:
Capacity : 2520 MB
Storage format : VDI
Type : Dynamic
Hasta este punto ya disponemos de un disco virtual basado en la imagen descargada desde OPNsense.
Sin embargo, antes de crear la máquina virtual observé que el tamaño del disco apenas era de 2.5 GB, capacidad suficiente para arrancar el sistema Live, pero insuficiente para el laboratorio que construiremos más adelante.
Por ello, antes de continuar decidí ampliar el tamaño del disco virtual.
Ampliando el disco virtual
VirtualBox permite redimensionar discos dinámicos utilizando nuevamente VBoxManage.
VBoxManage modifymedium OPNsense.vdi --resize 51200
Con ello el disco pasa a tener una capacidad de 50 GB, más que suficiente para las pruebas que realizaremos durante el laboratorio.
Podemos comprobar nuevamente el resultado ejecutando:
VBoxManage showhdinfo OPNsense.vdi
La salida mostrará algo similar a:
Capacity : 51200 MB
Storage format : VDI
Type : Dynamic
Aunque el tamaño lógico ahora es de 50 GB, el archivo continúa ocupando únicamente unos pocos gigabytes en disco gracias al formato dinámico de VirtualBox.
Creando la máquina virtual
Con el disco preparado procedemos a crear una nueva máquina virtual.
La configuración utilizada fue la siguiente:
| Parámetro | Valor |
|---|---|
| Nombre | FirewallOPNsense |
| Tipo | BSD |
| Versión | FreeBSD (64-bit) |
| Memoria RAM | 4096 MB |
| Procesadores | 2 |
| Imagen ISO | Ninguna |
| Disco | OPNsense.vdi |
En lugar de crear un disco nuevo, simplemente seleccionamos el disco virtual que acabamos de generar.
Posteriormente agregaremos una segunda interfaz de red para separar la WAN de la LAN.
Iniciando OPNsense
Al arrancar la máquina virtual aparece una pantalla solicitando autenticación.
El sistema ofrece dos posibilidades.
Usuario : root
Password : opnsense
para utilizar el sistema en modo Live.
O bien:
Usuario : installer
Password : opnsense
para iniciar el proceso de instalación.
Seleccionamos la segunda opción.
El instalador solicita inicialmente la distribución del teclado.
En mi caso simplemente acepté la configuración por defecto (US) y posteriormente seleccioné:
Install (ZFS)
Todo parecía ir perfectamente…
…hasta que apareció el primer problema.
Primer inconveniente
Después de seleccionar la instalación mediante ZFS, el instalador mostró el siguiente mensaje:
No disk(s) present to configure
Es decir, OPNsense no detectaba ningún disco donde realizar la instalación.
Después de revisar varias veces la configuración de la máquina virtual descubrí que el problema no estaba relacionado con ZFS, sino con la forma en que VirtualBox había conectado el disco.
El disco se encontraba conectado a un controlador IDE, mientras que FreeBSD esperaba encontrarlo mediante un controlador SATA (AHCI).
Cambiando el disco de IDE a SATA
La solución consiste simplemente en modificar el controlador de almacenamiento desde VirtualBox.
El procedimiento fue el siguiente:
- Desconectar el disco virtual del controlador IDE.
- Crear un nuevo controlador SATA (AHCI).
- Asociar nuevamente el disco OPNsense.vdi al nuevo controlador.
El lector de CD puede permanecer conectado al controlador IDE sin ningún inconveniente.
Una vez realizado este cambio reinicié nuevamente la instalación esperando que el problema hubiese quedado resuelto.
Sin embargo…
todavía quedaba un inconveniente más.
Un error mucho más interesante
Ahora el disco sí aparecía correctamente.
El instalador permitía seleccionarlo.
ZFS comenzaba el proceso de creación de particiones.
Pero finalmente aparecía un error similar a este:
Operation not permitted
Después de investigar bastante tiempo comprendí finalmente qué estaba ocurriendo.
La imagen VGA (.img) que habíamos descargado no es un medio de instalación tradicional.
En realidad contiene un sistema operativo Live completo.
Al convertir dicha imagen en un disco virtual y arrancar desde él, OPNsense estaba ejecutándose precisamente desde el mismo disco donde posteriormente intentábamos instalar el sistema operativo.
Es decir, el instalador pretendía modificar la tabla de particiones del disco que mantenía ejecutándose en ese mismo instante.
FreeBSD bloquea esta operación para evitar la corrupción del sistema.
En otras palabras… el procedimiento funcionaba técnicamente… pero nunca iba a permitir instalar OPNsense sobre ese mismo disco.
La solución correcta
Llegados a este punto decidí abandonar completamente este enfoque.
En lugar de seguir utilizando la imagen VGA (.img) regresé nuevamente a la página oficial de descargas para buscar otra alternativa.
Fue entonces cuando encontré la imagen de instalación tradicional:
OPNsense-26.7-dvd-amd64.iso
A diferencia de la imagen anterior, esta ISO está diseñada específicamente para arrancar el instalador desde un medio independiente y posteriormente copiar el sistema operativo hacia un disco duro completamente vacío.
Exactamente igual que ocurre con cualquier distribución de Linux.
Aunque inicialmente parezca un contratiempo, este proceso permitió comprender una diferencia importante entre las imágenes Live (.img) y las imágenes DVD (.iso) de OPNsense.
Conocer esta diferencia puede ahorrar varias horas de pruebas a cualquier persona que esté construyendo un laboratorio similar.
Creando nuevamente la máquina virtual
Con la imagen ISO descargada decidí comenzar nuevamente desde cero.
Esta vez la configuración fue prácticamente la misma:
| Parámetro | Valor |
|---|---|
| Nombre | OPNsense |
| Tipo | BSD |
| Versión | FreeBSD (64-bit) |
| Memoria RAM | 4096 MB |
| CPU | 2 |
| Disco duro | Nuevo (50 GB dinámico) |
| Imagen ISO | OPNsense-26.7-dvd-amd64.iso |
Además, antes de iniciar la instalación aproveché para configurar las dos interfaces de red que utilizará el firewall:
- Adaptador 1 → NAT de VirtualBox (WAN)
- Adaptador 2 → Red Interna (LAN-SOC)
Con esta configuración ya estábamos listos para realizar la instalación definitiva de OPNsense.
Instalando OPNsense
Una vez iniciada la máquina virtual desde la imagen DVD, volvemos a autenticarnos utilizando el usuario destinado a la instalación.
Usuario : installer
Password : opnsense
El instalador solicitará inicialmente la distribución del teclado.
En mi caso mantuve la opción por defecto:
US
A continuación seleccionamos el sistema de archivos:
Install (ZFS)
Configurando ZFS
El asistente preguntará qué tipo de configuración deseamos utilizar para el almacenamiento.
Como el laboratorio utilizará un único disco virtual, seleccioné:
stripe (no redundancy)
Esta opción distribuye la información sobre un único disco sin proporcionar redundancia.
En un entorno de producción probablemente optaríamos por un esquema RAID con varios discos, pero para un laboratorio esta configuración resulta más que suficiente.
Después seleccionamos el disco:
ada0
El instalador mostrará una advertencia indicando que toda la información almacenada será eliminada.
WARNING
This operation will destroy all data on the selected disk.
Proceed?
YES
Confirmamos la instalación y esperamos unos minutos mientras OPNsense copia todos los archivos al nuevo disco.

Finalizando la instalación
Una vez concluida la copia de archivos, el asistente ofrece la posibilidad de modificar la contraseña del usuario root.
Aunque este paso es opcional, recomiendo realizarlo inmediatamente para evitar mantener las credenciales por defecto.
Después simplemente seleccionamos:
Complete Installation
Reboot
Antes de reiniciar no olvides desmontar la imagen ISO desde la configuración de VirtualBox.
De lo contrario la máquina volverá a iniciar el instalador en lugar del sistema recién instalado.
Primer inicio
Después del reinicio iniciamos sesión utilizando la contraseña definida anteriormente.
La consola principal de OPNsense mostrará un menú similar al siguiente.
1) Assign Interfaces
2) Set interface IP address
3) Reset web GUI password
...
13) Reboot
14) Shutdown
A partir de este momento comenzaremos a configurar nuestro Firewall.

Asignando las interfaces
El primer paso consiste en asignar correctamente las interfaces de red.
Seleccionamos:
1) Assign Interfaces
El asistente preguntará inicialmente si deseamos configurar:
LAGGs
Respondemos:
No
Posteriormente preguntará si deseamos configurar:
VLANs
Nuevamente respondemos:
No
Finalmente asignamos las dos interfaces físicas detectadas por el sistema.
El objetivo es obtener una topología similar a la siguiente.
Internet
│
NAT VirtualBox
WAN (em0)
10.0.2.15
│
OPNsense
192.168.1.1
LAN (em1)
│
Red LAN-SOC
│
Kali Linux
Una vez aplicada esta configuración el firewall ya es capaz de:
- Obtener conectividad hacia Internet mediante la interfaz WAN.
- Proporcionar direcciones IP mediante DHCP sobre la LAN.
- Actuar como puerta de enlace para los equipos internos.
Un problema bastante curioso
Durante las primeras pruebas encontré un comportamiento bastante extraño.
Aunque VirtualBox tenía correctamente configuradas las dos tarjetas de red, OPNsense decidió asignarlas en el orden contrario.
El resultado era el siguiente.
| Adaptador VirtualBox | OPNsense |
|---|---|
| Adaptador 1 (NAT) | LAN |
| Adaptador 2 (LAN-SOC) | WAN |
Evidentemente esto impedía que el laboratorio funcionara correctamente.
Después de revisar varias veces la configuración descubrí que la solución era mucho más sencilla de lo que parecía.
Simplemente volví a ejecutar:
Assign Interfaces
y reasigné manualmente las interfaces.
La configuración final quedó de la siguiente forma.
| Interfaz | Adaptador | Función |
|---|---|---|
| em0 | Adaptador 1 (NAT) | WAN |
| em1 | Adaptador 2 (LAN-SOC) | LAN |
Este comportamiento puede variar dependiendo del orden en que VirtualBox presenta las interfaces al sistema operativo invitado.
Si observas que WAN y LAN aparecen invertidas, normalmente basta con reasignarlas manualmente desde la consola de OPNsense.
Probando la red interna
Una vez corregidas las interfaces cambié la tarjeta de red de mi máquina Kali Linux para conectarla a la red interna:
LAN-SOC
Al iniciar nuevamente Kali obtuvo automáticamente una dirección IP mediante DHCP.
192.168.1.188
Con ello pude comprobar que:
- El servidor DHCP funcionaba correctamente.
- Existía conectividad entre Kali y el Firewall.
- La interfaz LAN estaba operativa.
Accediendo a la interfaz Web
Una de las mayores ventajas de OPNsense es que prácticamente toda la administración puede realizarse desde una interfaz gráfica.
Desde Kali simplemente abrimos el navegador y accedemos a:
https://192.168.1.1
Introducimos las credenciales configuradas durante la instalación y aparecerá el Dashboard principal.

A partir de aquí podremos comenzar la configuración inicial mediante el asistente integrado.
Estado actual del laboratorio
Al finalizar este capítulo conseguimos:
- ✓ OPNsense instalado correctamente.
- ✓ Firewall operativo.
- ✓ Segmentación WAN y LAN.
- ✓ Servidor DHCP funcionando.
- ✓ Kali Linux obteniendo dirección IP automáticamente.
- ✓ Acceso a la interfaz Web.
- ✓ Infraestructura preparada para la siguiente fase del laboratorio.
La incorporación de OPNsense supone un cambio importante en la arquitectura del Homelab SOC. Hasta ahora dependíamos exclusivamente de la red proporcionada por VirtualBox.
A partir de este momento disponemos de un firewall dedicado capaz de controlar el tráfico entre redes, aplicar políticas de seguridad y convertirse en el punto central de comunicación de toda la infraestructura.
¿Qué sigue?
Con el firewall ya instalado y funcionando correctamente, el siguiente paso será comenzar a inspeccionar el tráfico que circula por nuestra red.
En el próximo capítulo integraremos Suricata dentro de OPNsense para convertir nuestro firewall en un sistema IDS/IPS, capaz de detectar escaneos de puertos, intentos de explotación y otras amenazas en tiempo real.
Esta incorporación marcará un punto de inflexión en el laboratorio, ya que dejaremos de monitorizar únicamente los equipos para comenzar también a analizar el tráfico que circula entre ellos.
Lo aprendido
En este capítulo incorporamos el primer dispositivo de seguridad perimetral del Homelab SOC.
Más allá de la instalación de OPNsense, el proceso permitió comprender varios aspectos importantes relacionados con la virtualización y la arquitectura de un firewall moderno.
Durante el despliegue aprendimos la diferencia entre las imágenes Live (.img) y las imágenes de instalación DVD (.iso), resolvimos problemas relacionados con los controladores de almacenamiento de VirtualBox y configuramos correctamente las interfaces WAN y LAN para segmentar la red del laboratorio.
Con este nuevo componente dejamos atrás una infraestructura plana basada únicamente en máquinas virtuales y damos el primer paso hacia una arquitectura mucho más cercana a la utilizada en entornos empresariales.
A partir de ahora todo el tráfico del laboratorio atravesará OPNsense, convirtiéndolo en el punto ideal para aplicar políticas de seguridad, registrar conexiones y, en los próximos capítulos, incorporar capacidades de detección mediante Suricata.