Configuración avanzada de políticas Fortinet para acceso SSL-VPN y servicios TCP personalizados

Contexto y objetivo de la configuración

La configuración corresponde a una política de firewall en un entorno Fortinet orientada a permitir el acceso de usuarios remotos mediante SSL-VPN a recursos internos específicos. En particular, se centra en una política que permite el tráfico desde un túnel SSL-VPN hacia la red interna, restringiendo la comunicación a un servicio personalizado definido para el puerto TCP 8013. El objetivo es crear un control granular y seguro en el acceso remoto, asegurando que sólo el tráfico necesario y legítimo pueda cruzar el perímetro del firewall hacia el segmento interno.

Arquitectura y flujo de tráfico

La arquitectura parte de un cliente remoto que se conecta al FortiGate mediante SSL-VPN, generando una interfaz virtual específica para ese túnel (ssl.root en esta configuración). El tráfico entrante por esta interfaz es inspeccionado y luego se dirige hacia la interfaz interna, donde se ubica el recurso destino. La política debidamente configurada permite el paso de tráfico solo para el origen definido (VPNCorp) hacia el destino (EMSCorp) y en el puerto 8013, el cual está representado por el servicio personalizado «EMSTCP8013». Este flujo se rige por la inspección basada en flujo (flow-based) para optimizar el rendimiento y mantener las funcionalidades básicas de seguridad.

Campos principales y parámetros críticos

  • Incoming Interface: «SSL-VPN tunnel interface (ssl.root)» es crucial ya que define el origen del tráfico como un túnel SSL-VPN.
  • Outgoing Interface: La interfaz «internal» marca el destino de salida al segmento de red interna.
  • Source: «VPNCorp» es un objeto o grupo de direcciones que limita el acceso a usuarios VPN autorizados.
  • Destination: «EMSCorp» corresponde a los recursos internos protegidos.
  • Service: «EMSTCP8013» es un servicio personalizado que restringe el tráfico al puerto TCP 8013 solamente.
  • Action: «ACCEPT» permite el tráfico que cumpla con los criterios anteriores.
  • Inspection Mode: «Flow-based» provee un equilibrio entre rendimiento y seguridad sin la sobrecarga de inspección proxy.
  • NAT: Desactivado para mantener direccionamiento transparente y facilitar el control de acceso.

Servicio personalizado TCP 8013

La definición del servicio es clave para segmentar el tráfico. El servicio «EMSTCP8013» está configurado para TCP y limita la comunicación solo al puerto de destino 8013, evitando accesos indeseados a otros puertos. La opción de «Show in Service List» permite utilizarlo fácilmente en futuras reglas o auditorías.

Compatibilidad de versiones y modelos

Esta configuración es 100% compatible con FortiOS versiones 7.4.x,7.7.x, 7.x y 7.x, que soportan el manejo de SSL-VPN tunnels y creación de servicios personalizados vía GUI y CLI. En cuanto a hardware, cualquier FortiGate con capacidades SSL-VPN y políticas de firewall modernas podrá implementar esta configuración, desde modelos de gama media como FortiGate 60F hasta grandes appliances FortiGate 3000, siempre ajustando recursos según la cantidad de usuarios y sesiones concurrentes.

Escenarios de uso recomendados

  • Entornos corporativos con fuerza de trabajo remota usando SSL-VPN que necesitan acceso restringido solo a ciertas aplicaciones internas.
  • Situaciones que requieren segmentar acceso por puerto y protocolo, minimizando la superficie de ataque.
  • Ambientes donde la inspección basada en flujo optimiza la latencia y rendimiento manteniendo seguridad formal.
  • Empresas que prefieren no usar NAT en accesos VPN para mantener trazabilidad y auditorías claras.

Riesgos, errores frecuentes y cómo evitarlos

  • Falta de definición correcta del objeto Servicio: No configurar el puerto exacto o dejar el protocolo erróneo puede dejar la apertura del servicio insegura o bloqueada inadvertidamente.
  • Errores en la fuente o destino: Incluir un rango IP incorrecto o grupos mal definidos puede generar accesos no deseados o falta de acceso legítimo.
  • Uso incorrecto de NAT: Activar NAT en esta política puede generar problemas de resolución y seguimiento de sesiones, especialmente en túneles VPN.
  • Inspección inapropiada: Cambiar sin análisis el modo a proxy-based puede impactar en la latencia y rendimiento.

Para evitar estos errores es fundamental validar los objetos usados, testear la política en entornos controlados y usar políticas de logging para monitorear el tráfico permitido y rechazado.

Comandos de CLI útiles para diagnóstico

config firewall service custom
    edit "EMSTCP8013"
        set protocol TCP/UDP/SCTP
        set tcp-portrange 8013
    next
end

config firewall policy
    edit <ID_policía>
        set name "VPNCorp-EMSAccess"
        set srcintf "ssl.root"
        set dstintf "internal"
        set srcaddr "VPNCorp"
        set dstaddr "EMSCorp"
        set action accept
        set schedule "always"
        set service "EMSTCP8013"
        set inspection-mode flow
        set nat disable
    next
end
diagnose firewall iprope list
diagnose vpn ssl stats
diagnose debug enable
diagnose debug flow filter addr <ip_cliente_ssl_vpn>
diagnose debug flow show console enable
diagnose debug flow trace start 100

Estos comandos permiten listar configuraciones personalizadas, verificar políticas activas y seguir el flujo de paquetes para un cliente en particular. Con diagnose debug flow se puede rastrear paso a paso cómo el firewall procesa el tráfico, identificando bloqueos o rechazos. La salida mostrará información detallada de interfaces, dirección IP, puertos y decisión tomada por las políticas, clave para solución rápida de problemas.

Buenas prácticas y checklist final

  • Definir siempre servicios personalizados para puertos específicos en lugar de usar servicios genéricos.
  • Confirmar que los objetos de dirección de origen y destino corresponden exactamente a las subredes o host esperados.
  • Usar inspección basada en flujo para escenarios de bajo retardo, y proxy para necesidades avanzadas de inspección profunda.
  • Evitar NAT en políticas SSL-VPN a menos que sea estrictamente necesario por diseño de red.
  • Monitorear y auditar logs para detectar accesos anómalos o bloqueos inesperados.
  • Probar la conectividad final desde clientes reales y realizar trazas con diagnose debug flow para validar la normativa.
  • Mantener firmware actualizado dentro de las versiones soportadas para evitar bugs conocidos.