OpenSIPs: captura TLS con los módulos PROTO_HEP y TRACE en SNGREP

En un precedente articulo hemos visto como realizar la captura del cifrado de la señalización SIP en Kamailio apoyándonos en el modulo SIPTRACE y utilizando SNGREP. En este articulo veremos como realizar la misma operación en OpenSIPs utilizando los módulos PROTO_HEP y SIPTRACE; esto con el objetivo de ver la captura en SNGREP. Este tipo de configuración nos ayudará a realizar DEBUG de la señalización cifrada en OpenSIPs a través de SNGREP. Mano a la obra.

 

Empezamos con el modulo PROTO_HEP. Para que funcione correctamente hay que indicar un socket nuevo de escucha que en nuestro caso será:

 

socket=hep_udp:127.0.0.1:6060

 

Luego en la parte donde se configuran los módulos añadimos:

 

#### PROTO_HEP Module

loadmodule "proto_hep.so"

modparam("proto_hep", "hep_id", "[sngrep] 127.0.0.1:9060; transport=udp; version=3")

modparam("proto_hep", "homer5_on", 1)

modparam("proto_hep", "hep_capture_id", 12345)

 

El significado de cada linea presente en el bloque:

 

  1. Una descripción

  2. se carga el modulo

  3. se indica el nombre del ID ([sngrep]) que luego se utilizará en el modulo TRACER. 127.0.0.1:9060 son la IP y el puerto donde se enviará la captura realizada a nivel de OpenSIPs. Además se utilizar el protocolo de transporte UDP y la versión HEP numero 3

  4. Se indica que se utilizará el método de encapsulamiento de la versión 5 de Homer (texto plano) que es lo que necesitamos para una correcta visualización en SNGREP

  5. Se indica un numero que identifique de manera univoca el nodo (PERSONALIZAR CON UN NUMERO ENTERO DE SU GUSTO)

Una vez terminada la configuración del modulo PROTO_HEP, podemos pasar a la configuración del modulo TRACER:

 

#### TRACER Module

loadmodule "tracer.so"

modparam("tracer", "trace_on", 1)

modparam("tracer", "trace_id", "[traceid]uri=hep:sngrep")

 

El significado de las distintas lineas presentes en el bloque:

 

  1. Una descripción

  2. se carga el modulo

  3. se activa la funcionalidad de captura del modulo

  4. se configura un trace_id que luego se utilizará, a través de la función activada por el modulo, en el script de enrutamiento de OpenSIPs. Después del nombre ([traceid]) se indica que la uri es de tipo hep y que el hombre de la uri es sngrep (el parametro hep_id configurado en el modulo PROTO_HEP).

Ahora pasamos a la función trace, activada por el modulo TRACER, que se utilizará en el script de enrutamiento de OpenSIPs; su sintaxis es:

 

trace(trace_id, [scope, [type, [trace_attrs]]])

  • trace_id es el nombre del trace_id configurado como parámetro del modulo. En nuestro caso el nombre es traceid

  • scope es el tipo de captura que se va a realizar; las distintas opciones:

    • m o M capturar los mensajes SIP. La unica opción que se puede utilizar en un escenario donde OpenSIPs está configurado en modo Stateless

    • t o T se capturarán las transacciones

    • d o D se capturarán los dialogos

  • type representa el tipo de mensaje que se van a capturar:

    • sip mensajes SIP

    • xlog mensajes de LOG generados por OpenSIPs

    • rest captura de mensajes de tipo REST

  • trace_attrs un valor o una pseudo variable que luego se puede almacenar en los paquetes capturados.

En nuestro caso, como queremos capturar todas las transacciones que pasen por OpenSIPs, después de esta linea:

 

route{

 

que abre el script de enrutamiento de OpenSIPs, añadimos:

 

trace("traceid","T","sip");

 

Guardamos los cambios y reiniciamos OpenSIPs:

 

systemctl restart opensips

 

Ahora pasamos a SNGREP, donde para realizar la captura utilizaremos el siguiente comando:

 

sngrep -l 4000 -R -d lo -Ludp:127.0.0.1:9060

 

El modulo TRACER activa una serie de comando que se pueden utilizar a través de la consola opensips-cli:

 

opensips-cli -x mi trace

 

se utiliza para ver el estado de todos los traceid configurados (ya que se puede configurar más de uno);

 

opensips-cli -x mi trace mode=off

opensips-cli -x mi trace mode=on

opensips-cli -x mi trace mode=off id=traceid

 

Que se utilizan para apagar la captura, encender la captura, apagar la captura solamente de un determinado traceid respectivamente.

 

Un ejemplo de captura de registro TLS:

 

Tengo que darle las gracias a la lista de distribución de OpenSIPs y a esta entrada de Blog que me ha ayudado mucho con la configuración.

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "OpenSIPs: captura TLS con los módulos PROTO_HEP y TRACE en SNGREP" Suscribirse a VozToVoice - Todos los comentarios