Modelo de seguridad en Asterisk (parte 3 de 3)

8 Mar

Fuente: http://static.internetblog.org.uk/files/manjail.jpg

Llegamos al final de nuestras entregas discutiendo el modelo de seguridad de Asterisk. En la primera parte discutimos sobre la seguridad antes de llegar al conmutador, normalmente a cargo del firewall de nuestro acceso a internet. En la segunda partehablamos sobre como autenticar a los usuarios para permitirles acceder a nuestro sistema. En esta tercera entrega hablaremos sobre como limitar las características de los usuarios que ya se encuentran autenticados dentro de Asterisk. Seguridad de operación

Existen errores en versiones anteriores de algunas interfases gráficas (léase: Elastix) que nos permitían leer la lista completa de extensiones del conmutador y sus contraseñas aún si el usuario no pasaba la autenticación de administrador. Esto quiere decir que a pesar de cerrar nuestra interfaz administrativa y que nadie pueda modificarla, al tener los usuario/contraseñas podría tomar un teléfono, registrarlo con estos datos y empezar a hacer llamadas. Peor aún: podría venderContinuar leyendo

Modelo de seguridad en Asterisk (parte 2 de 3)

6 Mar

El día de ayer publicamos la primera de esta serie de entregas que buscan concientizar sobre los 3 diferentes niveldes de seguridad en un conmutador IP como lo es Asterisk. Discutimos sobre la seguridad de acceso al sistema, que es la primer barrera contra la quenos anfrentamos al acceder al equipo. Para esta entrega hablaremos del segundo nivel de seguridad, es decir: los atacantes ya pueden llegar hasta el equipo, ¿cómo podemos defendernos de lo que nos pueden hacer?

Seguridad de autenticación

Como mencioné en el párrafo anterior, esta es la segunda capa de protección contra atacantes externos: ya penetraron nuestra red, ya pueden “ver” nuestro conmutador. ¿Quiere eso decir que estamos a su merced? Obviamente no, pero debemos tener algunos aspectos muy importantes en cuenta para que esto no nos pase. De entre los puntos a mencionar, resaltemos estos:

Listas de acceso para usuarios SIP/IAX Contraseñas SIP/IAX seguras Defensa… Continuar leyendo

Modelo de seguridad en Asterisk (parte 1 de 3)

5 Mar

Fuente: http://upload.wikimedia.org/wikipedia/commons/5/5b/Firewall.png

Desafortunadamente y como hemos comentado en otros posts, la seguridad en Asterisk es algo que se ha visto sobrevalorado por la sencillez y rapidez que trae el dejar un sistema que funciona en unas cuantas horas a partir de una distribución todo integrado, pero que es inseguro por descuidos del administrador.

¿Cómo puede alcanzarse la seguridad al 100% del conmutador? La respuesta es no se puede. Sin embargo, lo que si podemos hacer es llevar nuestro sistema a un nivel de seguridad que haga que aquel que intente penetrarlo sin autorización tenga que invertir más tiempo del que está dispuesto a ceder.

Para explicar mejor esto, definiremos el modelo de seguridad de Asterisk en 3 niveles:

Seguridad externa (acceso al sistema) Seguridad de autenticación Seguridad de operaciónSeguridad externa

Todo acceso al sistema desde fuentes externas (WAN) debe estar restringido a través de un firewall. Idealmente, usaríamos un … Continuar leyendo

El carrier no siempre tiene la razón

1 Mar

(por cuestiones de confidencialidad no puedo revelar nombres, pero esta historia aplica en general)

Desde el pasado noviembre recibí una llamada de uno de mis clientes indicándome que su equipo Elastix muy frecuentemente le daba el ya conocido mensaje “todos los circuitos se encuentran ocupados“. Su enlace con la PSTN era a través de un enlace digital E1 ISDN.  Pensé que algo estaría mal con la configuración del equipo, así que decidí acceder a la consola para ver que era lo que lo ocasionaba.

Intentó varias llamadas a un mismo número: todas fallaron. Mi creencia fue pensar que Elastix estaba mal interpretando el código Q.931 que el carrier entregaba de vuelta tras el resultado de la llamada. Para quienes no saben, el Q.931 es el protocolo estándar de la ITU para la señalización de control de conexión en ISDN (en otras palabras, es el responsable de indicar el estado de … Continuar leyendo

T1s ISDN PRI con el medio arriba pero caídos en servicios

2 Dic

Vicidial con 150 posiciones en San Juan, PR

Nos por la mañana nos desmadrugó un cliente que tenemos en Puerto Rico (en México estamos 2 atrasados con respecto de ellos), indicándonos que los agentes no podian sacar llamadas al exterior en ocasiones. Algunas veces podían marcando manualmente, otras no.

Como antecedente, el cliente tiene 8 T1s en ISDN PRI, dándole un total de 23*8=184 canales totales. De ese total de canales, tiene 10 reservados en los primeros 2 T1s para solo inbound, y lo demás es outbound libre, de manera que los agentes toman cualquiera de los canales que estén disponibles para marcar al exterior.

Los T1s de salida estaban agrupados en uno solo, el grupo 0 (cero), con lo cual yo mandaba la llamada así:

[codesyntax lang=”php”]

exten => _787ZXXXXXX,n,Dial(DAHDI/r0/${EXTEN})

[/codesyntax]

De esta manera, no tengo que preocuparme por ver por cual canal mandar la llamada, sino que en … Continuar leyendo

Como agregar contextos personalizados en todos los servidores de un cluster con Vicidial

13 Oct

Hoy me di a la tarea de implementar un plan de llamadas personalizado en un cluster de Vicidial: mi cliente no quería que existiera la posibilidad de que los agentes marcaran manualmente desde su X-Lite, y al tratarse de un entorno de múltiples servidores, a la larga resultaría complicado mantener por separado cada uno de los archivos extensions.conf de los servidores.

¿Cuál es entonces la mejor manera para crear contextos de plan de llamadas que aparezcan en TODOS los servidores instalados en un cluster de Vicidial sin tener el problema de replicar manualmente los cambios?

La respuesta viene con las últimas versiones de Vici (2.2+) ya que bajo Admin -> System settings viene un espacio interesante donde podemos agregar planes de llamadas personalizados: el Custom Dialplan Entry.

Custom Dialplan Entry para Vicidial

Sin embargo, hay un problema, y es que todo lo colocado en esta caja se escribe dentro del … Continuar leyendo

Recuperar la contraseña de FreePBX

3 Oct

Muchos han pedido un tutorial de como recuperar la contraseña de FreePBX, lo cual es bastante sencillo una vez que tienes la contraseña de root de Linux. Asumiendo esto, el proceso a seguir es bastante fácil, solo hay que cambiar los passwords desde MySQL. Aquí pongo los comandos directos para hacerlo desde el CLI de Linux (estamos asumiendo que el password de root de MySQL es eLaStIx.2oo7)

Si tienes FreePBX 2.5 o inferior:

[codesyntax lang=”bash”] echo “UPDATE asterisk.ampusers SET password=’minuevopass’ WHERE username = ‘admin'” | mysql -peLaStIx.2oo7 asterisk [/codesyntax]

Si tienes FreePBX 2.6 o superior

[codesyntax lang=”bash”]

echo "UPDATE asterisk.ampusers SET password_sha1=SHA1('minuevopass') WHERE username = 'admin'" | mysql -peLaStIx.2oo7 asterisk

[/codesyntax]

Con FreePBX 2.6+ la contraseña se guarda como hash SHA1, por lo que no es posible recuperarla. Sin embargo, en versiones anteriores se guardaba en texto plano, por lo que un simple SELECT nos revelaria cual era la contraseña … Continuar leyendo

6 razones por las cuales tu campaña en Vicidial podría no funcionar

28 Sep

Como se ha visto, recientemente hemos tenido mucho movimiento sobre Vicidial, que es una suite open source para instalar un callcenter completo sobre Linux. Pues bien, es bastante común que dado lo complejo que resulta este sistema cometamos errores y que por lo tanto nuestras campañas de marcación predictiva no saquen llamadas al exterior. Aquí recopilo algunos de los errores más comunes al momento de hacer marcación predictiva hacia el exterior:

Las campañas tienen el horario incorrecto. Muchas veces, las pruebas las hacemos en las noches y movemos la hora de las llamadas para entender por que no salen. Primer paso: asegurémonos de que la hora de la campaña sea la correcta y que estemos haciendo pruebas dentro del horario REAL en que se supone que nuestras campañas deben de correr.No hay leads disponibles para marcar. Asegurémonos que las listas que tenemos dadas de alta para nuestra campaña tengan… Continuar leyendo

Como reiniciar masivamente todos los dispositivos Cisco SPA de tu red

27 Sep

El día de ayer publicamos un mini tutorial de como reiniciar masivamente todos los teléfonos Aastra de nuestra red. Hoy publicamos el equivalente aplicable para todos los teléfonos Cisco SPA (esto aplica también para la vieja gama de Linksys/Sipura).

El código es aún más sencillo que el de ayer:

[codesyntax lang=”php”]

#!/bin/bash RED=192.168.1.1/24 echo "Escaneando $RED ..... " for IP in `nmap -sP -v $RED | grep "appears to be up" | cut -d' ' -f 2` do wget -qT 1 --no-cache http://$IP/admin/reboot -O - > /dev/null done

[/codesyntax]

Con un poco de ingenio, podemos mezclar ambos scripts para que en caso de tener mezcla de teléfonos, reiniciemos todo lo que nos encontremos.

¡Suerte!… Continuar leyendo

Como reiniciar masivamente los teléfonos Aastra de tu red

26 Sep

Recientemente nos topamos con la necesidad de resetear cerca de 200 teléfonos Aastra en una misma red. Pudimos haber esperado a que los teléfonos comenzaran a registrarse solos, pero debido a que era un soporte de emergencia, utilizamos este script:

[codesyntax lang=”bash”]

#!/bin/bash USER=admin PASS=22222 RED=192.168.1.1/24 echo "Escaneando $RED ..... " for IP in `nmap -sP -v $RED | grep "appears to be up" | cut -d' ' -f 2` do wget -qT 1 --no-cache --http-user=$USER --http-passwd=$PASS http://$IP/logout.html -O - > /dev/null wget -qT 1 --no-cache --http-user=$USER --http-passwd=$PASS http://$IP/sysinfo.html -O - > /dev/null# Reset echo Reiniciando $IP wget -qT 1 --no-cache --post-data=resetOption=0 --http-user=$USER --http-passwd=$PASS http://$IP/reset.html -O - >/dev/null done

[/codesyntax]

Lo que éste hace es escanear la red, abrir la interfaz web de todos los teléfonos, accesa con el usuario y contraseña default (admin/2222) y una vez adentro ingresa al menú Reset y posteriormente acciona el reseteo del teléfono. … Continuar leyendo