05 abril 2007

El 69

Sí, lo confieso, ese título tan amarillista es para llamar la atención. Aunque tiene su por qué. En Murcia (¿en España?) las terminaciones de lotería reciben nombres populares. El 69 es la mudanza.

Y es que me "sesentaynuevo". Sí, me mudo. A partir de ahora le digo adiós a Blogger y estreno dominio propio :D

Los que me sigais a través del feed (¿hola?¿hay alguien ahí?), si usais el de FeedBurner no hace falta que hagais nada; ya está redireccionado. Si usais el de Blogger, por favor, actualizadlo.

En fin, que ya está todo listo (excepto un pequeño problema con Internet Explorer a 800x600. Gracias de nuevo, Microsoft) y que me largo, me independizo, me emancipo, me... :D

Pues eso, que nos vemos en el nuevo Debianizado. Espero que os guste.

03 abril 2007

Solaris 10 recibido

Hace justo un mes pedí que me enviaran Solaris 10, aprovechando que Sun estaba, por segunda vez, ofreciéndolo de forma gratuita por correo. Pues hoy ha llegado :D

Un DVD con Solaris 10 para SPARC, otro con Solaris 10 para x86 y otro con las Developer Tools.

01 abril 2007

Sistema de archivos encriptado

Encuentro en Kriptópolis un tuto sobre cómo crear un sistema de archivos encriptado (aunque en el original dice "cifrado") con Debian Etch.

Muy interesante y educativo aunque, como dicen en los comentarios al artículo original, hay formas mucho más sencillas y prácticas (sobre todo por la transparencia) como EncFS.

Aun así, muy instructivo y digno de leer.

30 marzo 2007

C-style en bash

Bash, como cualquier lenguaje, tiene una sintaxis propia. Eso lo sabe todo el mundo. Lo que no todo el mundo sabe es que, además, puede usar la sintaxis de C haciendo uso de los paréntesis dobles. Unos ejemplos.

Manejo de variables

Bash es muy flexible en cuanto a los tipos de variables, ya que el declararlas o no queda a elección del programador. En caso de no declararlas, una variable admite cualquier tipo. De hecho, si hacemos

a=3
a=$a+1


la variable a tomará el valor de string "3+1" (a no ser que hayamos declarado a como entero previamente). La forma correcta de hacerlo sería

let a=$a+1

en cuyo caso a sí pasaría a valer 4. Pero podemos echar mano del C-style:

((a += 1))

o bien

((a++))

Bucles y condicionales

Y esta parte es mucho más interesante, porque de esta forma podemos hacer uso de los potentes bucles de C en bash. Algunos ejemplos:

while ((a > 3 || b != 0))

if ((a > 3 && b == 5))

Admite también el uso del operador ternario de C:

((a!=b?3:11))

y, ya la reostia en salsa, el operador coma:

for ((a=1, b=1; a <= LIMITE ; a++, b++))

Gracias a kumo por (de nuevo) ponerme sobre la pista.

28 marzo 2007

Defina Linux

Leyendo en NeoFronteras una interesantísima noticia sobre Scientific Linux, una distro desarrollada en colaboración entre el Fermilab, el CERN y otros laboratorios y universidades del mundo, me he encontrado un párrafo que hace que el ego y el "orgullo patrio" de cualquier linuxero suba por las nubes:

Linux corre en diversos microprocesadores, es muy eficiente y tiene un excelente diseño. Es multitarea, multiusuario, multiplataforma y multiprocesador; en las plataformas Intel corre en modo protegido; protege la memoria para que un programa no pueda hacer caer al resto del sistema; carga sólo las partes de un programa que se usan; comparte la memoria entre programas aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema de memoria virtual por páginas; utiliza toda la memoria libre para caché; permite usar bibliotecas enlazadas tanto estática como dinámicamente; se distribuye con código fuente; usa hasta 64 consolas virtuales; tiene un sistema de archivos avanzado pero puede usar los de los otros sistemas; y soporta redes tanto en TCP/IP como en otros protocolos. Además está prácticamente libre de virus.

Pues sí, Linux es así :)

27 marzo 2007

Un Automatix para Debian Etch

Seguro que conoceis Automatix. Gracias a La otra bola de cristal me entero de que alguien ha escrito algo del estilo para Debian Etch.

Lo que más he odiado siempre de instalar un nuevo sistema es todo el rollo de las "instalaciones post-instalación". Me alegra que alguien se haya tomado la molestia de ahorrar todo ese tiempo a mucha gente.

24 marzo 2007

Aprendiendo Python



Vale, sí, muy potente como lenguaje de script y un código muy eficiente. Pero donde esté la elegancia de C...

En fin, voy a ver si me busco un pet project.

Beryl y Compiz se vuelven a unir

Y visto a posteriori era lógico que sucediera. Desde luego no se ha tratado de un fork al uso. No han habido dos ramas experimentando nuevas cosas, desarrollando features distintas. Al revés, el desarrollo de Compiz y de Beryl había seguido dos líneas paralelas. cojin lo explica perfectamente en su comentario en Menéame.

En el anuncio oficial ya dicen que no se conservará ninguno de los dos nombres, sino que se usará uno nuevo. Lo que (mode ironic on) vendrá de perlas a toda la gente que recién llega a GNU/Linux y no sabe distinguir entre un entorno de escritorio y un manejador de ventanas. Un nombre más a la lista.

Al margen de eso, creo que la unión puede ser muy beneficiosa para el usuario, siempre y cuando se conserven y potencien las mejores características de uno y otro, a saber (y me remito de nuevo al comentario de cojin): estabilidad por un lado y compatibilidad y rapidez de desarrollo por el otro.

21 marzo 2007

Devilspie: controlando las ventanas

Es difícil traducir la expresión window-matching utility, pero el concepto es sencillo: busca una ventana, y haz con ella lo que yo te diga.

Eso es Devil's Pie, una utilidad que analiza las ventanas que se crean en el escritorio, y si coinciden con unos criterios estipulados en la configuración ejecuta acciones sobre ellas: minimiza, envía a un workspace determinado, esconde su decoración... lo que queráis. Su flexibilidad es sencillamente increíble.

Devilspie se configura mediante archivos *.ds presentes en el directorio $HOME/.devilspie. Archivos que, por supuesto, hacemos a nuestro gusto, para que cada ventana en nuestro escritorio se comporte exactamente como queramos.

La configuración no es difícil, aunque tampoco intuitiva. Los archivos *.ds se componen de condicionales, booleanos y acciones. En foosel.net hay una descripción detallada de cada uno de ellos, con ejemplos de uso. Está en inglés, pero es sencillo, y los ejemplos facilitan la cosa aún más.

Como pequeño ejemplo de lo que devilspie puede hacer, os pongo alguno de archivos de configuración que uso:

(if (matches (window_name) "Eterm") (begin (pin) (undecorate) (skip_pager) (skip_tasklist) (below)))

Lo que viene a significar que si el nombre de la ventana coincide con Eterm se envíe a todos los workspaces (pin), no aparezca en el paginador (skip_pager), no aparezca en la lista de ventanas (skip_tasklist) y quede permanentemente bajo las demás ventanas (below). El resultado (combinado con una configuración específica de Eterm) lo podeis ver en esta captura de pantalla.

Otro ejemplo, más sencillo:

(if (is (window_name) "Akregator") (minimize))

Osea, si el nombre de la ventana es Akregator, se ejecute minimizada al inicio. Comodidad más que nada.

Las posibilidades son enormes: conversaciones de Gaim que se envíen automáticamente al escritorio 2, aplicaciones que permanezcan siempre sobre el resto de ventanas, programas que se abran siempre con un tamaño de ventana y una posición determinada... En una palabra: control total sobre las ventanas.

20 marzo 2007

Entrevista con Ian Murdock

Ian MurdockLinux Format ha publicado una entrevista con Ian Murdock, el fundador del Proyecto Debian (sí, el ian en Debian).

En ella habla de cosas como el modo en que afectan al Proyecto los retrasos en las releases, la necesidad de un DPL fuerte y sus preocupaciones con el futuro del proyecto Ubuntu en cuanto a la compatibilidad con Debian.

Nuevo logo de KDE

Nuevo diseño, para "hacer juego" con el nuevo set de iconos predeterminados en KDE4, Oxygen:

Nuevo logo de KDE

Colabora!

Seguro que muchos, como usuarios de software libre, habeis sentido el impulso/deseo/necesidad de, de un modo u otro, colaborar en su desarrollo. Sí, hablo de esas ocasiones en que os sentís frustrados por no ser expertos programadores o por no tener conocimientos suficientes para crear documentación de calidad. Seguro que sabeis de lo que hablo. Uno de esos impulsos fue precisamente el que me llevó a comenzar este blog...

Pero no hace falta tanto para colaborar con el desarrollo del software libre. Hoy leo en Kernel Source que el grupo de desarrollo de Konsole propone una encuesta para que los desarrolladores conozcan cosas como qué características nos parecen más útiles, cuáles nos gustarían ver en el Konsole de KDE4, cuáles nos parecen más fáciles/difíciles de configurar, etc. Está en inglés, pero vamos, que el nivel es muy básico.

No hay excusas: Colabora!!!

16 marzo 2007

Un agujero en OpenBSD siempre es noticia

Y más uno de este calibre. Pero empecemos por el principio.

OpenBSD es un sistema operativo de tipo UNIX basado en 4.4BSD, creado en un principio como un fork de NetBSD. La característica más significativa de este sistema es su seguridad. No en vano la implementación de SSH usada en todos los sistemas *NIX es OpenSSH. Eso lo dice todo. De hecho, en su web se jactan de haber tenido ¡Sólo un agujero de seguridad remoto en la instalación predeterminada en más de 8 años!. Tendrán que ser dos a partir de ahora.

Y es que la implementación del protocolo IPv6 de OpenSSH adolece de una vulnerabilidad (calificada por Secunia de altamente crítica) de tipo BoF (buffer overflow). Con todo lo que ello conlleva. Y es que:


  1. Afecta a la instalación por defecto, ya que IPv6 está incluido en ella

  2. Es explotable de forma remota

  3. Permite la ejecución de código arbitrario en el contexto del kernel

Y eso en un sistema usado como firewall, IDS y otras aplicaciones de seguridad.

La buena noticia: OpenBSD ha publicado ya un parche que soluciona el problema, como no podía ser de otra manera.

Y sí, hay exploit, publicado por el propio descubridor del bug, Alfredo Ortega, de Code Security.

Fuente: El blog de la tecnología

13 marzo 2007

El efecto Menéame



Gracias a todos los que me votásteis :)

11 marzo 2007

Controlando Linux con el mando de la Wii

kumo me ha puesto sobre la pista, y como buen geek no he podido evitarlo: había que investigar :)

De momento la cosa está en pañales, pero promete, y mucho. La cuestión es establecer una conexión vía Bluetooth entre el mando de la Wii y el sistema para controlar éste a través de aquél, como con cualquier otro HID.

Lo primero, como es lógico, es contar con un adaptador de Bluetooth y tener implementada la pila de protocolos BT (bluez). Tras esto comprobamos que podemos detectar el mando (debemos ponerlo en modo sync):



Una vez comprobado esto, tenemos que preparar el sistema. Primero el software que necesitamos:
  • Ya hemos nombrado la pila de protocolos (apt-get install bluetooth bluez-utils)

  • PyBluez, un conjunto de wrappers Python sobre Bluetooth (apt-get install python-bluez).

  • Python-Xlib, interfaz para Python del protocolo X11 (apt-get install python-xlib).

  • Es recomendable PyGame (apt-get install python-pygame) para poder observar la respuesta del sistema a los movimientos del mando.

Hay que parchear Python. Para ello editamos el archivo /usr/share/python-support/python-xlib/Xlib/protocol/display.py y buscamos la línea donde dice:

recv = self.socket.recv(2048)

En mi caso está en la línea 531. Lo sustituimos por

recv = self.socket.recv(4096)

Cargamos (tirando de modprobe) los módulos uinput y evdev. Si no los teneis, ya sabeis, toca recompilar. Tras esto comprobamos que se ha creado el dispositivo uinput:

find /dev -name uinput

Si no lo teneis en /dev/misc/uinput lo linkais desde donde lo tengais, ya que PyBluez querrá acceder al dispositivo en esa ruta. Hay que darle permisos para los usuarios (chmod 666 /dev/misc/uinput).

Ya casi están los preparativos. Falta configurar el servidor X. Para ello editamos el archivo /etc/X11/xorg.conf y añadimos un InputDevice:

Section "InputDevice"
Identifier "Wiimote"
Driver "evdev"
Option "Name" "Nintendo Wiimote"
EndSection


y en la sección ServerLayout añadimos la línea

InputDevice "Wiimote"

Listo. Reiniciamos el servidor X (invoke-rc.d [gdm|kdm|xdm] restart) y a otra cosa, mariposa. Uséase, a por el controlador.

WMD (Wiiwanna Motte Dammiit!) es un script en Python que actua como controlador para el Wiimote, usando PyBluez como wrapper para la comunicación Bluetooth, como seguramente ya habríais imaginado a juzgar por el software que hemos instalado. La última versión es la 0.1.2, aunque he tenido problemas con ella y he usado la 0.1.1. Por cierto, el WMD could make your Wii explode! del disclaimer es una coña marinera, que nadie se me acojone :D

En fin, éste es un vídeo con el resultado. Como veis la cosa, como digo más arriba, está en pañales aún, pero con un potencial increíble.



Como podeis observar, el control sobre el puntero es muy primitivo. En la ventana de PyGame podemos observar los gráficos con los movimientos del mando (rojo para movimientos en horizontal, azul en vertical y verde para profundidad) y la consola devuelve el botón que se pulsa. El botón HOME detiene el script e interrumpe la comunicación entre el mando y el sistema.

Por el momento, la sensibilidad es demasiado alta y no se tiene un buen control del puntero. De hecho, cuesta dirigirlo a donde quieras. No he conseguido que los botones produzcan ninguna acción, como lanzar un icono, mover una ventana, etcétera. También he probado el ejecutable xev para ver qué eventos me devolvía, pero no recibe señales del mando. Total, nada útil de momento. Pero veremos cómo evoluciona el asunto, porque esto promete muy mucho. Y por favor, si alguien ha llegado más lejos, agradecería muchísimo un comentario por su parte. Seguiremos investigando ;)

08 marzo 2007

CPU Frequency Scaling

He encontrado gracias al blog de mUammAr la forma de regular la frecuencia del procesador en función de la carga que soporta. En un sobremesa no es algo muy útil, pero en un ordenador portátil esto es un mundo, ya que conlleva un ahorro de energía y por tanto alarga la duración de la batería. Él dice haber conseguido que su batería durara casi una hora más. La mía dura ahora más de una hora más que antes.

Describiría el procedimiento, pero ya lo ha hecho él perfectamente y yo no podría aportar nada nuevo, lo único que haría sería hacer un copipega. Sólo quería hacerme eco y dar fe de que realmente es así.

Así que lo mejor que podéis hacer es pinchar el enlace y ponerlo en práctica :)

06 marzo 2007

Nuevo escritorio

Entre partida y partida a la Wii :D he estado redecorando el escritorio. Y como me gusta cómo ha quedado, pues lo planto aquí :)



El monitor de sistema (a la derecha) lo he hecho yo mismo porque no he encontrado ninguno que me terminara de gustar en KDE Look. Los otros desklets (al igual que el fondo de escritorio) sí los he bajado de ahí aunque (perdón a los autores) no he guardado el enlace.

El anterior escritorio que tenía era éste.

05 marzo 2007

No es plagio, pero como si lo fuera

Hace unas semanas, hablando de los dos logos de Debian, decía que el logotipo de la espiral es libre, y puede ser utilizado libremente por cualquier persona y con cualquier finalidad, incluso con fines comerciales.

Pues GTS Digital lo ha tomado al pie de la letra. Con todo el morro del mundo. Y eso que se dedican al diseño gráfico...

Visto en ghostbar's blog

04 marzo 2007

Wii!

Me han adelantado el regalo del día del padre :D



Hoy no espereis verme mucho por ningún sitio ;)

03 marzo 2007

Análisis forense de sistemas

Esta mañana, releyendo el magnífico tutorial Análisis forense de sistemas de neófito (lo podeis encontrar en la sección Tutoriales en PDF), he decidido retomar el tema, que dejé aparcado hace muuuuuucho tiempo.

El análisis forense es, según la definición de la Wikipedia, una metodología de estudio ideal para el análisis posterior de incidentes, mediante el cual se trata de reconstruir cómo se ha penetrado en el sistema, a la par que se valoran los daños ocasionados. Puesto así no suena tan interesante como en realidad es.

Así que me he vuelto a descargar las imágenes de disco de un sistema comprometido del Proyecto Honeynet y he abierto un caso con Autopsy. El tutorial de neófito os guiará paso a paso sobre cómo hacerlo.



Si a alguien más le gusta el tema y se anima podemos compartir información y descubrimientos :P

Enlaces:
forensic-es
Honeynet Project: The Forensic Challenge
Análisis forense de sistemas GNU/Linux, UNIX

01 marzo 2007

mp3blaster

Siempre he dicho que el poder de Linux radica en su shell. Y además he predicado con el ejemplo. Durante mi época "dura" usé durante varios meses mis sistemas sin entorno gráfico. Navegaba con Lynx, conectaba a IRC con BitchX, a la red MSN con TMSNC, usaba mencoder+dvdauthor+cdrecord para grabar las películas y verlas en el DVD del salón... Sí, demasiado radical, ya lo sé, pero no podeis imaginar la soltura que se coge con la shell así :D

El caso es que durante esa época sí eché algo de menos: un buen reproductor de música. Tiraba de mpg123 o de mplayer, pero eso sólo permite reproducir canciones, nada más. Me hice incluso un sencillo script que aún conservo, que dibujaba en la consola una primitiva GUI para elegir la canción (si le echais un ojo al código fuente vereis que incluso soporta búsquedas):



El caso es que, ahora, dos años y pico después, encuentro lo que necesitaba: mp3blaster.



Como podeis ver en la captura, mp3blaster es un reproductor para consola con prácticamente todas las opciones que tiene uno gráfico. No llega al nivel de amaroK pero ¿qué otro reproductor llega a su nivel? El caso es que en la GUI que este programa dibuja en la consola no se echa en falta absolutamente nada. Ains, ojalá lo hubiera conocido antes.

27 febrero 2007

El instalador gráfico de Etch

outime ha tenido el detallazo de grabar la instalación gráfica de Etch y colgar el vídeo en Youtube, para regocijo general y placer de los debianitas que, como yo, quizá no podamos verlo (gracias al dist-upgrade).

Pues hala, a disfrutarlo :D

26 febrero 2007

Configurando el lector de tarjetas MMC

Ya va para dos años que tengo el portátil, y aún tenía algo pendiente de hacer: configurar el multilector de tarjetas. Lo intenté una vez con Sarge, pero no lo conseguí y tampoco le dí demasiada importancia. Tampoco es que lo necesite, así que lo dejé aparcado. Pero ayer (tarde de domingo y sin nada interesante que probar) me dí el "de hoy no pasa". Ahora sé (antes no había investigado mucho el tema) que cuando probé con Sarge no tenía ninguna posibilidad de conseguirlo: el módulo no se incluyó en el kernel hasta la versión 2.6.17.

Lo primero es identificar el dispositivo. Para ello tiramos de lspci:

06:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
06:06.4 Generic system peripheral [0805]: Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) Controller


Mi multilector es un Texas Instruments de un modelo que, por lo que he visto en Google, es bastante habitual encontrar. Como vemos, el kernel reconoce dos dispositivos: es lector de MMC y el de SD. Del segundo no voy a hablar, ya que para ello es necesario el módulo tifm, que no viene incluído en los kernels oficiales. Quizá algún día escriba sobre el tema.

El módulo necesario, el sdhci, está disponible a partir de la versión 2.6.17 del kernel Linux, así que un Sarge con kernel oficial de Debian no puede manejarlo (Sarge tiene un 2.6.8, si no recuerdo mal), pero en Etch ya contamos con un 2.6.18 en los repositorios, así que no hay problema. La alternativa es compilar el kernel uno mismo, recordando incluir los módulos necesarios.

Fijémonos en el identificador de dispositivo. En mi caso es 06:06.3, pero en el vuestro puede ser cualquier otro. Ejecutamos (como root) lspci -xxx | grep -A 5 06:06.3 (recordad sustituir el identificador de dispositivo por el vuestro):

06:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
00: 4c 10 33 80 06 01 10 02 00 00 80 01 08 80 80 00
10: 00 40 10 b0 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 3c 10 81 30
30: 00 00 00 00 44 00 00 00 00 00 00 00 0a 01 07 04
40: 00 00 00 00 01 00 02 7e 00 00 00 00 00 00 00 00


Ese es el resultado que obtengo yo. Fijaos en la línea que empieza por "40:" (la última), en el valor de casilla que hay bajo el "0a". En mi caso es 00, pero, por lo que he visto por ahí, puede tener un valor de 40 o de 60 también. En cualquier caso, tenemos que cambiar el segundo 0 por un 2 (si es 40, debe quedar como 42, si 60, 62; en mi caso debe quedar como 02). Si alguien quiere saber por qué, que lo investigue y luego me lo cuente, porque no tengo ni idea. El caso es que funciona. Para conseguirlo ejecutamos el siguiente comando:

setpci -s 06:06.3 4c.b=02

De nuevo recordaros sustituir el 06:06.3 por el identificador del dispositivo en vuestro caso particular, y el 02 por lo que corresponda. Si volvemos a ejecutar el lspci -xxx | grep -A 5 06:06.3 veremos que ahora devuelve lo correcto:

06:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
00: 4c 10 33 80 06 01 10 02 00 00 80 01 08 80 80 00
10: 00 40 10 b0 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 3c 10 81 30
30: 00 00 00 00 44 00 00 00 00 00 00 00 0a 01 07 04
40: 00 00 00 00 01 00 02 7e 00 00 00 00 02 00 00 00


Bien, pues ya está todo listo: cargamos los módulos necesarios con modprobe (hay que cargar los módulos sg, sd_mod, mmc_core, mmc_block y sdhci), y veremos algo así:

sdhci: Secure Digital Host Controller Interface driver, 0.12
sdhci: Copyright(c) Pierre Ossman
sdhci: SDHCI controller found at 0000:06:06.4 [104c:8034] (rev 0)
ACPI: PCI Interrupt 0000:06:06.4[A] -> GSI 22 (level, low) -> IRQ 177
mmc0: SDHCI at 0xb0109000 irq 177 DMA
mmc1: SDHCI at 0xb0108c00 irq 177 DMA
mmc2: SDHCI at 0xb0108800 irq 177 DMA


Ya podemos insertar la tarjeta MMC. El led parpadea y (si teneis bien configurado el automount) Konqueror nos abre una instancia con el contenido de la tarjeta. Podeis también acceder a su contenido a través del directorio /media/MMC. Me encanta :D

Una cosa más. Debemos asegurarnos de que en arranques sucesivos todo esté como lo hemos dejado. Para ello editamos el archivo /etc/modules para incluir los módulos que hemos cargado, de forma que se vuelvan a cargar en cada arranque del sistema. Por último, editamos el /etc/rc.local y añadimos, antes de exit 0, el comando setpci -s 06:06.3 4c.b=02. Y listo. Por fin puedo usar el lector de MMC que tengo de adorno desde hace casi dos años :D

Una última recomendación: una tarjeta MMC es un dispositivo de almacenamiento como cualquier otro. Cuando hagais un intercambio de datos con el dispositivo recordad hacer un sync y desmontarlo antes de sacarla del lector, si no quereis perder datos. Que aproveche.

25 febrero 2007

Repositorios de Beryl para Etch

Aún no los había puesto, así que ahí van:

deb http://debian.beryl-project.org etch main
deb-src http://debian.beryl-project.org etch main


No olvideis importar la clave para la verificación de paquetes de apt:

gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 3FF0DB166A7476EA
gpg --armor --export 3FF0DB166A7476EA | sudo apt-key add -

OpenSSH le enseña las bragas al mundo

Hace unas semanas empecé a subir a mi cuenta de Googlepages todos los tutoriales en PDF que tenia en el disco duro cuya licencia lo permitiera. Uno de ellos fue OpenSSH le enseña las bragas al mundo, un gran tuto que explica, de cabo a rabo, cómo funciona el protocolo SSH, las bases de la criptografía asimétrica, etc.

Ese tutorial ya no está colgado. A su autor, David, no le gusta cómo quedó y me ha pedido que lo elimine. Promete avisar cuando la versión revisada esté lista y pueda ser colgado de nuevo. Esperaremos :)

A cambio (y creo que ganamos con el cambio) me permite publicar el vídeo (335 Mb) de una charla con esa misma temática que dio en PoLinux. Es un vídeo de 78 minutos en el que, de una forma clara y amena, David nos explica todos los entresijos del protocolo SSH y su implementación por parte de OpenBSD, OpenSSH. Una joya imprescindible.

De paso en el FTP de PoLinux encontraremos, junto a ese vídeo, otros también muy interesantes. Desde luego los chicos de PoLinux se lo montan de lujo. Gracias David :)

24 febrero 2007

Archivos de configuración de los kernels oficiales de Debian

A partir de ya (lo traigo calentito, oiga, el anuncio es de hace media hora) se pueden obtener en Debian Official Kernel Configuration files los archivos de configuración de los kernels que hay en los repositorios de Debian.

Normalmente estos archivos se distribuyen como parte de los paquetes linux-image, pero ahora ya se pueden obtener independientemente del binario del kernel. ¿Y para qué? Bueno, pues por si quereis compilar un kernel igual al oficial pero necesitais alguna opción que éste no trae, o por si quereis comprobar si uno de los kernels oficiales lleva activada una opción que os interesa antes de instalarlo, o por si quereiss consultar las opciones que tiene activadas un kernel oficial que ya está archivado...

¿Y cómo usarlo? Pues como cualquier otro .config. Se descarga, se descomprime, se copia en la raíz del código fuente del kernel como .config y se hace un make oldconfig.

22 febrero 2007

Zenity: cuadros de diálogo en tus shell scripts

Todo el que usa Linux tarde o temprano acaba haciéndose algún shell script. Desde pequeños scripts que automatizan tareas engorrosas, hasta auténticos monstruos de más de quinientas líneas, los scripts son realmente necesarios en algún momento u otro. Yo los uso a diario: para hacer copias de seguridad periódicas, para cambiar la configuración de la wi-fi, para sincronizar dispositivos... Incluso he publicado alguno de ellos ya aquí.

Zenity es una utilidad que hace realmente fácil el mostrar cuadros de diálogo con GTK+ en tus shell scripts. Su uso es realmente sencillo y el resultado muy llamativo.

Zenity retorna al script distintos valores dependiendo de la acción del usuario sobre el cuadro de diálogo, de forma que puedas usarlos para lanzar condicionales o para capturar variables (VARIABLE=`zenity --entry`, por ejemplo). La caña, vamos. Un sencillo ejemplo:

if (`zenity --question`); then zenity --info; else zenity --error; fi

El resultado:



zenity --question devuelve 1 (o, lo que es lo mismo, true) si el usuario pulsa "Aceptar", y 0 (o false) si pulsa "Cancelar".



Las posibilidades son muchas y muy variadas, y su uso no puede ser más sencillo. man zenity para ver todas las posibilidades que ofrece ;)

21 febrero 2007

¿Por qué aún no se ha liberado Etch?

El domingo, Martin F. Krafft (maintainer de todos estos paquetes) dio una charla durante la primera SkyCon titulada Debian Etch: how to scratch the itch (Why we have not yet released and what you can do about it), en la que explicaba por qué aún Etch no ha pasado a estable. madduck ha liberado la presentación de la charla para que los que no estamos "dentro" del Proyecto sepamos qué está ocurriendo. En ella se puede ver un repaso sobre cómo funciona Debian por dentro, cómo se gestionan las actualizaciones, los ciclos de las releases, etcétera, incluyendo un gráfico explicativo del ciclo de un paquete, desde el código fuente hasta que llega a los repositorios de stable.

A lo que vamos: ¿por qué aún no se ha liberado Etch? Las razones son múltiples, pero se reducen a una: "porque aún no estamos preparados". Filosofía Debian en estado puro: si no tiene la calidad necesaria, no hay nada que hacer. Digan los plazos lo que digan.

Visto en detalle, hay tres grandes grupos de razones para el retraso: técnicas, de supervisión (management) y razones sociales.

Razones técnicas
  • Aún hay más de 100 bugs RC (release-critical, críticos para la liberación) y el número tiende a permanecer estancado (en estos momentos son exactamente 96)

  • El kernel no está funcional (acapara aproximadamente el 30% de los bugs RC)

  • El instalador se ve demorado por el kernel

Razones de supervisión
  • Previsión de la fecha de liberación demasiado ambiciosa/irreal

  • No haber tenido en cuenta los ritmos de resolución de los bugs RC de liberaciones anteriores

  • Estadísticas de conteo de los bugs RC confusas (tres fuentes)

  • Poner Etch como frozen demasiado pronto


Razones sociales
  • Desacuerdo acerca de dunc-tank y creación de dunc-bank *

  • Pérdida de tiempo en discusiones

  • Desmotivación de los desarrolladores


* Dunc-tank fue la idea promovida por el actual DPL de pagar a los desarrolladores con fondos del Proyecto para acelerar el desarrollo y poder cumplir los plazos. Ya hablamos de ello en su día. Por el contrario, dunc-bank es una especie de búsqueda de bugs agresiva. Como dice Martin: "creemos que la calidad absoluta es más importante que mantener las promesas de liberación que otros hicieron por nosotros".

No sé, a mí me da la impresión de que se respira un cierto aire de "mosqueo" dentro del Proyecto, como que los DD (Debian Developers) no están muy de acuerdo con las decisiones que ha venido tomando el DPL en torno a la liberación de Etch, y que eso se está notando. Y lo entiendo: Debian no es una empresa. Aquí las cosas se hacen por amor al arte. Y se hacen bien, o no se hacen.

Las cosas buenas llegan para aquellos que... esperan

Pues eso, esperaremos.

20 febrero 2007

Sistemas basados en BeOS

Al hilo de la entrada sobre Haiku, me ha parecido interesante hacer un repaso de los distintos sistemas disponibles basados en BeOS: OSBOS (Open Standards BeOS-compatible Operating Systems).

BeOS es un sistema operativo desarrollado por Be Inc. en 1990. Es un sistema monousuario, con un microkernel modular. En el enlace podeis leer más acerca de sus características y su historia.

Lo que nos interesa ahora es que varios proyectos open source "recrean" (recordemos que BeOS es un sistema propietario) BeOS 5. Veamos los más interesantes:

Haiku OS, del que ya hemos hablado hace poco.

BlueEyedOS, inspirado en BeOS pero con un kernel Linux. Las APIs son de BeOS, reescritas con algunos cambios. En el momento de escribir esto la web está caída. Sinceramente, no sé si es temporal o es que el proyecto también ha fenecido.

Cosmoe. Como el anterior, Cosmoe utiliza unas APIs muy similares a las de BeOS, corriendo sobre un kernel Linux. De hecho, muchos programas para BeOS pueden ser recompilados y usados en Cosmoe.

Zeta OS es, sin duda, el más interesante. Inicialmente desarrollado por yellowTAB (en esa época era Zeta BeOS), en la actualidad está a cargo de Magnussoft. Yo mismo lo tuve conviviendo con Debian y FreeBSD bastante tiempo durante la época de yellowTAB.

Sequel, basado en un microkernel de licencia BSD. Aunque me temo que este proyecto está también muerto.

19 febrero 2007

Charla sobre *BSD en IRC

Leo en 120% Linux que el 11 de marzo hay una charla en IRC sobre sistemas *BSD. Copio y pego directamente:

Resumen de la charla

La charla trata sobre la familia de sistemas *BSD y sobre FreeBSD, se hablará sobre la historia de estos sistemas y la diferenciación de estos sistemas en cuanto a GNU/Linux. Veremos cuáles son los tres principales sistemas operativos *BSD y cuál es la licencia de éstos. Ya ahondando un poco más en FreeBSD, veremos las tres distintas versiones que tiene y cómo gestionan las aplicaciones mediante compilaciones e instalaciones de paquetes binarios ya precompilados junto a las opciones que da el sistema operativo para optimizar el rendimiento de la máquina.

Cita

La cita es el Domingo 11 de marzo a las 19.00 de la tarde (hora española) en el canal #eldemonio del servidor freenode (cómo no) del IRC.


Ponente

\Shadowfox\ -> hackresearch

Probando Haiku OS

Haiku es un nuevo sistema operativo open source (aún está en desarrollo) basado en BeOS que, según me entero gracias a Linuzeros, se presentó en Google el día 13 de febrero (vídeo de la presentación, en inglés).

¿Open source y basado en BeOS? Esto sólo puede traer cosas buenas, así que merece la pena probarlo. En su web hay disponibles dos imágenes de prueba, una raw y otra para VMWare. Podemos bajar una u otra desde la página de descargas de Haiku.

La imagen raw es una imagen de disco duro que podemos "instalar" usando dd, pero para probarla no hace falta tanto: basta con tirar de QEMU. Para ello arrancamos la máquina virtual con las siguientes opciones:

qemu -boot c -hda haiku.image -m 512 -k es

Con -boot c le decimos que arranque desde disco duro, especificando con -hda haiku.image que ese disco duro es la imagen que hemos descargado (primero hay que descomprimirla, claro, viene en .tar.bz2). -m 512 indica la cantidad de RAM que queremos asignar a la máquina virtual, mientras que -k es establece el teclado en español. También podeis usar si quereis la opción -full-screen, eso va al gusto :)



Pues bien, ahí tenemos ya nuestra máquina virtual con Haiku, un sistema nuevo listo para experimentar con él. Me encantan estas cosas... :D

16 febrero 2007

Creando un entorno de pruebas con chroot

Tenía pensado escribir un post sobre este tema, pero se me han adelantado. Y me alegro. Me alegro porque ni de lejos habría sido tan bueno como el que ha escrito Miriam Ruiz. En Creando un entorno chroot para pruebas (que también podeis leer en Planeta Debian, ya que Miriam es desarrolladora de nuestra distro preferida) explica detalladamente y paso a paso cómo hacerlo, añadiendo además algunos consejos y truquillos (se nota que basados en la experiencia personal) muy útiles a la hora de llevar a cabo la experiencia, como la "recetilla" para iniciar el entorno enjaulado en una tty en el arranque del sistema.

Pero es que no se queda ahí y va aún más lejos facilitándonos un script que hace todo esto de forma automatizada.

También, relacionado con el tema, os recomiendo echar un vistazo a otro magnífico tutorial escrito por ella: Enjaulando al Apache.

Mi más sincero agradecimiento :)

15 febrero 2007

La Constitución de Debian

Conforme el Proyecto Debian fue creciendo desde sus comienzos, pronto se hizo evidente que eran necesarias una serie de reglas "semiformales" que ayudaran en la resolución de conflictos. El resultado es la Constitución de Debian. Ésta describe la estructura organizativa para la toma de decisiones en el Proyecto, especificando a la vez qué poderes se conceden a cada individuo dentro de esa estructura.

Hasta el momento ha habido cuatro versiones de esta Constitución. La primera, la versión 1.0, fue ratificada en diciembre de 1998. La versión actual es la v1.3, en vigor desde el 24 de septiembre de 2006.

Su comienzo es toda una declaración de intenciones:
El Proyecto Debian es una asociación de individuos que han hecho causa común para crear un sistema operativo libre.


A continuación enumera las seis entidades con voz en la toma de decisiones dentro del Proyecto:
  1. Los Desarrolladores, mediante una Resolución General o una elección

  2. El Líder del Proyecto

  3. El Comité Técnico o su Presidente

  4. El Desarrollador que trabaja en una tarea determinada (esto se refiere a toma de decisiones respecto a esa tarea)

  5. Delegados nombrados por el Líder del Proyecto para una tarea específica

  6. El Secretario del Proyecto

Cualquier persona puede ocupar varios puestos, con la excepción de que el Secretario del Proyecto no puede ser a la vez el Líder del Proyecto ni el Presidente del Comité Técnico. Podeis ver el organigrama actual del Proyecto aquí. También os recomiendo, si os interesa conocer la forma en que se toman las decisiones en el Proyecto, la lectura tanto de la Constitución como del resto de enlaces que he ido poniendo. Todo un ejemplo de organización.

11 febrero 2007

Opera en USB

Opera @USB es una versión del navegador más rápido de toda la "intesné" para llevar y ejecutar desde un USB stick.

Es la solución perfecta para no tener que depender del navegador que haya instalado cuando te conectas desde una máquina que no sea la tuya, para llevar tus marcadores contigo (los podemos importar copiando el $HOME/.opera/opera6.adr en el directorio del programa y eligiendo Archivo - Importar y exportar - Importar marcadores de Opera), etc. La única pega es que es para Windows. Pega según se mire, porque generalmente una máquina "que no sea la tuya" es un equipo Windows.

Opera @USB

Además, como podeis ver por el icono que presenta en la esquina superior izquierda (la copa de vino en lugar de la "O"), se ejecuta perfectamente con WINE bajo Linux.

Opera @USB viene también con los plugins para Windows de serie, por lo que podremos, por ejemplo, visualizar páginas con Shockwave, para el que no hay versión de Linux (o no lo conozco, ¿alguien sabe algo de esto?). Y en sólo 6 Mb de espacio! Viene, incluso, con algún plugin de más, como podeis ver:

Plugins de Opera @USB

:D

10 febrero 2007

Alternando escritorios virtuales

Una de las cosas que más me gustan de un escritorio Linux es que es capaz de manejar más de un escritorio (valga la redundancia) virtual, y es una de las cosas que más chocan a los usuarios de Windows (pobres, si supieran...) la primera vez que ven uno.

Normalmente para alternar entre escritorios usamos la combinación de teclas [Ctrl]+[Tab] o bien el applet de la barra de tareas, pero hay formas más cool de hacerlo.

Komposé

Komposé es una pequeña aplicación para KDE que una vez instalada (apt-get install kompose) y ejecutada nos muestra un tray icon que al pinchar sobre él nos muestra una pantalla con los escritorios que tenemos en ejecución y las ventanas abiertas en ellos:

Komposé

Basta pinchar en la zona correspondiente al escritorio al que querais ir.

3dDesktop

3dDesktop (apt-get install 3ddesktop) es un programa basado en la arquitectura cliente-servidor que hace uso de la aceleración 3D (con OpenGL) para alternar entre escritorios de una manera bastante menos prosaica. Tras ejecutar el servidor 3ddeskd (podemos incluirlo en .kde/Autostart o la ruta equivalente de Gnome), al ejecutar el cliente 3ddesk nos muestra una pantalla de este estilo (las capturas no son mías):

3dDesktop

3dDesktop

El número sobre la pantalla informa del escritorio que hay al frente en ese momento. Podemos controlarlo tanto con el teclado como con el ratón, aunque esta última forma es mucho más cómoda (click derecho/izquierdo o rueda: rotación; click con los dos botones a la vez: selección de escritorio).

Las opciones son múltiples, y las podemos configurar de forma sencilla editando el archivo /etc/3ddesktop/3ddesktop.conf.

Happy switching :D

Elecciones Debian Project Leader 2007

Algo que se me había pasado por alto (imperdonable) es que desde esta semana estamos de elecciones, y es que el lunes comenzó el periodo de candidaturas para DPL.

El Debian Project Leader es elegido en una votación en la que todos los desarrolladores de Debian tienen derecho a voto. Para la elección del DPL, cuyo cargo dura un año, Debian utiliza el método Condorcet, en el que los votantes hacen una lista de los candidatos en orden de preferencia.

El DPL actual, cuyo mandato termina el día 17 de abril, es Anthony Towns, promotor, si lo recordais, del controvertido DUNC. Podeis consultar una lista de los líderes anteriores en la historia de Debian.

A lo que vamos. El calendario de las elecciones es el siguiente:

Periodo de candidaturas: Del 4 al 25 de febrero
Periodo de campaña: Del 25 de febrero al 18 de marzo
Periodo de votaciones: Del 18 de marzo al 8 de abril

El día 8 de abril a las 00:00:00 UTC termina el periodo de votaciones, y para el 17 de abril tendremos nuevo (o el mismo si lo reeligen, claro) DPL.

09 febrero 2007

Etch está al caer

Hace poco un lector y comentarista habitual del blog, kumo, me preguntaba aquí mismo si sabía cuánto faltaba para que Etch pasara a stable.



Este gráfico representa la evolución en el número de bugs críticos en Debian (pinchando sobre él accedereis a la web de bugs de Debian). Lo que nos interesa es la línea verde. Esta línea marca el número de bugs que conciernen a la próxima release, en estos momentos Etch. Su número es, en el momento de escribir esto, exactamente 101 (no, cinco no, en decimal, ciento uno :D), y bajando a velocidad considerable (en las últimas horas se han cerrado cinco, uno de ellos concerniente a amsn 0.95, y se ha abierto uno). Observad el mínimo en el mes de junio de 2005: fue el paso de Sarge a stable. ¿Sabeis lo que esto significa?

EXACTO!! Que estamos a muy poquitos bugs de la nueva release! :P

08 febrero 2007

Crear un LiveCD de Debian

Esta mañana mi akregator me daba una agradable sorpresa: ServoMac explica en su blog (en mallorquín) cómo crear un LiveCD de Debian. La verdad es que me ha llamado mucho la atención porque no tenía ni la más mínima idea de que fuera tan fácil, y como ServoMac se ha enrollado y me ha dado permiso para fusilarle el post, pues lo hago :)

Básicamente es tan sencillo como instalar el paquete live-package, que provee la utilidad make-live. Con esto, el tema se reduce a hacer

make-live -d [sarge|etch|sid] -p [lista o archivo con los paquetes a incluir] -m [mirror]

Para ponernos las cosas más fáciles, en /usr/share/make-live/lists/ tenemos varias listas predefinidas que podemos usar (gnome-full, kde-full, minimal, standard, x11...), con lo que no tenemos ni que calentarnos la cabeza haciendo listas de paquetes y pensando en dependencias. Fácil fácil :)

sudo make-live -d etch -p /usr/share/make-live/lists/kde-full-i18n -m ftp://ftp.es.debian.org/debian/

Una vez ejecutado el comando (y descargados los paquetes) se nos creará el directorio debian-live, en el que encontraremos la ISO como binary.iso, y a tostar.

Gracias ServoMac :D

07 febrero 2007

EyeOS

Últimamente se está hablando mucho de los sistemas operativos on-line. Son sistemas escritos en PHP que se ejecutan en un servidor web y a los que el usuario accede (y maneja) mediante el navegador.

Existen actualmente varios de ellos (al final dejo una lista de enlaces) pero me ha llamado la atención especialmente EyeOS por dos motivos: es open source y está hecho ¡por españoles!

El que sea open source es algo importante, y no sólo por motivos filosóficos: además de poder acceder a él on-line podemos descargarlo y usarlo en local. Para ello necesitaremos, evidentemente, un servidor web con soporte para PHP, pero eso no es problema. Por algo GNU/Linux lleva el Apache "de serie".

El código fuente pesa poco más de un mega. Sólo tenemos que descomprimirlo en la raíz del servidor y darle todos los permisos (chmod 777) al directorio %%ServerRoot%%eyeOS/etc/. A partir de ahí podemos acceder al sistema a través de la dirección http://localhost/eyeOS/

Al acceder el sistema nos pide que elijamos el idioma e introduzcamos una contraseña para root. Tras eso accedemos ya al escritorio, donde vemos un mensaje de bienvenida con algunas indicaciones generales (pinchar en las imágenes para ver a tamaño completo)

Pantalla de bienvenida de EyeOS

Leemos la introducción (en inglés aunque elijas español en la configuración inicial) o cerramos, pulsando sobre el círculo que hay en la esquina superior derecha de la ventana (muy a lo MacOS). Ya estamos en el escritorio:

Escritorio de EyeOS

El fondo de escritorio se puede cambiar fácilmente por uno de los que tengas en tu disco duro, o bien usar el navegador que lleva el sistema para descargar uno de internet :P. También se puede cambiar el theme y ajustar algunas cosillas del aspecto, pero de momento no vamos a hacer nada de eso: estamos logueados como root. Lo primero es crearnos un usuario.

Nos vamos al menú eyeOptions (la llave inglesa de la barra superior) y hacemos scroll hasta encontrar la opción que estamos buscando

Nuevo usuario en EyeOS

Después sólo queda cerrar sesión usando el botón rojo que hay abajo a la derecha, sobre el reloj, y acceder con el usuario que hemos creado:

Pantalla de login de EyeOS

Ahora sí podemos trastear con el sistema todo lo que queramos. Podeis encontrar un manual de usuario en PDF aquí (en inglés), aunque realmente no es necesario: es todo muy intuitivo.

EyeOS tiene las utilidades básicas que puedas necesitar:

eyeApps

Un navegador web, eyeNav:

eyeNav

un completo editor de textos, eyeEdit:

eyeEdit

un lector de RSS y algunas cosas más, que os dejo descubrir a vosotros. También podeis descargar e instalar nuevas aplicaciones desde EyeApps como eyePDF, eyeEncryptionPad, eyeAmp, etc.

Otros sistemas operativos on-line

CrayThur
DesktopTwo
Glide
Goowy
Orca
Xindesk
YouOS

04 febrero 2007

Portknocking: cerradura de combinación en el firewall

Como sabeis, Linux implementa un firewall por kernel: iptables. Con él podemos crear y/o modificar reglas para permitir, denegar o redirigir las conexiones en nuestro sistema. Es un sistema altamente confiable y muy seguro. Pero es un sistema estático: cumple las reglas impuestas por root, y nada más.

Para que entendais lo que quiero decir nada mejor que un ejemplo. Podemos poner una regla de iptables que rechace las conexiones a nuestro puerto 22 (SSH):
iptables -t filter -A INPUT -p tcp --dport 22 -j DROP

Esto blindará el acceso por el puerto 22, impidiendo que nadie pueda acceder a nuestro servidor SSH. Sin duda aumenta la seguridad, pero ¿y si somos nosotros los que queremos acceder a él desde un equipo remoto?

Se pueden, por supuesto, construir reglas que permitan el acceso a una IP dada, incluso a una dirección MAC dada (iptables es muy versátil), pero eso tiene dos inconvenientes:
  • Disminuye la seguridad, siendo vulnerable a ataques de IP spoofing y de MAC spoofing

  • Nos encontramos atados a esa IP o a esa MAC: si necesitamos acceder desde cualquier otra no podremos hacerlo

La solución es una ingeniosa técnica llamada portknocking.

Firewall activo: portknocking

Esta técnica consiste en bloquear los servicios de un host, pero manteniendo un demonio a la escucha de intentos de conexión en determinados puertos (cerrados). Cuando un cliente intente conectar a estos puertos según una secuencia determinada, el demonio variará temporalmente las reglas de iptables para permitirle acceder. Sigamos con el ejemplo de antes.

Digamos que quiero acceder a mi equipo remotamente usando el servidor SSH, pero no quiero dejarlo permanentemente expuesto en Internet, arriesgándome a que sufra ataques brute force o con algún exploit 0-day. Pongamos también que quiero acceder a él desde diversas máquinas (el trabajo, la casa de la novia, un cibercafé...) que pueden no ser siempre las mismas, y que además aunque lo fueran no crearía reglas que permitiesen a su IP/MAC acceder, ya que soy muy paranoico y sé que alguien podría spoofear esas IP/MAC para conseguir acceso.

La solución sería dropear todas las conexiones entrantes, pero mantener un demonio knockd en background escuchando los puertos, digamos, 2546, 3101, 6969, 21732 y 4400, puertos que estarían cerrados. Yo puedo configurar knockd de forma que, si alquien intenta conectar con esos puertos por ese orden y en un intervalo de treinta segundos, varíe las reglas del cortafuegos permitiendo a esa IP acceder al puerto 22.

¿Cómo implementarlo?

Nada más sencillo:

apt-get install knockd

knockd es un servidor de portknocking que escucha todo el tráfico de una interfaz determinada (de momento sólo soporta Ethernet y PPP). Cuando detecta una secuencia determinada de knocks ejecuta un comando definido en su archivo de configuración, que puede perfectamente ser una regla de iptables para permitirnos el acceso al servicio que deseemos.

Como clientes, debemos envíar los paquetes a los puertos que hayamos establecido previamente para que knockd nos brinde acceso. Eso es fácil de hacer con cualquier herramienta que genere paquetes TCP o UDP, como por ejemplo GSpoof o Nemesis (aunque la finalidad de estas herramientas es otra, generar e inyectar paquetes con las cabeceras TCP/IP manipuladas: sí, para hacer ataques de IP spoofing, por ejemplo). También podemos hacerlo "artesanalmente" con un simple cliente telnet.

Como veis el portknocking nos da a la vez seguridad, confiabilidad y versatilidad, convirtiendo nuestro cortafuegos estático en un firewall activo que nos permite variar sus reglas adaptándose a nuestras necesidades.

Sun envía gratis Solaris 10 (otra vez)

La primera ocasión la dejé escapar como un tonto: me llegó el aviso de Correos, lo metí en la cartera, y cuando por fin fui a recogerlo... habían pasado dos días del límite y habían devuelto el envío :@

Pero esta vez no me pasará igual. Sun Microsystems está, de nuevo, enviando DVDs con Solaris 10 y el Developer Tools Software Kit, de forma gratuita, a todo el que lo pida. El DVD incluye:

También se puede descargar la imagen ISO de los servidores de Sun, pero pesa 4 Gb. Además, como buen friki es obligado tenerlo en su carátula original ;)

03 febrero 2007

Anuncios de Linux

Samurai chameleon (SuSE)



Choice (Red Hat)



Prodigy (IBM)



Más en subNacion

02 febrero 2007

Wardriving con la fonera

De los hacks que se han publicado hasta ahora para la fonera (1, 2, 3...) este sin duda me parece el mejor: Wardriving con la fonera.

Hay que adaptarle a la fonera un módulo GPS, una antena omnidireccional y un adaptador para mechero del coche, instalarle el firmware OpenWRT, y el demonio fonerawd (programado por el propio autor del hack y liberado bajo licencia GPL).

En fin, que lo mejor que podeis hacer es leer el artículo original, donde explica con detalle cada paso y se pueden ver las fotografías del proceso, incluso una muestra del resultado.

Un diez.

30 enero 2007

Tutoriales en PDF

He añadido un enlace en la sidebar (parece que queda mejor ponerlo en inglés que decir simplemente barra lateral xD) un enlace a Tutoriales en PDF. Quiero explicar un poco de qué va eso.

En mi disco duro guardo varios gigas (no, no exagero) de documentación sobre Linux, hacking, programación, redes, sistemas... y siempre he pensado que la información es para compartirla (ya sabeis: Si tú tienes una manzana y yo tengo una manzana y las intercambiamos, entonces ambos aún tendremos una manzana. Pero si tú tienes una idea y yo tengo una idea y las intercambiamos, entonces ambos tendremos dos ideas).

Así que me he puesto a subir manuales a mi cuenta de Googlepages. De momento hay unos 30 Mb de documentación, pero la idea es completar los 100 Mb que da Google. Ahí están para quien los quiera.

Por el momento sólo estoy subiendo documentación en español (tengo muchísimos documentos en inglés) licenciada bajo GFDL o cuyo copyright permita su distribución sin ánimo de lucro. Tengo también bastantes buenos (muy buenos) documentos en los que no se especifica licencia alguna. En los próximos días me iré poniendo en contacto con sus autores, ya que muchos de ellos son conocidos e incluso amigos míos, aún sin conocerlos personalmente (tantos años en la red...). Según obtenga su autorización iré subiendo cosas.

También, si alguien ha escrito algún material sobre los temas que suelo tratar en el blog (documentación sobre Windows no!) y quiere que lo cuelgue, no tiene más que dejar un comentario o mandarme un mail :)

29 enero 2007

Goodbye Microsoft

Adiós Microsoft. Ese es el nombre de dominio que han elegido para publicar esta utilidad con la que, desde Windows, descargar el debian.exe que instalará Debian en las cafeteras, convirtiéndolas en máquinas de verdad, al estilo del que salió hace unos días para Ubuntu.

Han hecho la gracia de, incluso, usar Internet Explorer para la galería de capturas de pantalla del proceso de instalación. Me encanta sobre todo esta imagen:

Downloading initrd.gz


Pues nada, que no hay excusa para no decir goodbye Microsoft... ¡ya!

Fuente: Kriptópolis

27 enero 2007

Metisse: Utilidad ante todo

Parece que definitivamente hay una tercera opción en los escritorios que hacen uso de los efectos 3D de las tarjetas gráficas: Metisse.

Desarrollado por Mandriva In Situ Project para Mandriva, Metisse tiene una clara ventaja ante Beryl y Compiz: no busca efectos gráficos alucinantes, sino hacer uso de las 3D para aumentar la utilidad, facilidad de uso y productividad. Y es que, a pesar de la espectacularidad de Compiz y Beryl, o precisamente por ella, se hacen incómodos de usar cuando lo que quieres no es quedarte embelesado ante los efectos, sino realmente usar tu máquina. Ahí Metisse lleva todas las de ganar.

Aquí os dejo casi cinco minutos de muestra.

Revistas digitales

Aquí os dejo una lista (por orden alfabético) de las revistas digitales que leo habitualmente.
  • Begins. Revista sobre GNU/Linux, Software Libre y código abierto hecha en Chile. Hasta el momento lleva editados seis números desde marzo de 2006. Se publica bajo licencia GFDL.

  • (IN)SECURE Magazine. Es una veterana revista sobre seguridad informática con artículos de gran calidad. Hasta el momento lleva nueve ediciones desde abril de 2005. Sólo dos peros: está en inglés, y se publica bajo copyright. En este feed se notifican las nuevas ediciones.

  • MacFácil. Como ellos mismos dicen, una revista hecha por maqueros para maqueros. Yo no uso MacOS, pero la leo por curiosidad y porque, al fin y al cabo, los sistemas operativos son mi pasión. Sólo dos ediciones de momento, abril y agosto de 2006, así que no sé si el proyecto sigue vivo o no. Ni en la web ni en la propia revista se hace mención a licencia alguna.

  • RevistaSL. Hecha en Méjico y con siete números (del 0 al 6, el primero de ellos de febrero de 2005) de calidad creciente a sus espaldas, es una revista sobre Software Libre a la que se augura un futuro prometedor. El último número (diciembre/06-enero/07) trata ampliamente sobre los sistemas *BSD. Se edita bajo una licencia Creative Commons (Atribución 2.5 Méjico). Muy recomendable.

  • Software Libre para TI. Una revista sobre GNU/Linux y Software Libre hecha también en Méjico que comenzó su andadura en julio de 2006. De momento sólo hay tres números, y para descargarlos hay que tener una cuenta. Sin embargo, han habilitado una cuenta (user:test password:test) para quien quiera descargarla sin tener que registrarse. En cuanto a la licencia, de nuevo no he encontrado nada ni en la web ni en la revista.

  • Tecnociencia. Esta se sale un poco de la temática de las anteriores, ya que es una revista de divulgación científico-técnica. Nueve números editados (el primero en marzo de 2006). La revista no hace mención a la licencia, y en la web no la he buscado porque se visualiza fatal con Opera :@

  • Ware. Revista argentina sobre tecnología que publicó seis números entre noviembre de 2005 y abril de 2006. Aunque ya no sigue publicándose, esas seis ediciones merecen la pena leerlas. Fueron publicadas bajo una licencia Creative Commons (Atribución-NoComercial 2.5)

Pues eso es lo que hay. Si alguien conoce alguna revista más sobre temáticas parecidas agradecería que lo dijera en los comentarios, y la añadiré aquí :)

Los dos logotipos de Debian

Todo el mundo conoce esta imagen:



Y es que el logo de Debian es libre, y puede ser utilizado libremente por cualquier persona y con cualquier finalidad, incluso con fines comerciales. De hecho yo mismo tengo alguna camiseta con ese mismo logo (sí, soy así de friki).

La que ya no es tan conocida es esta otra:



Y es que este es el logotipo para uso oficial, y sólo puede usarse si:
  • El producto para el que se usa está hecho siguiendo un proceso documentado publicado en www.debian.org (por ejemplo, creación de CDs oficiales).

  • Debian da su aprobación oficial para su uso en un asunto específico.

  • Si una parte oficial de Debian (decidido usando las reglas anteriores) es parte del producto completo, o si se aclara que sólo esta parte ha sido aprobada oficialmente.

  • Se permite usar el logotipo oficial en artículos de vestir (camisetas, gorras, etc...) siempre y cuando las haya realizado un desarrollador de Debian y no se vendan para conseguir beneficios.

Dios mío, está lleno de logotipos de Debian.

26 enero 2007

¿Qué fue de Debian 1.0?

Hace cosa de un par de meses publiqué un album de familia de Debian, que incluía el nombre de cada versión y la imagen del personaje de Toy Story del que tomaba el nombre.

Lo curioso del caso es que, como se puede ver en aquel envío, la primera release corresponde a la versión 1.1 en lugar de a la 1.0, como sería de esperar. ¿Qué pasó con Debian 1.0?

En realidad la versión 1.0 nunca fue publicada. Infomagic, un distribuidor de CDs de Linux, publicó por error una versión de desarrollo de Debian rotulada como "1.0". El 11 de diciembre de 1995 Debian e Infomagic anunciaron de forma conjunta el error. Bruce Perens (líder del Proyecto Debian entre abril del 96 y diciembre del 97, fundador del proyecto LSB y varias cosas más) lo explicó:
La información colocada en 5 CDs de "Recurso para el Desarrollador de Linux Infomagic" de noviembre de 1995, como "Debian 1.0" no es la versión 1.0 de Debian, más bien es una versión de desarrollo temprana que está sólo parcialmente en formato ELF, que probablemente no iniciará o no se ejecutará correctamente, y no representará la calidad de un sistema Debian publicado.

Por eso, para evitar confusiones, la versión 1.0 nunca vio la luz. En su lugar, cuando el 17 de junio de 1996 la versión estuvo lista para pasar a stable, fue bautizada como Debian 1.1 Buzz.

No soy uno de esos coleccionistas que pagan millones por poseer una rareza, pero os aseguro que me encantaría tener uno de esos CDs etiquetados como "Debian 1.0".

Fuente: Una breve historia de Debian

21 enero 2007

Confesión: paquetes no libres que uso

Me encanta Debian. He probado "unos pocos" sistemas operativos, incluso alguno que el 99% de la gente no sabe ni que existen, y literalmente decenas de distribuciones de Linux, y no cambiaría Debian por ninguno de ellos. Me encanta también la filosofía de su proyecto. Pero, mea culpa, mea massima culpa, no la cumplo a rajatabla.

Y es que en mi sistema tengo paquetes que no son libres. Como penitencia, un repaso rápido de cuales son.
akira@takashi:~$ vrms

Non-free packages installed on takashi

dvdrtools DVD writing program
festvox-ellpc11k Castilian Spanish male speaker for Festival
opensc-dnie SmartCard library with support for Spanish national ID
opera The Opera Web Browser
skype Free Internet Telephony - The whole world can talk for

5 non-free packages, 0.2% of 2370 installed packages.

vrms (Virtual Richard M. Stallman, el nombre lo han clavado) es una pequeña utilidad que te dice qué paquetes no-libres tienes en el sistema. Cinco, un 0.2%. Pues no está mal. Sobre Opera y Skype no hace falta hablar, los conoce todo el mundo. festvox-ellpc11k es la voz en castellano para Festival. En cuanto a opensc-dnie es para la compatibilidad del sistema con el DNI electrónico.

Pero esos no son los únicos. Hay otros, instalados desde otros formatos distintos al DEB:
  • Flash Player. Este no hay más narices que tenerlo, al menos hasta que Gnash esté más maduro.

  • acroread, osea, el Acrobat PDF Reader para Linux. Esto no es por falta de alternativas, pero es que ni KPDF, ni gPDF, ni xPDF me gustan.

  • En el Pentium4 (el portátil tiene gráfica integrada) los drivers de nVIDIA. Espero ansioso unos drivers libres con soporte completo para 3D.

Y ahora mi gran secreto. La vergüenza de las vergüenzas:

Internet Explorer 6 bajo Linux

Sí, "eso" es Internet Explorer 6. En mi Debian. Algo así no tiene perdón, lo sé, pero me gusta saber cómo se ve el blog en los distintos navegadores (nótese el "Listo pero con errores en la página"). La culpa es de IEs4Linux.

En fin, creo que no me dejo nada. Ahí queda mi confesión. ¿Alguien más se atreve?

EDITADO: Parece que kikorb, AwOiSoAk y Jokin también se han "echao p'alante". Como dice el propio Jokin, esto empieza a parecer un meme.

17 enero 2007

Debian en la PS3

Pues sí. Hasta ahora no había comentado que la PlayStation 3 venía con Linux, concretamente con Yellow Dog, pero es que esto no lo puedo dejar pasar: Ya es posible meterle un Debian al bicho.

Como lo oís. En esta página (en inglés) podeis descargar una versión de Debian (en principio es una live, pero se puede instalar) para la PS3. Teneis también las instrucciones para crear vuestra propia live de Debian basada en ella.

Moooooooola :D

Alan Cox quiere patentar el DRM

Leo (estupefacto) en SigT que Alan Cox quiere patentar el DRM con la intención de, haciendo valer su patente, evitar su uso.

Al margen de que la "jugada" pueda funcionar, yo hago algunas reflexiones:

Lo primero. Estamos hablando de patentes. Pa-ten-tes. Si hay un antónimo de la expresión "filosofía de software libre", seguro que es la palabra patente. ¿Es que la única forma de evitar que nos salpique la mierda es bañarnos en ella? Yo creo que no. Permitidme un Gedankenexperiment: Si la forma más rápida de "desbancar" a los sistemas Windows pasara por hacer de Linux un sistema propietario, ¿sería lícito (en el sentido de la ética) hacerlo? Vale, esto es un poco más radical, pero la base es la misma: combatir la mierda con más mierda. No sé si me explico o si no es más que una rayada mental. Os dejo pensar (a mí me ha entrado un yuyu...).

Más cosas. Si algo sabemos los usuarios de Linux (y seguro que Cox lo sabe mucho mejor que cualquiera de nosotros) es que, en tema de programación/sistemas, hay muchas formas de hacer una misma cosa. En caso de prosperar la patente ¿cuánto tiempo pasaría hasta que se ideara otra forma de "proteger" los derechos de copyright? En este caso, la mierda sólo habría servido para... traer más mierda. Perfecto. Estaríamos ¿peor? que al principio.

En fin, que no me parece la estrategia más adecuada. Que soy de los que opinan que "pegarle un tiro al asesino" no es la mejor forma de que expíe sus crímenes. Que la mierda sólo puede traer más mierda.

EDITADO. Acabo de pulverizar mi récord de número de veces que aparece la palabra mierda en un post, que hasta ahora era de... cero veces. Creo que este tema me ha puesto un pelín de los nervios.

Flash Player 9 para Linux

Hace unos meses anunciaba la versión beta de Flash Player 9 para Linux. Pues bien, al fin tenemos la versión definitiva. La podeis descargar de aquí en RPM o en tar.gz.

La sorpresa me la he llevado al intentar hacer una instalación automática:
Please enter the installation path of the Mozilla, SeaMonkey,
or Firefox browser (i.e., /usr/lib/mozilla): /usr/lib/opera
dir= /usr/lib/opera

ERROR: Opera is not supported.

Pues vaya... En fin, de todas formas he hecho una instalación manual y funciona a la perfección.

11 enero 2007

09 enero 2007

Charla en IRC: Empaquetamiento básico en Debian

Debian Hispanoamérica comienza un ciclo de charlas sobre el proceso de
mantener paquetes y las políticas de empaquetado, envío de reportes de
bugs y proceso de verificación de errores de los paquetes.

Las charlas se llevarán a cabo en #debian-devel-es, las preguntas se
harán paralelamente en #debian-qna y serán respondidas por el
ponente en #debian-devel-es cuando lo considere apropiado. El
servidor es irc.debian.org.

La primera charla es el día 14 de este mes (cae en domingo), a las 18:00 UTC (19:00 hora española).

Visto en debian-news-spanish

06 enero 2007

Escáner en red

Es muy común poner una impresora en red. No tiene ningún problema, y con CUPS no tiene ningún secreto hacerlo. Lo que no es tan común es poner en red un escáner, y sin embargo es igual de sencillo. Supongo que será por desconocimiento de cómo hacerlo.

Configuración del servidor

Para ello vamos a hacer uso del demonio saned (scanner access now easy daemon), arrancado mediante el superservidor xinetd.

Instalamos los paquetes necesarios en el servidor:

apt-get install sane-utils xinetd

La configuración es sencilla. Primero nos aseguramos que el escáner es accesible por red. Para ello editamos el archivo /etc/sane.d/dll.conf y comprobamos que la línea net está descomentada. Si no es así, la descomentamos.

El siguiente paso es editar el archivo /etc/sane.d/saned.conf y añadir la lista de IPs que podrán acceder al escáner, una por línea. Comprobamos también que el puerto está correctamente asignado al escáner:
akira@takashi:~$ grep sane /etc/services
sane-port 6566/tcp sane saned # SANE network scanner daemon

Si la línea no aparece en /etc/services, simplemente la añadimos.

Por último, creamos el archivo de configuración del servicio para xinetd. Para ello creamos el archivo /etc/xinetd.d/saned con el siguiente contenido:
service saned
{
socket_type = stream
server = /usr/sbin/saned
port = 6566
protocol = tcp
user = root
group = root
wait = no
disable = no
}

El servicio se iniciará durante el arranque del sistema. Si todo ha ido bien, podremos establecer una conexión vía telnet con ese puerto.

Configuración de los clientes

En los equipos clientes sólo necesitamos instalar el software para el escaneo de imágenes: xsane.

En cuanto a configuración, sólo hay que editar el archivo /etc/sane.d/net.conf para especificar la IP del servidor. Podemos comprobar que todo ha ido bien ejecutando el comando scanimage -L.

Listo, al abrir XSane directamente conectará al servidor. Rápido y fácil. Como (ya me empiezo a repetir) todo en Linux :)

01 enero 2007

Wake On LAN: Arrancando equipos de forma remota

Wake On LAN es un estándar de redes que permite encender un equipo de forma remota, mediante el envío de un Magic Packet, un paquete especial que recibe la tarjeta de red.

Activar y usar Wake On LAN en nuestros equipos con Linux es muy sencillo (¿qué tarea de redes no lo es en *NIX?), y el software necesario lo tenemos en los repositorios de Debian.

Hay que decir que es necesario que la tarjeta de red soporte WOL, pero todas las tarjetas medianamente modernas lo soportan. También ha de estar la opción habilitada en la BIOS.

En primer lugar echaremos mano de ethtool, una herramienta sumamente útil que nos permite ver o modificar las características y configuración de la tarjeta de red. Lo vamos a usar en el equipo que queremos "despertar".

takashi:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x000000c5 (197)
Link detected: yes


Como vemos, la tarjeta soporta WOL (Supports Wake-on: pumbg), además de otros modos. También vemos que el modo está desactivado (Wake-on: d, por disabled). Para activarlo sólo tendremos que ejecutar

ethtool -s eth0 wol g

y ahora veremos cómo la función se ha activado (Wake-on: g). Por algún motivo, la mayoría de los drivers de red en Linux no dejan la tarjeta en modo WOL, y la opción se vuelve a desactivar durante el shutdown. Si os ocurre esto, podéis incluir un script en /etc/init.d (por ejemplo /etc/init.d/wol) para que se active el modo:

#!/bin/bash
ethtool -s eth0 wol g


Le dais permisos de ejecución y lo enlazais con los que se han de ejecutar durante el apagado (runlevel 0):

ln -sf /etc/rc0.d/K20wol /etc/init.d/wol

En el otro lado, el del equipo que tiene que enviar el Magic Packet, debemos instalar el software que envíe la señal. Podemos optar por etherwake o por wakeonlan. El modo es bien sencillo:

etherwake -i <interfaz para el envío> <MAC address del equipo remoto>

o bien

wakeonlan -i <interfaz para el envío> <MAC address del equipo remoto>

Si no especificamos la interfaz con la opción -i, el Magic Packet será enviado a través de la interfaz eth0.

También podeis crear el archivo /etc/ethers donde incluir pares MAC/alias, y poder de esta forma sustituir la dirección MAC del equipo remoto por un alias.

Así, cada vez que necesiteis hacer algo en otro equipo de vuestra red, no tendreis ni que levantaros a encenderlo: WOL + SSH y a tirar millas ;)