#ContraElSilencio

#ContraElSilencio





No a la supresión de la libertad de expresión en internet que pretende realizar el gobierno arbitrario de Enrique Peña Nieto en México

Seguridad

  • Aplicaciones para monitoreo, rastreo y espionaje de dispositivos móviles.

    En la actualidad ya existen teléfonos móviles como personas en el mundo, la cifra ya supera los 7,000 millones de móviles y su popularidad enmarcada por diversas ventajas también ha pasado a generar cierta industria que aprovecha el desconocimiento tecnológico de los usuarios para aprovechar vulnerabilidades de sistemas embebidos en desarrollo, creando malware para monitorear, rastrear y espiar a los usuarios con fines personales, espionaje con fines industriales, delictivos o gubernamentales.


    El espionaje puede consistir desde escuchar las conversaciones de voz de un usuario, leer sus mensajes sms, capturar todo lo que escribe en el teléfono, saber su ubicación, obtener sus password de acceso a correo, activar el micrófono o la cámara y grabar lo que sucede en su entorno, usarlo como un medio de acceso a la red de su empresa y obtener secretos industriales, etc.


    Estas herramientas existen desde hace más de una década, desde el florecimiento de los primeros teléfonos móviles, cuando las redes de telefonía no usaban ningún algoritmo de codificación y cualquiera con un escucha en la misma frecuencia podía capturar la conversación, el espionaje se ha dado en todos los momentos de la historia, pero la tecnología lo ha hecho mas fácil de realizar, desde la colocación de policías escuchando físicamente conversaciones en las centrales telefónicas hasta servidores espía ubicados en los principales datacenters de los proveedores de internet.


    la película Enemigo Público con Will Smith surgida a finales de los 90s, mostraba este espionaje que se venía dando desde años atrás y con el atentado de las torres gemelas, se firmó la ley patriota, ley que obligaba a todas las empresas nortemericanas de tecnología brindar una puerta trasera a la CIA para acceso a sus sistemas.


    En la actualidad gracias a la popularidad de los dispositivos móviles, el desarrollo de software espía ya no es exclusivo del gobierno o de hackers elite obteniendo información desde un cuarto obscuro mientras comen pizza y toman pepsi. Comercialmente existen diversas aplicaciones que pueden descargarse e infectar al equipo deseado para espiarlo. Estas herramientas en principio puedes usarlas para beneficio personal, instalarlo en tu propio dispositivo y en caso de robo o pérdida, poder acceder al teléfono remotamente y borrar toda la información o grabar el rostro de quien te robó el teléfono. Pero también puede usarse para fines perversos, una empresa puede usarlo para espiar a sus empleados, una esposa o esposo celoso para rastrear donde anda su cónyuge, o el gobierno para monitorear a un periodista, etc.


    Algunas de estas herramientas que se pueden obtener desde internet:

  • mSpy: Uno de las aplicaciones de espionaje más completas.
  • Maxxspy: Monitorea todas las actividades del teléfono infectado.
  • Cell Tracker: Envía automáticamente la información de donde un teléfono se ubica y lo rastrea a través de Google Maps.
  • Mobile Hidden Camera: Captura fotos sin generar sospechas y las envía a una dirección de correo electrónico.
  • Punch Security: Un software de espionaje muy completo desarrollado por hackers mexicanos.
  • Sneaky Cam: Graba videos sin que nadie sepa que lo estás haciendo.
  • MobiStealth: Software que permite vigilar las actividades de los hijos al usar un móvil, saber su ubicación, tomar fotos de sus actividades, revisar sus mensajes, etc.
  • FlexiSpy: Todo lo que puedas espiar en un teléfono móvil: Chats, Conversaciones de voz, imágenes, videos, páginas web, etc.
  • Spyera: Aplicación que conecta a un servidor que elijas y envía información obtenida desde la cámara del usuario, fotos, conversaciones de voz, activación de micrófono, etc.
  • TopSpy: Un software de espionaje con funciones básicas de monitoreo como lectura de SMS, rastreo GPS, etc.


    Por ello es altamente recomendable:/b>

  • Nunca dejar tu teléfono a alguien desconocido, pues no sabes que software instalará en tu dispositivo.
  • No descargues apps que desconozcas su función.
  • Evita cualquier app no firmada o gratuita.
  • Cuidado con las memorias usb pueden estar infectadas de malware.
  • Nunca te fíes de redes inalámbricas abiertas, no sabes si hay un sniffer o un dns spoffing del otro lado.
  • Nunca teclees tu password en un cybercafé, y si lo vas hacer, usa un teclado virtual en pantalla, pero no uses el teclado físico.
  • Por más que te invada el morbo, evita darle click a vídeos o fotos morbosas en facebook que te conduzcan a sitios desconocidos.
  • Nunca, nunca prestes tu teléfono, mucho menos lo conectes por usb a una computadora que no conozcas, los teléfonos pueden ser infectados en automático cuándo están en modo depuración y se conectan por usb a una computadora.
  • Cuidado con los teléfonos chinos, como el M4, hay pruebas que estos teléfonos de fábrica vienen precargados con spyware.
  • Consulta a un especialista para que analice tu dispositivo y ver si no está infectado.

  • Actualizando FreePBX y bug en la grabación de llamadas.

    En la mañana me llamó un cliente a quien hace 4 años le instalamos un servidor Asterisk, me pidió que le diéramos mantenimiento a su conmutador pues presentaba algunas fallas, a este servidor desde hace 3 años no le dábamos mantenimiento por cuestiones del cliente al no pagar una póliza de soporte. Después de hacer una revisión general, ajustar las configuraciones y hacer un upgrade de FreePBX, solo faltaba un detalle, el servidor no grababa las llamadas.


    Después de revisar en la consola el seguimiento de una llamada desde una extensión con grabación de llamadas habilitada, se observaba que se saltaba la grabación. Al revisar la macro de macro-record-enable el script de freepbx en /etc/asterisk/extensions_addittional.con no estaba completo, el paso 1 era salir de la macro, por lo que había un bug en la generación del código de freepbx. Buscando información en foros vi que ya no hay soporte para la versión 2.9 por lo que busqué en que parte del código de freepbx generaba esta macro y encontré que estaba en el archivo /DIRECTORIOWEB/admin/modules/core/functions.inc.php y el código de esa parte es el de abajo.


    El no generar el script para grabación de llamadas se debe a una variable global, la cuál no encontré en /etc/amportal.conf ni en las configuraciones avanzadas de asterisk, por lo que me fue más fácil alterar la condición de functions.inc.php para que el script de freepbx generara el código, con esto al hacer las pruebas quedó solucionado.


    Este es el código original, solo hay que modificar la condición de disable_recording


              $context = 'macro-record-enable';
                            $exten = 's';
                            if ($disable_recording) {
                                    $ext->add($context, $exten, , new ext_macroexit());
                            } else {
                                    $ext->add($context, $exten,
    , new ext_gotoif('$["${BLINDTRANSFER}" = ""]', 'check'));
                                    $ext->add($context, $exten, , new ext_resetcdr('w'));
                                    if ($ast_ge_14) {
                                            $ext->add($context, $exten,
    , new ext_stopmixmonitor());
                                    } else {
                                            $ext->add($context, $exten, '', new ext_stopmonitor());
                                    }
     
  • OpenVPN vs IPSec

    IPSec desde los tiempos de Microsoft ha sido el estándar para VPNs, un protocolo con todo lo que implica la filosofía de microsoft, con amplia distribución entre los fabricantes y el protocolo de facto en los routers.


    A pesar que IPSec es el estándar de VPNs, adolece de sin fin de requerimientos que su uso a veces es más un quebradero de cabeza que una solución flexible. En mi experiencia la implementación de IPSec en empresas ha sido un claroscuro entre funciones básicas y requerimientos no soportados, sumando que a pesar de ser un estándar a veces la compatibilidad e interconexión depende de la marca, modelos y versiones de los equipos a conectar. Un protocolo que sus dependencias para funcionar requieren una infraestructura más allá de la que una PyME inicialmente pudiera tener.


    Lo anterior sumado ante el desconocimiento y miedo para uso de herramientas Open Source, OpenVPN una alternaiva flexible, potente y muy segura para implementación de VPNs ha sido desestimada por la industria e ingenieros, siendo solo implementada por los expertos del software libre quienes han llevado esta tecnología a empresas teniéndolas en producción con alto rendimiento y alta disponibilidad.


    Diferencias entre OpenVPN vs IPsec
    IPSec tiene soporte en los principales sistemas operativos como son Windows, Linux, MacOSC, iOS y Android.
    OpenVPNIPsec
    Generalidades
    Una avanzada y flexible solución de OpenVPN de código abierto desarrollado por OpenVPN technologies, la cuál es el estándar en entornos Linux y redes basadas en código abierto. Usa el protocolo se seguridad y encriptaicón probado SSL/TSL. Un protocolo formalmente estandarizado en el IETF con el RFC 3193
    OpenVPN usa la librería OpenSSLpara proveer encriptación. OpenSSL soporta múltiples algoritmos de encriptación como son 3DES, AES, RC5, Blowfish. El RFC 4835 especifica que 3DES y AES en IPsec son los algoritmos de encriptación
    OpenVPN no tiene mayores vulnerabilidades y será completamente seguro siempre y cuando se use con cualquiera de los algoritmos de seguridad soportados. IPSec no tiene mayores vulnerabilidades y es considerado extremadamente seguro cuando es usado con el algoritmo de encriptación 3DES o AES.
    OpenVPN tiene mejor rendimiento que IPSec al usarse bajo el protocolo UDP. IPSec tiene ligera sobrecarga debido a la doble encapsulación.
    OpenVPN es fácil de implementar y puede correr sobre cualquier puerto UDP o TCP. Para firewall restrictivos puede ser configurado para usar TCP sobre el puerto 443. IPSec usa el puerto UDP 500 para el intercambio inicial de llaves, el puerto 50 para los datos encriptados, el puerto 1701 para la sesión inicial L2TP y el puerto 4500 para NAT Transversal. Clientes IPSec son más fáciles bloquear que clientes OpenVPN.
    OpenVPN no es incluido en ningún sistema operativo, pero OpenVPN tiene soporte para cualquier sistema operativo y su instalación es fácil que puede hacerse en 5 minutos. Todas las versiones de Windowx desde 200/XP y Mac OS X 10.3+ y muchos sistemas operativos para móviles tienen sporte nativo para L2TP/IPSec
    OpenVPN es muy estable y rápido sobre redes inalámbrica, celular GSM y otras redes no eficientes donde la pérdida de paquetes y congestión son comunes. OpenVPN sporta TCP para redes ineficientes pero este modo sacrifica algo de velocidad debido a la ineficiencia del encapsulamiento de TCP sobre TCP. L2TP/IPSec es más complejo y difícil de configurar que OpenVPN más cuando se trata de implementarlo detrás de redes NAT.
    OpenVPN tiene compatibilidad con todos los sistemas operativos para servidores, escritorio y móviles, tales como Windows, Linux, *Unix, Mac OSX, iOS, Android, Windows Mobile, *BSD, DDWRT, etc.
    OpenVPN es la mejor opción debido a su flexibilidad para integrarse en cualquier tipo de redes. Es extremadamente seguro, rápido y altamente eficiente. IPSec es buena opción, pero en relación con OpenVPN queda ligeramente corto comparando las múltiples características y flexibilidad de OpenVPN a las limitaciones de IPSec por ser un estándar.
    OpenVPN oficialmente no viene integrado en router de las marcas más comerciales, pero en la actualidad se puede instalar un firmware DDWRT en diversas marcas y modelos de routers, donde OpenVPN ya viene integrado permitiendo aprovechar la tecnología de OpenVPN y el hardware de router. IPSec al ser estándar, puede enontrarse en los routers de marcas comerciales.
    OpenVPN permite conexión de diversos tipos de redes Lan to LAN, Roadwarrior y punto a punto, integrando estas redes a los firewalls ya que la conexión se convierte en una interfaz de red que puede ser administrada como cualquier interfaz de red física. IPSec permite conexiones VPN lan to lan, punto a punto y road warrior, teniendo ciertas limitaciones en ruteo de redes avanzadas.
    OpenVPN al estar basado en código abierto su nivel de depuración es muy alto, permitiendo detectar los puntos de fallo rápida y fácilmente en una implementación. IPSec al implementarse sobre routers, la depuración de errores depende el tipo de router, siendo solo disponible en routers de gama alta, mientras en los de gama baja el debug es muy básico.


    En conclusión, OpenVPN siempre será la mejor opción de VPNs para cualquier empresa que IPSec por flexibilidad, rapidez, funcionalidad, control, seguridad y adaptación a cualquier topología de red.
  • Sciprt para registro automáticos de agentes dinámicos en Queues de Asterisk.

    La interfaz gráfica de FreePBX permite configurar rápidamente colas(queues) con opción de agentes dinámicos o estáticos, aunque cuando son agentes dinámicos estos tienen que registrarse en la cola marcando el número de la cola seguido de asterisco, por ejemplo si la extensión de la cola configurada fuera 601, para registrarse marcarían 601* y un prompt les pediría el número de agente a registrar, para desconectarse marcarían 601** y solicitaría el agente a desconectar. Esto aumenta la probabilidad de fallos y errores en la conexión, por lo que es recomendable hacer un script que automáticamente registre al usuario.


    En este caso este script en el dialplan de Asterisk detecta el CID de quien intenta registrarse marcando 01 y lo registra como agente, para desconectar de la cola solo marca 02 y lo desconecta de la cola indicada en el script del dialplan de asterisk.


    nano /etc/asterisk/extensions_custom.conf
     
    <br>
    [fom-internal-custom]
    ;incluimos los contextos dentro del contexto from-internal
    include=>agente-offline
    include=>agente-online

    <img src="plugins/Emoticons/images/face-smile-big.png" border="0" alt="face-smile-big.png " width="16" height="16" />ialplan que conecta un agente  a la cola 601, detecta el CID de quien marca la extensión 01 y lo registra en la cola 601
    [agente-online]
    [agente-online]
    exten => 01,1,Wait(1)
    exten => 01,n,Macro(user-callerid,SKIPTTL)
    exten => 01, n(a3),Set(CALLBACKNUM=${CALLERID(number)})
    exten => 01, n,Set(COLA1=601)
    exten => 01,n,Set(THISDEVICE=${DB(DEVICE/${CALLBACKNUM}/dial)})
    exten => 01,n,ExecIf($[${LEN(${THISDEVICE})}!=0 & ${DB_EXISTS(QPENALTY/${COLA1}/agents/${CALLBACKNUM})}=1]?AddQueueMember(${COLA1},Local/${CALLBACKNUM}@from-queue/n,${DB(QPENALTY/${COLA1}/agents/${CALLBACKNUM})},,${DB(AMPUSER/${CALLBACKNUM}/cidname)},${THISDEVICE}))
    exten => 01,n,ExecIf($[${LEN(${THISDEVICE})}=0 & ${DB_EXISTS(QPENALTY/${COLA1}/agents/${CALLBACKNUM})}=1]?AddQueueMember(${COLA1},Local/${CALLBACKNUM}@from-queue/n,${DB(QPENALTY/${COLA1}/agents/${CALLBACKNUM})}))
    exten => 01,n,UserEvent(Agentlogin,Agent: ${CALLBACKNUM})
    exten => 01,n,Wait(1)
    exten => 01,n,Playback(agent-loginok&with&extension)
    exten => 01,n,SayDigits(${CALLBACKNUM})
    exten => 01,n,Hangup
    exten => 01,n,MacroExit()
    exten => 01,n(invalid),Playback(pbx-invalid)
    exten => 01,n,Hangup  
    ; dialplan que desconecta un agente, detecta el CID de quien marca la extensión 02 y lo desconecta de la cola 601
    [agente-offline]
    exten => 02, 1,Wait(1)
    exten => 02, n,Macro(user-callerid,SKIPTTL)
    exten => 02, n,Set(COLA1=601)
    exten => 02, n(a3),Set(CALLBACKNUM=${CALLERID(number)})
    exten => 02, n(a5),Set(CALLBACKNUM=${IF($[${LEN(${AMPUSER})}=0]?${CALLERID(number)}:${AMPUSER})})
    exten => 02, n(a7),RemoveQueueMember(${COLA1},Local/${CALLBACKNUM}@from-queue/n)
    exten => 02, n,RemoveQueueMember(${COLA1},Local/${CALLBACKNUM}@from-internal/n)
    exten => 02, n,UserEvent(RefreshQueue)
    exten => 02, n,Wait(1)
    exten => 02, n,Playback(agent-loggedoff)
    exten => 02, n,Hangup
     


    #Recargamos el dialplan para que el script pueda ser llamado desde cualquier extensión
    asterisk -rx "dialplan reload"
     


    Con esto evitaremos el engorroso registro y desconexión método default de FreePBX automatizando el registro.


    También se puede crear un AMI que a cierta hora automáticamente conecte y desconecte agentes de la cola.


    Con esto le facilitamos el registro de agentes dinámicos en los call centers de los clientes a quienes les instalamos y configuramos sus plataformas de comunicaciones basadas en Asterisk.

  • Prueba de sobrecarga de servidores web con CURL

    Hace unos días me pidieron que ayudara hacer un script para probar el rendimiento de un servidor web, de inicio pensé en varias posibilidades, pero al final decidí hacer un script en curl que mandara peticiones de registro y de descarga de contenido para medir el rendimiento del servidor al generar n peticiones simultáneas.


    Lo primero que hice fue hacer un script en bash como el siguiente:
    #!/bin/bash
    USUARIOS=$1
    PROCESOS=$2
    SLEEP=$3
    echo "" > c$USUARIOS-$PROCESOS.log
    for i in `seq 1 $USUARIOS`
    do
            /usr/bin/php  ./curl.php $i $PROCESOS $SLEEP >> c$USUARIOS-$PROCESOS.log &
    done
    #ps aux | grep curl.php
    tcpdump -i $4 port 443 -vv -w e$USUARIOS-$PROCESOS.log
     


    Explicación del script:

    Este script define del número de sesiones a iniciar en USUARIOS y en PROCESOS el número de contenidos a descargar por sesión iniciada en el servidor web.

    SLEEP es una variable que nos da una pausa para ejecutar el script de curl y empezar la sesión

    Se genera un log con la información obtenida nombrando al archivo con el número de usuarios y procesos generados.

    Se hace un ciclo para iniciar la sesión de usuarios enviando al script el número de descarga de contenidos a realizar por sesión, enviando la información al archivo del log.

    Al terminar el ciclo hacemos un tcpdump al puerto 443 que estamos monitoreando en el script de curl, en este caso este puerto puede cambiar al 80 u otro en dado caso.

    El script de bash se ejecutaría así:

    sh curl.sh 100 5 5 eth0
     


    El script de curl en php que manda a llamar el script en bash, ejecuta curl, inicia la sesión en el servidor y descarga el contenido. Este script sería el siguiente:

    <?php
    sleep($argv[3]);
    $log =  "\nSTART LOGIN: ".udate("Y-m-d H:i:s.u").", USER: ".$argv[1]."\n";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://www.MISERVIDOR.COM/login.php');
    curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64)');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    $_login  = array("username"=>"USUARIO", "password"=>"PASSWORD");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $_login);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_COOKIESESSION, true);
    curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/stress.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/stress.txt');
    $HTML = curl_exec($ch);
    if (curl_error($ch)) {
                $log .=  " ERROR LOGIN: ".curl_error($ch)." , USER: ".$argv[1]."\n" ;
    }
    $log .=  "END LOGIN ".udate("Y-m-d H:i:s.u").udate("Y-m-d H:i:s.u").", USER: ".$argv[1]."\n\n";
    //echo $HTML;
    foreach(range(1,$argv[2]) as $proceso){
            $log  .="START REQUEST INFO: ".udate("Y-m-d H:i:s.u").", USER: ".$argv[1].", PROCESO: $proceso\n";
            curl_setopt($ch, CURLOPT_URL, 'https://www.MISERVIDOR.com/contenido.php);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_POST, false);
            curl_setopt($ch, CURLOPT_POSTFIELDS, "");
            $HTML = curl_exec($ch);
            if (curl_error($ch)) {
                $log .= " ERROR REQUEST: ".curl_error($ch).udate("Y-m-d H:i:s.u").", USER: ".$argv[1].", PROCESO: $argv[2] \n";
            }
            $log .= "FINISH REQUEST INFO: ".udate("Y-m-d H:i:s.u").", USER: ".$argv[1].", PROCESO: $proceso \n";
           
            //echo $HTML;
    }
            echo $log;
    function udate($format = '
    u', $utimestamp = null) {
            if (is_null($utimestamp))
                $utimestamp = microtime(true);
            $timestamp = floor($utimestamp);
            $milliseconds = round(($utimestamp - $timestamp) * 1000000);
            return date(preg_replace('
    `(?<!\\\\)u`', $milliseconds, $format), $timestamp);
        }
    ?>

     


    Explicación del script de curl


    Este script recibe como parámetros el número de usuario en sesión, número de procesos y tiempo de ejecución.


    Configura los parámetros de curl para conectar a un servidor HTTPS indicando la url de inicio de sesión y enviando los parámetros de usuario y password para validar el registro e iniciar la sesión vía POST. Cambiar los valores de servidor y datos de registro por los valores de su servidor web.


    Antes de hacer la sesión se captura la fecha y hora inicial contando los milisegundos, al finalizar el proceso de inicio de sesión se vuelve a capturar la fecha y hora con milisegundos agregando la info a la variable log.


    Se valida que no hubiera un error en el proceso de inicio de sesión


    Se mantiene la sesión para esto en la configuración de los parámetros de curl indicamos el archivo donde guardará la cookie.


    Con la sesión de usuario abierta se inicia un ciclo con el número de procesos indicados para capturar el tiempo de inicio con milisegundos y se ejecuta la descarga del contenido, al final de la descarga de contenido se obtiene el tiempo con milisegundos y continua el ciclo hasta finalizar el número de procesos.


    Al finalizar toda la información recabada se envía al archivo de log indicado en el script de bash.


    Con estos dos scripts se obtiene todo un log con la información generada al ejecutar x cantidad de usuarios con n procesos. Al observar la información puede encontrarse que los tiempos de respuesta de un servidor disminuyen conforme va aumentado el número de peticiones de registros de usuario y descarga de contenidos.


    Al script solo le falta la parte para ordenar la información para obtener estadísticas de tiempo de registro de usuarios, promedio de descarga de contenidos, porcentajes de errores, etc.
  • Eliminando de Linux Desktop un espía amigo

    Zeitgeist es un demonio incluido en el escritorio de Gnome que monitorea toda tu actividad, gestiona eventos como que páginas visitas, que música escuchas, tus conversaciones, que comandos ejecutas, que archivos abres, que fotos ves, a donde te conectas, donde te localizas, etc.


    Esto lo hace con el fin de interactuar con otras aplicaciones a través de un API para interactuar de forma inteligente.


    Un tema de seguridad y privacidad es que si al instalar una aplicación de terceros, esta aplicación tuviera acceso a Zeitgeist, prácticamente toda tu información estaría siendo monitoreada por un agente externo.


    Aunado al tema de seguridad, al ser una aplicación en constante ejecución que monitorea toda tu actividad, esta aplicación llega a consumir muchos recursos de RAM y CPU, por lo que es un punto más para no tenerlo en ejecución.


    En ubuntu Linux su proceso de desinstalación es sencillo ya que otros paquetes no depende de el, por lo que para removerlo bastaría solo un:
    sudo dpkg --purge zeitgeist*
     
    Después de eso solo matar los demonios que estuvieran corriendo en consola y listo, tenemos un espía amigo anulado si es que fuéramos muy quisquillosos en el tema de privacidad.
  • OpenBTS crea su appliance para crear redes GSM con Asterisk.

    OpenBTS es un proyecto open source que surgió la década pasada para brindar comunicaciones en zonas rurales a partir de redes GSM.


    Hace unos años hablábamos en este blog de como implementar tu propia compañía GSM a partir de Asterisk+OpenBTS+USRP http://blog.oaxrom.com/index.php/blog/show/%C2%BFQu%C3%A9-es-OpenBTS-%3F-Y-c%C3%B3mo-crear-tu-propia-compa%C3%B1%C3%ADa-de-Telefon%C3%ADa-M%C3%B3vil-GSM-.html .


    Volviendo a retomar el tema por un proyecto para una compañía, entro a ver como va el avance del proyecto OpenBTS y me encuentro que ahora es mucho más fácil implementar una red GSM con Asterisk comparado con el dolor de cabeza que era hace unos años, pues ahora Range Networks la parte comercial de OpenBTS, ha liberado un appliance que permite fácilmente crear redes GSM.


    Por lo visto con sus dispositivos comerciales es fácil integrar Asterisk con cualquier teléfono GSM que transmita en la banda 800-900 Mhz/1800-1900Mhz.

    Con la versión más limitada de su dispositivo es posible transmitir desde 1 Km hasta 30 Km con la versión más potente, soportando hasta 35 llamadas concurrentes e infinidad de usuarios registrados a la red GSM.


    Sin duda una excelente opción para comunidades rurales donde brindar servicio no es el principal interés de las grandes compañías telefónicas, como es el caso de la comunidad de Talea de Castro que implementó su propia compañía de telefonía móvil.


    Más info:


    http://www.rangenetworks.com/products/openbts-development-kit#!opencell/c10rl
  • Activar Hot Line en puerto FXS Linksys PAP2 para portero electrónico.

    Es muy común que se desee integrar con Asterisk un portero electrónico(intercom o frente de calle), para que al momento de que alguien presione un botón automáticamente marque un grupo de marcación del conmutador IP Asterisk.

  • Para esto solo basta acceder a la interfaz de configuración del Linksys PAP2 en modo admin avanzado.
  • Enseguida ir al puerto FXS Line 1o Line 2 donde está conectado el portero
  • Dentro de la configuración después de configurar los parámetros SIP ir al campo Dial Plan
  • Introducir por ejemplo SO<:601> esto haría que automáticamente al descolgar marcaría la extensión 601 del conmutador IP que puede ser cualquier aplicación de asterisk ligada a esta extensión.
  • Guardar los cambios y presionar un botón del portero para probar.


    Con esto si se tiene un portero de múltiples botones, automáticamente haría la marcación.

    Los porteros opcionalmente tienen algunos códigos para apertura de puerta, estos códigos se configuran de acuerdo al manual de configuración del portero, generalmente se marca a la extensión donde está el portero, se teclea la clave para programación y de ahí los códigos de configuración más el valor a asignar. Consultar el manual de cada portero para cada opción.
  • Alternativa de doble seguridad con validación SSH para acceder a servidor tercero.

    Una de las preocupaciones comunes es dejar activado el acceso web de alguna plataforma ya sea servidor web, router, firewall, aplicación, etc., directamente en internet entrando vía URL .


    Para esto es posible añadir una validación de seguridad adicional que podría ser práctica e interesante. Por ejemplo, supongamos que tienes una aplicación web que desees tener acceso remoto, pero no dar acceso a cualquiera.


    Para esto podría configurarse una regla en el firewall interno donde se ubique el servidor para que solo de acceso a alguna IP Pública remota y luego hacer un tunel desde cualquier parte vía SSH.


    Por ejemplo en el servidor web o en el firewall donde esté ubicado el servidor puede ponerse una regla de este tipo:


    iptables -F
    iptables -X
    iptables -Z
    iptables -t nat -F
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    iptables -A INPUT -i eth0 -j ACCEPT
    iptables -A OUTPUT -o eth0 -j ACCEPT
    #Acceso a toda la red local
    iptables -A INPUT -s 192.168.200.0/24 -j ACCEPT
    #Acceso a la IP_PUBLICA_A al puerto TCP 443
    iptables -A INPUT -s IP_PUBLICA_A -i INTERFAZ_DE_RED -p tcp --dport 443 -j ACCEPT
    iptables -A INPUT  -j ACCEPT
    iptables -A OUTPUT -j ACCEPT

     


    Con esto a la IP Pública IP_PUBLICA_A se le da acceso al servidor web en el puerto 443 que está en la IP_PUBLICA_B


    Si desde cualquier parte de internet se desea acceder la regla de iptables bloquearía el acceso


    En este caso para poder acceder se tendría que hacer un tunel a la IP PUBLICA A, para acceder al puerto 443 del servidor IP PUBLICA B


    ssh -L443:IP_PUBLICA_B:443 user@IP_PUBLICA_A
     


    Con esto desde la máquina solo abrir cualquier navegador y podría entrarse vía https://localhost:443 ya que el túnel conduciría a la IP PUBLICA B a través de la IP PUBLICA A.
  • Locus Pro una aplicación decente para mapas y GPS en Android para practicar senderismo.

    En varias salidas a caminar a la montaña, uno de los principales problemas que he tenido es la ubicación. A veces nos lanzamos sin una ruta en específica a la aventura, contemplando un origen y un destino, guiándonos tan solo por una brújula y las indicaciones que hubieran en el camino, pero a veces a mitad de la montaña cuando ves senderos que se cruzan y cuando a tu alrededor solo ves árboles y árboles donde no tienes un punto alto donde visualizar en que dirección ir o que camino tomar, es cuando la situación se vuelve más preocupante, pues en muchas situaciones pudieras adentrarte a la profundidad de la montaña más que acercarte a tu punto destino, y es estresante cuando llevas horas y horas caminando sin encontrar una salida o un claro donde pudieras ver alguna carretera transitable.


    Lo peor es aunque lleves un móvil con GPS, es difícil ubicarte, pues muchas aplicaciones de geolocalización requieren internet para descargar el mapa, y esto en la montaña muchas veces es imposible, pues no hay señal de telefonía móvil.


    Por esto, decidí buscar alguna aplicación GPS que pudiera resolver esta dificultad, instalé varias aplicaciones, después de varios intentos y pruebas, la que mejor funcionó fue Locus Pro. Este App tiene un costo de 9 dlls, pero tiene la particularidad de poder conectarse a diversos servicios de mapas y poder descargar mapas de cualquier región del mundo para tener una visualización offline con diversos niveles de acercamiento, bien valen la penas esos poco más de 100 pesos por tener la posibilidad de tener un mapa en la mano y evitar malos contratiempos en las montañas, así es más fácil tomar decisiones al elegir caminos difusos o en casos extremos descender verticalmente cuando de plano nos hayamos adentrado hacia una montaña.


    Con esto al programar una salida, previamente nos conectamos algún servidor de mapas, ubicamos la ruta y descargamos el mapa de algún servidor que cumpla nuestros requerimientos y con esto podemos tener un tracking GPS dentro del mapa descargado, pudiendo tener diversos niveles de acercamiento para visualizar el terreno, desniveles, senderos, imágenes satelitales, etc.


    Es importante recalcar que algunas zonas del país su acercamiento no es tan grande como en Google Maps, sin embargo los mapas de MapQuest son lo suficientemente útiles como para animar a perderse en la montaña face-smile.png


    Por el costo/beneficio se me hace una excelente aplicación, de hecho es buena solución para andar por la ciudad, aquí en el DF por ejemplo bajé toda el área metropolitana, y con esto es posible andar de arriba para abajo sabiendo siempre la ubicación donde estamos sin perdernos, sin costo de consumo de datos y con bajo consumo de energía.


    Existen otras opciones, incluso mucho mejores que Locus Pro, pero su precio aumenta considerablemente, aunque bien vale la pena la inversión por el nivel de detalle y características que incluyen los mapas, por ejemplo el software de "TomTom Mexico" con un costo de 50 dlls, pero sus mapas por mucho superan a los de LocusPro.


    Más vale un software de mapa en mano, que perderse caminando.. face-smile.png
  • Anterior página 1 2 3 4 ... 7 Siguiente página
    62 entradas

    Emblemas

    Energizado por Jaws Project
    Soporta RSS2
    Energizado por Software Libre
    Energizado por Mozila Firefox
    Energizado por Ubuntu Linux
    Energizado por PHP
    Energizado por Apache Web Server
    Energizado por MySQL
    Energizado por SQLite

    Comentarios Recientes