
Categoría: Sinologic

SecFilter, el módulo de Kamailio para mejorar la seguridad

Kamailio es una herramienta muy potente, muy flexible y super-eficiente, de eso no cabe duda, pero de la misma manera que nos permite manejar más de 20.000 llamadas en un pequeño sistema con un único núcleo y apenas 4Gb de RAM, también nos puede causar un buen agujero en el bolsillo si no tenemos cuidado. Por este motivo, Kamailio no es como Asterisk ni como otras herramientas similares, hay que manejarlo con cuidado, hacer pruebas antes de hacer cualquier cambio y cerciorarse bien que lo que se hace, es lo que debe hacerse en todo caso.
Kamailio ya implementa un módulo de seguridad conocido por todos llamado Pike, un módulo que «mide» las peticiones en un tiempo concreto y si el número de peticiones es superior al que le hemos configurado, puede ejecutar un comando que, generalmente suele ser una entrada en la lista negra, en el firewall o también un mensaje de alerta para advertirnos de un posible ataque de denegación de servicio (DoS).
Con esto hemos sobrevivido por el momento, pero en el VoIP2DAY, Jose Luis Verdeguer (aka @Pepeluxx) ya me comentó que estaba trabajando en un módulo de seguridad para Kamailio, con lo que estaba deseando probarlo en cuanto saliera a la luz. Es verdad que con el módulo Pike nos quitamos muchos ataques basado en repeticiones, y que el propio Kamailio puede analizar cierta información para descubrir otros tipos de ataque, pero es cierto que echaba de menos algo más completo que facilitara la detección de posibles ataques, y esto es justamente lo que hace el nuevo módulo de Kamailio: Secfilter.
Secfilter es un módulo de Kamailio que ofrece la posibilidad de gestionar una lista blanca o lista negra en función de parámetros como «user agents», país, dominio, destino, etc. de esta manera podemos aumentar la seguridad de nuestros Kamailios de una forma mucho más personalizada y probada.
La descripción del módulo dice así:
Este módulo ha sido diseñado para ofrecer una capa adicional de seguridad sobre nuestra comunicaciones. Para realizar esto, se disponen de las siguientes funcionalidades:
- Añadir a la lista negra o bloquear «useragents», direcciones IP, países, dominios y usuarios.
- Añadir a la lista blanca para permitir «useragents», direcciones IP, países, dominios y usuarios.
- Añadir a la lista negra cuando el número marcado no sea permitido.
- Prevenir de ataques SQL Injection.
Cuando una función sea llamada, se buscará en la lista blanca. Si no se encuentra, entonces se buscará en la lista negra.
Realmente este módulo es un gran módulo y desde aquí felicitamos a Jose Luís Verdeguer por este gran aporte y ya de paso a Victor Seva y a Daniel Constantine por darle apoyo para que sea incluido en Kamailio.

Asterisk 16 ya disponible: La hemos probado y nos encanta!

Asterisk 16 se anuncia en la Astricon
Aprovechando el evento Astricon, se ha publicado la versión 16.0.0 de Asterisk entre un gran número de seguidores, usuarios y desarrolladores, una versión que llevamos esperando desde hace mucho tiempo ya que, tanto la versión Asterisk 14 como Asterisk 15 fueron ambas, versiones orientadas a desarrollo en la que se han incorporado bastantes buenas características, se han estabilizado algunas que ya existían y los usuarios de Asterisk llevamos esperando una versión LTS más de 3 años.
En la Astricon de 2014 se anunció la última versión LTS: Asterisk 13 y desde entonces ha llovido mucho. En aquel momento se publicaba PJSIP de forma oficial en una versión LTS (en un Asterisk orientado a producción) y los primeros trazos de un nuevo interfaz llamado ARI (Asterisk Rest Interface) pero que aún estaba un poco en pañales. Por esta razón, esperábamos que la siguiente versión LTS incorporase estas novedades mucho más estabilizados y orientados a entornos en producción, por esta razón, cuando nos enteramos que Asterisk 15 no sería una versión LTS, muchos nos quedamos con la miel en los labios sabiendo que nos tocaría esperar al menos otro año para poder aprender y disfrutar de las bondades que llevamos leyendo y escuchando tanto tiempo.
(más…)
Issabel se actualiza a Asterisk 13

Puede parecer un poco extraño que, ahora que está a punto de salir la versión de Asterisk 16, aún haya quien anuncie el salto a Asterisk 13, pero hay que recordar que tanto Asterisk 14 como Asterisk 15 son versiones orientadas a desarrollo y no son LTS, por lo que desde que Asterisk 13 salió (hace ya 4 años) aún hay muchas personas que siguen trabajando con Asterisk 11 como una de las versiones más estables que hemos tenido y por lo tanto ¿para qué cambiar?.
Sobre las ventajas que ofrece Asterisk 13 ya hemos hablado largo y tendido, no hay más que ver una de tantas presentaciones que se hicieron en su día, pero hoy día nos seguimos preguntando. ¿hay alguien que siga en Asterisk 11?
Issabel acaba de anunciar que su nueva ISO acaba de actualizarse a Asterisk 13, entre otros motivos por el soporte de ARI (Asterisk Restful Interface) pero sobre todo porque al actualizar el sistema operativo, es necesario también actualizar de Asterisk (Asterisk 11 no compila en versiones antiguas de ciertas distribuciones Linux) por lo que si, además de necesitar actualizar, el sistema nos lo pide, tenemos en bandeja una excusa de oro para actualizar la versión de Asterisk.
También es noticia que acaban de publicar la RC2 de Asterisk 16, la siguiente versión LTS que está a punto de salir (y que imaginamos saldrá a la luz justo antes de la Astricon que tendrá lugar del 9 al 11 de Octubre), por lo que tendremos nueva versión estable dentro de muy, muy poco. 🙂
Sea como fuere, tenemos muchas ganas de probar la nueva versión y ver qué cosas nuevas trae, después de dos versiones de desarrollo nos imaginamos que vendrá cargadita de novedades, pero habrá que analizarla muy seriamente. Pero de momento, si trabajas con Issabel, yo iría actualizando ya la versión a la última, que también tiene una pinta bastante buena y cargadita de novedades! 😀
(más…)
Por qué vemos 000000000 cuando nos llaman por teléfono?
En España (y será extensible a otros países) si nos llaman del 000000000 es sencillamente porque Movistar ha empezado a cobrar por el servicio de identificación de llamada (por enseñarte el CallerID de quien te llama). La broma cuesta 2€/mes y si no has dado el consentimiento explícito, las llamadas que recibas empezarás a verlas que provienen del número 000000000. El tema está en que han empezado a ocultar el callerid poco a poco y no a todo el mundo a la vez, de ahí que hayan personas que de un día al siguiente dejen de recibir el identificador y empiecen a recibir el 000000000 famoso.
Si llamas al 1004, te informan que en algún email/carta/spam que te mandaron, te avisaron que se aplicaría «a partir» de Enero de 2018, por lo que si no te has quejado en ese momento, es tu problema.
Esto ocurre tanto a nivel residencial (particulares) como para pequeñas y medianas empresas y sólo ocurre con Movistar, en el resto (de momento) mostrar el CallerID sigue siendo tan gratis como respirar o enviar un campo en el protocolo SIP.
Lo curioso es que Movistar cobra 2€ por mostrar el campo P-Asserted-Identity (que es quien transporta el campo con el número de teléfono) algo que ni les cuesta dinero, ni recursos, ni nada… es simplemente cobrar 2€ más por que sí.
Una vez dado de alta, tarda entre 24 y 48 horas en volver a ver los números de teléfono de las llamadas recibidas.

Cómo crear tus propias aplicaciones SIP fácilmente con Javascript
Drachtio es una librería para NodeJS que nos permite crear aplicaciones SIP de una forma rápida y sencilla.
Ya conocíamos que NodeJS es un sistema que nos permite crear aplicaciones de alto nivel de una forma rápida y bastante sencilla. Crear aplicaciones web, APIs y herramientas con unas pocas líneas de código y además, si lo que queremos hacer no requiere demasiada dificultad, seguramente existan librerías y documentación que nos ayudará a crear lo que necesitemos muy rápidamente.
Ahora conocemos una librería que nos permite crear aplicaciones SIP utilizando NodeJS muy útiles para hacer herramientas rápidas, ejemplos de uso y por lo que parece en la documentación (bastante buena por cierto), de una forma muy sencilla, rápida y sin requerir de demasiados conceptos especiales.
const Srf = require('drachtio-srf'); const srf = new Srf(); srf.connect({ host: '127.0.0.1', port: 9021, secret: 'cymru' }); srf.on('connect', (err, hostport) => { console.log(`connected to a drachtio server listening on: ${hostport}`); }); srf.invite((req, res) => { res.send(486, 'So sorry, busy right now', { headers: { 'X-Custom-Header': 'because why not?' } }); });Con estas pocas líneas tendremos un sistema que se conectará a un servidor NodeJS-SIP (https://drachtio.org/docs/drachtio-server) que hará de conector entre la librería DRACHTIO y SIP.
Si queréis echarle un vistazo a esta interesantísima librería, la tenéis disponible aquí: https://drachtio.org/
Cómo configurar el Addon de Elastix para High Availability
Cuando montamos un sistema de comunicaciones crítico, es imprescindible disponer de un sistema de alta disponibilidad que garantice el funcionamiento incluso en algún momento inesperado en el que el servidor principal tenga un problema y deje de dar servicio.Generalmente esto se suele hacer instando un sistema heartbeat, pacemaker y drbd:
- heartbeat : Encargado de comprobar que el servidor está operativo y tiene red.
- pacemaker : Encargado de comprobar que los servicios están funcionando al 100%.
- drbd : Encargado de mantener perfectamente duplicado el contenido de una partición sincronizada en varios sistemas.
Hay más herramientas que hacen esta labor, incluso hoy día existen alternativas que permiten ofrecer una alta disponibilidad no solo del sistema hardware, si no a nivel de sistemas virtualizados, pero ese es otro tema que trataremos más adelante.
La cuestión es que instalar estas tres herramientas no es algo trivial, requiere de una configuración muy específica que suele llevar bastante tiempo, no solo para dejarlo preparado, si no para comprobar que todo es correcto y el sistema está configurado para ofrecer una alta disponibilidad confirmada.
Hace poco tuve la oportunidad de «pelearme» con el módulo de alta disponibilidad de Elastix en varias ocasiones diferentes, un módulo que, pese a que «únicamente» instala este software y lo configura, también lleva el control del estado de redundancia y disponibilidad, lo que lo convierte en una herramienta bastante práctica para el tiempo invertido en configurarlo.
¿A quién le interesa WebRTC?

En el mundo de la tecnología es frecuente encontrar dos términos muy conocidos:
- humo : idea que alguien vende como si fuera real y estable, pero que realmente no existe.
- hype: término utilizado para causar expectación sobre algo que va a salir pero que aún no es muy sólido.
La tecnología avanza y aquellos que se quedan parados, en su mundo, terminan obsoletos, desfasados y muy limitados en movimiento. Por otro lado, las empresas son conscientes de esto y en el lado contrario, muchas están «expectantes» ante nuevas oportunidades que puedan aprovechar para hacer negocio, la propia VoIP ha sido testigo de este hecho y no son pocas las empresas que se han sumado al carro del software libre gracias a aplicaciones como Asterisk, Kamailio, Freeswitch, OpenSIPs, Elastix, etc. para aprovechar su «gratuidad» para ofrecerle a sus clientes algo nuevo, de «valor añadido» y creación externa.
WebRTC es una tecnología que está hoy en día en boca de todos los interesados en la VoIP ¿por qué? Porque básicamente es «la VoIP del mañana». No obstante, pese a que muchos están interesados, pocos saben realmente por qué y eso es lo que vamos a intentar dilucidad en este artículo.


OpenExpo 2016: Software Libre el 2 de Junio en Madrid
OpenExpo 2016 es uno de los eventos más importantes a nivel nacional sobre Software Libre y Economía Mundial Abierta (Open Data y Open Innovation) que se celebra el próximo día 2 de Junio en el ático de la estación de Chamartín en Madrid y que reúne a más de 2000 profesionales del sector, profesionales y empresas.El evento dispone de 6 salas en las que se ofrecerán charlas simultáneas impartidas por numerosos ponentes donde se hablarán de temas relacionados con las últimas tendencias: Cloud, JS, Docker, Seguridad, Big Data, Impresión 3D, IoT, Asterisk y mucho, mucho networking de empresas.
El coste de la entrada es de 50€ si la compras ahora, o 100€ si la compras el día del evento.
Más información: http://www.openexpo.es/

Explicación sobre la arquitectura de Asterisk 13
El proyecto Asterisk también estuvo presente durante el KamailioWorld de la mano del actual lider del proyecto con una conferencia que, si bien podemos clasificar como «muy técnica», Matthew Jordan consigue hacerla más amena y divertida, a la vez que muestra los entresijos de los cambios en el código fuente de Asterisk para poder continuar creciendo sin que el proyecto se convierta en un castillo de naipes.
Con la frase ¿Cómo justificar 10 años de desarrollo y cambios en algo que el usuario final jamás va a notar? Matt empieza explicando las diferentes APIs que se han desarrollado en Asterisk y las ventajas de Asterisk 13 y posteriores gracias a dichas APIs.
Una explicación muy técnica pero que explica muy bien los grandes cambios que se han hecho en Asterisk 13 y el enorme esfuerzo que representa para poder continuar el proyecto Asterisk como algo con vistas a seguir creciendo y mejorando.
Por si a alguien le interesa, el vídeo soporta subtítulos automáticos, así como traducción automática de dichos subtítulos.
Además, en la cuenta de Youtube de KamailioWorld podemos encontrar todos los vídeos de las conferencias que se están impartiendo, la mayoría de ellas muy interesantes.












Cuando montamos un sistema de comunicaciones crítico, es imprescindible disponer de un sistema de alta disponibilidad que garantice el funcionamiento incluso en algún momento inesperado en el que el servidor principal tenga un problema y deje de dar servicio.


OpenExpo 2016 es uno de los eventos más importantes a nivel nacional sobre Software Libre y Economía Mundial Abierta (Open Data y Open Innovation) que se celebra el próximo día 2 de Junio en el ático de 