Guías · Nivel 4

Fortinet FortiGate: políticas con mínimo privilegio, VPN con Entra ID, túneles entre sedes y un usuario que no llega

Interfaces, zonas y objetos con nombre, una política que solo deja pasar lo necesario y lo registra, la VPN de usuarios autenticada contra Entra ID con grupos que deciden qué ve cada uno, un túnel IPsec entre sedes, dos circuitos con SD-WAN, la actualización de firmware y el diagnóstico de un usuario de VPN que no llega a una aplicación.

¿Prefieres practicarlo?Resuelve el ticket simulado «Valencia no llega al ERP desde el cambio de anoche» en SysAdmin Desks ↗

Qué vas a conseguir

Un FortiGate (FortiOS 7.4 o 7.6) que se lee de un vistazo: interfaces agrupadas en zonas, objetos con nombre en lugar de IP sueltas, políticas que dejan pasar lo justo y lo registran, y una VPN de usuarios en la que el grupo de cada persona en Entra ID decide qué aplicaciones alcanza. Y la forma de responder en minutos al ticket "estoy en la VPN y no llego a la aplicación".

Antes de empezar

  • Acceso de administración por HTTPS o SSH solo desde la red de gestión (trusted hosts en el administrador), con usuario nominal y MFA. La cuenta admin local, solo para emergencias.
  • Una copia de la configuración antes de cada cambio, y el cambio aprobado.
  • El plano: qué puerto es cada interfaz, qué redes hay detrás de cada una, qué circuitos tiene la sede y qué aplicaciones internas deben ver los usuarios remotos.

1. Interfaces, zonas y objetos

Las políticas se escriben entre zonas, no entre puertos (si la red de servidores crece a otro puerto, se añade a la zona y ninguna política cambia), y hacia objetos y grupos con nombre, no hacia IP sueltas.

FW-SEDE-01 · zonas, objetos y una política
config system zone    edit "LAN-SERVIDORES"        set interface "port3" "port4"        set intrazone deny    nextendconfig firewall policy    edit 0        set name "VPN-RRHH-a-apps-RRHH"        set srcintf "vpn-usuarios"        set dstintf "LAN-SERVIDORES"        set srcaddr "VPN-POOL-USUARIOS"        set dstaddr "GRP-APPS-RRHH"        set groups "VPN-RRHH"        set service "HTTPS"        set schedule "always"        set action accept        set ssl-ssh-profile "certificate-inspection"        set logtraffic all    nextend
  • GRP-APPS-RRHH es un grupo de direcciones (Policy & Objects › Addresses) con un objeto por servidor, como SRV-APP-NOMINAS (10.50.20.15/32).
  • Mínimo privilegio es origen concreto, destino concreto y servicio concreto. all en destino o ALL en servicio solo se aceptan con fecha de caducidad y un motivo en el comentario.
  • set logtraffic all registra también lo permitido: sin él, una investigación no sabe quién llegó a dónde.
  • El orden importa: se evalúa de arriba abajo y gana la primera que coincide. Al final siempre está la política implícita 0, que deniega.

Inspección SSL. certificate-inspection solo lee el certificado del servidor; deep-inspection descifra y necesita que los equipos confíen en la CA del FortiGate (distribuida por Intune o GPO), con excepciones para banca, salud y aplicaciones que fijan su certificado.

2. La VPN de usuarios: Entra ID, grupos y lo que ve cada uno

El cambio de dirección de Fortinet. En FortiOS 7.6.3 y posteriores el modo túnel de SSL-VPN ya no existe; el modo web sobrevive con el nombre de Agentless VPN, desactivado por defecto. En los modelos con poca memoria la retirada llegó antes (incluso en ramas 7.2 y 7.4). La recomendación del fabricante es IPsec en modo dial-up con IKEv2 y FortiClient. Si aún tienes SSL-VPN, planifica la migración.

La autenticación contra Entra ID por SAML en IPsec IKEv2 necesita FortiClient 7.2 o posterior. El esquema:

  1. En Entra ID, una aplicación empresarial con el FortiGate como proveedor de servicio, una notificación username con el UPN y la de grupos con el ID de objeto de los grupos asignados.
  2. En el FortiGate, el servidor SAML (config user saml) y un grupo de usuarios por perfil de acceso que mapea ese ID de objeto.
  3. El servidor SAML en la interfaz WAN y el túnel dial-up con IKEv2, EAP y un rango para los clientes:
FW-SEDE-01 · VPN dial-up IKEv2 con SAML
config system interface    edit "wan1"        set ike-saml-server "entra-vpn"    nextendconfig vpn ipsec phase1-interface    edit "vpn-usuarios"        set type dynamic        set interface "wan1"        set ike-version 2        set mode-cfg enable        set ipv4-start-ip 10.212.134.1        set ipv4-end-ip 10.212.134.254        set eap enable        set eap-identity send-request        set proposal aes256gcm-prfsha384        set dhgrp 20    nextend
  • Los grupos deciden qué ve cada usuario: VPN-RRHH tiene una política hacia las aplicaciones de RRHH, VPN-IT otra hacia la red de gestión. Un usuario que está en dos grupos alcanza la suma de ambos, nada más.
  • Pon los grupos en las políticas, no en authusrgrp de la fase 1, si quieres un perfil por grupo. Fortinet advierte de no mezclar ambos sitios.
  • Con SAML, el MFA y las reglas de Conditional Access los aplica Entra ID antes de que el túnel se levante.
  • Con LDAP (o RADIUS con NPS) el esquema es el mismo: grupos del FortiGate que apuntan a grupos de AD y las mismas políticas.

3. Un túnel IPsec entre sedes

Dos sedes, 10.10.0.0/16 y 10.30.0.0/16, un túnel IKEv2 con clave precompartida larga (o certificados), dos políticas (una en cada sentido) y las rutas:

FW-SEDE-01 · túnel a la sede de Bilbao
config vpn ipsec phase1-interface    edit "a-sede-bio"        set interface "wan1"        set ike-version 2        set proposal aes256-sha256        set dhgrp 20        set remote-gw 198.51.100.20        set psksecret <clave-larga-del-gestor-de-secretos>    nextendconfig vpn ipsec phase2-interface    edit "a-sede-bio-p2"        set phase1name "a-sede-bio"        set proposal aes256-sha256        set dhgrp 20        set src-subnet 10.10.0.0 255.255.0.0        set dst-subnet 10.30.0.0 255.255.0.0    nextendconfig router static    edit 0        set dst 10.30.0.0 255.255.0.0        set device "a-sede-bio"    next    edit 0        set dst 10.30.0.0 255.255.0.0        set blackhole enable        set distance 254    nextend

La ruta blackhole con distancia 254 evita que, con el túnel caído, el tráfico hacia la otra sede salga a internet por la ruta por defecto. Propuestas y grupos DH iguales en los dos extremos, o el túnel no sube; get vpn ipsec tunnel summary dice si está arriba.

Dos circuitos con SD-WAN. En Network › SD-WAN se añaden wan1 y wan2 como miembros con su puerta de enlace, un Performance SLA que mide latencia, jitter y pérdida contra un destino fiable, y reglas que mandan cada tipo de tráfico por el circuito que cumple el SLA (por ejemplo, Microsoft 365 y voz por el de menor latencia). Las políticas de salida apuntan a la zona SD-WAN.

4. Firmware y copias de configuración

  • La ruta de actualización no se improvisa: la herramienta Upgrade Path de Fortinet indica las versiones intermedias obligatorias entre la tuya y la de destino. Saltarse una puede dejar parte de la configuración sin convertir.
  • Antes de actualizar: copia de configuración, notas de versión (cambios incompatibles y funciones retiradas) y ventana de cambio. En HA se actualiza el clúster y los nodos van por turnos.
  • Las copias se sacan desde el menú del administrador (Configuration › Backup, cifradas con contraseña) o por CLI con execute backup config sftp hacia un servidor de copias, programadas a diario y guardadas fuera del propio equipo.

5. El ticket: "estoy en la VPN y no llego a la aplicación de nóminas"

Javier Ruiz se conecta a la VPN sin problema, pero https://nominas.contoso.local no carga. Primero, qué dice el propio FortiGate de él y de la política que debería dejarle pasar:

FW-SEDE-01 · diagnóstico
diagnose firewall auth list10.212.134.19, javier.ruiz  server: entra-vpn  group_name: VPN-COMERCIALdiagnose debug resetdiagnose debug flow filter cleardiagnose debug flow filter addr 10.50.20.15diagnose debug flow filter dport 443diagnose debug flow show function-name enablediagnose debug flow trace start 10diagnose debug enableid=65308 trace_id=1 func=print_pkt_detail line=5939 msg="vd-root:0 received a packet(proto=6, 10.212.134.19:51544->10.50.20.15:443) from vpn-usuarios.  flag [S]"id=65308 trace_id=1 func=vf_ip_route_input_common line=2612 msg="find a route: flag=04000000 gw-10.50.20.15 via port3"id=65308 trace_id=1 func=fw_forward_handler line=989 msg="Denied by forward policy check (policy 0)"diagnose debug disable
Lo que vesQué significaQué haces
Denied by forward policy check (policy 0)Ninguna política coincide: cae en la denegación implícitaRevisar grupo, origen, destino y servicio de la política que debería aplicar
find a route ... via una interfaz inesperadaEl FortiGate enruta el paquete por otro sitioTabla de rutas (get router info routing-table all) y SD-WAN

Aquí el registro de autenticación lo dice todo: Javier está en VPN-COMERCIAL y la política hacia las aplicaciones de RRHH solo admite VPN-RRHH. No es una avería, es una petición de acceso: se tramita con su responsable y, si se aprueba, se le añade al grupo en Entra ID. No se amplía la política.

Si la política sí coincide y la aplicación no responde, diagnose sniffer packet any 'host 10.50.20.15 and port 443' 4 20 l muestra 20 paquetes con su interfaz: si sale el SYN por port3 y no vuelve el SYN-ACK, el problema está en el servidor, en su cortafuegos o en su ruta de vuelta al rango de la VPN.

diagnose debug flow sin filtros consume CPU en un equipo cargado: filtra por dirección y puerto, limita la traza y termina con diagnose debug disable.

6. Lo que revisas cada mes

  • Políticas sin tráfico en 90 días (columna Hit count / Last used): se desactivan y, si nadie las reclama, se borran.
  • Políticas con all en destino o servicio y su fecha de caducidad.
  • Miembros de los grupos de VPN en Entra ID frente a lo que necesita cada persona.
  • Versión de FortiOS frente a los avisos de seguridad del PSIRT de Fortinet: los equipos expuestos a internet con un aviso crítico se actualizan esa semana, no en el siguiente trimestre.

Siguientes pasos

  • La guía de Cisco: switches y routers cubre lo que hay detrás del FortiGate en la sede: VLANs, troncales y el router con circuito de respaldo.
  • Entra ID: SSO/SAML explica la aplicación empresarial y las notificaciones que usa la VPN, y Entra ID: Conditional Access las reglas que se aplican antes de que el túnel suba.
  • Microsoft Sentinel: los registros del FortiGate enviados por syslog (CEF) permiten correlacionar conexiones VPN con inicios de sesión de Entra ID.

¿Quieres practicarlo? Resuelve el ticket «Valencia no llega al ERP desde el cambio de anoche» en SysAdmin Desks, gratis y en el navegador.

¿Falta algo o en tu entorno es distinto? Escríbeme y lo corrijo.

Tech Career Lab · newsletter

¿Te ha servido? Cada dos semanas envío una idea práctica para perfiles IT: LinkedIn, proyectos, networking y procesos de selección.

Apúntate y llévate las 33 ideas →