Configurar objetos de dirección en FortiGate: Guía para optimizar políticas de firewall

En la administración de un firewall FortiGate, la creación y gestión de objetos de dirección es fundamental para mantener un control eficiente y granular sobre el tráfico de red. Estos objetos permiten agrupar IPs, subredes o FQDN que luego pueden ser referenciados en políticas de firewall, facilitando la configuración y el mantenimiento de reglas de seguridad. La configuración que vamos a analizar corresponde precisamente a un objeto de dirección tipo subnet, que ayuda a definir rangos o direcciones específicas dentro de la red, para simplificar la aplicación de políticas y reglas.

Campos principales

  • Name (Nombre): Es el identificador único del objeto. Permite reconocerlo fácilmente cuando se configuran políticas o se revisan reglas. Por ejemplo, «Sales-Portal» o «Web-Server1» identifican claramente para qué se usa cada rango.
    Un nombre claro facilita el mantenimiento y la colaboración entre equipos.
  • Type (Tipo): Indica la naturaleza del objeto. Puede ser Subnet (subred o IP con máscara), FQDN (nombre de dominio totalmente calificado), entre otros. Elegir correctamente el tipo es crucial para que el firewall interprete correctamente la dirección o el rango.
    En el caso analizado, todos son de tipo «Subnet» salvo «gmail.com» que es un FQDN.
  • Details (Detalles): Aquí se define la dirección IP o el rango exacto, o el nombre de dominio si es FQDN. Por ejemplo, «10.100.77.101/32» es una IP individual, mientras que «10.100.77.0/24» representa toda una subred.
    Una entrada importante es la «0.0.0.0/0», que representa cualquier dirección IP, usada típicamente en políticas generales o como «catch-all».
  • Interface (Interfaz): Campo opcional que limita el alcance del objeto a una interfaz física o virtual. Dejarlo vacío hace que el objeto sea global y se aplique sin restricciones de interfaz.
  • Comments (Comentarios): Espacio para anotaciones internas, útiles para documentar la finalidad del objeto o detalles extras. Por ejemplo, «This object was created on the root device» indica un origen o restricción administrativa.
  • Ref. (Referencias): Número que indica cuántas políticas o configuraciones utilizan este objeto. Permite identificar rápidamente si un objeto está activo y donde está referenciado.
    Un valor 0 indica que el objeto no está siendo usado actualmente, mientras valores más altos (como 19) señalan uso frecuente en configuraciones.

Compatibilidad de versiones y modelos

La gestión avanzada de objetos de dirección en FortiGate está disponible desde versiones iniciales de FortiOS, con mejoras continuas hasta las ediciones más recientes como FortiOS 7.0 y 7.2. Funcionalidades como FQDN dinámicos y máscaras personalizadas han mejorado sustancialmente desde FortiOS 7.x en adelante.

Esta configuración es estándar en modelos de gama media y alta de FortiGate, incluyendo dispositivos virtuales (VM) y hardware físico para sucursales y centros de datos. Modelos básicos, orientados a pequeñas oficinas, suelen tener restricciones en el número total de objetos de dirección, o carecen de funcionalidades avanzadas como soporte de FQDN dinámico.

En versiones muy antiguas (pre 7.4.x,7.7.x) es posible que algunos parámetros o la interfaz gráfica para administrar objetos sean más limitados, con comandos CLI más prevalentes para su gestión. Además, en algunas actualizaciones se han renombrado campos o modificado terminologías, por lo que es recomendable consultar la documentación específica para evitar incompatibilidades.

Escenarios de uso y recomendaciones

Los objetos de dirección facilitan el diseño de políticas de seguridad efectivas y reutilizables. Por ejemplo:

  • Definir rangos para un portal de ventas interno (como «Sales-Portal») para controlar accesos específicos desde o hacia esa red.
  • Crear objetos para servidores web o bases de datos («Web-Server1», «Web-Server2») que son puntos críticos en la red y requieren reglas específicas y estrictas.
  • Utilizar «all» o «0.0.0.0/0» para definir reglas globales, aunque siempre con precaución para evitar aperturas indiscriminadas.

Si se configura incorrectamente, por ejemplo usando un objeto muy amplio sin restricciones, se puede ocasionar exposición innecesaria a riesgos o tráfico no deseado. También es probable que políticas conflictivas usen el mismo objeto, causando problemas de ruta o bloqueo involuntario.

El fabricante recomienda evitar el uso excesivo de objetos con rangos demasiado amplios y mantener una documentación clara con comentarios. Además, aconseja revisar el campo de referencias para detectar objetos sin uso que puedan ser eliminados para mantener orden y evitar confusión.

Comandos de CLI útiles para diagnóstico

  • show firewall address: Lista todos los objetos de dirección configurados en el dispositivo.
  • diagnose firewall iprope lookup : Permite verificar qué regla o política se aplica a una dirección IP específica.
  • get firewall address : Muestra detalles específicos de un objeto de dirección.
  • diagnose debug enable y diagnose debug flow filter addr : Para trazar el paso del tráfico asociado a una dirección o rango particular y detectar problemas de filtrado o ruta.
  • execute firewall address list: Otra forma de listar objetos pero en formato diferente, útil para exportar a scripts o análisis externos.

Buenas prácticas de configuración

  • Utilizar nombres descriptivos y estandarizados para los objetos para facilitar identificación (ej.: «DeptoFinance_IPRange»).
  • Aplicar comentarios detallados para documentar la finalidad y restricciones de cada objeto.
  • Evitar el uso indiscriminado de subredes muy amplias como 0.0.0.0/0 salvo en reglas muy controladas.
  • Revisar periódicamente referencias para detectar objetos no utilizados y limpiarlos del sistema.
  • En entornos dinámicos, preferir objetos FQDN para controlar acceso a dominios específicos, asegurando actualización constante del perfil DNS.
  • Probar y validar configuraciones utilizando comandos de diagnóstico para detectar conflictos o errores antes de aplicar en producción.
  • Respetar las limitaciones de modelos y versiones para no configurar parámetros no soportados que puedan generar alertas o fallos.