martes, abril 22, 2014

Seguridad: Usa tu viejo android bajo linux para monitorear un area

Son muchos los casos donde queremos tener un "ojo" permanentemente mirando, por cuestiones de seguridad o quizás tan solo por cuestiones que tienen que ver con sospechas de movimientos o sucesos "raros".
A raro no me refiero a acontecimientos paranormales ni cuestiones que tienen que ver con poltergeist mas bien, quizás saber concretamente, si el que nos hace desaparecer la yerba en el trabajo es nuestro compañero u otra persona, o si quizás el limonero se esta secando a consecuencia del perro del vecino.

Bueno, manos a la obra.

De hecho, el poder de disponer de equipos viejos, con android 2.1+ es suficiente como para poder emplearlos como cámaras remotas y transmitir lo que capturen de un evento determinado a nuestro equipo, y almacenar estos en secuencias de imágenes o videos.
Un router inalambrico y nuestro eterno equipo con un Linux derivados de debian (Ubuntu, Mint)
En este caso (y pronto a migrar al 14.04 lts) trabajaré con mi Ubuntu 12.04.


En este caso, vamos a configurar un equipo android, es un Samsung Ace.

1) Deberemos contar con DroidCam (Dev47Apps) instalado en nuestro dispositivo android.
Una vez instalado nos brindarán un par de datos para configurar, de los cuales recomiendo personalizar el puerto (en mi caso empleo 8079, luego explicaré por que)
y permitir que el equipo se "mantenga encendido" si es viejito. (no sucede con las versiones 4 de android, según comentarios, queda pendiente evaluarlo.)
A esta altura es importante conocer la IP que posee nuestro android dentro de la red y recomiendo establecer una dirección de IP fija, para no caer en el inconveniente de que el DHCP de nuestro router nos varíe la dirección.

Opción A)
Existen routers que permiten reservar direcciones de IP para determinado numero de MAC, tomando el numero de Mac (ajustes de equipo - Información) de nuestro android y agregando éste, nos aseguramos que con ese router el android posea siempre la misma dirección.
Opción B) De todas maneras si no saben, luego de dar vueltas por el menú de configuración, como fijar la IP, accedan a este minitutor

2) Descarguemos la aplicación para linux que nos brinda el equipo de Dev47Apps, este nos permitirá "controlar" el equipo con la CAM via IP.
La aplicación para 64bits es esta sino entra a la dirección y descarga la que corresponda.

3) Extraer todo para el escritorio y acceder a la terminal (Alt+F2 - Bash), acceder : cd ~/Desktop/droidcam-? (o ~ / lo que sea).

4) Ejecutá el script bash (sudo install) que automatizará todo proceso de instalación.
El programa de instalación crea un directorio de configuración como ~ /. DroidCam. Si está ejecutando como root, asegúrese de que lo mueve a su directorio home de su usuario.
Si no aparecen errores, puede asegurarse de que el dispositivo se instala con lsmod.

5) Opcional - Podes verificar la instalación abriendo un programa V4L2 compatible (reproductor VLC, Skype, queso, etc) y usted debería ver DroidCam listado como un dispositivo de vídeo.

6) Desde consola ejecute DroidCam, o crear un lanzador si está usando gnome. Aparecerá una interfase donde podrás configurar algunos aspectos del DroidCam:

Podrás seleccionar el modo de comunicación con el android, via Wifi, Bluetooth, ADB (por medio de cable-consola)
En nuestro caso usamos Wifi, y seteamos el Nro. de IP que le asignamos a nuestro android originalmente. El puerto, 8079

Hasta aquí, tenemos una Cam, que por defecto podemos emplearla con Skype, o cualquier programa. No tendrá gran calidad, ni velocidad, pero es lo suficiente como para poder operar.
Cualquier duda, sigan el proceso de instalación de DroidCam (solo cubro los aspectos prácticos) ante cualquier inconveniente o contingencia o consultar.

Vamos con el sistema de seguridad:

Teniendo esta primera etapa concluida, ahora nos vamos a centrar en el sistema que nos permitirá detectar movimientos y capturarlos en un archivo JPG, o un video, o en ambos formatos.

Se trata de Motion, y es una aplicación simple y rápida. Pueden acceder al sitio, para conocer todas sus características y opciones.

Instalar Motion y ejecutar el servicio

 sudo apt-get install motion
 sudo motion

Motion, viene preconfigurado para que funcione como se instala, de todas maneras es recomendable retocar un poco los parámetros para definir, donde guardaremos las imágenes, y que capturaremos.
La configuración global se encuentra dentro de /etc/motion.conf (hay varios archivos threadN.conf en este directorio - que pueden ser utilizados para las cámaras individuales configuradas a medida, si está configurando más de una)

Nota: Asegurate de reiniciar el servidor cada vez que modifiques un cambio en la configuración. sudo /etc/init.d/motion

Es recomendable que le pegues un vistazo a los archivos, que están bien documentados.

De todas maneras una vez ejecutado  motion y corriendo en memoria, podrás configurarlo, ya que instala un demonio con un pequeño servidor el cual nos permitirá personalizar toda la configuración, inclusive hasta el seteo de una contraseña de acceso, que es altamente recomendable, desde la dirección local:

http://127.0.0.1:8080

Como veran el puerto (empleo 8080) tiene el sentido de poder recordar que DroidCam esta en el puerto anterior 8079 y el visualizador de Motion apunta al 8081.

Espero les sea de utilidad. Buena caza!

Recrusos:
http://www.chriswpage.com/2009/05/setup-an-advanced-webcam-security-system-with-ubuntu-8-04-and-motion/

No hay comentarios: