Averiguar la IP de un 'chisme', que la consigue por DHCP

— [ edit | raw ] migrated from node/435

Cómo averiguar la IP asignada a un dispositivo empotrado, conocida su MAC.

Cómo ser un "Gnesis Maintainer"

— [ edit | raw ] migrated from node/434
Como ya anunciamos, Gnesis 3.0 está en marcha. Una de las características principales de esta distribución es que se incluirán las transparecencias y herramientas necesarias para las distintas asignaturas de la carrera (tanto para las Ingenierías Técnicas como para la Superior). Si quieres colaborar manteniendo algún paquete específico de alguna asignatura concreta, esta receta te enseñará a crear y mantener tu propio paquete

Introducción

En el presente documento veremos cómo crear un paquete Debian para empaquetar la documentación y las herramientas propias de una asignatura en cuestión. El proceso que paso a describir es bastante... "pagano". Se trata, sin duda, de la forma menos ortodoxa pero más sencilla de generar un paquete Debian. Si conoces otro método mejor, más fácil de mantener y con idénticos resultados, no dudes en utilizarlo.

Construyendo un paquete

Como ejemplo, vamos a suponer que estamos interesados en mantener un paquete para las asignaturas de Redes. Primeramente, creamos un directorio donde trabajaremos:
$ mkdir mipaquete
$ cd mipaquete
Una vez situados dentro del directorio de trabajo creamos la siguiente estructura de directorios:
 |- DEBIAN
 |- usr
    |-share
       |-doc
          |-gnesis-redes
En usr/share/doc/gnesis-"asignatura" copiaremos las transparencias y la documentación. Es conveniente estructurar la información que vamos a incluir como documentación, de tal forma, que quede bien definida. Por ello, si es necesario, creamos la siguiente estructura de directorios dentro de gnesis-"asignatura":
|- gnesis-redes
    |- sistemas
    |- gestion
    |- superior
    |- extra
En cada subdirectorio incluímos la documentación que corresponda y, en el directorio extra, añadimos documentos comunes como libros, vídeos y otro material no clasificado. Nótese que el directorio DEBIAN va con mayúsculas. En él vamos a incluir un archivo llamado control en que describiremos el paquete y las dependencias que éste tiene:
Package: gnesis-redes
Version: 6.7-1
Section: network
Priority: optional
Architecture: all
Depends: wireshark, dialog, python, scapy, net-tools, netcat, iptraf, tcpdump, ssh, nmap, traceroute
Maintainer: Cleto Martín cleto.martin@alu.uclm.es
Description: Paquete con las utilidades necesarias para las asignaturas de Redes de
 la Escuela Superior de Informática de Ciudad Real (UCLM).
Observemos los parámetros más relevantes:
  • Package: el nombre de paquete.
  • Version: se trata de la versión del paquete. El criterio de versiones es sencillo: "año académico"-"revisión". En el ejemplo, el paquete gnesis-redes pertenece al año académico 2006-2007 y está en su primera revisión. El número de revisión no vamos a utilizar en el caso de que haya que actualizar un paquete (bien sea por cambios en las transparencias, nuevo material, etc...). Si incrementamos el número de revisión, haremos que la anterior versión del paquete quede obsoleta y APT instale la nueva. Así, por ejemplo, si el profesor cambia las transparencias, con tan sólo un "apt-get upgrade" tendrás la documentación actualizada.
  • Architecture: es posible que en la asignatura haya herramientas que sólo están disponibles para arquitecturas específicas. Si no es el caso, o el paquete sólo incluye documentación, debemos especificar que es para cualquier arquitectura (all).
  • Depends: lista de los paquetes que son dependencias. Aquí, podemos especificar las herramientas y aplicaciones software que se utilizan en la asignatura. Si no importa la versión, podemos listar únicamente los nombres separados por comas. Si necesitamos una versión mínima o igual a alguna otra podríamos especificarlo de la siguiente forma:
    Depends: dependencia1 (>= 1.5), dependencia2, dependencia3 (= 3.4)
    
  • Maintainer: aquí tu nombre y tu dirección de correo.
  • Description: esta parte mostrará la descripción del paquete. Puedes tomar como plantilla la propia del ejemplo.
Una vez creado el archivo control vamos a crear otro archivo en el directorio DEBIAN llamado postinst para mostrar un pequeño aviso de fin de instalación:
#!/bin/sh

dialog --msgbox "La documentación y transparencias de redes está disponible en /usr/share/doc/gnesis-redes" 8 40
Le asignamos permisos de ejecución con:
$ chmod +x DEBIAN/postinst
Por último, debemos crear un archivo con todos los MD5 de los archivos que contendrá nuestro paquete Debian. Así:
$ md5sum * > DEBIAN/md5sum
Y ya sólo queda construir el paquete con dpkg. Pero antes, es posible que nuestro editor nos haya salvado copias de seguridad de los archivos creados (aquellos con el nombre arhchivo~). Si tenemos este tipo de archivos en DEBIAN los borramos con:
$ rm DEBIAN/*~
Ahora construímos el paquete:
# dpkg -b . ../gnesis-redes-6.7-1.deb
Esto nos creará en el directorio padre un paquete con el nombre indicado. Se deben respetar las versiones y revisiones que se hayan descrito en el fichero control a la hora de nombrar el .deb definitivo.

Manteniendo el paquete

Para mantener el paquete puedes desarrollarte un pequeño script a partir de lo anteriormente dicho. Si existe alguna modificación en el contenido de tu paquete basta con incorporar los nuevos archivos, actualizar el número de revisión, actualizar los MD5 y reempaquetar.

¿Qué hago para que se publique?

Sólo tienes que enviarme un correo a Cleto.Martin@alu.uclm.es contándome un poco cuál ha sido tu elección y, si está dentro de los márgenes de tamaño lógicos, enviarme el paquete. Si el tamaño del paquete no permite su envío por correo electrónico podemos establecer otro método de entrega.

NOTA

El software y documentación que se distribuyan en los paquetes debe de ser LIBRE. NO SE ADMITIRÁ NI SE DISTRIBUIRÁ ningún material que infrinja las leyes de propiedad intelectual.

Alternativas a parse_launch()

— [ edit | raw ] migrated from node/433
Llegados a este punto, sabemos como crear una pequeña aplicación, bastante sencilla, que use Gstreamer para las tareas multimedia (evidentemente, doy por hecho que has leido el mini-tutorial que dejé. Si todavía no lo has leido, y no sabes de que estoy hablando... ¡a que esperas!).

Propuesta: CRySoL en Podcast

— [ edit | raw ] migrated from node/431
Una propuesta rápida...

Cherokee y HTTPS

— [ edit | raw ] migrated from node/430
Todos conocemos Apache, un servidor web con muchos modulos, muchas cositas, muy usado, muy bueno, muy todo... pues bien, un programador de por aquí se decidió por crear un nuevo servidor web, más ligero y rápido y con la misma funcionalidad básica que apache: SSL, PHP, CGI y todas esas cosas que podemos pedir de un servidor Web normalito. Otra ventaja de cherokee es que es menos "atacado" que el apache, por tanto se conocen menos fallos. En fin, que vamos a explicar como habilitar el https en cherokee.

Configuración de cherokee

Sólo diré que la configuración es muy similar al de apache, el objetivo de esta receta no es explicar como configurar cherokee, sino simplemete una opción del mismo. Por tanto os remito a la documentación que tendréis en /usr/share/doc/cherokee cuando instaléis el paquete. Lo que si que voy a decir (y que conviene tener en cuenta) es que cuando cambiéis algo en la configuración, al reiniciar el servidor, en caso de error, no obtendréis ningún mensaje de error y el servicio no arrancará. Para probar los cambios es mejor arrancar el servidor "a lo bruto", es decir:
# /usr/sbin/cherokee
Así obtendréis mensajes de error y veréis si arranca o no. En fin, al trabajo...

Certificados

Es necesario crear una certificación para los sitios seguros, por eso de que sea un sitio confiable o no, etc. Por tanto, antes de nada debemos crear el nuestro propio, si tenemos los certificados creados para el apache, en /etc/apache2/ssl/apache.pem podemos usarlo directamente en el cherokee copiando el archivo en /etc/cherokee/ssl/cherokee.pem. Si necesitamos crear una certificación nueva, necesitaremos el paquete openssl y debemos hacer lo siguiente: crearemos un certificado CA, después deberemos crear una petición de certificación y finalmente firmaremos el certificado, esto se hace directamente en tres pasos:
/usr/lib/ssl/misc/CA.pl -newca
Introduciremos los datos que nos pidan (frase secretam etc.); esto generará un certificado CA, pero que todavía debemos firmar. Ahora creamos la petición de certificación:
$ /usr/lib/ssl/misc/CA.pl -newreq
Introduciremos los datos que nos vaya pidiendo. Con esto habremos obtenido una firma digital para nuestro certificado, ahora lo firmamos:
$ /usr/lib/ssl/misc/CA.pl -sign
Ya tenemos nuestro nuevo certificado firmado y listo para usar con cherokee (o apache) en un archivo pem. Lo copiamos a /etc/cherokee/ssl y lo llamamos cherokee.pem. Ahora sólo nos falta activar ssl en el cherokee.

Activar módulos

Habilitar/deshabilitar módulos es tan fácil como en apache: tenemos los módulos instalados en /etc/cherokee/mods-available y para activarlos debemos crear un enlace simbólico del módulo en /etc/cherokee/mods-enabled, es decir:
$ cd /etc/cherokee/mods-enabled
$ ln -s ../mods-available/ssl ssl
Ya sólo nos queda cambiar la configuración del servidor y reiniciarlo...

Configurar SSL

Este paso es el más complejo, abrimos el archivo /etc/cherokee/cherokee.conf y descomentamos la siguiente línea:
PortTLS 443
Reiniciamos el servidor:
$ /etc/init.d/cherokee restart
Y ya está... :-P Para más información: documentación de cherokee en /usr/share/doc/cherokee.

Referencias

Sacando jugo a EXIF, en consola (y en nautilus)

— [ edit | raw ] migrated from node/429

Esta receta recoge algunas herramientas que pueden resultar interesantes para trabajar con las cabeceras EXIF de los JPEG. Si lo que buscas es modificar la imagen propiamente dicha, mira la receta titulada Edición de imágenes en consola, con ImageMagick.

¿Redes neuronales? ¿Eso es todo?

— [ edit | raw ] migrated from node/421
Las redes neuronales, hoy por hoy, son algo novedoso que se está implementando dentro del ordenador de consumo gracias a la biomimética. Por qué copiar a la naturaleza y tratar de emular a nuestro cerebro con neuronas de rata de laboratorio y no encaminarse en otras vías.