Hola a tod@s,
En este post vamos a ver cómo desplegar y configurar dos firewalls OPNSense en modo clúster HA en Azure.
La topología que vamos a utilizar será esta:
- Lo primero que vamos a realizar es acceder a este link de dmauser, aquí vamos a encontrar un desarrollo para desplegar dos firewalls OPNSense sobre FreeBSD en modo cluster HA Activo-Activo:
- Se nos abrirá esta plantilla para el despliegue de OPNSense, sobre Deployment Scenarios le indicamos la suscripción, el grupo de recursos, la región y muy importante OPNSense Scenario que le indicamos Active-Active:
- Sobre Virtual Machine Settings le indicamos el nombre y tamaño de máquina, la URL para la descarga del script, la versión de OPNSense y la versión del agente de Azure:
- Para el despliegue y la configuración de la red virtual en Azure, vamos a seleccionar un espacio de direcciones en la red virtual, y le configuraremos las distintas subredes que va a utilizar el firewall y la que utilizaremos como la red local de Azure dónde se conectarán nuestras máquinas virtuales (ésta última la configuraremos a posteriori de la plantilla de despliegue):
- Red virtual: opnsenseha-vnet168.128.0/18
- Subred Externa: Untrusted-Subnet168.191.0/27
- Subred Interna: Trusted-Subnet168.191.32/27
- LAN Azure: SubnetLAN-192_168_128_0-24
- DMZ Azure: SubnetLAN-192_168_129_0-24
- Sobre Virtual Network Settings estas serían las configuraciones para nuestra infraestructura:
- Sobre Revisar y crear, nos muestra un resumen de todas las configuraciones realizadas, comenzamos a Crear todos los recursos de la plantilla OPNSense deployment:
- Como podemos ver, comienza el despliegue:
- Aquí vemos que ya ha terminado y se ha implementado correctamente, podemos ver, los distintos recursos que ha creado el despliegue de esta plantilla:
- Accedemos al grupo de recursos y vemos todos los recursos que se nos han creado, entre ellos, dos firewalls opnsense (primario y secundario), dos Load Balancer (Externo e Interno) y una IP pública:
- Ahora vamos a clicar sobre la máquina virtual opnsense-Primary:
- En la máquina virtual accedemos a Configuración de red y cómo podemos ver tenemos dos interfaces de red, una es la interface WAN de OPNSense que tiene asignada una IP privada del rango de la subred Untrusted, y la otra es la interface LAN que tiene asignada una IP privada del rango de la subred Trusted:
- Debemos de configurar las IPs privadas como estáticas, tanto la WAN cono la LAN:
- Para la máquina opnsense-Secondary hacemos lo mismo:
- Otro de los recursos que se han creado es el Load Balancer Interno:
- Sobre Configuración de IP de front-end, vemos que la IP asignada es una IP del rango de la subred Trusted:
- Sobre Grupos de back-end, vemos que tenemos asignados los dos firewall opnsense en su interface Trusted:
- Sobre Sondeos de estado, vemos que tenemos uno agregado para el protocolo TCP puerto 443:
- Sobre Reglas de equilibrio de carga, vemos que tenemos una regla configurada para equilibrar la carga entre los dos firewalls:
- Otro de los recursos que se han creado es el Load Balancer Externo:
- Sobre Configuración de IP de front-end, vemos que la IP asignada es una IP pública, que será la que nos dará la entrada y salida desde y hacia la WAN:
- Sobre Grupos de back-end, vemos que tenemos asignados los dos firewall opnsense en su interface Untrusted:
- Sobre Sondeos de estado, vemos que tenemos uno agregado para el protocolo TCP puerto 443:
- Sobre Reglas de equilibrio de carga, vemos que tenemos una regla configurada a modo de ejemplo para definir cómo se distribuye el tráfico entrante a todas las instancias del grupo de back-end, en este ejemplo sería una regla creada en el puerto 3389 para equilibrar la carga del tráfico RDP:
- Sobre Regla NAT de entrada, tenemos dos reglas configuradas para el acceso a los firewalls opnsense a través de su IP pública, al firewall primario se accede por el puerto 50443 y al firewall secundario por el puerto 50444, que como vemos está mapeado al puerto 443 de cada firewall:
- Sobre Reglas de salida, tenemos configurada una regla para la salida a la WAN de nuestra infraestructura, con esta regla todas las máquinas ubicadas detrás de los firewalls van a salir a Internet con la IP pública de nuestro load balancer externo:
- Para acceder a los firewalls accedemos a través de su IP pública, https://PublicIP:50443 para el primario y https://publicip:50444 para el secundario, las credenciales por defecto son root/opnsense:
- Lo primero que vamos a configurar en los firewall opnsense, va a ser la configuración de HA.
- Nos vamos primero al firewall primario y sobre System > High Availability > Settings configuramos el peer del firewall secundario:
- Ahora accedemos al firewall secundario y sobre System > High Availability > Settings configuramos el peer del firewall primario:
- Accedemos de nuevo al firewall primario y sobre System > High Availability > Status sincronizamos y reconfiguramos todo, una vez configurado este cambio, todo lo que hagamos y configuremos en el firewall opnsense primario se va a replicar en el firewall opnsense secundario:
- Veamos un ejemplo, hemos configurado los servidores NTP en el firewall primario:
- Sincronizamos todos los servicios:
- Una vez que se ha sincronizado todo, si accedemos al firewall secundario, vemos que la configuración de los servidores NTP se ha replicado correctamente:
- Como comentamos anteriormente, vamos a configurar la red local de Azure dónde se conectarán nuestras máquinas virtuales, LAN Azure: SubnetLAN-192_168_128_0-24 y DMZ Azure: SubnetDMZ-192_168_129_0-24:
- Lo siguiente que vamos a desplegar y configurar es una tabla de rutas UDR (User Definition Routes) en Azure.
- Accedemos al Marketplace, buscamos Route table y damos a crear:
- Sobre Básico le indicamos el grupo de recursos, la región, le damos un nombre y le indicamos que propague las rutas de puerta de enlace:
- Sobre Etiquetas podemos configurar las que nos interesen:
- Sobre Revisar y crear nos muestra un resumen sobre todo lo que le hemos configurado a la tabla de rutas:
- Aquí vemos que se ha implementado correctamente:
- Accedemos al recurso y sobre subredes vamos a asociar las subredes LAN y DMZ que configuramos anteriormente, estas subredes son dónde vamos a ubicar las máquinas virtuales de nuestra infraestructura en Azure:
- Como podemos ver, ya las tenemos asociadas:
- Ahora vamos a configurar las rutas, para ello, accedemos a Rutas > Agregar:
- La primera ruta que vamos a agregar, será la ruta por defecto:
- La siguiente ruta será para el acceso a la subred LAN dónde vamos a ubicar nuestras máquinas virtuales:
- La siguiente ruta será para el acceso a la subred DMZ dónde vamos a ubicar nuestras máquinas virtuales:
- Aquí vemos las rutas agregadas:
- Sobre Información general en la tabla de rutas, podemos ver, todo lo que se ha configurado:
- Una vez configurada la tabla de rutas, accedemos a nuestro OPNSense HA en Azure, y nos vamos a crear estas dos rutas estáticas, la primera es la ruta por defecto, para que todo lo que no se encuentre en la tabla de enrutamiento del OPNSense lo envíe por la interface WAN al gateway de la subred Untrusted, y la segunda ruta son para servicios internos de Azure, para que lo envíe por la interface LAN al gateway de la subred Trusted:
- Para todas las demás configuraciones de opnsense, podemos seguir los enlaces a estos post creados hace algún tiempo en el blog.
Saludos y espero que os sea de ayuda 😉