#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

  • #ContraElSilencio de Un Gobierno Mexicano que pretende suprimir la libertad en Internet

    Info tomada desde:

    http://www.sopitas.com/site/315692-contra-la-leytelecom-de-pena-nieto-informate-y-actua-contraelsilenciomx/
    ¿Qué está pasando?

    El presidente Enrique Peña Nieto está muy decidido a usar la #LeyTelecom para terminar con tu libertad para usar Internet. Ya sea como medio de consulta, de entretenimiento o de acción, un montón de funcionarios públicos tendrán poder para decidir si tus hábitos son «un peligro para la seguridad nacional». Por este motivo, el 21 y 22 de abril, todos nos uniremos #ContraElSilencioMX

    ¿Qué podría pasar? #ContraElSilencioMX

    Según el artículo 189 de la iniciativa: “los concesionarios de telecomunicaciones y, en su caso los autorizados están obligados a proporcionar la localización geográfica en tiempo real, de cualquier tipo de dispositivo de comunicación a solicitud de los titulares de las instancias de seguridad o de los servidores públicos en quienes se delegue esta facultad”

    Además, según el 197 las compañías que presten servicios de comunicación deberán: “Bloquear, inhibir o anular de manera temporal las señales de telecomunicaciones en eventos y lugares críticos para la seguridad pública y nacional a solicitud de las autoridades competentes”.

    En otras palabras, cada vez que algún elemento de la PGR crea que tus acciones, comentarios, intereses y conocidos en Internet sean peligrosos (para alguien… de alguna forma) podrá apagar tu servicio de Internet o el de una zona entera. Adiós cobertura en vivo en manifestaciones, adiós movimientos incipientes en Twitter a través de un hashtag, adiós a medios, blogs y comunidades de todos los colores y sabores no alineados al gobierno.

    Por si esto fuera poco, las compañías proveedoras de Internet tendrán la obligación de guardar una lista detallada de tus gustos y hábitos, lista que deberán dar a las autoridades siempre que así lo quieran y para lo que quieran.

    Además la Secretaría de Gobernación podrá censurar contenidos de televisión e Internet y suspenderá todo lo que no le parezca.

    Por otro lado, Internet se convertirá en una especie de servicio de pago por evento, como el de la tele por cable, pues las proveedoras podrán dar preferencia de banda a distintos sitios web, mientras que harán muy lento tu entrada a otro, según los negocios que establezcan con cada empresa. Para comprender más sobre los peligros que representa el fin de la neutraidad en la red, da clic aquí.

    En pocas palabras, esta ley terminará con tu derecho de expresión, privacidad, seguridad y servicio barato en el espacio de comunicación más importante del mundo.



    Los Hechos #ContraElSilencioMX


    El uso de las redes sociales, blogs y sitios de Internet representa uno de los mayores problemas de Enrique Peña Nieto desde 2012. Este es el espacio donde todos lo que no simpatizan con sus políticas y medidas de seguridad se expresan. Es, además, el espacio en el que la prensa no oficial puede publicar información y opinión. Pero sobre todo, en el que tú puedes ser libre de unirte a cualquier conversación sobre el gobierno y sus políticas.


    El gobierno federal, así como el de distintos estados, ya han censurado información en Internet y atacado a usuarios. El uso del software de espionaje FinFisher por parte de la PGR, así como el arresto indiscriminado del ciber-activista Gustavo Maldonado López, son solo la punta del iceberg.


    Sin embargo, en México hemos pasado por intentos de reducir nuestra libertad en Internet y, manteniéndonos juntos, los hemos detenido. En 2009, bajo el lema #InternetNecesario, evitamos que el Congreso aprobara la ley que gravaba con un impuesto exagerado nuestro derecho universal a Internet y que permitía la vigilancia masiva. Este es nuestro momento de actuar de nuevo. Ya defendimos Internet una vez. Volveremos a hacer ruido.



    ¿Cómo puedes actuar? Haz ruido #ContraElSilencioMX


    El 21 de abril haremos una tormenta en redes sociales, Twitter y Facebook bajo el hashtag #ContraElSilencioMX. Hacer ruido es el primer paso y está en tus manos que esta ola llegue a todos lados. Contamos con el apoyo de muchos países cuyos gobiernos han intentado silenciarlos. Ellos están con nosotros. Ahora es tu momento.


    Entre más participen en la tormenta en redes, más asistirán a las acciones fuera de ellas. Un tuit puede hacer la diferencia: lo probamos en 2009.


    El 22 de abril nuestras acciones saldrán de la redes y, con la ayuda de todos los convocados en un Internet que aún es nuestro, iremos a defenderlo al Senado de la República, donde una vez ya fuimos escuchados. Une tu esfuerzo. #NoMasPoderAlPoder

    El día 22 de abril, todos los que decimos #NoMasPoderAlPoder y #ContraElSilencioMX, saldremos a la calles a las 18:00 horas. En la Ciudad de México, la cita es en el Ángel de la Independencia para partir hacia el Senado de la República. En Guadalajara, la cita es en Avenida Chapultepec, esquina Vallarta, rumbo a la delegación de Gobernación de la ciudad. En Monterrey también habrá una marcha.


    Asiste con luces, lámparas o teléfonos para hacer un hashtag humano que pueda ser captado por la cámara que hay sobre la columna del Ángel de la Independencia.


    El 26 de abril, formaremos una cadena humana de Televisa Chapultepec a los Pinos.


    Todos los mensajes se concentrarán en nomaspoderalpoder.org


    Más información:

    http://internetparatodos.mx/leytelecom-pone-en-riesgo-el-derecho-a-la-libertad-de-expresion-en-internet/

    http://internetsequedalibre.tumblr.com/post/82215531492/5-cosas-que-debes-saber-sobre-la-ley-telecom

    http://periodicodigital.com.mx/notas/haz_ruido_con_nosotros_contra_el_silencio#.U1ApMuZ5NeE

    http://contraelsilencio.wordpress.com/
  • Arduino Day.

    Excelente evento para festejar el aniversario de Arduino.

    Arduino es una plataforma de hardware libre con la cuál se pueden desarrollar múltiples proyectos de electrónica de forma "fácil" ya que hay mucha documentación al respecto y muchos "shields" que se pueden incorporar para conjuntarlos y desarrollar proyectos innovadores.

    En este evento estuvieron integradores de arduino, estudiantes del IPN y UNAM mostrando sus proyectos, hubo conferencistas, talleres y empresas que venden componentes para arduino.


    Impresiones del evento


    Ingenieros Jorge Alberto Sánchez Ruiz y Luis Joel Soto Miranda mostrando su proyecto de impresora 3D creada a partir de hardware libre usando Arduino.

    Actualmente ellos fabrican estas impresoras 3D para su comercialización.

    El costo aproximado es de 12,000 pesos.

    Parte de los componentes de esta impresora inclusos fueron impresas para su uso real.









    Proyecto de domótica desarrollado por INFOTEC.


    El Ing. Jonás Solís muestra como implementó el protocolo bidireccional para control de dispositivos eléctricos(luces, switches, alarmas, detectores de movimiento, etc).

    Se dio una interesante plática, ya que hace cinco años hice mis pininos con la tecnología X10, la cuál permite enviar señales a través de la energía eléctrica para controlar dispositivos, incluso usé sphinx para que mediante comandos de voz poder apagar y prender equipos, todo esto usando heyu como interfaz en linux y un serial conectado a la corriente eléctrica para enviar las señales.

    Aquí lo interesante es que la comunicación es bidireccional, y hay un feedback para saber si el comando fue recibido exitosamente por el relay del otro lado.





    Ejemplo de uso de Arduino para control de Humedad.





    Ejemplo de uso de Arduino y xbee para control de dispositivos remotos mediante bluetooth.








    Arduino no solo es usado por ingenieros, también artistas del centro de vinculación artística de la UNAM plantel tlatelolco mostraron un ejemplo de Arduino tratando de simular el concepto de cinestesia.

    La cinestesia se produce por un cambio no habitual en el DNA, lo que hace que los sentidos se lleguen a mezclar, por ejemplo al oir un sonido se puedan ver colores, o cuándo se toque algo se perciba un olor, etc.

    En este caso Rui Sanchez mostró un ejemplo básico reproduciendo sonido al mismo tiempo se iluminaba de colores el artefacto, todo esto a traves de Arduino. En este caso les faltó detectar la frecuencia de los sonidos y con base a eso poder generar una frecuencia de colores en específico.





    Un pequeño arduino siendo controlado remotamente.

  • Drones en la Ciudad de México.

    Ayer Martes 18 de marzo se llevó acabo el evento "Drones en la Ciudad". En este evento se hicieron demostraciones de diversos drones y se impartieron conferencias con expertos en la materia que hablaron sobre el desarrollo de esta tecnología y las aplicaciones de los drones.
    A este evento asistió el tijuanense Guillermo Romero, cofundador de 3D Robotics[http://www.3drobotics.com/], empresa mexicana ubicada en Tijuana dedicada a la fabricación de drones. Esta empresa se fundó en la habitación de Guillermo junto con Jordi Muñoz, quienes actualmente exportan tecnología de drones a Estados Unidos(NASA, Boeing, etc), Europa, Oceanía y Africa.
    El evento fue bastante interesante, pues las diversas pláticas
    sobre esta tecnología, las aplicaciones que han ido desarrollando fueron muy enriquecedoras para aprender aun más del tema.
    Una de las frases de Guillermo Romero fue:
    "La era del software empezó en los 90s y ya está muy avanzada. La era del hardware está comenzando..."
    Sin duda el futuro ya no está en desarrollar solo software, si no desarrollar robots que den soluciones a situaciones reales actuales.
    Los paradigmas van cambiando y hay mucho que aprender.




  • Comandos básicos de Linux.

    Un listado de los comandos principales para adentrarse al fabuloso mundo de Linux y comenzar a jugar con la consola.


    *******************
    Comandos linux de archivos y directorios
    Comandos linux de ficheros y directorios, crear y borrar directorios; listar, copiar, renombrar y borrar archivos, crear enlace entre archivos.
    *******************
    ls : Listar archivos y directorios
    Ejemplo ordenar el directorio actual a detalle con visa de tamaño de archivos en formato legible
    ls -lsth ~
    El mismo ordenamiento, pero al reves.
    ls -lsthr ~
    cp : Copiar archivos y directorios
    Ejemplo copiar un directorio sin preguntar y haciendo el copiado recursivo de subcarpetas
    cp -rf /var/spool/asterisk/monitor/*.wav /respaldo/grabaciones
    pwd : Mostrar el nombre del directorio de trabajo actual
    cd : Cambiar de directorio
    Ejemplo ir al directorio home del usuario
    cd ~
    sort : Ordena el contenido de un archivos en forma alfabética y lo despliega en pantalla
    Ej.
    sort nombres.txt
    Ordena de forma inversa el contenido de un archivo en forma alfabética y el ordenamiento lo envia a un archivo llamado orden.txt
    Ej.
    sort -r nombres.txt > orden.txt
    mkdir : Crear directorios
    ej. crea una subcarpeta llamada asterisk en el directorio home del usuario
    mkdir ~/asterisk
    touch : Crear o actualizar ficheros
    Ej.
    touch nuevoarchivo.txt
    rm : Borrar archivos y/o directorios
    ej.
    rm /tmp/*.jpg
    ej. Borra sin preguntar y de forma recursiva todo los archivos wav en la carpeta /var/spool/asterisk/monitor/20120101/
    rm -rf /var/spool/asterisk/monitor/20120101/*.wav
    rmdir : Borrar directorios vacios
    ej.
    rmdir /var/spool/asterisk/monitor/20120101/
    mv : Mover o renombrar archivos
    ej. mueve recursivamente el contenido de al directorio /respaldo
    mv -r /var/spool/asterisk/monitor/20120101/ /respaldo/
    more : Muestra ficheros página a página
    ej. despliega por páginas el log del sistema
    more /var/log/messages
    less : Muestra Ficheros página a página
    ej. despliega por páginas el log del sistema
    less /var/log/messages
    cat : Mostrar ficheros de forma continua
    ej.  Despliega el contenido completo del log completo de asterisk
    cat /var/log/asterisk/full
    head : Ver el inicio de un archivo
    ej. muestra las primeras 10 líneas del log de freepbx
    head -n 10 /var/log/asterisk/freepbx.log
    tail : Ver las últimas líneas de un archivo
    ej. muestra las últimas 100 líneas del log de asterisk
    head -n 100 /var/log/asterisk/messages.log
    find : Buscar archivos
    Ej. busca el archivo que contenga en sunombre la cadena general en el directorio /etc/asterisk sin importar mayúsculas o minúsculas
    find /etc/asterisk -iname "*general*"
    Ej. busca los archivos que dentro de su contenido tengan el número  4569
    find /etc/asterisk -type f | xargs grep 4569
    grep : Buscar el patrón pasado como argumento en uno o más archivos
    Ej. listo los procesos activos y busco dentro de la información desplegada cuál contiene la palabra asterisk
    ps aux | grep asterisk
    Ej. muestro la información del log de asterisk y busco la palabra DAHDI
    cat /var/log/asterisk/full | grep DAHDI
    wc : Calcular la cantidad de cadenas y palabras en archivos
    Ej. mosraría las líneas, las palabras y el total de carácteres
    wc poema.txt

    ln : Crea un enlace dinámico(tipo acceso directo en windows pero mejor <img src="plugins/Emoticons/images/face-smile.png" border="0" alt="face-smile.png " width="16" height="16" /> ) a un archivo.
    Ej. Crea un enlace de la carpeta de grabaciones de asterisk en el directorio home del usuario
    ln -s /var/spool/asterisk/monitor /home/phylevn/grabaciones
     
     Envia la información de salida de un comando a un archivo
     ls -lsthr > infodearchivoslistados.txt
     
    Agrega la información de salida de un comando a un archivo existente
     ls -lsthr >> infodearchivoslistados.txt
    *******************
    Comandos linux para programar la ejecución de comandos una vez o de forma reiterada.
    *******************
    crontab : Ejecutar comandos linux a intervalos de tiempo regulares
    Ej. ejecuta cada minuto, cada hora, cada día, cada mes, cualquier día de la semana, el comando /usr/bin/php -q ociosidad.php
    *       *       *       *       *       root    /usr/bin/php -q ociosidad.php
    Ej. ejecuta en el primer minuto de las 12:00 horas el  respaldo de grabaciones
    01      12      *       *       *       root cp -rf /var/spool/asterisk/monitor /respaldos

    at : Ejecutar un comando linux una vez
    Ej. ejecutar el script despertador.php a las 5.50 am
    at 05:50
    > php despertador.php
    Ctrl+D
    atq : muestra los comandos programados
    atrm : elimina los comandos programados
    *******************
    Comando linux usados para archivar, extraer y comprimir ficheros.
    *******************
    tar : Almacenar y extraer ficheros de un fichero archivador
    ej. descomprimir un archivo tar.gz o tgz
    tar -xzvf codigo-fuente.tar.gz
    ej. descomprimir un archivo compreso con bzip
    tar -xjvf codigo-fuente.tar.bz2
    ej. compactar una carpeta
    tar -cvvf archivocompactado.tar ~/carpetaacompactar/
    gzip : Comprimir ficheros
    Ej. comprimir una carpeta
    gzip -c carpeta1 carpeta 2 > carpetas-compactadas.gz
    Ej. descomprimir un archivo
    gzip -d carpectas-compactadas.gz
    gunzip carpectas-compactadas.gz
    *******************
    Comandos linux para atributos y permisos de archivos y directorios.
    *******************
    chown : Cambiar el propietario de un archivo
    Ej. cambia el propietario y grupo de un archivo
    chown asterisk:asterisk /var/lib/asterisk/agi-bin/asterisk-app.php
    Ej. cambia el propietario y grupo de todos los archivos contenidos en esa carpeta
    chown -R asterisk:asterisk /var/lib/asterisk/agi-bin/
    chgrp : Cambiar el grupo propietario de un archivo o grupo de archivos
    chmod : Cambiar los permisos de accesos a los archivos y directorios
    Ej. Asigna permisos de ejecución a un script de autoarranque
    chmod +x /etc/init.d/firewall.sh
    Ej. Asigna permisos de lectura y escritura al propietario del archivo, pero solo de lectura al grupo y anónimo
    chmod 0755 ~/listaderegalos.txt
    *******************
    Comandos linux para el control de los procesos en ejecución, información del estado de los mismos, terminar procesos, establecer prioridad de programas.
    *******************
    ps : Informa del estado de los procesos
    Ej. muestra todos los procesos
    ps aux
    pstree : Muestra los procesos en forma de estructura de arbol
    top : Muestra los procesos que se estan ejecutando en ese momento, mostrando los que más CPU consumen
    kill : Terminar un proceso por ID
    Ej. Buscamos el proceso que contenga la palabra asterisk y localizamos su ID y luego matamos su ID
    ps aux | grep asterisk
    Su ID es la segunda columna, suponiendo que fuera 21783 entonces matamos el proceso:
    kill -s 9 21783
    killall : Terminar procesos por nombre
    Ej. matamos todos los procesos que tengan por nombre zoiper
    killall zoiper
    nice : Ejecutar un programa con la prioridad de planificación modificada, entre menor sea el valor mayor prioridad tiene
    Ej.
    nice -n +5 script.php
    nice -n +-20 liberar-memoria.sh
    renice : Altera la prioridad de los procesos en ejecución
    *******************
    Comandos linux del sistema (reiniciar y apagar máquina, cerrar sesion de trabajo, uso de nemoria, instalar paquetes).
    *******************
    date : muestra fecha y hora actual del sistema
    cal : muestra el calendario del mes actual
    uptime : tiempo que lleva encendidad la máquina
    df : espacio libre en los discos
    Ej. mostrar discos en formato de tamaño legible
    df -h
    du : espacio usado por los directorios y ficheros
    Ej. ver el tamaño de la carpeta de grabaciones de Asterisk
    du -h /var/pool/asterisk/monitor
    free : uso de memoria y swap
    dmesg : muestra mensajes del kernel durante el arranque del ordenador
    reboot : reinicia la máquina
    halt : apaga la máquina
    shutdown : cierra el sistema
    Ej. que se apague en 10 minutos
     shutdown -h 10
     Ej. que se reinicie en 10 minutos
     shutdown -r 10
     
    poweroff : cierra el sistema
    init : control de inicialización de procesos
    exit : Cerrar sesión actual
    clear : borrar pantalla
    bc : calculadora
    man : formatear y mostrar las páginas del manual en linea
    EJ. ayuda de gawk
    man gawk
    uname : imprime información del sistema
    EJ. información detallada del sistema
    uname -a
    hostname : muestra o establece el nombre del sistema
    domainname : nombra o establece el nombre de dominio NIS/YP del sistema
    mkfs : construir un sistema de ficheros de linux
    fdisk : manipular tablas de particiones de linux
    Ej. ver las partciciones del disco /dev/sda
    fdisk /dev/sda
    >p

    fsck : chequear y reparar sistemas de ficheros
    Ej. reparar la partición ext2 /dev/sda2
    fsck /dev/sda2

    mount : montar un sistema de ficheros
    Ej. montar una memoria usb detectada como unidad /dev/sdb
    mkdir -p /media/memoriausb
    mount -t auto /dev/sdb /media/memoriausb
    umount : desmontar sistema de ficheros
    umount /media/memoriausb
    *******************
    instalar paquetes
    *******************
    rpm : instalar los paquetes RedHat
    rpm -ivh paquete.rpm
    Instalar paquetes en debian
    Actualizar repositorio
    apt-get update
    Buscar paquete desde repositorio
    apt-cache search openvpn
    Instalar paquetes desde repositorio
    apt-get install openvpn lynx nmap
    Instalar paquete desde paquete descargado en debian o ubuntu
    dpkg -i paquete.deb
    Desinstalar paquete
    dpkg --purge openvpn mysql php5 apache2
    Instalar paquete en CentOs
    yum -y install openvpn lynx nmap

    *******************
    Comandos linux para las operaciones vinculadas con usuarios (adiconar, borrar y cambiar usuario, crear grupo,etc).
    *******************
    useradd : adicionar nuevo usuario
    ej. crea el usuario linuxuser con directorio /home/linuxuser  con grupo linuxuser, -m crea el directorio del usuario si no existe y -s le asigna un shell
    useradd -d /home/linuxuser -g linuxuser -m -s linuxuser
    userdel : borrar cuenta de usuario
    ej. forza la eliminación del usario linuxuser y sus archivos en su directorio
    userdel -f -r linuxuser
    passwd : asigna y cambia una contraseña de usuario
    passwd linuxuser
    su : cambio de usuario
    ej. para acceder como root, también puede ejecutar sudo antes de cada comando para no cambiarse a root y ejecutar el comando como root
    logname : muestra el nombre de usuario
    id : muestra los datos de identificación del usuario
    who : muestra los usuarios del sistema
    last : muestra información de los últimos usuarios que han usado el sistema
    groupadd : crear un nuevo grupo
    ej.
    groupadd asterisk
    nail :enviar y recibir correo de internet
    pine : lector de correo en modo texto
    mesg : controlar el acceso a escritura a la terminal
    write : enviar mensaje a otro usuario
    EJ. envia un mensaje al usuario linux
    write linuxuser
    wall : enviar mensaje a todos los usuarios
    ctrl +D al final .
    w : muestra que usuarios estan conectados a la máquina y que estan haciendo
    *******************
    Comandos linux para operaciones de red (mostrar estado de la red, configurar red, enviar paquetes, etc)
    *******************
    netstat : mostrar el estado de la red
    ifconfig : configurar interfaz de red
    Ej. mostrar los valores de todas las interfaces de red
    ifconfig -a
    Ej. configurar la red y máscara de subred de la interfaz eth0
    ifconfig eth0 192.168.1.100 netmasl 255.255.255.0
    nmap : escananear red
    EJ. Obtener las ips y mac address de todas las máquinas en la red
    nmap -sP 192.168.1.1-254
    EJ. Obtener los puertos abiertos de una IP
    nmap -O 192.168.1.254
    ping : enviar paquetes
    nslookup : consultar servidores de nombres de dominio
    telnet : comunicación interactiva con otro host
    route : manipular tabla de enrutamiento IP
    Ej. agregar una puerta de enlace por default que salga por la interfaz eth0
    route add default gw 192.168.1.254 eth0
    Ej. borrar la puerta de enlace
    route del default
    Ej. agregar una ruta para una ip en específico que salga por otra puerta de enlace
    route add -host google.com gw 192.168.1.176
    Asignar los DNS
    echo "nameserver 208.67.222.222" > /etc/resolv.conf
    echo "nameserver 208.67.220.220" >> /etc/resolv.conf
     
  • Telmex y sus defectuosos nuevos CPEs para troncales digitales E1

    En las últimas semanas me ha tocado instalar algunas troncales digitales E1, en 3 de ellas se presentaron problemas comunes, la conexión con la troncal digital se caía 1 o 2 veces por semana. Telmex alegaba que era mi configuración, pero esta configuración siempre la he realizado en diversos conmutadores IP instalados con E1 & R2 y no han presentado fallo. Revisando los Logs veía que del lado de la troncal digital de forma repentina se caía el enlace y dejaba de recibir comunicación, ellos al liberar el canal volvía todo a funcionar. Incluso en el primer servidor me exigieron que cambiara el balún, la tarjeta y demás, como en el primer caso es un cliente internacional, para evitar dudas, se hizo el cambio de tarjeta, del balún, se reconfiguró el servidor y seguía desconectándose la troncal digital, aunque estaba seguro que no era de mi lado pues para no errar siempre usamos Sangoma, Balún Patton y se hacen pruebas de conexión. Documenté logs y les expuse que era un problema de ellos, en este caso el medio estaba bien, solo había un factor que era el CPE, en este caso el problema fue que este equipo se calentaba demasiado y en un momento dejaba de funcionar, de hecho los nuevos CPEs que traían no los había visto antes, eran de una carcasa completamente de plástico con deficiente disipación del calor. Cambiaron el CPE y llevo más de un mes que no he recibido queja alguna nuevamente del cliente y como dijeran los gringos "No News, Good News". Con las otras dos instalaciones pasó lo mismo, de igual forma se solicitó el cambio del CPE de la troncal digital E1 y se arregló el detalle de la desconexión.


    Al parecer Telmex adquirió una barata de estos equipos, que como todo, lo barato sale caro. Al cliente le hizo perder comunicación, y en una empresa, la telefonía es el principal medio de comunicación entre los clientes y el negocio, por lo que deberían tener más cuidado Telmex con lo que ofrece a sus clientes empresariales.

  • Espionaje en Redes de Internet & Centrales Telefónicas.

    Actualmente no es de sorprenderse que en tu país existan sistemas de espionaje informático globales, esto en complicidad entre gobiernos locales, extranjeros y proveedores de servicio.


    Los sistemas de espionaje han existido desde siempre, en EU, cuándo las centrales telefónicas eran de circuito, la CIA tenían un agente que era situado en la oficina de la telefónica para oír las conversaciones, la línea a monitorear le era colocada una etiqueta y cuándo la operadora le enlazaba una llamada, le notificaba al agente para que este la interviniera. De ahí el nombre de Centinela, que han recibido estos sistemas de espionaje.


    A partir de la guerra fría se intensificó aun más, todo esto de forma clandestina, la paranoia aumentó aun más en los 90s que en EU los congresistas enviaron propuestas que hicieran legal el poder espiar a cualquier ciudadano de EU, aunque esta propuesta no avanzó si siguió usándose en la clandestinidad. De hecho a partir de esto surgió una buena película a finales de los 90s, protagonizada por Will Smith, Enemigo Público.


    Fue a raíz del atentado de las torres gemelas que el gobierno de EU oficializó la ley patriota y a partir de ahí en EU y en diversos países comprometidos con los EU se instauraron sistemas centinelas en sus redes centrales de internet, al igual que se implementaron sistemas de wordspotting en las centrales telefónicas


  • Script Asterisk CallerID Popup - Abre el navegador cuando recibe una llamada

    Hace unos días un cliente que nos adquirió unos porteros telefónicos, los cuáles son una extensión del conmutador IP Cloudvoox SOHO, que permiten intercomunicar el exterior del edificio con alguna extensión de la oficina y desde la misma oficina con una clave mandar abrir la puerta.


    En este caso el requerimiento era que al recibir una llamada del portero, en la computadora de alguna persona se mostrará el video de las cámaras colocadas en el exterior. Para esto se programo un script que se conectara usando AMI al servidor Asterisk, este script monitorea cada 5 segundos si hay una llamada desde la extensión del portero que es la 116, si es así, entonces solo ejecutaba firefox, el script fue hecho para windows por ello se muestra el path de firefox en windows.


    Para validar que solo abra una vez el navegador por cada nueva llamada entrante realizada por el portero, del canal de la llamada se obtiene el ID y se guarda en una base de datos ligado a la extensión del usuario que monitorea, de tal forma que cada 5 segundos si el script sigue detectando la llamada esta ya no lanza el popup pues ya lo hizo una vez y ya lo registró en la base de datos, solo muestra la info de la llamada pero no ejecuta acción alguna hasta que se identifica nueva llamada.


    El script es el siguiente:


    <?php
         $servidor = "192.168.100.172";
         $firefox = ' "C:\Archivos de programa\Mozilla Firefox\firefox.exe" ';
         $mi_extension = "1009";
         
         $extension_monitoreo = "SIP\/1016";
         
         $url = "http://$servidor/oficina.php";
        $amiHost = "$servidor"; //servidor de AMI
        $amiUser = "amiLogin"; //login AMI
        $amiSecret = "amiPassword";//password AMI
        $amiContext = "from-internal";//contexto
        $mysql_server = "$servidor";
        $mysql_user = "mysqlUser";
        $mysql_secret = "mysqlPassword";
        $mysql_db = "asteriskpopup";
       
        $errno=0 ;
        $errstr=0 ;
        $oSocket = fsockopen ($amiHost, 5038, $errno, $errstr, 20);
        if (!$oSocket) {
                echo "$errstr ($errno)<br>\n";
        }else{
            $connection = mysql_connect($mysql_server, $mysql_user, $mysql_secret);
            $connection = mysql_select_db($mysql_db, $connection);
           
            $_info = socketCommand($oSocket, "action:login\r\nusername:$amiUser\r\nsecret:$amiSecret\r\nevents<img src="plugins/Emoticons/images/face-surprise.png" border="0" alt="face-surprise.png " width="16" height="16" />ff", "Authentication", "authentication",false, "/[\s]/");
           
            if($_info[0][2]=="accepted"){
                    echo "\r\n:::Conectado:::\r\n";
            }else{
                    exit(0);
            }
           
            while(1){
                $_info = socketCommand($oSocket, "Action: command\r\nCommand: core show channels", "DIAL\(", "--END COMMAND--", 0, "/[\s]/");
                $kill = false;
                if(is_array($_info)){
                    foreach($_info as $sip_channel){
                         if(preg_match("/$extension_monitoreo/i", $sip_channel)!=false ){
                            echo "SIP CHANNEL : ".$sip_channel."\n";
                            $_info = socketCommand($oSocket, "Action: command\r\nCommand: core show channel $sip_channel", "dst=", "--END COMMAND--", 2, "/[\s]/", "dst=", "" );
                            $marcando=$_info[0];
                            echo " Marcando : ".$marcando."\n";
                            $_info = socketCommand($oSocket, "Action: command\r\nCommand: core show channel $sip_channel", "uniqueid=", "--END COMMAND--", 2, "/[\s]/", "uniqueid=", "" );
                            $uniqueid=$_info[0];
                            echo " UniqueID : ".$uniqueid."\n";
                            $query = "select * from callidpopup where uniqueid=\"$uniqueid\" and id=\"$mi_extension\";  ";
                            $_re = mysql_query($query);
                            if($_info=mysql_fetch_array($_re)){
                                    echo "ID = $_info[0], EXT = $_info[1], Fecha = $_info[2]\n ";
                            }else{
                                    echo "Lanzando PopUP \n";
                                    $query="insert into callidpopup values(\"$uniqueid\", \"$mi_extension\", now() ); ";
                                    mysql_query($query);
                                    exec("$firefox $url");
                            }
                         }
                    }
                }
                sleep(5);
            }
            //Salismo de AMI
            fputs($oSocket, "Action: Logoff\r\n\r\n");
           
            //Cerramos la conexion
            fclose($oSocket);
        }
        function login($oSocket, $amiUser, $amiSecret){
            fputs($oSocket, "Action: login\r\n");
            fputs($oSocket, "Events: off\r\n");
            fputs($oSocket, "Username: $amiUser\r\n");
            fputs($oSocket, "Secret: $amiSecret\r\n\r\n");
        }
            function socketCommand($oSocket, $socketCommand, $patronCommand, $endCommand="--END COMMAND--", $field=false,  $split="/[\s]/", $ereg_replace=" ", $verbose="Executing Command"){
                    $_infoCommand= array();
                    fputs($oSocket, "$socketCommand\r\n\r\n");
                    $verbose = $verbose.":[ $socketCommand ]\n";
                    $echo = md5(date("Ymdhis"));
                    $count = 0;
                    while (preg_match("/$endCommand/i", $echo)==false ) {
                            $echo = fgets($oSocket);
                            $echo = preg_replace("/[\r][\n]/", "", $echo);
                            if(preg_match("/$patronCommand/i", $echo)!=false){
                                    $_values = preg_split($split, $echo);
                                    if(is_numeric($field)){
                                            $_infoCommand[$count++] = preg_replace("/$ereg_replace/i", "", $_values[$field] );
                                           
                                            //$_infoCommand[$count++] = $_values[$field] ; 
                                    }else{
                                            $_infoCommand[$count++] = $_values;
                                    }
                            }
                    }
                    return $_infoCommand;
            }

    ?>
     
  • Restaurando Servidor de Telefonía IP Elastix de un daño en el sistema de archivos por un apagon de luz

    Hoy por la tarde asistí a darle soporte a un cliente, a quién le instalamos un servidor Elastix para su empresa, el detalle que presentaba es que no arrancaba su servidor, esto ya que este cliente a pesar de que le alertamos de que es necesario tener un sistema de respaldo de energía, por "x" cuestión no lo hizo, pero en esa ubicación tienen un problema, que realizan soldaduras por lo que al tener un sistema eléctrico no tan optimizado, constantemente tienen bajones de energía, entonces un equipo con un disco duro integrado después de múltiples apagones repentinos pudiera llegar a dañarse el sistema de archivos.


    Al intentar arrancar el servidor, vi que enviaba un error en el disco duro y solicitaba que manualmente se corrigiera el error, por lo que arranque con un Live CD de Ubuntu, desde el live cd instale openssh-server . ya teniendo acceso desde mi laptop vía SSH, instalé el paquete de lvm2, este paquete es útil, ya que instalé Elastix sobre un Volúmen Lógico por lo que para hacer un chequeo del servidor requiero de las utilerías de lvm.


    El primer paso fue verificar las particiones:


    fdisk -l


    Posteriormente ejecutar pvscan para escanear la partición


    Enseguida vgscan para detectar los grupos lvm


    Luego vgchange -a y para activar los volúmenes lógicos


    Ejecutamos lvscan para ver los volúmenes lógicos activados


    En este caso tenemos:
  • /dev/VolGroup00/LogVol00 => que es una partición ext3 donde esta instalado el sistema
  • /dev/VolGroup00/LogVol01 => una partición swap


    Con esto ya podríamos montar el volumen lógico o empezar a checarlo con fsck.


    En este caso el tipo de partición del volúmen lógico es ext3, por lo que para checar bloque por bloque ejecutamos fsck.ext3 /dev/VolGroup00/LogVol00 en este caso checará bloque por bloque la partición para detectar bloques dañados y pedirá una confirmación para realizar cada corrección.


    o fsck.ext3 -y /dev/VolGroup00/LogVol00 si queremos que acepte todas las correcciones por default


    Al finalizar solo bastará reiniciar el servidor.


    En este caso me detectó varios bloques dañados, que al reiniciar el servidor de Asterisk con Elastix, arrancó pero debido al mapeo de la partición por el daño de los bloques se perdió información del contenido de /lib/modules, por lo que al arrancar el sistema no detectó las librerías de la tarjeta de red, de la tarjeta de puertos FXO, entre otros drivers, así que aunque tenía acceso a la consola de Asterisk no tenía red, no detectaba una memoria usb, etc.


    Nuevamente ejecuté el livecd, seguí el proceso de detectar el volumen lógico en este caso en vez de verificar la partición, la monté en un directorio


    mkdir /media/disco
    mount -t auto /dev/VolGroup00/LogVol00 /media/disco
     


    Y de otro servidor Asterisk que tengo cree un tar.gz del directorio /lib/modules y los pasé a /media/disco


    Reinicié nuevamente el servidor, arrancó Elastix con los mismos problemas debido a la falta de /lib/modules, y solo bastó descomprimir el empaquetado de /lib/modules en el directorio correcto. Volví a reiniciar y voilá, todo volvió a funcionar como en la instalación original, funcionó dahdi, reconoció la tarjeta de red, solo hubo que reajustar la IP del servidor y listo se restableció el sistema de Telefonía IP sin tener que reinstalar todo desde cero.
  • Configurar 2 o más rutas de salida(Gateways) diferentes en Linux

    Hoy por coincidencia se me presentaron un par de casos similares al configurar 2 servidores IP con diversos clientes. El objetivo es tener una ruta de salida a internet por un gateway 1 y al mismo tiempo tener una ruta para conectar a una IP en específico por otro gateway 2.


    Esto ya que por seguridad se requería conectar a servidores IP a través de conexiones punto a punto, en una parte fue a través de una VPN y en otro caso fue a través de un enlace E1.


    Datos ejemplo:

  • En la interfaz eth0 tenemos la IP 192.168.100.252
  • En la interfaz eth1 tenemos la IP 10.100.10.252


    En ambos casos definimos una ruta por default para indicar que todo salga por el gateway 1, por ejemplo:


    sudo route add default gw 192.168100.254 eth0
     


    Y para definir la salida para un host por un gateway específico solo bastó agregar la siguiente ruta (los datos son de ejemplo) para indicar que todo lo que vaya a esa IP solo salga por el gateway 2:


    route add -host 172.10.9.8 gw 10.100.10.1 eth1
     
    Y con esto pudimos tener el acceso a internet en los servidores al mismo tiempo que acceder a los servidores que están a través del enlace punto a punto.
  • Como configurar un servidor Apache con SSL activado

    Un buen tutorial de como activar un servidor HTTPS.


    Un servidor HTTPS establece una comunicación encriptada entre el navegador del cliente y el servidor web de consulta, de tal forma que toda la información que se transmite va segura y codificada, de tal forma que sería casi imposible para algún cracker poder descifrar la información que capture, contrario a una comunicación sin seguridad(http) la cuál se transmite en texto plano y puede ser completamente vista por el cracker.


    http://betatwits.wordpress.com/2010/07/21/activar-ssl-en-apache2-ubuntu-10-04/


    Este tutorial indica el procedimiento de como configurar un servidor web seguro.
  • Anterior página 1 2 3 4 ... 6 Siguiente página
    52 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