miércoles, 11 de julio de 2012

SIP TLS y SRTP en Elastix (2)

Como les mencione en la entrada anterior, Elastix 2.3 tiene todo lo necesario para la encripción de llamadas SIP con TLS y SRTP.

Todo lo que voy a mencionar en este artículo, se lo hizo en un servidor con Elastix 2.3 de 64 bits, y con teléfonos Yealink T20P y T22P.

En el artículo anterior puse todo lo que se debe agregar en las configuraciones generales para que funcione TLS en Elastix.

Para habilitar el soporte SRTP por extensión hace falta agregar el parámetro encryption=yes en cada una de las extensiones. Asi mismo para que las extensiones usen TLS en la señalización se debe agregar transport=tls.

Las configuración de cada extensión se encuentra en el archivo sip_additional.conf. Como se sabe, todos los archivos con el nombre "additional" son modificados por la interfaz web, por lo que, si agregamos los parámetros que mencioné anteriormente en la configuración de cada extensión, con cualquier cambio hecho en la interfaz web va a borrar esa configuración.

Para evitar que se borren las configuraciones, y para poder configurar si es que se va a usar SRTP y TLS he realizado algunos cambios.

Deben bajarse el archivo functions_inc.php y sustituirlo (siempre es bueno sacar una copia del original por si algo falla) por el original que se encuentra en:

cd /var/www/html/admin/modules/core/

Luego de eso reiniciar el amportal:

amportal stop


amportal start

Veran que en PBX -> PBX Configuration -> Extensions y seleccionan cualquier extensión que tengan creada, en la sección Device Options aparecen dos nuevos campos que dicen encryption y transport.

Para habilitar SRTP y SIP TLS, encryption debe estar seteado con yes, y transport con tls, como se muestra en el siguiente gráfico:






Falta habilitar en el teléfono habilitar el soporte SRTP y TLS.
En los teléfonos Yealink, en la configuración de las cuentas Account -> Cuenta 1 -> Basic -> Transport -> TLS.
Y en Account -> Cuenta 1 -> Advanced -> Voice Encryption (SRTP)

 -> On.
Con eso se habilita los dos parámetros en los teléfonos Yealink.

Eso es todo, se puede probar con un sniffer y tratar de capturar llamadas.

18 comentarios:

fk dijo...

Buena tarde.

Para esto hay que generar un certificado como en el caso anterior donde contectas dos elastix???

o es nativo?

Unknown dijo...

No es necesario generar un certificado.

Nabil Kadhkadhi dijo...

please i want to download the file functions_inc.php but google says that i'm not authorized to download it.
please help me!!
it would be great if you do a video tutorial on haw to secure calls with tls&srtp on elastix 2.3
thank you very much and sorry for the english cause i don't speak spanish.

Unknown dijo...

Hi, I can send you the file if you send me your email. I will try to do a vídeo soon.

José dijo...

Hola, que buen artículo :) muchas gracias por compartirlo. Tengo un par de consultas:

1. Los teléfonos Yealink tienen buen rendimiento? Hasta el momento solo he logrado utilizar Grandstream.

2. Con tu experiencia crees que este método pueda solventar la dificultad de conectar un teléfono IP que no tenga cliente VPN integrado de manera segura desde una extensión remota?

Nabil Kadhkadhi dijo...

thank you very much juan this is my email :
goaleador2001@yahoo.fr

i'm looking forward to see your video tutorial and thank you again for your answer

Unknown dijo...

José,

Con respecto a la primera pregunta, los teléfonos Yealink son muy buenos, en instalaciones grandes, importantes los utilizamos por que son muy confiables.

Que dificultad tienes con al conectar un telefono remoto?? Tiene que ver algo con NAT??

Siempre una VPN va a ser mas segura, aqui lo unico q estas haciendo es evitando que te pinchen una llamada por decirlo de alguna forma, pero para el registro de extensiones remotas tienes que publicar puertos de tu central a internet, que de todas formas representan un riesgo de seguridad, estos riesgos los puedes minimizar con buenas practicas de seguridad.
Contraseñas fuertes para el registro de extensiones SIP, configurar un firewall en la central con iptables, y configurando un programa llamado fail2ban en el elastix. Te recomiendo que visites la página elajonjoli.org, aqui encuentras una guia muy buena para configurar fail2ban.

Nabil Kadhkadhi dijo...

hi juan i send you my email adress but i didn't recieve any file.
please send me the file as soon as possible.
sorry to bother you but i'need it so much
please help

Unknown dijo...

I couldn't download the download the file functions_inc.php file. Could you authorize me ?

What changes were made to that file ?

Could we change only the Tools/Asterisk SIP Settings there at the Free PBX ?

Thanks.

Bosco Rivera dijo...

Hola Juan,

Excelente articulo, me ha encantado. Sin embargo tras subir el functions.inc.php en mi Elastix 2.3 siguen sin aparecer los campos de encryption y transport desde la web. ¿Alguna idea?.

He modificado el sip_additionals.conf pero en cuanto cargue la configuración de la web volverá a como estaba al principio.

Gracias,
Un saludo.

Unknown dijo...

Buenas Juan antes que nada te quiero agradecer por este aporte del funcionamiento de TLS, seria posible me pudieras enviar functions_inc.php para proseguir con el laboratorio, te lo agradeceria mucho.

Mi direccion de correo es gramajo33@gmail.com

Gracias.

Rigoberto Flores Segura dijo...

Muy bien explicado Juan me podrias enviar el archivo functions_inc.php ? por favor mi correo es rigofs@hotmail.com Gracias.

Rigoberto Flores Segura dijo...

Muy bien explicado Juan me puedes enviar el archivo functions_inc.php ? gracias mi correo es rigofs@hotmail.com gracias

Anónimo dijo...

Excelente articulo, alguien ha probado si esto funciona en Elastix 2.2? Y de ser asi me gustaria que me enviaras el archivo de function_inc.php para la configuracion, mi email es wosscr@gmail.com

Unknown dijo...

Voy a tratar de actualizar el artículo, tanto el del SRTP como el de Callback automático y publicar otro artículo que tengo en mente. Muy pronto.

fk dijo...

Juan, hace un año ya utilice tu archivo, el tema es que lo perdí, me puedes apoyar compartiéndolo?

Unknown dijo...

Escribí una versión de este artículo.

Unknown dijo...

Hola Juan, serias tan amable de mandarme el archivo functions_inc.php file, google me dice que necesito ciertos permisos. Mi correo es dgomez063@misena.edu.co.

Mil Gracias