Introducción
SNMP es un poderoso protocolo que nos permite el monitoreo de los usuarios que se conectan vía VPN utilizando la operación de SNMPWALK. Este documento explica paso a paso como obtener esta información.
Requisitos previos
Requisitos
- Conocimiento intermedio del protocolo SNMP y lectura de MIBs: qué es un OID, qué es un índice, como leer índicies en una tabla, como utilizar una herramienta para realizar operaciones de SNMPWALK
- El dispositivo debe tener SNMP habilitado para poder realizar el SNMPWALK.
- Verificar que su dispositivo soporte el CISCO-REMOTE-ACCESS-MONITOR-MIB por medio del Cisco IOS MIB locator tool localizado en el siguiente link:
http://tools.cisco.com/ITDIT/MIBS/servlet/index
Componentes utilizados
Dispositivos que soporten la configuración de VPNs y soporten el CISCO-REMOTE-ACCESS-MONITOR-MIB.
Como obtener los usuarios:
Esta informacion puede encontrarse en la tabla:
crasSessionTable:
Object crasSessionTable
OID 1.3.6.1.4.1.9.9.392.1.3.21
Type SEQUENCE
Permission not-accessible
Status current
MIB CISCO-REMOTE-ACCESS-MONITOR-MIB ;
Description "This table lists all the currently active sessions.
For each session, it lists the attributes (user, group, protocol, security),
statistics (packet and
octets) and status."
De el MIB CISCO-REMOTE-ACCESS-MONITOR-MIB.
El crasUsername (.1.3.6.1.4.1.9.9.392.1.3.21.1.1) es el OID que contiene la información acerca del username asociado a cada sesión.
Al revisar el SNMPWalk obtenido de la tabla completa debemos analizar el resultado que se entrega para el crasUsername, el cuál
junto con el OID de crasSessionID, indexa a cada una de las filas de crasSessionEntry.
Cuando indexamos un String en el OID, esto se hace por medio de encoding decimal de ascii el cual tiene como prefijo el tamaño del string.
Para ilustrar esto de una manera mas clara, podemos referirnos al ejemplo a continuación.
Ejemplo:
Aqui hay un extracto de un SNMPWalk hecho al crasSessionTable:
SNMPv2-SMI::enterprises.9.9.392.1.3.21.1.2.4.98.101.110.104.815105 = STRING:"ipsec"
Podemos leerlo como se presenta a continuación:
SNMPv2-SMI::enterprises.9.9.392.1.3.21 = crasSessionTable
SNMPv2-SMI::enterprises.9.9.392.1.3.21.1 = crasSessionEntry
SNMPv2-SMI::enterprises.9.9.392.1.3.21.1.2= crasGroup
Como se mencionó anteriormente, cuando codificamos un string dentro del OID, necesitamos especificar el tamaño del string para poder parsearlo adecuadamente una vez que se polea la infomación.
En el caso anterior el tamaño del string se representa con el numero 4:
SNMPv2-SMI::enterprises.9.9.392.1.3.21.1.2.4.98.101.110.104.815105 = STRING:"ipsec"
Los siguientes 4 caracteres son entonces el crasUsername codificados decimalmente en ascii:
98.101.110.104 se puede traducir con la ayuda de una tabla ascii a benh
(http://www.asciitable.com/)
El numero final (815105) es simplemente el crasSessionIndex
Otros ejemplos son:
SNMPv2-SMI::enterprises.9.9.392.1.3.21.1.2.8.74.117.97.110.105.116.97.87.188
0065 = STRING: "DefaultWEBVPNGroup" = JuanitaW
74.117.97.110.105.116.97.87 el cual se puede traducir a JuanitaW
SNMPv2-SMI::enterprises.9.9.392.1.3.21.1.2.8.114.111.110.77.97.121.101.115.1
957889 = STRING: "DefaultWEBVPNGroup" =ronMayes
114.111.110.77.97.121.101.115 el cual se puede traducir a ronMayes
De esta manera podemos obtener la información acerca de los usuarios conectados vía VPN por medio de SNMP.
http://tools.cisco.com/Support/SNMP/do/BrowseMIB.do?local=en&mibName=CISCO-REMOTE-ACCESS-MONITOR-MIB