Streaming de vídeo con Motion

Navegando por los blogs he encontrado un artículo con un programa de estos que no está nada mal de tener a mano.

Esta vez el blog al que he caído ha sido el de lopz (hola lopz!). El artículo que me ha llamado la atención es “Sistema de vigilancia”, cierto, este sistema se puede usar para vigilar un sitio, permitiendo un modo de transmitir datos en el momento que la camera detecta movimiento, pero otras utilidades podrían ser el streaming de una charla (usando gstreamer para el audio y el motion para el video ideal para conexiones limitadas). El programa además permite capturar vídeo de varias cameras a la vez, así que dejo a vuestra imaginación a dónde usar este programa :D

El programa, tal como su nombre indica, motion (de la técnica motionflow), permite capturar imagenes cada x tiempo del dispositivo de video indicado, estas las guarda a un directorio (también permite crear .avi y .mov) y finalmente con un navegador acceder a la página o al ftp dónde se esté creando el motion.

Motion se encuentra ya en los repositorios de debian unstable (sid), pero no aún en los de testing y menos en los de stable, así que podremos descargar de la página web del proyecto los sources, los paquetes .deb o los .rpm.

Aunque tenemos los paquetes .deb, vamos a instalar los sources, en un sistema en producción prefiero no hacer guarradas con las versiones de los paquetes, esto acaba convirtiendo el sistema inestable y tenemos …

BS3C Bilbao

Pues este fin de semana escapadita otra vez a unas conferencias de seguridad, esta vez en el M3 de Bilbao, un espacio de investigación aka hacklab.

Con una interesante parrilla de charlas de alto nivel, el M3 alojó durante 2 días el BS3C.


Debido a la jornada laboral no pudimos asistir a las charlas del viernes (lo que hizo que nos perdimos una interesante rueda de preguntas a los chicos de panda antivirus), pero pudimos asistir a las del sábado además de la fiesta final del evento.

El evento en general creo que nos ha dejado a todos un buen sabor de boca, así que animamos al organizador a seguir adelante con mas BS3C!

Los detalles de la fiesta y el tapeo por ahí quedan censurados para cuidar la imagen del blog ;) simplemente os dejo con las fotos, las cuales contarán mejor el espacio y la asistencia a las jornadas.
Os recomiendo mirar las fotos escuchando esta música sacada de jamendo.com

http://www.flickr.com/photos/nusepas/sets/72157617227550135/

Charlas Sábado por la mañana

Tapeo antes de ir a comer

Charlas Sábado por la tarde

Fiesta fin jornadas

Fiesta fin jornadas

Fiesta fin jornadas

Bilbao el día siguiente (para que veáis que lo dejamos enterito!)

Notícia en el público: http://www.publico.es/ciencias/221658/hackers/reivindican

HTDj!

Ayer estuve de nuevo en la radio y pudí compartir estudio con daax, el creador de un patch de puredata (con lo completito que es, mas bien un programa con puredata!). Aquí el archivo del podcast.

Pude ver al creador en vivo usando su creación. ¡Impresionante!

El HTDj! es un interfaz de producción de música electrónica. Te permite cargar loops, canciones y otros patchs creados con pure data que reproduzcan música sintetizada.

Tiene distintas entradas las cuales de pueden activar con las teclas de función, de la F1 a la F11, la tecla F12 sirve para reproducir o parar la secuencia.

Para instalar el HTDj! primero será necesario instalar el pd-extended (puredata extendido), el cual es una versión extendida del puredata, la cual ya contiene todas las librerías para usar el puredata para tratar flujos de audio y video entre otros.

Para ello cargaremos en nuestro sources.list los repositorios de puredata

# vi /etc/apt/sources.list
#puredata
deb http://apt.puredata.info/releases testing main

Una vez echo esto actualizaremos la lista de repositorios y instalaremos el pd-extended

# apt-get update && apt-get install pd-extended

Nota: si estáis usando debian testing lo mas probable es que no encuentre libmpeg1, el cual es una dependencia de pd-extended, para ello lo descargaremos de aquí.

a continuación lo instalaremos manualmente:

# dpkg -i libmpeg1*.deb

Cuando lo tengamos instalado nos descargaremos el HTDj! de la página web del creador.

http://noconventions.mobi/arrel/HTDj!__vX__unauthorized.zip

Lo descomprimimos en algun directorio

# unzip HTDj!__vX__unauthorized.zip && cd HTDj!

Ahora será necesario realizar unas modificaciones …

Hacktivismo, Licencias y demás mandangas

Lo se lo se, llevo unos días sin postear, así que hoy voy a hacer un post autoreflexivo y un poco autobiográfico sobre hacktivismo, licencias de software, licencias de contenidos y todas las mandangas que las rodean. Tomad asiento que esto va por largo ;)

Hace cerca de 10 años entró en mi casa mi primera grabadora de CDs, fui la primera persona en mi entorno en tener una, tenía la necesidad de grabar en algún soporte externo todo lo que me descargaba de la red gracias al napster y mas tarde al WinMX. Pronto empecé a tener un numero considerable de CDs que tenía que organizar para no tener datos duplicados, así que creé una hoja de excel primero con álbumes de música y mas tarde con películas las cuales tardaba semanas enteras a descargar con mi conexión de 56kb.


Mis amigos empezaban a pedirme copias de mi música ya que era inviable comprarse todos los discos originales de sus grupos favoritos, así que ellos me daban un CD (aún sin canon) y yo les grababa gratuitamente mis discos y películas descargados con sudor de la red (aún recuerdo las tardes animando al transfer rate que como mucho llegaba a los 7Kb/s o 11Kb/s los días de sol y una climatología agradable).

Sabía que copiando aquella música un autor dejaba de vender un disco, que quizás muchos de aquellos que tenían una copia “pirata” descargada de internet no hubieran comprado pero aún así asistían a sus conciertos cuando tocaban …

bash + crontab + mt

[boceto no comprobado]Os dejo con este boceto porqué sé que hay algunos de vosotros que estáis siguiendo de cerca la evolución de mi script en dialog (prometo un post chulísimo cuando lo tenga un poquito mas experimentado).

——-

Llevo unos días peleándome con un script de bash que cuando lo ejecuto con crontab no funciona, he hecho varias pruebas pero ninguna me ha funcionado, así que he empezado a leer a ver si a alguien mas le pasaba esto, y efectivamente no es una cosa que sólo me pase a mi, así que os voy a contar dentro de mis conocimientos lo qué sucede.

posible solución 1:
Nuestro script está escrito para correr bajo bash, la shell por defecto de linux, si hacemos un

# echo $SHELL
/bin/bash

pero qué pasa si esto mismo lo hacemos en crontab? pues que nos devolverá /bin/sh

estas pequeñas diferencias hacen que el comportamiento de los scripts sea un poquito distinto, y que por ejemplo tar no funcione como esperamos.

Para ello debemos añadir una linea en /etc/crontab que sea así:

SHELL=/bin/bash

Mantendremos la parte de arriba intacta, dejando la de abajo para los scripts de bash y arriba para los de sh.

Posible solución 2:Si esto no funciona, quizás sea un problema de permisos de acceso del usuario que está ejecutando el script en cron.

Tenemos derechos encima de ficheros, pero también encima de dispositivos, estos segundos se pueden controlar desde el udev

bpun Blackhold, check if /dev/st0 is accessible.. if its an …

compilar kernel 2.6.29

Después del anuncio de ayer del tuz, al llegar a casa no me pude estar de probar de compilar el kernel 2.6.29 en mi debian squeeze.

Siempre que te pones a compilar un kernel sientes cierta emoción por el posible logro o un kernel panic que te impide a continuar, por suerte grub permite elegir con qué kernel iniciar tu sistema, por ejemplo, si no nos arranca el kernel nuevo, vamos a /boot/grub/menu.lst y borramos las lineas que cargan el kernel nuevo para que no lo cargue por defecto, además de borrar los ficheros initrd.img-numerokernel, System.map-numerokernel y vmlinuz-numerokernel de /boot. Sabiendo esto podemos estar tranquilos a la hora de compilar kernels, ya que es una acción facilmente reversible :)

Una de las pijaditas que he activado para este kernel es el framebuffer, para tener a un par de tuz guardianes al momento que arrancamos la máquina:

Aquí tenéis a mi sistema arrancando con el kernel 2.6.29 esta mañana :)

Para realizar la compilación he ido un poco a saco y he compilado directamente las sources que me he descargado de kernel.org

Así que vamos a empezar:

1. nos descargamos los sources de kernel.org, nos descargaremos el paquete full (F)
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.bz2

2. a continuación comprobamos que tenemos los siguientes paquetes instalados:

# apt-get install build-essential libncurses5 libncurses-dev

build-essential: para que podamos usar las herramientas de desarrollador que nos permitirán recompilar el kernel
libncurses5: lo vamos a necesitar para poder mostrar interfaces ncurses (make menuconfig)…

3. copiamos el fichero descargado de la …

tuz

Tuz es el nombre de la mascota de la versión 2.6.29 del kernel de linux, durante un ciclo el logo del proyecto se convertirá en un simpático demonio de tazmania con un pico de pinguino.

El motivo del cambio temporal de logo es para concienciar a la gente de la posible extinción de este simpático animal australiano.

Tuz apareció por primera vez como mascota de la edición de este año de la conferencia linux.conf.au, celebrada en Hobart, Tasmania.

Al llegar a casa, Linus Torvalds decidió hacer un acto de consciencia y cambiar temporalmente el logo del kernel de Linux.

Realizando backups en cinta

Esta tarde estaba en el trabajo jugueteando con una unidad de cinta que he instalado en una de las sucursales, como estamos en crisis tenemos que trabajar con lo que tenemos y esto permite recuperar viejos cacharros que tenemos guardados en el armario, uno de ellos es una unidad de cinta, una dell powervault 110T con cintas LTO3, que permiten un almacenamiento de 200Gb, 400Gb comprimidas.

la imágen no tiene nada que ver con la unidad de cinta ni las LTO3, pero es chulísima :D

Primero de todo tenemos que contar que una cinta guarda los datos de forma lineal, para que os hagáis una idea, si editamos hexadecimalmente un disco duro, podremos ver que toda la información está ahí metida, pero es poco probable que el mismo fichero se encuentre todo entero en un conjunto de sectores seguidos, así que la forma de acceder a los datos de una cinta no será como acceder a un CD o stick usb, trataremos la cinta como un archivo de datos, en el caso de este post, como un .tar.

Así que vamos a contar un poco las herramientas que usamos en GNU/Linux para realizar backups en unidades de cinta.

Primero de todo tenemos los comandos mt y st.

st servirá para gestionar el brazo robótico (en el caso que tengamos uno), como no tenemos uno sólo lo menciono y os recomiendo hacer un man st para poder leer sus posibilidades.

mt sirve para gestionar todas las acciones de la unidad de …

Linux POSIX Capabilities

He encontrado este interesante post por la red, así que comparto con vosotros este magnífico texto sacado de securitybydefault:

http://www.securitybydefault.com/2008/09/linux-posix-capabilities.html

El mundo GNU y específicamente su proyecto estrella Linux, están de enhorabuena, acaban de cumplir 25 años


Para sumarnos a esa celebración, voy a escribir un poco sobre un aspecto de seguridad en Linux que no parece demasiado difundido y que puede resultar interesante de cara a securizar sistemas Linux.

Me refiero a las POSIX capabilities. Antes de entrar en materia, contextualizare un poco sobre que son y porque nos pueden ser útiles.

En un sistema Unix, hay una serie de restricciones (lógicas) a la hora de hacer cierto tipo de cosas que requieren privilegios especiales (ser root) esto supone que, enviar RAW SOCKETS, o abrir un puerto por debajo de 1024 son tareas absolutamente imposibles de hacer para un usuario normal. Esta restricción es evidentemente necesaria, pero supone otro problema, tal vez yo necesite que un usuario normal haga SOLO una tarea que requiera privilegios de root y no deseo darle ‘todo el poder’.

Rápidamente muchos habrán caído en que, si es solo una tarea, un comando, puedo poner ese comando en modo set-uid para que se ejecute con privilegios de root. Pero esto no soluciona el problema, por ejemplo, si yo necesito abrir el puerto 200, hacer que un comando se ejecute como root supone, colateralmente, darle acceso a /etc/shadow, ¿Yo quiero hacer esto? No, obviamente.

Para eso están las POSIX capabilities que permiten asociar funcionalidades de

Upgradear de Lenny a Squeeze

Hace pocos días hablábamos de la liberación de Lenny como estable, esto significa que todos los que solemos trabajar en testing para disponer de las últimas versiones de los programas instalados en nuestro sistema ahora estamos en un sistema estable, a partir de ahora los cambios que se realizarán serán actualizaciones de seguridad.

Como queremos seguir usando las últimas versiones de nuestros programas favoritos debemos actualizar nuestro sistema.

Lo primero es editar el fichero /etc/apt/sources.list y cambiar todo lo que sea lenny a squeezy (además de realizar antes una copia de seguridad de tus ficheros y configuraciones):

# vi /etc/apt/sources.list
deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.de.debian.org/debian/ squeeze main contrib non-free

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

#debian-multimedia
deb http://www.debian-multimedia.org squeeze main

guardamos el fichero, y ahora fijémonos que usamos aptitude en lugar de apt-get, los dos hacen lo mismo, pero en algunos foros he leído que es recomendable usar aptitude para realizar los upgrades (apt-get dist-upgrade), además por experiencia una vez me petó un sistema por usar apt-get :( no vayámosnosla a jugarla…

# aptitude update
# aptitude install apt dpkg aptitude
# aptitude full-upgrade

una vez terminada la actualización reiniciamos y cruzamos los dedos.

vale, como siempre, al momento que escribo el post lo voy probando, así puedo indicar si aparecen problemas y como resolverlos.

al gdm le ha costado un poco arrancar, pero finalmente ha arrancado correctamente, la versión de gnome que tengo ahora mismo es la misma.

en el upgrade tampoco ha habido …