Desde hace unos días había prometido hacer un manual de cómo crear de forma sencilla un servidor para hacer pública la captura de una webcam a manera de circuito cerrado vía VPN, para esto no podría usar otro programa que no fuera Hamachi y claro también es dejar claro que el Hamachi puede ser usado para miles de cosas más que para jugar online.
Generalidades, El Reyno del DSLCon el tiempo El internet ha cambiado en mucho, uno de estos cambios ha sido la forma en que uno se conecta a los servicios de Internet y el ancho de banda al que cualquier internauta hoy por hoy tiene acceso, esto lo decimos porque mientras hace cinco o diez años uno tenía accesos a Internet a través de servicios vía dial-modem con velocidades de 32 bps (una velocidad teórica porque ningún modem llegó a sostener dicha velocidad por más de dos minutos), hoy la velocidad promedio es de 512 y en países avanzados es más de un mega.
Pero el cambio que ha traído la implementación de nuevas formas de proveer el servicio de Internet llámese dsl, cable o algún otro, ha traído consecuencias varias y estas tienen que ver con la forma en que uno conecta y claro en la que uno navega por la web, es decir, mientras que desde un modem vía dial uno se conectaba directamente al Internet y tenía una ip (ya sea estática o dinámica) con los servicios comunes de dsl uno no puede aspirar a una ip propia y se tiene que navegar detrás de un router o un proxy cache, etc.
Esto quiere decir que cada día es más difícil mantener ciertos servicios como el de tener acceso a un escritorio remoto o una shell que no sea por el método reverse o tuneling desde un tercer servidor online, antes por ejemplo era muy clásico tener decenas de maquinas infectadas por troyanos como el subseven y desde una sola controlarlas a todas, con la casi desaparición de las conexiones via dial, los troyanos tuvieron que evolucionar y ganar acceso por métodos como el que antes ya referimos (reverse shell el más famoso), pero bien el tema que nos ocupa es uno bien interesante a partir de que permite acceder a redes vía
VPN (Virtual Private Network) como si se tratara de estar dentro de una simple LAN con la única diferencia de tener en medio una red como lo es el Internet.
No obstante el tema de VPN también no tiene nada de novedoso, cabe aclarar que las redes VPN son las que dominan nuestra cotidianidad y nos permiten servicios bancarios tan importantes como lo es usar nuestra tarjeta de crédito o débito para obtener dinero desde cualquier cajero en cualquier parte del mundo, esta es la importancia de las VPN´s, permiten con un alto grado de seguridad interactuar por el Internet o por cualquier otra red privada conectándose entre si como si se tratara de una enorme LAN.
Es aquí donde entramos en materia de uso de una de las herramientas más novedosas que han permitido sin duda un gran avance al usuario común en el uso de estas redes VPN, estas mismas redes que desde siempre han estado únicamente al alcance de los expertos y en la mayoría de los casos por grandes empresas bancarias y de otro tipo de asuntos que requiere seguridad máxima.
Nos referimos al servicio que ofrece el programa Hamachi de Logmein, que sin más explicaciones y de la forma más fácil del mundo nos permite crear redes VPN con un mínimo de configuración (Zeroconf) y dejar a nuestro alcance las características y ventajas de cualquier VPN.
No obstante, como suele suceder siempre, la utilización del Hamachi ha sido masivo para usos lúdicos entre los que resalta la activación de redes y servidores de juegos que permiten crear partidas multitudinarias entre jugadores conectados en cualquier parte del mundo.
Si uno hace una búsqueda por google podemos encontrar que en la mayoría de las referencias al uso del Hamachi es para games y este es el objetivo del presente artículo, mostrar como el Hamachi es algo más que una herramienta para jugar online y que únicamente la imaginación es el límite para usar esta maravillosa herramienta.
El próximo ejemplo es el de crear un servidor que conecte una cámara web de monitoreo en tiempo real, es decir desde una simple webcam apuntando a un lugar en específico tomar una fotografía programada cada cierto tiempo, misma que pudiera ser vista desde otra Terminal conectada por Hamachi a una red virtual.
Seguiremos los pasos de rigor, a manera de recetario enlistaremos el material que se necesita para hacer esta red de monitoreo webcam.
• Instalar el Hamachi y crear una red virtual.
• Una Webcam (La mía es una logitech, viejísima)
• Software de captura de webcams, (Nosotros usaremos el Timershot de Powertoys for XP)
• Instalar un servidor Web, puede ser un apache con todo lo que implica saber montar/instalar un server de este tipo o simplemente un servidor “a modo”, como el HFS (Genial para usar con el mínimo de configuración).
Paso 1 (Instalar el Hamachi y crear una red virtual)Para este primer paso debemos bajar la
última versión del Hamachi e instalarlo, en la instalación no tendremos más problemas, debemos escoger un nombre o nickname e iniciarlo. (Mejor activen bloquear servicios vulnerables de Windows)
Una vez y esté instalado el programa en cuestión viene la parte de crear una Red Virtual dentro de la red de Hamachi.
Crear una red es cosa corriente, sólo uno tiene que clikar el segundo botón inferior (Crear o unirse a una red) y seguir el procedimiento, Asignar el nombre a la red y una contraseña de Red, los datos que aquí asignes te servirán luego para unirte a esta red desde otra maquina en la que también instales el Hamachi.
Y bien, una vez creada una red (Mi red se llama Martin Fierro por ejemplo) nos vamos al segundo paso que es correr o instalar el webserver.
Para más detalles de cómo instalar y crear una red Hamachi pueden consultar este
magnifico tutorial.
Paso 2 (Correr el Webserver)Lo dicho para los fines concretos de este manual, usaremos el HFS que es un programa que corre un servicio de compartir archivos o carpetas a través del puerto 80 (Nunca he dicho que el uso del HFS pueda sustituir el uso de un servidor como Apache, sólo que para instalar un Apache sería necesario redactar otro artículo que lo explique, y el objetivo no es enredar el asunto).
Bien, el HFS (HTTP File Server) pueden bajarlo y configurarlo desde
esta liga. Es un programa muy flexible que nos permitirá compartir una carpeta en la cual se guarde el jpg que capture el software de la webcam, en nuestro caso el Timershot de Powertoys for XP.
Una vez corriendo el HFS instalaremos y configuraremos el Timershot, para hacer esto bajaremos el programa en ciernes desde
http://download.microsoft.com/download/whistler/Install/2/WXP/EN-US/TimershotPowertoySetup.exe El Webcam Timershot es un programa que viene incluido en un pack oficial de Microsoft, (Powertoys of XP), vale la pena aclarar que es un programa calificado y de licencia gratuita. (Han notado que evito en lo máximo usar software propietario o privado, teniendo joyas gratuitas no es necesario usar craks).
Bien, una vez instalado y corriendo el Timershot lo configuramos así de fácil:
Esta pantalla del programa funcionando nos enseñará algunas cosas fundamentales del programa, si se dan cuenta no hay gran ciencia en este programita, arriba ustedes podrán escoger la webcam que quieren que se monitoree (en caso de haber más de una cámara).
En las Picture options, podemos especificar el tiempo que queremos transcurra entre captura y captura, además de que permite redimensionar la imagen a las medidas que desees (aunque lo mejor es dejarlo tal y como lo toma la cámara).
En el File Location uno puede especificar un nombre a la imagen, en esta parte yo recomiendo que se cambie el nombre default (My pic.jpg) y se asigne un nombre sin espacios (por ejemplo camara.jpg).
Bien la última configuración será la de asignar la ruta de un path en el que se guardará la imagen, para esto antes de cualquier cosa, crearemos en la raíz C:// una carpeta llamada camara (C://camara) en la que guardaremos la captura de la cámara de tal manera que en el File location Save in escribimos o navegamos hasta la carpeta C://camara.
Con esto tendremos que cada 20 segundos (o el tiempo que ustedes asignen) el programa Timershot capturará una imagen y la colocará en la ruta C://camara/camara.jpg).
Para no tener problemas hay que desmarcar la última caja casi al final del programa (Save a new copy of this file every time a picture is taken), de esta manera el programa sustituirá la imagen en la carpeta por la nueva que tome cada x segundos.
Ahora que ya tenemos el Timershot corriendo y el HFS haciendo lo propio lo único que nos queda es compartir la carpeta c://camara de tal manera que desde un equipo remoto conectado a nuestra misma red Hamachi se pueda acceder al archivo c://camara/camara.jpg que no es más que la imagen que el Timershot estará capturando cada 20 segundos, esto significa que estaremos viendo online (con escasos segundos de diferencia) lo que está frente a nuestra webcam.
Para compartir la carpeta C://camara lo único que haremos es abrir la ventana del HFS y arrastrar hasta ella la carpeta en cuestión, con lo que desde el Explorer o Firefox podemos ver la imagen, para ver que todo funcione bien haremos una prueba, desde un explorador escribimos la siguiente url (
http://localhost/camara/camara.jpg) y veremos la imagen en cuestión.
Pero no termina ahí porque para un buen funcionamiento de la técnica, haremos un archivo htm con unos scripts en javascript y php al que llamaremos index.htm, este archivo lo que hará es permitir visualizar la imagen y hacer un reload cada 20 segundos, de tal manera que al acceder a él tendrás automáticamente la imagen más actualizada, sin necesidad de actualizar la imagen.
El contenido del archivo index será el siguiente.
<html>
<head><b>WebCam Remote by Martin Fierro</b>
</head>
<body>
<center>
<!-- Colocar en la etiqueta <BODY> -->
<form name="Tick">
<input type="text" size="11" name="Clock">
</form>
<script>
<!--
/*By George Chiang (WA's javascript tutorial)
Credit must stay intact for use*/
function show(){
var Digital=new Date()
var hours=Digital.getHours()
var minutes=Digital.getMinutes()
var seconds=Digital.getSeconds()
var dn="AM"
if (hours>12){
dn="PM"
hours=hours-12
}
if (hours==0)
hours=12
if (minutes<=9)
minutes="0"+minutes
if (seconds<=9)
seconds="0"+seconds
document.Tick.Clock.value=hours+":"+minutes+":"
+seconds+" "+dn
setTimeout("show()",1000)
}
show()
//-->
</script>
<p>
<img title="Webcam Remote" src="camara.jpg" alt="Webcam remote" border="1">
</center>
<body onload="setTimeout('location.reload()',20000)">
</body>
</html>
Sobra decir que con el bloc de notas (notepad) copiamos y pegamos el código fuente anterior y lo grabamos en la carpeta c://camara con el nombre de index.htm (Fijarse bien que no quede con la extensión .txt sino como .htm), de esta manera también estaremos haciendo público el archivo index.htm en el siguiente path c://camara/index.htm.
Así que para ver la cámara desde una Terminal remota con Hamachi corriendo lo que haremos es teclear la siguiente url (
http://5.4.3.2.1.0/camara/index.htm) claro que tienen que cambiar la ip por la que les asignó el Hamachi, de esta manera, desde cualquier maquina con un Hamachi corriendo y formando parte de la red virtual que creamos al inicio, podremos ver la imagen de nuestra webcam a manera de un circuito cerrado vía VPN.
Por último y no dejar ni un cabo suelto les dejó el link de un tutorial en el que aprenderán a unirse a una red creada por Hamachi desde otra maquina con Hamachi corriendo, no es difícil, sabiendo el nombre y el password de la red que creamos al principio lograremos vincular hasta 7 ips virtuales a una red
http://zonaforo.meristation.com/foros/viewtopic.php?t=463800&m=Les comentaba que yo hago uso de esta función para monitorear un ángulo de mi hogar cuando estoy en el trabajo y mi hijo se queda sólo con su nana, sobra decir que me funciona MUY BIEN.
Recomendaciones y mentadas a
mtinfierro@gmail.comSi hay alguna duda, no duden en decirla acá.