Cómo resolver las limitaciones de FortiGate en los cambios de enrutamiento SD-WAN (cambio de zona) en modo NGFW basado en políticas

En este artículo, abordaremos un problema importante relacionado con el funcionamiento de FortiGate en modo de firewall NGFW basado en políticas. En particular, discutiremos cómo los cambios en el enrutamiento, especialmente en el contexto de SD-WAN, pueden afectar las políticas de seguridad y el resultado de las sesiones de tráfico. Este artículo ofrecerá soluciones y recomendaciones para garantizar que su configuración funcione correctamente.

Descripción del problema

Cuando FortiGate opera en modo NGFW basado en políticas, la evaluación del tráfico se realiza mediante dos tipos de políticas: Política de Seguridad y Política de Firewall (Inspección SSL y Autenticación). Sin embargo, al cambiar la ruta, por ejemplo, cuando cambia la zona de SD-WAN, la política de seguridad existente puede no ser reevaluada como debería, lo que induciría a problemas de conectividad y seguridad.

Alcance

Este artículo se centra en el funcionamiento de FortiGate en modo NGFW basado en políticas.

Diagnóstico paso a paso

A continuación, se presenta un ejemplo práctico para ilustrar el problema:

  1. Configuración Inicial:
    • SD-WAN:
    • config system sdwan
      set status enable
      config zone
      edit «virtual-wan-link»
      next
      edit «DC_SPOKE4G»
      next
      end

      config members
      edit 1
      set interface «wan2»
      set gateway 10.10.10.1
      set cost 10
      next
      edit 2
      set interface «ISP_II»
      set zone «DC_SPOKE4G»
      set gateway 10.10.20.1
      set cost 30
      next
      end

      config service
      edit 1
      set name «Internet»
      set dst «all»
      set src «all»
      set priority-members 2 1
      set priority-zone «DC_SPOKE4G» «virtual-wan-link»
      next
      end

    • Tabla de Enrutamiento:
    • config router static
      edit 1
      set distance 1
      set sdwan-zone «virtual-wan-link»
      next
      edit 2
      set distance 1
      set sdwan-zone «DC_SPOKE4G»
      next
      end

    • Política de Seguridad y Política de Firewall:
    • config firewall security-policy (Solo se permite el tráfico a través de la zona SD-WAN ‘virtual-wan-link’)
      edit 1
      set uuid 40e29f62-483d-51ef-8ee9-27e70e8203db
      set name «Windows_Internet»
      set srcintf «Windows»
      set dstintf «virtual-wan-link»
      set srcaddr «all»
      set dstaddr «all»
      set action accept
      set schedule «always»
      next
      end

      config firewall policy
      edit 1
      set name «Default»
      set uuid 7a399780-483c-51ef-f506-59ebffb2c82e
      set srcintf «any»
      set dstintf «any»
      set srcaddr «all»
      set dstaddr «all»
      set srcaddr6 «all»
      set dstaddr6 «all»
      set service «ALL»
      set ssl-ssh-profile «certificate-inspection»
      next
      end

  2. Inicialmente, el tráfico fluye a través de la zona SD-WAN ‘virtual-wan-link’, coincidiendo con la ID de Política de Seguridad 1 y la ID de Política de Firewall 1.
    • Servicio SD-WAN:
    • FortiGate-61F # diagnose sys sdwan service

      Service(1): Address Mode(IPV4) flags=0x200 use-shortcut-sla
      Tie break: cfg
      Gen(1), TOS(0x0/0x0), Protocol(0: 1->65535), Mode(manual)
      Members(2):
      1: Seq_num(1 wan2), alive, selected
      2: Seq_num(2 ISP_II), alive, selected
      Src address(1):
      0.0.0.0-255.255.255.255

      Dst address(1):
      0.0.0.0-255.255.255.255

    • Tabla de Sesiones:
    • session info: proto=6 proto_state=11 duration=6079 expire=1120 timeout=3600 flags=00000000 socktype=0 sockport=0 a
      v_idx=0 use=3
      origin-shaper=
      reply-shaper=
      per_ip_shaper=
      class_id=0 ha_id=0 policy_dir=0 tunnel=/ vlan_cos=0/0
      state=dirty may_dirty ndr npu app_valid
      statistic(bytes/packets/allow_err): org=3440/7/1 reply=214/4/1 tuples=2
      tx speed(Bps/kbps): 0/0 rx speed(Bps/kbps): 0/0
      orgin->sink: org pre->post, reply pre->post dev=28->27/27->28 gwy=0.0.0.0/0.0.0.0
      hook=pre dir=org act=noop 10.10.100.2:55503->10.10.50.2:22(0.0.0.0:0)
      hook=post dir=reply act=noop 10.10.50.2:22->10.10.100.2:55503(0.0.0.0:0)
      pos/(before,after) 0/(0,0), 0/(0,0)
      src_mac=00:64:65:6c:28:01
      misc=0 policy_id=1 pol_uuid_idx=558 auth_info=0 chk_client_info=0 vd=0
      serial=00311178 tos=ff/ff app_list=0 app=16060 url_cat=0
      sdwan_mbr_seq=2 sdwan_service_id=1
      rpdb_link_id=ff000001 ngfwid=1
      npu_state=0x003c94 ips_offload ofld-O ofld-R
      npu info: flag=0x00/0x00, offload=0/0, ips_offload=0/0, epid=0/0, ipid=0/0, vlan=0x0000/0x0000
      vlifid=0/0, vtag_in=0x0000/0x0000 in_npu=0/0, out_npu=0/0, fwd_en=0/0, qid=0/0
      no_ofld_reason:
      total session 1

  3. Cuando cambian las rutas, se prefiere una nueva zona de SD-WAN. Dado que ninguna regla de Política de Seguridad permite el tráfico a través de la «zona secundaria» de SD-WAN, la tabla de sesiones debería ser reevaluada y el tráfico denegado por la política de denegación implícita. Sin embargo, debido a la limitación actual explicada anteriormente, esto no sucede:
    • Nuevo servicio SD-WAN utilizado:
    • FortiGate-61F # diagnose sys sdwan service

      Service(1): Address Mode(IPV4) flags=0x200 use-shortcut-sla
      Tie break: cfg
      Gen(1), TOS(0x0/0x0), Protocol(0: 1->65535), Mode(manual)
      Members(2):
      1: Seq_num(2 ISP_II), alive, selected
      2: Seq_num(1 wan2), alive, selected
      Src address(1):
      0.0.0.0-255.255.255.255

      Dst address(1):
      0.0.0.0-255.255.255.255

    • La Política de Seguridad se mantiene igual y el tráfico es permitido:
    • session info: proto=6 proto_state=11 duration=61 expire=3538 timeout=3600 flags=00000000 socktype=0 sockport=0 av_
      idx=0 use=3
      origin-shaper=
      reply-shaper=
      per_ip_shaper=
      class_id=0 ha_id=0 policy_dir=0 tunnel=/ vlan_cos=0/0
      state=dirty may_dirty ndr npu app_valid
      statistic(bytes/packets/allow_err): org=92/2/1 reply=52/1/1 tuples=2
      tx speed(Bps/kbps): 0/0 rx speed(Bps/kbps): 0/0
      orgin->sink: org pre->post, reply pre->post dev=28->6/6->28 gwy=0.0.0.0/0.0.0.0
      hook=pre dir=org act=noop 10.10.100.2:55557->10.10.50.2:22(0.0.0.0:0)
      hook=post dir=reply act=noop 10.10.50.2:22->10.10.100.2:55557(0.0.0.0:0)
      pos/(before,after) 0/(0,0), 0/(0,0)
      src_mac=00:64:65:6c:28:01
      misc=0 policy_id=1 pol_uuid_idx=558 auth_info=0 chk_client_info=0 vd=0
      serial=00315196 tos=ff/ff app_list=0 app=16060 url_cat=0
      sdwan_mbr_seq=1 sdwan_service_id=1
      rpdb_link_id=ff000001 ngfwid=1
      npu_state=0x003c94 ips_offload ofld-O ofld-R
      npu info: flag=0x00/0x00, offload=0/0, ips_offload=0/0, epid=0/0, ipid=0/0, vlan=0x0000/0x0000
      vlifid=0/0, vtag_in=0x0000/0x0000 in_npu=0/0, out_npu=0/0, fwd_en=0/0, qid=0/0
      no_ofld_reason:
      total session 1

    Todo nuevo tráfico, que no pertenecía a la sesión existente, será denegado.

    Solución recomendada

    Una posible solución a este problema es limpiar las entradas de la tabla de sesiones existentes para el tráfico específico, lo que llevará a que FortiGate niegue cualquier paquete subsiguiente.

    Consejo Técnico: Utilice filtros para limpiar sesiones en un FortiGate.

    Buenas prácticas y recomendaciones

    Si el escenario o diseño descrito anteriormente existe, se recomienda utilizar FortiGate en modo NGFW basado en perfiles (modo predeterminado) y evitar el uso del modo NGFW basado en políticas.

    Notas adicionales

    Se debe tener en cuenta que los cambios en el enrutamiento que involucran SD-WAN no disparan actualmente la reevaluación de las Políticas de Seguridad, lo que puede provocar irregularidades en el flujo del tráfico.

¿Te ha resultado útil??

0 / 0

Deja una respuesta 0

Your email address will not be published. Required fields are marked *