viernes, 25 de noviembre de 2022

Como enviar la IP de Usuario F5 APM NA a Palo Alto User-ID Agent como Syslog Listener

Introducción

  Varios dispositivos de seguridad, principalmente NG-FW, son capaces de crear políticas o reglas basadas en usuario. Para esto lo que hacen es crear una tabla donde se relaciona el usuario con la ip asignada a su dispositivo. En nuestro la ip es asignada dinámicamente por APM, el módulo de f5 que provee conectividad VPN SSL, y network access, el objeto en el que se definen los parámetros de red que se entregarán al dispositivo.
   ¿Cómo puede el F5 APM informar al NG-FW la ip que fue asignada al usuario? Usando el protocolo syslog.
En el caso puntual de Palo Alto se debe configurar el User-ID Agent como Syslog Listener, y el F5 se debe configurar para enviar esta información usando el protocolo syslog, con una simple irule atachada al virtual server listener del servicio vpn ssl.

El tip

    De acuerdo al kb https://support.f5.com/csp/article/K27804015 podemos obtener los datos necesarios de la sesión cuando se está creando con la siguiente irule :

when CLIENT_ACCEPTED {
  ACCESS::restrict_irule_events disable
}
when HTTP_REQUEST {
  if { [HTTP::uri] starts_with "/myvpn?sess=" } {
    after 5000 {
      log local0.notice "User_Name=[ACCESS::session data get session.logon.last.username] Session_ID=[ACCESS::session data get session.user.sessionid] Assigned PPP Dynamic IPv4: [ACCESS::session data get session.assigned.clientip] NA Resource: [ACCESS::session data get session.assigned.resources.na] Client IP: [ACCESS::session data get session.user.clientip]"
      }
    }
}

Para integrarlo con el User-ID Agent Syslog de Palo Alto solo debemos modificar la irule de la siguiente manera:

when CLIENT_ACCEPTED {
  ACCESS::restrict_irule_events disable
}
when HTTP_REQUEST {
  if { [HTTP::uri] starts_with "/myvpn?sess=" } {
    after 5000 {
      log <IP_PALO_ALTO_SYSLOG>:<PORT_PALO_ALTO_SYSLOG> local0.notice "User_Name=[ACCESS::session data get session.logon.last.username] Session_ID=[ACCESS::session data get session.user.sessionid] Assigned PPP Dynamic IPv4: [ACCESS::session data get session.assigned.clientip] NA Resource: [ACCESS::session data get session.assigned.resources.na] Client IP: [ACCESS::session data get session.user.clientip]"
      }
    }
}

El mensaje en cuestión puede modificarse en la irule para hacer match con lo que este configurado en palo alto o vice versa.

Observaciones. 

    El comando "after 5000" que está en la irule quiere decir que ese bloque de código se ejecutara 5 segundos despues, por lo que existe un pequeño periodo de tiempo en que pueden transitar paquetes hacia el firewall pero el firewall no tendra la relación usuario-ip para esos paquetes.

 

No hay comentarios.:

Publicar un comentario

Como enviar la IP de Usuario F5 APM NA a Palo Alto User-ID Agent como Syslog Listener

Introducción   Varios dispositivos de seguridad, principalmente NG-FW, son capaces de crear políticas o reglas basadas en usuario. Para esto...