jueves, abril 10, 2008

Sistema de seguridad casero. (Parte II, los problemas a hacer frente)

En el anterior post os explicaba un poco el concepto y las razones para la creación de un sistema de seguridad casero. Ahora vamos con los problemas que hay que hacer frente en el diseño del sistema.

Para las explicaciones asumo que el lector tiene un nivel básico de redes y Linux. Si te pierdes, ¡pregúnta!. Tampoco voy a entrar en detalles demasiado profundos todavía pero mi familia seguro que pierde el hilo ;-).

  • Primer problema, elección de sistema operativo:

Las opciones que me planteaba eran dos, Linux y Windows. Nunca he tenido Debian en mi ordenador (Sarge daba error de kernel en el mismísimo programa de instalación y por su culpa fui de Fedora durante 2 años y medio) y puesto que siempre me había quedado esa espina, pues no me lo pensé mucho más, al fin de al cabo estoy haciendo esto para aprender. Linux es mucho más fácil de administrar remotamente como servidor y te da muchas más posibilidades en modo comando. Tener un Windows XP o Server abierto 24 horas al día no es demasiado mala elección, pero en este ordenador uso también un Windows recargado para temas del trabajo... (.net, borland...) y cuando configuras un Windows para que funcione como estación de trabajo, olvídate de que sea un sistema totalmente estable (ojo, la misma advertencia para Linux). Al fin de al cabo sólo se necesita un programa mal hecho para hacer que tu SO se vaya al garete. No me puedo ni plantear la posibilidad de que por hacer algo un poco especial el sistema se me cuelgue y tenga que quedarme sin sistema de seguridad hasta que vuelva a casa. (si tuviese un sistema UPS que se pudiese administrar remotamente la cosa sería diferente, pero la idea es gastarse 0€ ¿no? :-D).

Resumen: Dual boot, un SO para estación de trabajo para cuando esté en casa y otro SO para servidor (que será el que arrancará por defecto porque normalmente tenemos más prisa por salir de casa (presionar un botón y salir de casa sin pensar).


Yo robandome!
Esta es la puerta de mi casa vista por el sistema de seguridad. Genera una imagen de control cada 2 horas para estar seguro de que todo funciona correctamente. En cada imagen hay una pequeña marca con la hora y la fecha. (haz click en la imagen para zoom y ver mejor todo). Reconoces el sitio mirando las fotos panorámicas de mi casa?

  • Segundo problema, control remoto:

Principalmente ssh (modo comando), linux tiene mucha flexibilidad en modo comando y usar el servidor remotamente por Internet y por ssh es tan rápido como tenerlo en casa. VNC, aunque más inseguro a veces es útil tener acceso gráfico, por ejemplo para cuando remotamente configuro por Web el router (podría usar lynx lo sé) o simplemente para lo que sea.

Como la IP desde la que me voy a conectar al servidor es dinámica, el firewall es un "poco inútil" (nunca lo es pero entiéndase), el router ya me hace todo el trabajo de firewall en redes externas menos para los puertos que quiero (VNC, ssh, torrent). Aunque es muy recomendable, mi servidor en casa no tiene firewall, no soy un loco de la seguridad, con saber por donde me cojea y pueda mejorarlo me vale, tal vez en el futuro lo implemente de forma que solo acepte peticiones del router y para los 3 puertos específicos, pero es que si alguien consigue encontrar la clave WPA de mi WiFi seguro que no es para robar en mi casa (hay formas mucho más fáciles de entrar en mi casa y no necesitas calcular mi clave durante años) y en el servidor no hay absolutamente nada de información realmente importante. El VNC está desactivado por defecto y lo activo desde ssh cuando lo necesito, creo que con esto vale.

Además hay que considerar que en la mayoría de los ordenadores desde los cuales voy a conectarme a mi ordenador no van a tener clientes ssh o VNC, ¿qué es lo que cualquier SO operativo va a tener por defecto? Efectivamente, un explorador de Internet (el que más te guste o el que te toque). Por lo tanto control por Web es una opción más que recomendable.

  • Tercer problema, ip dinámica.

La ip de mi conexión a Internet cambia con el tiempo como es normal y como la de casi todos, al de dos días de vacaciones pierdo la dirección del servidor y me encuentro con que no puedo encontrar mi servidor en la enmaraña red de Internet. Hay varias soluciones para esto. La más común es usar DynDNS, un programa que se conecta periódicamente desde tu servidor a un servidor de Internet y así tienes allí la "última dirección de tu servidor". Sin embargo yo me he ido un poco más allá porque... porque puedo. Tengo un dominio para mi mismo (bultza.com) en Internet para mis cosas, fotos, etc. Porqué no hacerme mi propio DynDNS?. Bueno, no es ni parecido, pero usando el crontab de Linux y un pequeño script, el servidor se conecta a Internet cada hora y así ya no pierdo la dirección de mi servidor, además así no hay un nombre único en Internet que siempre apunte a mi servidor :-D, el desconocimiento siempre es el mejor método de seguridad.

  • Cuarto problema, si me entran a robar se llevan el servidor (y las fotos).

Hay que suponer el peor de los casos. Mi ordenador es una patata, pero es portátil y las probabilidades de que se lo lleven si entran en casa son del 99%. Por lo tanto, en cuanto mi portátil (siempre el servidor) detecta movimiento en casa, se pone a gravar las imágenes como loco en el disco duro, así cuando la próxima vez que me conecte al servidor veo quién a entrado, ¡OUCH!, pero si se llevan el servidor ¿cómo narices me voy a conectar a él para ver las imágenes del ladronzuelo?

Mi solución ha sido crearme una página Web en mi dominio, bajo un subdominio o subdirectorio el cual no voy a nombrar aquí por seguridad (aunque tiene control de acceso y no podríais ver nada sin mi password). El servidor en cuanto detecta movimiento sube las imágenes al servidor Web inmediatamente (sí, sí, el desconocimiento es el mej....). De esta forma aunque mi casa se quede vacía las fotos las seguiré teniendo accesibles. Si por casualidad tú quieres implementar lo mismo, no necesitas tener un dominio Web, con tener espacio Web gratis (tu proveedor de Internet seguro que te lo da) o en esos portales donde te dan posting gratuito a cambio de meterte mil banners te vale para tu sistema.

Para aquellos que tengáis el servidor Web motado en casa... Efectivamente no sirve de nada guardaros las imágenes en ese servidor porque se supone que el ladrón va a vaciar tu casa ;-)


Yo robandome!
En esta animación lo que podéis ver es a mi mismo haciendo una prueba de robarme el ordenador 5 segundos después de haber entrado en casa. Como podéis ver algunas imágenes están cortadas, esto es porque desenchufé el cable durante la retransmisión de las imágenes, y como la conexión de Internet es por paquetes, algunas imágenes más tardías han llegado completas antes que otras más tempranas. Con esto queda probado que aunque el ladrón entre en casa y tarde dos segundos en desenchufar el ordenador o el router, ya hay algunas imágenes en lugar seguro que me van a decir qué ha pasando. Ahora ya no me preocuparé si el sistema casca y deja de responder sin razón alguna (que seguro que pasará más de una vez), sólo si hay alguna imagen sospechosa en Internet tendré que preocuparme, esto es tremendamente importante para no preocuparme sin sentido. La animación la he reducido a más de la mitad para que no ocupe mucho espacio ni se pase de ancho el formato del blog.

  • Quinto problema, comodidad.

Si el sistema no es cómodo, al de una semana lo voy a dejar de usar. No me sirve controlarlo sólo por ssh. Muchas veces no voy a tener acceso a un cliente ssh, o como desde el trabajo, detrás de un Proxy es casi imposible conectarme a mi servidor ssh si no es con algún truco. Necesito que el sistema me cree informes periódicos y me los ponga muy bonitos en una página Web, donde con un par de clicks además pueda desactivar la seguridad para que la alarma no salte cuando voy a casa.

  • Sexto problema, El software de detección

Este era el punto más difícil, tenía pensado desarrollar mi propio programa, sabía que iba a ser una patata y me iba a llevar meses hacerlo, pero... como siempre el mundo del software libre me dio otra lección y ya hay un paquete bastante profesional que implementa todo esto y mucho más, se llama "motion" y dí con él por casualidad en el blog del asuse3. Este descubrimiento hizo que se acelerase todo el proceso de instalación de mi sistema de seguridad, que me ha llevado 3 tardes completas de cacharreo y 3 semanas de pruebas.

En el siguiente capítulo explicaré el hardware y software que utilizo, el funcionamiento básico de mi sistema y por supuesto por dónde cojea (hecha la ley, hecha la trampa dice mi aita). Dentro de dos capítulos os prepararé un par de paquetes con los scripts y la página Web que me he creado para que el que quiera trastear o montarse su sistema.

3 comentarios:

Playmobil dijo...

Sei un genioooooooooooooooo!!

Playmobil

Anónimo dijo...

Magnifique!

frames dijo...

Compi, échale un ojo a FreeNX en lugar de VNC. Funciona via SSH, así que las comunicaciones van encriptadas. Soporta compresión. Más seguro y probablemente más rápido.

Los únicos problemas que he tenido con él ha sido en cuanto al audio, pero eso fue hace tiempo, y realmente no lo necesitaba.