Como montar un sistema de vigilancia casero con un PC viejo, una Webcam y Linux ________________________________________________________________ ________________________________________________________________ Manual original, creado por David Sanchez Cantero Mas conocido en la red por Forat Sitio web oficial donde se publican este y otros manuales www.forat.info Muchas veces podemos tener la impresión de que alguien ha entrado en nuestra casa, habitación, terraza, sala de estar, cocina, oficina, taller ... Notamos que algo ha sido movido y en un momento dado podemos echar a faltar cosas que antes teníamos en nuestro poder. Con el siguiente manual podemos salir de dudas y montarnos un sistema de detección de intrusos que podrá delatar al profesional mas pintado. ¿ Quien va a pensar que la webcam de tu ordenador va a estar vigilándole ? En mi caso resulta que tengo una terraza encima de mi piso y creo que alguien merodea por ella cuando yo no estoy. Para vigilar esta he montado este sistema de seguridad con un ordenador portátil muy antiguo, una webcam usb y una bola de plástico que usaré para protegerla de la intemperie. Para el montaje de este sistema de seguridad no necesitáis tener una maquina muy potente. Mi ordenador es un Pentium 3 a 600 con 64 Mb de ram. Partiendo de estos recursos cuanto mas hardware mejor. Comenzamos el manual por el temario ... Introducción - Vol 1 ( Sistema operativo ) - Vol 2 ( Soporte para WebCam QuickCam USB ) - Vol 3 ( Instalando Motion ) - Vol 4 ( Arranque automático de Motion ) - Vol 5 ( El resultado ) ¿ Estas listo ? Comenzamos ... Introducción ________________________________________________________________ Como ya habéis podido ver anteriormente muchos de los artículos tipo ( How To ) que se han publicado han estado relacionados con la distribución de Linux Debian y con otras cosas como drivers para la webcam , configuraciones del kernel , instalaciones de Debian , todo sobre Motion , la utilidad wput , redes inalambras wifi ……. ¿ Quieres flipar ? Si os fijáis en estos artículos y los ordenáis podéis montaros un sistema de detección de intrusos en otra parte de tu casa, en tu habitación o ( en mi caso, en la terraza de arriba ) con un pc viejo, una webcam usb, una tarjeta wifi y una Debian. Hoy es el primer día que este sistema de seguridad lo tengo totalmente operativo y puedo vigilar la terraza a tiempo real desde un mi ordenador que tengo en el piso de abajo además de poder acceder a el vía ssh para manipularlo si es necesario. Antes de subir a la terraza me todo la pequeña molestia de apagarlo con un ( halt ) desde el pc de abajo y así no me grava a mi. El pc ( Guardián ) que tengo en la terraza se encarga de vigilar mientras yo no estoy y si en algún momento detectara movimiento se pondría a gravar guardando todos los fotogramas en su disco duro y ala vez enviándome todos los archivos al ftp que tengo en el piso. De este modo aunque se llevaran el pc que tengo arriba yo tendría en el disco duro de mi server las pruebas de quien ha metido mano en mi terraza. El pc ( Guardian ) está instalado dentro de una caseta de madera y colgado por dos tornillos de una de las paredes interiores de ella. La Webcam está instalada en el exterior con angulo hacia la puerta de entrada a la caseta y hacia la única entrada que hay en la terraza, así si a alguien le da por entrar sera gravado seguro. Aquí os muestro un esquema visto desde arriba de la terraza y de el ángulo de visión que tiene la Webcam … Como podéis ver en la imagen anterior la Webcam enfoca hacia la puerta de la caseta y a su vez por el único sitio por donde se puede entrar a la terraza. Esta es la caseta donde voy a instalar todo el sistema …. Esta es una de las cosas que ice todo el tiempo que he estado sin Internet. ( Una caseta ) La idea está en instalar un PC dentro y una Webcam fuera que cuando detecte un movimiento genere capturas y guarde una copia en el disco duro y además nos mande una copia hacia el servidor que tengo en el piso de abajo. Bueno, vamos a empezar por presentarnos al ( PC Guardián ) que va a ser el encargado de todo esto ... Es un portátil Toshiba con un procesador Celeron 600 y 64 Mb de ram que perdió su pantalla cuando mi tía le puso encima de el unos 25 libros y cuando lo abrí la pantalla de cristal liquido se había roto y perdía liquido así que lo desmonte y le saque la pantalla ( que mal trago ). Quien sabe si no el destino izo que se quedara sin pantalla para proteger mi terraza el día de mañana ya que si hubiera tenido pantalla nunca lo abría hecho servir para esto ( espero que algún día me perdone ) Que penchao estoy !!! Ahora os voy a presentar a mi Servidor Web ( Titanium ) que cumple varias funciones que podéis ver aquí y que además será quien guarde lo que captura la cámara de seguridad. Es el segundo empezando por la izquierda ... En un Pc con dos procesadores Pentium 4 a 2.60GHz y 1.8Gb de ram e incorpora dos discos duros en espejo de 250Gb que rulan bajo una Linux Gentoo. Cuando monté este servidor también me fije mucho en el tema de la ventilación así que le instalé 4 ventiladores silenciosos que no hacen nada de ruido y me mantienen a esta joya bien fresquita. Ahora vamos con la Webcam ... La Webcam es una Dexxa del rollo Logitech que se ve bastante bien cosa que nos interesa bastante. Como la Webcam va a estar en el exterior 24 horas expuesta al sol y a la lluvia he pensado en protegerla un poco con una bola de plástico que mis vecinos que tienen hijos me han traído de una maquina de esas que te dan una bola con un juguete dentro por un euro. jeje ¡ Gracias vecinos ! Para resguardara de los rayos solares voy a pintar todo el interior con pintura de color negro especial para plásticos que mi mujer me a comprado cuando salia del trabajo ya que yo estoy en plan ermitaño ( y paso de salir ) :) Una vez he pintado la bola por dentro le he metido varios trozos de corcho para aislarla lo mas posible y darle un poco de soporte para poder direccionarla hacia donde yo quiera. También he atravesado la bola con un tornillo que la mantiene firmemente fijada a la caseta. Este es el resultado …. Como decía al principio de este articulo todo esto a sido compuesto por artículos anteriores y aquí os los voy a dejar por orden por si alguno de vosotros os atrevéis a montaros vuestro propio sistema de vigilancia. Sistema operativo ________________________________________________________________ Este fin de semana he montado un PC con pocos recursos y al instalar Debian me he topado con el mensaje ( Low memory ). El sistema detecto que tenia tan solo 64 Mb de memoria y esto no a sido un problema para poder instalarlo. El siguiente manual es valido para maquinas con pocos recursos como para los que vais sobrados ya que solo cambia en la instalación la aparición de el mensaje ( Low memory ) Si te animas a usar Linux Debian puedes comenzar por bajarte la imagen ISO desde aquí y después de gravarla en un CD arrancaremos con ella …. Para empezar veremos algo así … Después veremos el mensaje de error ( Low memory ), continuamos … Seleccionamos nuestro idioma … Seleccionamos el idioma de nuestro teclado …. z Introducimos el nombre que deseamos ponerle a la maquina ( en mi caso ALIEN ) Introducimos el nombre de nuestro dominio .com .net .org por ejemplo ( en mi caso hsnet.sytes.net que es la dirección .net de mi server ) A continuación vamos a particionar el disco en el modo que deseemos ( en mi caso Guided - use entire disk ) que particiona automáticamente y usa todo el disco. Seleccionamos el disco a particionar … Ahora podemos elegir entre tres opciones de particionado, todas las particiones en /, separar la /home de la / o separar /home, /usr, /var y /tmp. ( En mi caso voy a separar solo la /home ) Nos presenta un informe sobre como va a quedar el particionado … Si no estamos de acuerdo ( Undo ) y si lo estamos ( Finish ) El sistema nos avisa de que vamos a destruir todo el contenido del disco … Seleccionamos nuestra zona horaria … Introducimos el password de super administrador ( root ) … verificamos el password repitiéndolo … Introducimos el nombre completo para un nuevo usuario que vamos a crear .. Introducimos el nombre para login del nuevo usuario … Asignamos un password para el nuevo usuario … Lo verificamos de nuevo repitiéndolo … Ahora podemos escoger agregar el package manager para agregar paquetes adicionales de nuestra instalación ( netinst ) Elegimos el país de donde queremos que proceda el mirror Escogemos el ftp … Si usamos proxy para salir a Internet hay que indicarlo aquí, si salimos directamente a Internet dejar en blanco este apartado … Si queremos participar o no el envió de estadísticas sobre el software que usas en tu PC ( Opcional ) … Opciones para agregar programas seleccionados para asignarle una utilidad a nuestra maquina como por ejemplo … Validamos la partición Swap … Instalamos el GRUB … Seguidamente la puerta de el CDrom se abrirá. Sacamos el CD y continuamos … El PC se reiniciara automáticamente y nos mostrará el GDM para que nos identifiquemos …. Introducimos el nombre de usuario y el password y veremos algo asi … Con este paso concluimos la instalación, ahora solo nos queda disfrutar de nuestro nuevo Linux Debian. Soporte para WebCam QuickCam USB ________________________________________________________________ Acabo de instalar una Debian pelada y necesito darle soporte para mi Webcam ya que con este pc voy a montar un sistema de detección de intrusos para instalarlo en la terraza así cuando me valla a Lanzarote con el señor Intruso podré ver si alguien se a colado en ella durante mi ausencia. He instalado la debian por red y he instalado los paquetes básicos así cargare esta antigua maquina solo con lo necesario para que cumpla su función y vaya lo mas desahogada posible. Voy a bajarme las fuentes del kernel que viene instalado por defecto ya que con el actual ya me soporta mi webcam. Antes de nada vamos a bajarnos las fuentes del kernel que tenemos instalado ya que seguramente mas adelante necesitare compilarlo de nuevo. Necesitamos apt-src que es quien bajara las fuentes de nuestro kernel apt-get install apt-src Miramos la versión de nuestro kernel con … uname -r Nos descargamos las fuentes … apt-src install linux-2.6 Una vez descargadas las fuentes vamos a descargarnos la utilidad moduleassistant que no servirá para cargar el driver para que nuestra webcam funcione. apt-get install module-assistant y seguidamente lo cargamos … module-assistant Nos saldrá una pantalla como esta … Bajamos con el cursor hacia la opción UPDATE y pulsamos enter. Después vamos a la opción PREPARE para instalar los headers del kernel y asi poder cargar los modulos ….. Seguidamente nos vamos hacia la opción de SELECT y aquí le diremos que modulo cargar para nuestra Webcam. Si os fijáis también podemos agregar soporte para otros hardware pero fijaremos este articulo en la Webcam Logitech. Buscamos el modulo ( qc-usb ) y lo marcamos con la barra espaciadora … Una vez marcado vamos a ( OK ) con el tabulador y enter. Ahora nos sale una pantalla de instalación de módulos … El primer paso en este menú sera la opción ( GET ) para que se baje las fuentes del paquete …. Seguidamente vamos hacia la opción ( BUILD ) así compilara el paquete para instalarlo en nuestro kernel ….. Antes de finalizar la compilación el sistema nos preguntará si queremos cargar el modulo que acaba de crear …. enter en YES y listo. Para asegurarnos de que se instala correctamente vamos a ejecutar también la opción ( INSTALL ) aunque con el paso anterior ya deve de funcionar. Salimos del menú con la opción ( Cancel ) y despues ( EXIT ) Reiniciamos la maquina con el comando ( reboot ) y una vez estés logeado inserta la clavija USB de tu Webcam. Ahora ejecuta el comando ( dmesg ) y veras al final un mensaje como este …. Como podéis ver ya tenemos instalada la webcam y puedes encontrarla en /dev/ video0. Motion ( Sistema de detección de movimiento ) ________________________________________________________________ Vamos a instalar Motion en nuestra debian contando que tenemos soporte para la webcam. Si todo os fue bien en la instalación básica devemos tener lo suficiente para poder descargarlo sin problemas. Vamos a comenzar por instalar Motion con el comando aptitude …. aptitude install motion Ahora crearemos la carpeta donde vamos a guardar las capturas de nuestras cámaras. mkdir /home/forat/cam Seguidamente vamos a configurar unas cuantas cosillas en su archivo de configuración motion.conf vi /etc/motion/motion.conf Te recomiendo que el auto_brightness lo dejes en off ya que la webcam se vuelve tan sensible que grava fotos tan solo con el cambio mínimo de luminosidad. En la linea target_dir podemos especificar la ruta donde queremos que nos guarde las capturas. target_dir /home/forat/cam Si queremos ver la webcam conectada a nuestro equipo por internet tenemos que habilitar un puerto y le asignaremos el que tiene por defecto. webcam_port 8000 Si no queremos que sea accesible desde Internet debemos asignarle el puerto 0 (Te recomiendo que uses el puerto 8000 ya que no suele ser muy utilizado y recuerda que no puedes poner cualquiera ya que puede crear conflictos de servicios.) Y dejando todos los demás ajustes por defecto ya funciona a la perfección. Aqui os dejo mi archivo de configuración motion.conf Con mi configuración el software motion debe de actuar como una repetidora de instantáneas cuando detecte movimiento guardandolas todas en formato ( jpg ). Como también activamos el puerto 8000 vamos a probar de poner en el navegador http://tuip:8000 y devemos ver la webcam online. Ya la tenemos lista para funcionar, pero ahora seria lo suyo que nos mandara esas instantáneas a un ftp y así poder salvar las pruebas en otro pc que no sea el mismo que las grava, pero eso será en el próximo manual que ya tengo un poco de sueño, son casi las 6 de la madrugada. ( Es lo que tiene estar de vacaciones y no tener nada que hacer al día siguiente ) Red inalambrica ________________________________________________________________ Afortunadamente para mi tenia por aquí guardada esta tarjeta de red wifi U.S.Robotics USR132410 PCMCIA capaz de transmitir datos a 11 Mbps que no es mucho pero si suficiente para lo que quiero montar. Para configurar la targeta de red tenemos que editar un fichero llamado interfaces que se sitúa en /etc/network En mi caso en particular me la detecta como wlan0, podéis mirar como os la detecta mediante el comando ifconfig. Os saldrá algo así … ( pero sin configurar claro ) Una vez detectada vamos a editar el fichero de configuración para las tarjetas de red con el editor que prefieras … En mi caso usare el editor ( vi ) vi /etc/network/interfaces En este fichero se pueden incluir las configuraciones tanto para tarjetas wifi como para las ethernet. En nuestro caso en particular vamos configurar una ip estatica y le vamos a indicar cual es el punto de acceso al cual nos vamos a conectar y ademas le asignaremos una clave web para obtener un poco de seguridad. Para que nos entendamos yo he asignado la ip 192.168.1.80 a la tarjeta wifi y mi router tiene la ip 192.168.1.254. El nombre essid de mi access point es Hsnet-Node2. Sabiendo estos datos así es como a quedado mi configuración … allow-hotplug wlan0 auto wlan0 iface wlan0 inet static address 192.168.1.80 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254 dns-nameservers 80.58.61.254 dns-search hsnet.sytes.net wireless_essid Hsnet-Node2 wireless_rate Auto wireless_mode Managed wireless_key clavewep Podéis hacer lo mismo pero modificando mis parámetros por los de vuestra red. Una vez lo tengamos configurado podemos salir del editor ( vi ) con la tecla escape y :wp! Podemos utilizar los comando ifdown y ifup para parar o lanzar esta configuración especificándole seguidamente la tarjeta de red. Ej: ifdown wlan0 ifup wlan0 ahora podemos reiniciar la maquina con un ( reboot ) y veremos los resultados. ejecutamos el comando ( iwconfig ) y podemos ver que se a conectado a nuestro punto de acceso ( en mi caso Hsnet-Node2 ) Podemos hacer un ping hacia el router haber si funciona … También podemos hacérselo a google haber si funcionan bien nuestras dns Con este manual me voy ha ahorrar el tener que volver a comerme la olla para configurar la wifi bajo consola ya que no siempre se tiene la interfaz de Gnome para configurarla. De Motion a un servidor Ftp remoto con Wput ________________________________________________________________ Si habéis instalado el software de detección de movimiento ( Motion ) para montar vuestro sistema de vigilancia casero quizás el siguiente articulo te puede interesar. Vamos a ponernos en situación …… Se supone que estamos montando esta especie de estación de vigilancia para pillar al caco o cotilla que entra en nuestra propiedad sin permiso. Si yo fuera el ladrón una de las cosas que me llevaría es el pc que tiene la cámara conectada ( que le delatará ), mas que nada porque es lo mas valioso que encontraría en la habitación y si se lo llevara se llevaría con el las únicas pruevas que podríamos utilizar ante un juez. Por defecto Motion utiliza el propio disco duro del pc para hospedar las imágenes que captura y no esta mal, pero si se lo lleva el ladrón se acabaron las pruebas …… Entonces lo que vamos ha hacer es enviar esas capturas a un servidor remoto que este en otra casa ( en mi caso a la planta de abajo ya que lo que voy a vijilar es la terraza ) Si recordamos el manual ( instalando motion sistema de detecció de movimiento en debian ) veremos que estuvimos configurando el archivo motion.conf y hay es donde vamos a decirle a Motion que envié todo lo que capture hacia un servidor ftp remoto. Antes de nada vamos a instalar la aplicación Wput como siempre con un .. apt-get install wput Una vez instalado vamos a editar el archivo /etc/motion/motion.conf vi /etc/motion/motion.conf Ahora al final de el fichero vamos a insertar esta linea ( claro esta ) que tenéis que modificar el nombre de usuario, el password y la dirección del ftp remoto por los vuestros … on_picture_save wput ftp://nombredeusuario:password@servidorremoto/directorio/ Salimos del editor ( vi ) con la tecla escape y ( :wq! ) y esto ara que al hacer las capturas nos las mande a un ftp ademas de gravarlas en el disco duro. Si tienes un disco duro pequeño en la maquina que utilizas para montar el sistema de detección de intrusos ten cuidado ya que se te puede inundar de capturas.jpg y colapsar el sistema. Para que esto no pase podemos añadir una tarea para que cada 5 minutos las valla borrando si es que hay, así nuestro disco duro se mantendrá limpio y solo estarán las capturas en el ftp. ( tu decides ) Para agregar una tarea al sistema vamos a utilizar la utilidad ( crontab ) y le vamos a decir que nos borre esas capturas cada 5 minutos de la siguiente manera … Editamos el fichero crontab … vi /etc/crontab e introducimos la siguiente linea modificándola por la de la dirección de donde se hospedan las capturas en tu disco duro ( target_dir ) 0-59/5 * * * * root rm -r /directorio/de/capturas/*.jpg y salimos del editor ( escape + :wp! ) Voila !!, ahora solo tendrás las capturas en el ftp y tu disco duro local se mantendrá limpio. ¡¡ Me esta quedando muy chula la maquina que estoy montando este verano, si señor !! Arranca automáticamente Motion ¿ Y si se va la luz que ? ________________________________________________________________ Imaginaros por un momento que se va la luz ... ¿ Que puede pasar ? Podríamos tener varios problemas que tenemos que solventar para que nuestro sistema de vigilancia no se detenga en ningún momento. El pc además de apagarse cuando vuelva a arrancar no arrancará el programa Motion. Todo tiene solución en la vida y voy a dar fe de ello. Podemos solucionar la perdida de energía con un Sai para que nos alimente el pc durante lo justo para que vuelva la luz …. O ajustando la placa base desde la bios para que se re-arranque al venir la luz …. O incluso puentear el Jumper de la placa base llamado ( POWER ) para que siempre esté en on ) El problema de la luz solucionado y ahora le toca iniciarse a Motion para que todo este tal y como estaba antes de irse la luz. Editamos el archivo motion.conf y cambiamos … daemon off por daemon on Una vez hecho este cambio vamos a copiar el script de arranque de motion en el directorio donde se arrancan los demonios. cp /usr/share/doc/motion/examples/motion.init-Debian /etc/init.d/motion le damos permisos …. chmod 755 /etc/init.d/motion Ahora podemos arrancar Motion como un demonio … /etc/init.d/motion start /etc/init.d/motion stop Ahora tendremos que decirle al sistema que arranque el demonio al inicio. cd /etc/init.d y tecleamos el siguiente comando … update-rc.d motion defaults Ahora Motion se arrancara como demonio cuando se inicie tu Debian. Si en algún momento te arrepientes y quieres quitarle del arranque puedes hacerlo de la siguiente manera … update-rc.d -f motion remove Haz la prueba y reinicia el pc, a partir de ahora siempre restara dispuesto para gravarlo todo cuando tu no estés y no deberás de preocuparte de nada. Fiaos bien en este articulo …. ¿ Y si se va la luz ? Pues lo cierto es que ahora ya no me importa ya que tengo solucionados el problema de los cortes de luz y el inicio del programa de vigilancia. El resultado ________________________________________________________________ Si ya te has hecho todos los manuales anteriores ahora solo tienes que instalártela y disfrutar de tus vacaciones tranquilamente sabiendo que si alguien entra donde no tiene que entrar lo vas a pillar. Aquí os dejo estas dos capturas para que veáis como me a pillado a mi mismo al entrar a la terraza tanto de día como de noche … Espero que este macro manual que os acabáis de leer os sirva de ayuda para montaros vuestro propio sistema de vigilancia, o simplemente os hayáis entretenido leyéndolo tanto como yo montándolo. Este manual y otros mas podéis encontrarlos en el Blog www.forat.info así como su descarga en formato PDF en www.forat-project.com Sois libres de copiar, modificar o incluso usar este manual para lo que queráis incluidos los estudiantes universitarios como proyecto para presentarlo. Este manual ha sido creado para el aprendizaje de todo el que le interese y puede hacer con el lo que quiera, tan solo se pide un reconocimiento del mismo con un link en tu web o si lo deseas puedes realizar un donativo al autor desde la dirección www.forat.info/aporta