Configurar identificación de usuarios (User-ID) de Palo Alto con los logs de XIQ-Site Engine

En este tutorial aprenderemos a configurar la identificación de usuarios (User-ID) de Palo Alto con los logs de ExtremeCloud IQ Site Engine ( antes XMC) para que Palo Alto pueda mapear el usuario y la IP de los dispositivos inalámbricos de nuestra red.  

En nuestro escenario tenemos ExtremeCloud IQ Site Engine 23.2, usando extreme Control (NAC), los dispositivos inalámbricos se registran a través del portal cual la autenticación y autorización la provee el NAC.  

Firewall Palo alto usando PANOS 9, usando el agente User-ID integrado en el propio firewall.   

Los logs son enviados por XIQ Site Engine a traves del protocolo UDP.  

Configurando XIQ Site Engine

Vamos a la opción de Control> Configuration > notifications, hacemos clic en el icono de engranaje y seleccionamos la opción de “Create Default Siem Notification”  

En la ventana emergente colocamos la IP de administración del Palo Alto o la IP de la interfaz donde el Palo Alto recibirá los logs para procesar la identificación de usuarios. Después de creada las notificaciones, solo dejaremos activas las que en el campo trigger sean End-System Added, End-System Moved y State Change.  

Si todo salió correctamente el firewall estaría recibiendo logs parecidos a estos: 

Mar 17 15:12:59 netsight.mydomain.com NAC: IP=192.168.10.165,,MAC=D0:FC:CC:E8:19:73,,Username=user1,,Switch=192.168.1.250,,SwitchPortId=AP88 (D8-84-66-88-88-88):CONTOSO,,Hostname=Galaxy-J5-Prime,,OS=Android,,State=ACCEPT,,ExtendedState=NO_ERROR,,Reason=Rule: “UsuariosA”,,NACAppliance=192.168.1.10 

Mar 17 15:13:03 netsight.mydomain NAC: IP=192.168.10.55,,MAC=E8:6D:CB:45:28:92,,Username=user5,,Switch=192.168.1.250,,SwitchPortId=AP99 (D8-84-99-99-99-90):CONTOSO,,Hostname= ,,OS=Android 10,,State=DISCONNECTED,,ExtendedState=NO_ERROR,,Reason=Rule: ” UsuariosA”,,NACAppliance=192.168.1.10 

La primera entrada es un log de conexión exitosa y la siguiente es una desconexión de la red.  

Configurando el firewall

Crear Syslogs parse profile

Primero creamos objetos de syslog parse profile, cual indicara a Palo Alto que parte del log tomara el texto de usuario y la IP. Creamos dos, uno indicando el login y el otro indicando el logout. Aunque el login es suficiente para insertar en la base de datos de usuarios, el logout ayuda a quitar el mapeo de dichos usuarios inmediatamente su desconexión sin esperar el tiempo de expiración.  

Para realizarlo primero hacemos clic en Device, luego en el menú lateral izquierdo clic en User identification, después clic en la pestaña User Mapping, dentro de esta pestaña clic en el símbolo de engranaje en la sección Palo Alto Networks User-ID Agent Setup, por último, en la ventana emergente seleccionamos la pestaña Syslog Filters

Ya en esta ventana hacemos clic en “+ add” y procederemos a llenar los campos. 

El campo Type tiene 2 opciones Regex identifier y Field Identifier, nuestro caso que es un log personalizado utilizaremos regex Identifier.  

En el campo Event Regex pondremos una expresión regular para identificar el inicio del mensaje que indica una autenticación exitosa, desglosemos la expresión regular:  

(Username=([a-zA-Z0-9\_\.]+))(.*)(State=ACCEPT),(.*),(ExtendedState=NO_ERROR) 

Aquí estamos diciendo que identifique en el log cual tenga el texto Username con el formato apropiado, que el estado sea ACCEPT y estado extendido sin errores. 

Username regex: colocamos la expresión regular para localizar en el log el campo usuario con su valor: 

Username=([a-zA-Z0-9\_\.]+) 

Address Regex: colocamos la expresión regular para localizar en el log el campo IP con su valor: 

IP=([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) 

Completado todos los campos presionamos OK. 

Para el syslog profile correspondiente al logout, creamos otro parecido al anterior pero con el campo Event Regex con esto: 

(Username=([a-zA-Z0-9\_\.]+))(.*)(State=DISCONNECTED),(.*),(ExtendedState=NO_ERROR) 

Aquí la única diferencia es el State=DISCONNECTED que indica que el dispositivo se desconecto de la red. Los campos, Type, Username regex, Address Regex poseerán los mismos valores. 

Nótese que las expresiones regulares en el campo Address Regex son para IPv4, para IPv6 deben crearse la expresión regular correspondiente. 

Dependiendo de tu escenario la expresión regular que corresponde al usuario puede variar y debes ajustarla a tu necesidad, por ejemplo, si tu escenario utiliza correos para autenticar debes crear la expresión regular que coincida con los correos.  

En la creación de syslog parse profile es bueno probar en páginas como regexr.com si la expresión regular está tomando los valores esperados. 

Crear el objeto Server Monitoring

Luego de creados los objetos de syslog parse profile es tiempo de crear el objeto Server monitoring.  Volvemos a la pestaña User Mapping, en la sección de Server Monitoring, Hacemos clic en “+Add”  

En el formulario que nos aparece llenamos los campos correspondientes:

Name:  Nombre identificativo que prefieras (Site engine server).  

Description: Descripción particular 

Cotejamos en el campo Enable 

Type: Syslog Sender (al seleccionar esta opción campos adicionales aparecerán) 

Network Address: Aquí pondremos la IP del XIQ-Site Engine (192.168.1.250) 

Connection Type: nuestro caso es UDP  

Filter:  Agregaremos los objetos de syslog parse profile creados anteriormente usando el botón “+add” y dentro del campo Event Type de cada uno colocar el que corresponde para login y el logout. 

Default domain Name:  Aquí colocaremos el dominio por defecto en caso de que el log no lo provea, en este caso “mydomain.com” 

Por último, debemos habilitar la interfaz administración para recepción de Syslog e identificación de usuarios en Devices>Setup>Management>interfaces seleccionamos la interfaz management y en la sección Network Services cotejar User-ID Syslog Listener-UDP

También habilitarlo en la zona donde están tus usuarios, en Network>Zones en sección User Identification ACL cotejar la opción Enable User Identification 

Verificación

Después de hacer commit verificamos en Palo alto si realmente está identificando los usuarios. 

edd@PaloAlto1(active)> show user server-monitor state Netsight-NAC
UDP Syslog Listener Service is enabled
SSL Syslog Listener Service is enabled
Proxy: Netsight-NAC(vsys: vsys1)        Host: Netsight-NAC(192.168.1.250)
number of log messages                    : 20 
number of auth. success messages          : 15 

Según el resultado el firewall ha recibido 20 logs y 15 de estos son de autenticación. Si repetimos varias veces estos valores deben ir en aumento. 

Con el comando show user ip-user-mapping all se confirma que el Palo Alto está mapeando los usuarios de manera correcta  

edd@PaloAlto1(active)> show user ip-user-mapping all | match SYSLOG 
192.168.10.165                    vsys1               SYSLOG  mydomain.com\user1   
192.168.10.164                    vsys1               SYSLOG  mydomain.com\user2              
192.168.10.175                    vsys1               SYSLOG  mydomain.com\user3            
192.168.10.106                    vsys1               SYSLOG  mydomain.com\user4  

Algunos enlaces si desean abundar mas sobre el tema de identificación de usuarios (User-ID)

PAN-OS adminstratator guide

Extreme networks Docs


 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *