Permitir tráfico asimétrico en un firewall Palo Alto

El tráfico asimétrico es una situación donde los paquetes siguen una ruta en una dirección pero distinta ruta de regreso.

Ruta asimétrica

En general, una configuración asimétrica es normal en muchos ambientes de red y la asimetría previene al firewall de ver las 2 direcciones del flujo. Un firewall Palo Alto no solo inspecciona sesiones en capa 7 pero también inspecciona en capas más bajas para verificar que las sesiones están fluyendo como se espera y no han sido alteradas. Unas cuantas revisiones que entran en juego cuando se introduce ruteo asimétrico incluyen chequeos para confirmar que los paquetes están siendo recibidos en el orden correcto. También si los paquetes son recibidos dentro de la ventana móvil, y si el handshake TCP sigue la secuencia apropiada, la que es, un paquete ACK no puede recibirse antes que un paquete SYN.

Para verificar que paquetes están siendo descartados debido a que una de las condiciones anteriormente indicadas se cumplen, se deben revisar el aumento de los siguientes contadores:

1
2
3
4
tcp_drop_out_of_wnd   -> out-of-window packets dropped
tcp_out_of_sync -> can't continue tcp reassembly because it is out of sync
flow_tcp_non_syn -> Non-SYN TCP packets without session match
flow_tcp_non_syn_drop -> Packets dropped: non-SYN TCP without session match

Por ejemplo, para ver el contador “tcp_drop_out_of_wnd” ejecuta el comando:

1
show counter global name tcp_drop_out_of_wnd

El cual mostrará los resultados así:

1
2
3
4
5
6
Name:           tcp_drop_out_of_wnd
Value: 15977
Severity: Warning
Category: tcp
Aspect: resource
Description: out-of-window packets dropped

*Ten encuenta que estos drops NO aparecerán en los logs de tráfico o amenazas.

Un firewall Palo Alto, basado en el tipo de tráfico, crea una ventana deslizante comenzando del último ACK que ha recibido en un flujo.

  • Los contadores tcp_drop_out_of_wnd y tcp_out_of_syn incrementan cuando se reciben paquetes fuera de esta ventana de tiempo.
  • Si paquetes ACK que son recibidos no concuerdan con una sesión existente que haya sido levantada por el TCP three-way handshake, los contadores flow_tcp_non_syn y flow_tcp_non_syn_drop incrementan.

Ambas situaciones pueden ocurrir simultáneamente o a diferentes intervalos, si el firewall ve sólo una dirección de la sesión.

Si la zona de origendel flujo asimétrico es conocida o cubre todas las redes, estos comandos CLI se pueden usar para deshabilitar los chequeos de cordura TCP.

1
2
3
4
5
6
> configure 
Entering configuration mode
[edit]
# set deviceconfig setting tcp asymmetric-path bypass
# set deviceconfig setting session tcp-reject-non-syn no
# commit

Si la zona de origen del flujo asimétrico es conocida, como una recientemente añadida conexión WAN MPLS, se puede configurar un perfil de Protección de Zona para permitir este tráfico malformado desde una o más zonas específicas mientras aun se realizan chequeos de cordura TCP para las otras zonas conectadas al firewall.

Esto puede ser realizado al crear un perfil de Protección de Zona en Red> Protección de Zona >Añadir Perfil > Protección Basada en Paquetes > Rechazar TCP No-SYN -> cambiar a no y Ruta Asimétrica cambiar a bypass.

Perfil de Protección de Zona

Asigna este perfil a la Zona de donde se origina el tráfico asimétrico.

Asignar perfil de Protección de Zona

Luego de que los chequeos globales o en el perfil de protección de zona son habilitados, el único contador que debe aumentar es:

flow_tcp_non_syn

ya que este es un indicador de que se ha detectado ruteo asimétrico, pero no se ha tomado ninguna acción.

Ten en cuenta que deshabilitar estos chequeos implican un riesgo de seguridad, ya que un atacante puede inyectar paquetes que normalmente serían descartados. Se recomienda sólo habilitar estas opciones para troubleshooting o como un workaround temporal.