You are on page 1of 100

DEBIAN SARGE 3.

1
La ltima versin de la
distro ms estable

Inkscape

LINUX MAGAZINE

Diseo vectorial
profesional bajo Linux

Thunderbird

Configuracin avanzada
para privacidad de correo

NMERO 09

Incluye correccin
de errores 3.1 r0a
6500 paquetes

NMERO 9 P.V.P 5,95

Seguridad

Los secretos de los intrusos de la red

Hotspotter

SEGURIDAD

SSPE

ARP Spoofing

Hotspotter: descubre vulnerabilidades en tu red p14


Protege tu LAN de ARP spoofing p18
Administracin de cortafuegos con SSPE p24

Konqueroer

Konqueror

Msica en red

El navegador de KDE que


conquistar el escritorio p72

Universo Virtual

Msica en red
Crea tu propio sistema
de hilo musical p43

Inkscape

Notebook Ubuntu

Podcatching
Recibe y reproduce
msica sobre RSS
sin un iPod! p36
W W W. L I N U X - M A G A Z I N E . E S

Edicin en
Castellano

EDITORIAL

ARTE MODERNO
Estimado Lector de Linux Magazine

eo
en
barrapunto
que
Trolltech,
la
empresa creadora
de las libreras
Qt, base del escritorio KDE, financiar el trabajo de Aaron J. Seigo. Seigo
es un desarrollador de KDE que est creando un nuevo paradigma de escritorio y,
al tiempo, mejorando la esttica de iconos y superficie de trabajo con su proyecto Plasma (ver http://plasma.bddf.ca/).
Despus pienso en Linus Torvalds, financiado por la OSDL (IBM, HP, Intel y otros)
o en Daniel Robbins, creador de Gentoo,
financiado por Microsoft, y me pregunto
no se estarn convirtiendo los programadores en los modernos bohemios, que al
igual que los artistas visionarios de antao, si no encontraban un mecenas que
les protegiera/explotara estaban condenados a una vida de miseria y penalidades?
Desde el renacimiento hasta muy
recientemente, los artistas tenan que
buscarse un papa, rey o corte quien les
acogiera y que, en el mejor de los casos,
les tolerasen las excentricidades a cambio
de sus obras maestras (Da Vinci, Mozart)
o que, en el peor, los tratasen como
meros funcionarios del pincel o de la partitura (Velzquez, Bach).
Pero incluso an peor que esta ltima
opcin, era no encontrar ningn padrino
que financiase sus trabajos y consumirse
de tisis en algn oscuro, hmedo y fro
agujero ubicado en un barrio marginal de
Pars.
Alguno puede argumentar que esto
ltimo al menos conserva un mnimo de
romanticismo. Pero tal y como est el
panorama del desarrollo en Espaa,
donde lo nico que le interesa a las software factories son chavales recin salidos
de la universidad a quienes explotar
durante un periodo de prueba, para despus echarlos a la calle, no te queda ni
eso, ni mucho menos dignidad. En semejantes firmas, no hay sitio para la brillan-

Nos sentimos orgullosos de nuestros


orgenes como publicacin, que se
remonta a los primero das de la revolucin Linux. Nuestra revista hermana,
la publicacin alemana Linux Magazin, fundada en 1994, fue la primera
revista dedicada a Linux en Europa.
Desde aquellas tempranas fechas
hasta hoy, nuestra red y experiencia
han crecido y se han expandido a la
par que la comunidad Linux a lo ancho
y largo del mundo. Como lector de
Linux Magazine, te unes a una red de
informacin dedicada a la distribucin
del conocimiento y experiencia tcnica. No nos limitamos a informar
sobre el movimiento Linux y de Software Libre, sino que somos parte
integral de l.

tez o la innovacin, y an aadira, ni para el orgullo de lo artesanal bien hecho. Por tanto un virtuoso de la programacin no va a
encontrar en ellas el patrocinio
que necesita, mxime cuando en
muchas se considera invertir en
I+D el hecho de comprar
muchas cajas de cereales Kellogs
con la esperanza de que toque un
ratn inalmbrico.
Que nos queda pues? La universidad? Ah, la universidad!
Permtame el lector que le cuente
un interesante relato sobre la universidad. Jose Antonio (y su
novia Ana) son dos brillantes matemticos, becados por la universidad de
Mlaga que han conseguido sendos doctorados merecedores de cum laude en el
rea de programacin distribuida sobre
clusters creados a partir de equipos de
consumo.
No slo han desarrollado un sistema
para optimizar la compilacin del cdigo,
multiplicando la velocidad de proceso
por 16, sino que han creado una aplicacin prctica donde aplicar los conocimientos adquiridos: damflow (ver damflow.org), un simulador de movimiento
de grandes masas de fluidos que sirve
para predecir el comportamiento y los
efectos de inundaciones, vertidos accidentales y la intervencin (y obstaculizacin) humana (construccin en cauces de
ros, tierra ganada a la mar, etc.) en el
natural discurrir de aguas y lodos.
Este software puede ser vital para evitar prdidas de vidas humanas y bienes
materiales al permitir una previsin de
posibles desastres relacionados con grandes movimientos de lquidos. El problema es que Jose Antonio (y Ana) ya son
doctores y se les acaba el chollo (si chollo
se considera percibir 300 euros al mes) y
la universidad de Mlaga ya no sabe qu
hacer con ellos.
Sus opciones se reducen a sacarse unas
oposiciones para convertirse en profesores de instituto para intentar inducirle el
amor a las matemticas a adolescentes

WWW.LINUX- MAGAZINE.ES

que, en muchos casos, ni les entendern,


ni les interesar lo que estn contando.
Recientemente tuve la oportunidad de
compartir mesa con un programador
especializado en clusters que estaba al
cargo de un monstruo de 2500 nodos ubicado en una universidad catalana. Le
cont lo que pasaba por Mlaga y el desarrollador, perteneciente al clan de Deep
Computing de IBM, pareci molesto por
el hecho de que en un humilde departamento de anlisis matemtico de una
universidad de provincias, un equipo de
tres o cuatro personas se hubiera atrevido
a pasar de todo y hubieran montado su
propio cluster, sin contar con el Gran
Azul. Aleg reinvencin de la rueda,
duplicacin de esfuerzos, etc. Mi reaccin
a eso es: Pues, seores, vayan ustedes all
y ofrezcan sus servicios y productos para
que esta gente no tenga que pasar por el
proceso de reinvencin y puedan progresar en lo que realmente les interesa: el
estudio del desplazamiento de grandes
masas de fluidos y salvar vidas humanas.
Pero eso s, no esperen cobrar el trabajo, porque si la universidad de Mlaga no
tiene dinero para contratar a Jose
Antonio (ni a Ana), dudo que lo tengan
para sus facturas.

Paul C. Brown
Director

Nmero 09

CONTENIDOS Linux Magazine n 9

PORTADA
14 Hotspotter
Los puntos de acceso pblico hacen
que sea bastante fcil para los atacantes secuestrar conexiones, tal y
como lo demuestra la Herramienta
Hotspotter.

PRCTICO

DESARROLLO

28 El porttil Linux

48 Perl: Yahoo

El HP NC4200 es un pottil diferente:


la distribucin Ubuntu Linux con la
que viene soporta prcticamente
todas sus funcionalidades hardware.

18 Trucos de Trfico

Tres guiones en Perl los que seran


analizados que nos ayudarn a corregir la ortigrafa, localizar a los compis
del colegio y ver la fotoos de vacaciones de otras personas.

53 Universo virtual

Las Tcnicas denominadas ARP spoofing y poisoning permiten a un atacante manipular y curiosear trfico
facilmente.

Este mes vamos a crear un sistema


Solar virtual tridimensional empleando VTK desde Python.

31 Coldfusion
El nuevo servidor ColdFusion MX7 de
Macromedia permite crear aplicaciones web de alto rendimiento.

36 Podcatching
24

Mostramos cmo recibir y reproducir


podcasts bajo Linux.

40 Thunderbird
Control Central
El
Simple
Security
Policy
editor(SSPE) nos ayuda a organizar
nuestra red y mantener las politicas
deseguridad a travs de mltiples
cortafuegos.

Thunderbird ofrece varias opciones


para un correo seguro y la encriptacin de Enigmail basada en GnuPG
nos proporciona una capa de proteccin adicional.

57 Reutilizacin de cdigo
Python, Perl, Php, Ruby...todos adolecen del mismo problema, tarde o
temprano tendremos que volver al
mundo real y trabajar con una librera C.

ADMINISTRACIN
61 La Columna de Charly

LINUX MAGAZINE

10

Productos

12

Correo del lector


Suscripciones
Eventos
Informacin de Contacto
Prximo Nmero

6
7

93
97
97
98

Nmero 09

picz, www.sxc.hu

Editorial
Productos
Inseguridades
DVD Linux Magazine

43 Music box
Si tenemos una LAN en casa o en la
oficina Poe qu no se utiliza para
algo realmente importante? Escuchar msica!

WWW.LINUX- MAGAZINE.ES

62 Calcetines para el proxy


Este artculo describe la ltima versin del protocolo para proxy Socks y
muestra cmo se implementa.

ADMINISTRACIN

LINUX USER

67 Cuentas

3.1 sarge

81 Educacin

En el artculo de este mes veremos las


tcnicas para configurar las cuentas
de los usuarios y cmo configurarlas
segn sus necesidades.

Terminamos esta breve presentacin


de ATNAG mostrando varios juegos,
y cmo se crean y organiza su explotacin en el cuaderno de clase.

DVD de arranque de fcil


instalacin
Un amplio abanico de aplicaciones, para oficina, servidores, Internet, etc...
Incluye KDE 3.4, GNOME 2.10,
OpenOffice.org 2.0, Xen 2.0
Kernel 2.6.11
SELinux
Ms informacin en la pgina 9.

LINUX USER
mzacha, www.sxc.hu

72 La conquista del escritorio


Konqueror de KDE 3.4 es una herramienta perfectamente verstil que se
siente en la web cmo en casa.
saine, www.sxc.hu

86 Rock y consola
Echamos un vistazo a las aplicaciones que rocanrolean desde la lneade
comandos.

76 Desktopa
xdesktopwaves nos permite convertir el escritorio en un paisaje acutico.
Podemos aadir lluvia y tormentas o
simplemente arrastrar el ratn para
animar las cosas.

COMUNIDAD
90 Eventos
En verano el ambiente es propicio
para montar algn evento de proporciones montruosas con el fin de
difundir el uso del software libre.

lusi, www.sxc.hu

78 Inkscape
Inkscape trae a los usuarios de Linux
la potencia de los grficos vectoriales.
Nuestro taller ensea cmo utilizar
este programa.

95 Trucos
Este mes los redactores de Linux
Magazine lidian con un Grub de un
lector que se niega a hacer su labor.

WWW.LINUX- MAGAZINE.ES

Nmero 09

006-007_Inseguridad_Linux9 14.09.2005 13:51 Uhr Pgina 6

LINUX
USER
NOTICIAS

Schlagwort sollte hier stehen

INSEGURIDADES
OPENSSL
OpenSSL es una herramienta que
implementa los protocolos Secure
Sockets Layer (SSL v2/v3) y Transport
Layer Security (TLS v1) tan bien como lo
hara una librera criptogrfica de propsito general.
Colin Percival inform de un ataque
temporizador de cach que permitira
a un usuario local malicioso obtener
porciones de las claves criptogrficas.
El proyecto de Vulnerabilidades y
Exposiciones Comunes (Common
Vulnerabilities and Exposures o CVE
http:// cve.mitre.org) ha asignado el
nombre CAN-2005-0109 a este problema. La librera OpenSSL ha sido parcheada aadindole una nueva imple-

mentacin mod_exp fijada a ventana


por defecto, para RSA, DSA y operaciones de clave privadas DH. Este parche est diseado para mitigar el ataque temporizador de cach y todos los
que estn potencialmente relacionados.
Se encontr un defecto en la manera
en la que el script der_chop crea los
ficheros temporales. Es posible que un
usuario local malicioso pudiera hacer
que der_chop sobreescribiera ficheros
(CAN-2004-0975). El script der_chop ha
sido desfasado y borrado de los paquetes
actualizados.

-Referencia Mandriva: MDKSA-2005:


096
-Referencia Red Hat: RHSA-2005:476-08

POLITICAS DE SEGURIDAD DE LAS DISTRIBUCIONES MAYORITARIAS


Distribuidor

Fuente Seguridad

Debian

Info:http://www.debian.org/security/
Lista:http://www.debian.org/debian-security-announce/
Referencia:DSA-1)

Gentoo

Mandrake

Red Hat

Slackware

Suse

Comentario

Los avisos de seguridad actuales se incluyen en la pgina de inicio. Los avisos


se proveen como pginas HTML con
enlaces a los parches. Los avisos tambin
incluyen una referencia a la lista de
correo.
Info:http://www.gentoo.org/security/en/index.xml
Los avisos de seguridad actuales para
Foro:http://forums.gentoo.org/
la lista Gentoo en el sitio web de
Lista:http://www.gentoo.org/main/en/lists.xml
seguridad de Gentoo enlazan desde la
Referencia:GLSA: 1)
pgina principal. Los avisos se presentan
en HTML con cdigos para fusionar las
versiones corregidas.
Info:http://www.mandrakesecure.net
Mandrakesoft posee su propios sitio web
Lista:http://www.mandrakesecure.net/en/mlist.php
que versa sobre temas relacionados con
Referencia:MDKSA: 1)
la seguridad. Entre otras cosas,incluye
avisos seguridad y referencias a las
listas de correo. Los avisos son pginas
HTML, pero no contienen enlaces a los
parches.
Info:http://www.redhat.com/errata/
Red Hat archiva los fallos de seguridad
Lista:http://www.redhat.com/mailman/listinfo/
bajo lo que denominan erratas. A
Referencia:RHSA- 1)
continuacin los problemas para cada
versin de Red Hat se agrupan. Los avisos
de seguridad se proveen como una
pgina HTML con enlaces a los parches.
Info:http://www.slackware.com/security
La pgina de inicio contiene enlaces al
Lista:http://www.slackware.com/lists/(slackware-security) archivo de seguridad de la lista de correo.
Referencia:[slackware-security] 1)
No existe informacin adicional sobre
seguridad en Slackware.
Info:http://www.suse.de/en/private/support/
Ya no existe un enlace a la pgina de
security/index.html
seguridad tras un remodelado en el sitio
Parches:http://www.suse.de/en/private/
web de SuSE. Existe informacin en la
download/updates Lista:suse-security-announce
lista de correos y los avisos. Los parches de
Referencia:SUSE-SA 1)
seguridad para versiones individuales de
SuSE Linux se muestran de color rojo en el
sitio de actualizaciones generales.
Contiene una corta descripcin de la
vulnerabilidad que soluciona el parche.

1) Todos los distribuidores muestran correos de seguridad en el campo Subject.

Nmero 08

WWW.LINUX- MAGAZINE.ES

GFTP
gFTP es un cliente FTP multi-hilo para
el Sistema de ventanas X.
Se encontr un error en el directorio
trasversal de gFTP. Si un usuario puede
ser engaado durante la descarga de un
fichero desde un servidor FTP malicioso,
es posible sobreescribir ficheros arbitrarios propiedad de la vctima. El proyecto
de Vulnerabilidades y Exposiciones
Comunes (Common Vulnerabilities and
Exposures o CVE http://cve.mitre.org)
ha asignado el nombre CAN-2005-0375 a
este problema.
De momento no se est trabajando en
nada relacionado con esto. Los usuarios
de gFTP debern actualizar sus paquetes.
Los nuevos paquetes contienen un parche
retroportado para este problema.

-Referencia Red Hat: RHSA-2005:410-07

MAILUTILS

GNU MailUtils es una coleccin de utilidades de correo, que incluye un servidor IMAP4 (imap4d) y un Agente de
Usuario de Correo (mail). infamous41d
descubri algunas vulnerabilidades en
GNU Mailutils. imap4d no implementa
correctamente la impresin formateada
de etiquetas de comandos (CAN-20051523), falla al validar la secuencia de
rango del comando FETCH (CAN2005-1522) y contiene un desbordamiento integrado en la rutina fetch_io
(CAN-2005-1521). mail contiene un desbordamiento
de
bfer
en
header_get_field_name() (CAN-20051520).
Un atacante remoto puede explotar la
cadena de formato e integrar el desbordamiento en imap4d para ejecutar cdigo arbitrario como un usuario imap4d, el
cual habitualmente es root. Mediante el
envo de un mensaje de correo especialmente manipulado, un atacante remoto
podra explotar el desbordamiento de
bfer en la utilidad mail para ejecutar
cdigo arbitrario con los derechos de un
usuario corriendo mail. Tambin se
puede provocar un ataque de denegacin
de servicio (DoS) enviando un comando
FETCH malicioso a un imap4d afectado.
Todos los usuarios de GNU Mailutils
debern actualizarse a la ltima versin

disponible.

006-007_Inseguridad_Linux9 14.09.2005 13:51 Uhr Pgina 7

INSEGURIDADES

-Referencia Debian: DSA-732-1


-Referencia Gentoo: GLSA200505-20/
mailutils; GLSA200506-02/mailutils

FREERADIUS
FreeRADIUS es una implementacin
del servidor de autenticacin de cdigo
abierto RADIUS.
Primoz Bratanic descubri que la funcin SQL escape_func de FreeRADIUS
podra ser vulnerable a un desbordamiento
de bfer. Tambin descubri que
FreeRADIUS falla al sanear la entrada de
usuario antes de usarlo en una consulta
SQL, permitiendo posiblemente la introduccin
de
un
comando
SQL.
Suministrando una entrada cuidadosamente manipulada, un usuario malicioso podra
inyectar instrucciones SQL en el desbordamiento de bfer. Todos los usuarios de
FreeRADIUS debern actualizarse inmediatamente a la ltima versin disponible.
-Referencia Gentoo: GLSA 200505_13 /
freeradius
-Referencia Suse: SUSE_SR:2005:014

MOZILLA
Mozilla es un avanzado navegador
web, cliente de correo y agente de gru-

pos de noticias, cliente chat IRC y editor


HTML de cdigo abierto.
Se encontraron algunos errores en la
manera en la que Mozilla ejecuta cdigo
javascript. El Javascript ejecutado desde
una pgina web debera correr con un
nivel de acceso restringido, previniendo
acciones peligrosas. Es posible que una
web maliciosa ejecutara cdigo javascript
con privilegios elevados, permitiendo el
acceso a funciones y datos protegidos. El
proyecto Comn de Vulnerabilidaes y
Exposiciones (Common Vulnerabilities
and Exposures o CVE http://cve.mitre.org)
ha asignado los nombres CAN-2005-1476,
CAN-2005-1477, CAN-2005-1531 y CAN2005-1432 a este problema.
Se aconseja a los usuarios de Mozilla que
se actualicen a la ltima versin, la cual con
tiene la correccin a este problema.
-Referencia Gentoo: GLSA200505-11/ mozilla
-Referencia Red Hat: RHSA.2005:
434-10;RHSA-2005:435-14
-Referencia Slackware: SSA: 2005-135-01
-Referencia Suse: SUSE-SA:2005:030

GZIP
gzip es una herramienta de compresin de ficheros.

WWW.LINUX- MAGAZINE.ES

Zgrep en versiones de gzip anteriores a


la 1.3.5 no saneaba los argumentos apropiadamente, lo cual permita a los usuarios
locales ejecutar arbitrariamente los comandos va nombre de ficheros que se introducen en un script sed (CAN-2005-0758).
Se produce una condicin de carrera
en gzip 1.2.4, 1.3.3 y versiones anteriores cuando se descomprime un fichero
gzip que permite a los usuarios locales
modificar los permisos de ficheros arbitrarios a travs de un ataque de un
enlace duro a un fichero mientras est
siendo descomprimido (CAN-20050988).
La vulnerabilidad de un directorio
transversal gunzip-N en las versiones
gzip 1.2.4 hasta 1.3.5, permite a los atacantes remotos escribir a directorios
arbitrarios a travs de .. (punto punto)
en el fichero original dentro de un fichero comprimido (CAN-2005-1228)
Los paquetes actualizados estn parcheados para resolver estos problemas.
-Referencia Gentoo:GLSA 200505-05 /
gzip
-Referencia Mandriva:
MDKSA-2005:092
-Referencia Red HAt:RHSA-2005:357-19

Nmero 08

DVD LINUX MAGAZINE

DVD DE LINUX
MAGAZINE

rada. Debian utiliza la potencia de su


super sistema de paquetes para una instalacin rpida, fcil y fiable. Tambin
ofrece opciones avanzadas, tales como el
arranque desde un dispositivo flash USB.
Incluso se puede configurar RAID o

Contrato Social Debian


1. Debian Permanecer 100% Software
Libre Prometemos mantener la
Distribucin GNU/Linux enteramente
software libre. Daremos soporte a nuestros usuarios que desarrollen y ejecuten
software que no sea libre en Debian,
pero nunca haremos al sistema dependiente de un elemento de tal software.
2. Recompensaremos a la Comunidad
del Software Cuando escribamos nuevos componentes del sistema de
Debian, los licenciaremos como software libre. Haremos el mejor sistema que
podamos, de forma que el software libre
tenga amplia difusin y uso. Enviaremos
arreglos de errores, mejoras, peticiones
de los usuarios, etc. a los autores originales del software incluido en nuestro
sistema.

ocenas de distros embellecen las


pginas de Internet y, sin embargo, el mundo entero sabe que
slo hay un Debian. El muy respetado
Debian GNU/Linux merece un papel
especial dentro del panten Linux, tanto
por su tamao y alcance como por su
conciencia social colectiva. La distribucin Debian sobrepasa el tamao, la
energa y la estabilidad de los principales
distros comerciales. A pesar de todo,
Debian es libre, sin nimo de lucro y
basado en voluntariado.
Los expertos en Linux han venido
usando Debian durante aos, pero el sis-

tema de instalacin sin asistentes ofreca


pocas concesiones a los principiantes.
Ahora, con la llegada de Debian 3.1, al
fin se dispondr de un sistema que es
accesible para todo el mundo. Con su
nuevo instalador, un amplio abanico de
aplicaciones de escritorio tiles, y uno
de los mejores paquetes de administracin de sistemas disponible en cualquier
parte, Debian GNU/Linux est completamente preparado para un nuevo pblico.
Nos sentimos orgullosos de poder ofreceros Debian 3.1. Sarge en el DVD de
este mes de Linux Magazine.

A destacar en Debian 3.1

El cambio ms importante que introduce


Debian 3.1, y quizs la razn ms
importante por la que esta versin de
Debian est en condiciones de llegar
hasta la nueva generacin de usuarios,
es la llegada del nuevo instalador de
Debian. El instalador suministra una
organizacin y una configuracin fciles
del sistema Debian. Las opciones de instalacin se presentan en un formato de
men muy cmodo.
Detrs de los escenarios, el instalador
Debian proporciona un administracin
disco y una deteccin de hardware mejo-

Linux kernel 2.4.27/2.6.8


XFree86 4.3.0
KDE 3.3
Gnome 2.8
OpenOffice 1.1.3
Firefox 1.0.4
GIMP 2.2.6
Apache 1.3.33
Samba 3.0.14
GCC 3.3

Nmero 09

Nuevo Instalador

WWW.LINUX- MAGAZINE.ES

3. No esconderemos Problemas
Mantendremos nuestra base de datos
de informes de errores abierta a acceso
pblico en todo momento. Los informes
que los usuarios enven en lnea se
harn visibles inmediatamente al resto.
4. Nuestras Prioridades son Nuestros
Usuarios y el Software Libre Nos
guiaremos por las necesidades de nuestros usuarios y la comunidad del software libre. Pondremos sus intereses primero en nuestras prioridades. Daremos
soporte a las necesidades de nuestros
usuarios para que puedan trabajar en
muchos tipos distintos de entornos de
trabajo. No pondremos objeciones al
software comercial que vaya a ejecutarse sobre sistemas Debian, y permitiremos a otros a crear distribuciones de
valor aadido conteniendo tanto Debian
como software comercial, sin ningn
cobro por nuestra parte.
5. Programas que No Siguen Nuestros
Estndares de Software Libre
Reconocemos que algunos de nuestros
usuarios necesitan usar programas que
no sigan las Directrices del Software
Libre de Debian (DFSG). Hemos creado
las reas contrib y non-free en
nuestro archivo de FTP para este software. El software en estos directorios no es
parte del sistema Debian, aunque ha
sido configurado para usarse con
Debian.

DVD LINUX MAGAZINE

Figura 1:El escritorio por defecto de GNOME 2.8 de Debian viene con
una coleccin completa de herramientas de GNOME, tales como el
navegador Epiphany y el administrador de ficheros Nautilus.

administracin lgica de volumen desde


el instalador Debian.

Paquetes Perfectos
La instalacin y actualizacin de software en el sistema se lleva a cabo de
manera rpida y cmoda gracias a su
sistema de administracin de paquetes.
Tpicamente slo se necesita escribir un
nico comando para instalar una nueva
aplicacin. Si prefiere una GUI, puede
administrar paquetes a travs del intuitivo Synaptic. Las herramientas del
paquete de Debian descargan automticamente los ficheros necesarios desde
fuentes de Internet y administran cual-

Figura 2:Sarge incluye la versin 1.1.3 de la suite de OpenOffice.

quier dependencia. Otras distros


utilizan sistemas de paquetes similares
(algunos derivados del sistema Debian
y otros modelados a partir de l) pero el
sistema Debian sigue siendo el ms sencillo y el ms eficiente en la instalacin
de nuevo software Linux. Segn el proyecto Debian, todo el sistema Debian
puede ser actualizado, sin tocar ficheros de configuracin a medida y (en la
mayora de los casos), sin tener que rearrancar el sistema.

Tamao y Alcance
El DVD de este mes de Linux Magazine
contiene unos 6.500 paquetes que
representan el contenido de los 7 CDs

de instalacin de Debian. Una vez que


el sistema est en marcha y corriendo,
tendr acceso al resto de Debian a travs del sistema de administracin de
paquetes Debian. En total, su vasta distribucin incluye unos 15.000 paquetes.
Si elige Debian entrar a formar parte
de una extensa comunidad de usuarios,
bloggers, administradores y desarrolladores. El usuario de Debian siempre
tiene a mano su ayuda. La comunidad
Debian est constituida por una red de
unos 1.600 voluntarios, los cuales estn
motivados e invierten personalmente en
el xito de Debian.
Pero Debian no slo es profundo,
tambin es extenso. El lanzamiento oficial de Debian 3.1 soporta 11 arquitecturas de hardware diferentes (este DVD
slo es para la arquitectura Intel i386).
El amplio abanico de hardware soportado por Debian hace que sea una
opcin popular para usuarios que trabajan con un gran variedad de plataformas.

Prubelo ahora

Figura 3:El paquete de herramientas de administracin es til para el entorno grfico en los
paquetes de administracin software de Debian.

WWW.LINUX- MAGAZINE.ES

Nunca ha habido una mejor ocasin


para probar Debian GNU/Linux. El
nuevo Debian 3.1. puede calificarse
como el de ms fcil uso y el ms amigable de los Debian hasta la fecha, y el
prctico formato nico de DVD le hace
incluso ms apropiado.
Ahora puede probar el tan esperado
Debian Sarge sin suplementos de distribucin o descargas de larga duracin.
Enchfese al DVD de Linux Magazine de
este mes y llvese toda la energa del

Debian GNU/Linux 3.1.

Nmero 09

LINUX USER
NOTICIAS

Schlagwort sollte hier stehen

NOTICIAS LINUX
APRENDER DE LO BUENO
Gracias a Dios que no slo lo malo se
pega: Suse estrena OpenSuse.
Con OpenSuse, la empresa Linux filial
de Novell democratiza el desarrollo de
nuevas versiones al permitir la participacin de desarrolladores y usuarios
independientes en la creacin e inclusin de paquetes dentro de Suse.
En el sitio web de
OpenSuse (ver ms abajo),
se alojarn las versiones
estables y de desarrollo de
la distro, que ya no contar con una versin
Profesional y de pago
como hasta ahora. A partir
de la creacin del proyecto, todas las versiones
sern libres y gratuitas
para su descarga.

Si bien algunos malpensados podrn


alegar que lo que se pretende es recortar
gastos (es decir, puestos de trabajo) delegando tareas que antes recaan en perso-

nal de Suse en miembros de la comunidad (y algo de esto sin duda hay), tambin es cierto que con este paso se democratiza la eleccin de paquetes, abriendo
a los usuarios la puerta
para que elijan qu paquetes se incluyen en la distro.
Con este paso, Suse se
suma a las distros que ya
han implementado programas
similares
como
Mandriva y Red Hat, a travs de su versin libre,
Fedora, que, sin llegar a la
total democratizacin de
Debian, permiten que los
usuarios tengan poder de
decisin en el curso a
seguir por la distribucin
y de eso se trata o no?
http://www.opensuse.
org/

FEDORA PARA CLUSTERS


Y para todos aquellos quienes tienen ms de una
mquina 64 bits y varios
metros de cable de red tirados por ah, llega GFS para
Fedora 4.
GFS es el sistema de
archivos para cluster ms
escalable disponible para
Linux, y admite hasta
256 nodos y es el nico
sistema de archivos
nativo de 64 bits para
cluster
disponible
para Linux y compatible con las arquitecturas x86, AMD64/EM64T
e Itanium. Red Hat obtuvo GFS con la adquisicin
de Sistina Systems en 2003.
Tras la adquisicin, Red Hat
trabaj para que la tecnologa patentada de GFS estuviese disponible bajo GPL.

10

Nmero 08

Poner GFS a disposicin


de la comunidad de desarrolladores de cdigo fuente
abierto a travs de Fedora
Core es una continuacin

del
modelo de Red Hat, consistente en establecer amplias
comunidades de uso para

impulsar la innovacin,
declar Paul Cormier, vicepresidente ejecutivo de
ingeniera de Red Hat. GFS
es una tecnologa muy
valiosa que ahora tiene la
oportunidad de mejorar
incluso con mayor rapidez
en la comunidad de des-

arrolladores de cdigo
fuente abierto.
Durante la conferencia
Red Hat Summit celebrada
en junio, Red Hat tambin
anunci la disponibilidad de
Fedora Directory Server, una

WWW.LINUX- MAGAZINE.ES

solucin para la gestin


segura de identidades.
La instalacin del Fedora
Directory Server, segn se
advierte en el sitio de Fedora,
no es para los de corazn
dbil (auguramos horas de
diversin para los lectores
que lo intenten), sin embargo,
viene
ampliamente
documentado
y soportado
por una nutrida comunidad de usuarios.
Tanto Fedora Core 4 con
GFS, como FDS ya estn
disponibles para su descarga desde el sitio web de Fedora.

http://www.fedora.redhat.
com

NOTICIAS

PRODUCTOS
TECLAS CONFIGURABLES
Un teclado
convencional?
Qu aburrido!
Presentamos
el Optimus, un
teclado
que
lleva el concepto de teclas
configurables
a una dimensin totalmente nueva.
El Optimus permite no slo
configurar las teclas para que
realicen las funciones que
deseemos, sino que se puede
cambiar el aspecto del carc-

ter representado en cada


tecla. Y, no,
no hay que
andar
de
aqu
para

all con pegatinas de


colores. El Optimus
incorpora en cada tecla
una diminuta pantallita
OLED de 40 x 40 pixels
que permite al usuario

cambiar los smbolos


con una serie de plantillas ya
incorporadas o descargar iconos al teclado para un aspecto verdaderamente personalizado.
A pesar de estar en una
fase temprana de produccin,
la empresa rusa Art. Lebedev

Studio, creadores del invento,


esperan empezar a comercializarlo a principios del 2005.
El teclado podr utilizarse
con cualquier sistema operativo, dispondr de un SDK
de software libre para el
desarrollo de nuevas aplicaciones y permitir por fin a
los usuarios de Emacs
encontrar todos esos atajos de
manera sencilla y visual (no
es que creamos que ningn
usuario de Emacs se rebajar
a semejante cotas de lameness, pero, en fin).

http://www.artlebedev.com/
portfolio/optimus/

NI TANTO NI TAN POCO


Pero, ahora en serio Eres un
usuario de lite? De verdad?
De verdad de la buena? Eso
lo veremos para el final de la
resea.
A un autntico usuario de
lite se le conoce por lo que
no necesita. Un usuario de
elite no necesita asistentes
para configurar su equipo.
Tampoco necesita iconos
para arrancar sus aplicaciones. Ni siquiera necesita un
entorno grfico para manejar
su sistema operativo, ni un
ratn lo nico que le hace
falta a un verdadero gur es
un monitor monocromo, un
disquete y un teclado.
Y hablando de teclados A
que no sabes de qu ms

puede prescindir un power


user que escupe sobre los
programadores que desarrollan en lenguajes interpretados? Sigue leyendo
Si de verdad crees que eres
el no va ms en el uso y
abuso de la lnea de comandos, tienes que hacerte con el

Das Keyboard de Metadot


corporation.
El DK cuenta con un contrapeso para cada tecla que
compensa la presin con la
que se le suele pulsar,
haciendo que el Das
Keyboard sea ms confortable y agradable de utilizar,

WWW.LINUX- MAGAZINE.ES

pero lo mejor de todo es que


ni una de las teclas tiene un
slo carcter impreso en
ellas. Eso es: es un teclado
ciego.
Segn la empresa que
comercializa el DK, el no
tener caracteres obliga a no
mirar el teclado, lo que, a la
larga, acelera la mecanografa
y mejora la precisin. Sin
embargo, todos sabemos el
porqu se hara uno con este
trasto: por que son increblemente cool, tanto por su
aspecto, como por el concepto subyacente.
(Es tonto preguntar si
tiene la tecla ?).

http://www.daskeyboard.
com/

Nmero 09

11

LINUX USER
CORREO

Schlagwort sollte hier stehen

Correo del Lector

Lista de Mejoras
En primer lugar felicitaros por la revista,
aunque esto no quita que pida algunas
mejoras:
1) Por un lado pienso que la revista se
encuentra demasiado orientada a entornos KDE, cosa que no me parece mal. Yo
mismo utilizo algunos programas de
KDE en el escritorio XFCE. Tendriis que
dar ms informacin sobre programas en
otras plataformas (Gnome, GTK).
2) Ms artculos sobre otros usos de
Linux. Creo que a Linux habra que
sacarlo de ese entorno de servidores y
laboratorios, como ya hacis en la seccin LinuxUser, pero dndole mas espacio.
3) Siempre me he preguntado si son
necesarios los CDs que reparten las
revistas, suelen acabar de posavasos.
4) Ya para acabar: Sera posible una
seccin con empresas dedicadas, en
Espaa, a desarrollar en Linux?
Seguid con el fenomenal trabajo que
estis haciendo.
P.D.: Estoy tratando de montar un
negocio de informtica donde todo el sistema de facturacin se haga en Linux, he
mirado programas (GNUcash) pero
ninguno parece ajustarse a lo que busco.
Alguna sugerencia?
Jolupa

12

Nmero 09

LM Vayamos por partes:


1) S, estamos de acuerdo contigo y
estamos intentando introducir ms
informacin de otros escritorios. Da la
casualidad que algunos de nuestros
autores son desarrolladores KDE y
escriben de lo que saben, pero habrs
notado un incremento de informacin
sobre Gnome en la revista recientemente: Ah tenemos el artculo sobre
administracin de fuentes (tanto en
KDE como para Gnome) del nmero 8.
En el mismo nmero le dimos un repaso a la ltima versin estable de
Gnome, la 2.10. En el nmero 7 publicbamos un artculo de nuestro nuevo
colaborador Alberto Mora que versaba
sobre Soundjuicer, el ripeador de CDs
de Gnome. Hemos publicado en la seccin de desktopia varios artculos
sobre escritorios alternativos: WMI en
el nmero 7 e incluso Twin, un gestor
de ventanas basado en texto en el
nmero 2.
Pensamos seguir en esta vena, aportando toda la informacin sobre gestores
de ventanas que quepan en nuestras
pginas.
2) Lo que pasa es que Linux, al ser un
sistema con tantas aplicaciones posibles,
es difcil dedicarle muchas pginas a una
sola rea. Hablamos de programacin,
administracin de sistemas y de usuarios
finales en la revista. De vez en cuando
tocamos sobre Linux embebido en dispositivos mviles y otras sobre temas de
hardware, pero a pesar de los pesares,
incluso 100 pginas se hacen cortas a la
hora de abarcar todos los campos donde
se puede aplicar Linux.
3) Hombre, nosotros no incluimos
CDs, sino DVDs y siempre tratamos de
que se traten de distribuciones recin
salidas y, cuando podemos, con algn
otro aliciente, como el caso del SuSE 9.2

WWW.LINUX- MAGAZINE.ES

Professional del nmero 7.


4) De hecho, estamos creando una
nueva seccin llamada Linux Local, un
directorio donde empresas que trabajen
con Linux puedan anunciarse y donde
usuarios y otras empresas puedan
encontrar los servicios Linux que necesiten. Si tienes una empresa y crees que
tienes algo que ofrecer a la comunidad,
contacta
con
nosotros
en
anuncios@linux-magazine.es para que
te incluyamos.
En cuanto a tu pregunta sobre programas de administracin, estamos de
acuerdo con que GNUcash no es apto
para su uso como herramienta de administracin monetaria de una empresa. De
hecho, esta herramienta est ms orientada a la administracin de la contabilidad domstica.
En la redaccin hemos probado tanto
BULMAGes[1] y FacturaLux [2] y ambas
alternativas funcionan estupendamente
para lo que es la administracin contable
y de facturacin de una empresa a nivel
profesional. Se ajustan escrupulosamente al Plan Contable Nacional y ofrecen
flexibilidad tanto de configuracin como
de arquitectura. Lo que s es cierto es
que para su correcto manejo, estos programas precisan conocimientos de contabilidad para poder explotarlos como es

debido.

RECURSOS
[1] Sitio web de BULMAGes: http://
bulmages.sourceforge.net/
[2] Sitio web de FacturaLUX: http://
facturalux.org/

Puedes enviaar tus comentarios


y sugerencias a:
correo@linux-magazine.es

www.almogon.de

ACCESO DE ESCRITURA

Seguridad PORTADA

Anlisis de los mtodos del enemigo

TCNICAS DE
INTRUSIN
L

a mayora de los usuarios estn


tan acostumbrados a trabajar en
red, que no caen en la cuenta de
que podra haber alguien escuchando.
Todos sabemos que conviene tener cuidado en Internet, hasta los usuarios
domsticos utilizan cortafuegos para
mantener a los intrusos fuera de su red y
los administradores corporativos aaden
una lnea Maginot de servidores proxy,
honeypots y herramientas de DMZ
(DeMilitarized
Zone,
Zona
DesMilitarizada).
Pero qu ocurre dentro del cortafuegos? Cmo se puede saber si alguien
est escuchando o suplantando la personalidad de otro usuario? Las estadsticas
dicen que muchos ataques comienzan
desde dentro, desde empleados aburridos, o descontentos, buscando emociones fuertes o incluso alguien ms enojado que busca alguna forma de venganza.
En muchas configuraciones corporativas,
un perfecto desconocido puede aparecer
con su ordenador porttil y enchufarlo a
la red sin provocar ninguna respuesta de
los sistemas de seguridad. El problema
es an peor en las redes inalmbricas.
Un gamberro ocasional apostado al otro
lado de la calle, o en el apartamento de
al lado, puede conectarse a sus redes.
Pero cmo consiguen los intrusos el
acceso para entrar? De qu manera tru-

can estos tipos sus propios sistemas para


que, usando la red como medio para sus
ataques, conseguir entrar en los sistemas
ajenos? En portada de este mes daremos
algunas respuestas a esas cuestiones.
Nuestro artculo principal analiza las
tcnicas de intrusin usadas para conectarse
a
clientes
inalmbricos.
Mostraremos oomo un atacante puede
secuestrar una conexin inalmbrica.
Tambin podrn aprender cmo un
intruso empresarial puede fingir ser una
red segura y conseguir que se conecte un
usuario ingenuo. Y mostraremos la
extraordinaria herramienta Hotspotter,
que evidenciar cuan vulnerable son sus
redes inalmbricas.
Nuestro segundo artculo examina el
oscuro arte de la falsificacin ARP (ARP
spoofing). La falsificacin ARP permite al
intruso utilizar una direccin MAC de origen falsa para suplantar a otro ordenador
en la red. Tambin aprendern acerca de
los ataque por inundacin MAC (MAC
flooding), que ataca el mapeado de seguridad de un switch de la red. Tambien
veremos el envenenamiento ARP, una
forma especial de falsificacin que
ataca la tabla ARP de otro ordenador. Les ensearemos porqu
incluso SSL y SSH no son
inmunes a los ataques
ARP y describiremos

algunas herramientas de exploit ARP utilizadas por intrusos reales en redes reales. Finalizaremos con algunos trucos
para que puedan proteger sus redes de
los peligros de la falsificacin ARP.
Para terminar de redondear nuestra
seccin de portada de este mes, echaremos un vistazo al Editor Simple de
Polticas de Seguridad (Simple Security
Policy Editor o SSPE), una manejable
herramienta que nos ayudar a organizar
y mantener Polticas de seguridad a travs de varios cortafuegos. El SSPE libre
ofrece un sencillo front end que les permitir configurar y administrar un complejo entorno de cortafuegos distribuido.
Esperamos que nuestra historia de
portada de este mes sobre seguridad les
brinde nuevas perspectivas e ideas sobre
cmo conseguir redes ms seguras.

EN PORTADA
Hotspotter

. . . . . . . . . . . . . . . . . . . . . . . .14

Falsificacin

. . . . . . . . . . . . . . . . . . . . .18

Polticas de Seguridad SSPE . .24

WWW.LINUX- MAGAZINE.ES

Nmero 09

13

PORTADA Hotspotter

Ataques a Clientes Inalmbricos

EN EL PUNTO
DE MIRA

Los expertos en seguridad siempre estn preocupados por los puntos


de acceso WLAN, pero a veces olvidan que los clientes tambin estn
expuestos a los atacantes. Los puntos de acceso pblicos hacen que
sea bastante fcil para los atacantes secuestrar conexiones, tal y como
lo demuestra la herramienta Hotspotter. POR MAX MOSER

gente desea trabajar sin las ataduras de


los cables. Actualmente, esto es una realidad. Gracias al incremento de la permisibilidad de las redes inalmbricas y a los
buenos administradores, la gente puede
trabajar en muchos lugares pblicos:
aeropuertos, hoteles o salas de congresos.
Si realmente se desea trabajar, apenas
habr obstculos que nos detengan.
Los ejecutivos que tienen que viajar
alrededor del mundo pueden apreciar la
nueva flexibilidad que se encuentran y, a
menudo, deciden reproducir sus propios
medios empresariales. Los departamentos de las tecnologas de la informacin
se ven forzados con frecuencia a introducir complejas infraestructuras de seguridad que se encarguen del trfico sensible que viaja a travs
del ter. Adems, los servicios
inalmbricos de las empresas
casi siempre deben estar restringidos a los usuarios autorizados.

racias a los complejos mecanisriales. Y para asegurarse, los puntos de


mos actuales de seguridad, las
acceso estn equipados tambin con
redes inalmbricas parecen que
soporte VLAN, deteccin de intrusos y
se vuelven ms seguras da a da. Los
sistemas de cortafuegos todo esto con
mecanismos de autenticacin basados
un coste considerablemente alto.
en el marco de trabajo EAP (Protocolo de
Pero los daos surgen ms all de los
Autenticacin Extensible) prometen que
confines de la red de la empresa. En nuesmantendr a los indeseables en la calle.
tra actual y creciente era mvil, mucha
El Protocolo de Integridad de
Claves Temporales (TKIP) [1],
con su rpido intercambio de
claves WEP, impide la repeticin de ataques y hace que sea
ms compleja la vulneracin de
la tecnologa de encriptacin,
permitiendo que las claves sean
ms duraderas.
WPA/WPA2 [2] y la transicin a la encriptacin AES [3]
Figura 1:Conexin a un punto de acceso. Las vulnerabilidades
parece que va a proporcionar
afectan al cliente cuando an est buscando las redes disponiuna solucin de seguridad casi
bles en los pasos 1 y 2.
perfecta para las redes empresa-

14

Nmero 09

WWW.LINUX-MAGAZINE.ES

Administradores
Movimiento

en

Un ejecutivo tpico que viaja a lo


ancho del pas con su porttil
equipado con capacidad WLAN
bajo su brazo normalmente tiene

Hotspotter PORTADA

tes, por ejemplo, de datos,


de control y paquetes de
gestin. Los paquetes de
gestin son particularmente
interesantes en este caso,
ya que manejan alertas de
servicios, conexiones y desconexiones (vase el cuadro titulado Paquetes de
Administracin Crticos).

En Claro
Los paquetes de administracin dentro de las redes
Figura 2: Herramientas como Ethereal permiten analizar la
inalmbricas son transmiestructura de los paquetes IEEE 802. El ejemplo muestra un
tidos en claro (sin encrippaquete Probe Response como los usados por los atacantes
tar). Y por si esto no fuera
descritos en el artculo.
poco, no hay nada que
verifique la integridad ni la
al menos dos configuraciones inalmbrivalidacin del emisor/receptor. Un seguncas o perfiles -una para trabajar en puntos
do punto de acceso podra transmitir
de acceso pblicos, ya sea en aeropuertos
paquetes Respuesta de Sondeo en respuesu hoteles y otro para accesos seguros a la
ta a un paquete Peticin de Sondeo de un
red protegida de la empresa. Internet procliente y luego invitarlo a que se asocie.
porciona varias bases de datos que inforUn paquete Respuesta a Sondeo, como el
man sobre dnde se encuentra localizado
que se muestra en la Figura 2, se compone
el siguiente punto de acceso pblico [4].
de mltiples segmentos.
Una red inalmbrica se compone de mlLos ms importantes son:
tiples elementos y para manejar la cone
Control de Cuadro (FC) especixin se transmiten una variedad de paquefica el tipo del paquete (0
para paquetes de gestin) y
subtipo (5 para Probe ResCuadro 1: Paquetes de
ponse),
adems de flags que
Administracin Crticos
habitualmente estn a 0 para
Beacons: Se envan por el punto de
Probe Response.
acceso para sincronizacin y para infor
Direccin de destino es la direcmar de los parmetros de la red.
cin de destino.
Probe Request: Se envan por el cliente

Direccin fuente es la direccin


para buscar redes disponibles y contieMAC del cliente.
nen parmetros tales como el SSID y la

BSS Id es la direccin MAC del


frecuencia.
punto de acceso.
Probe Response: El punto de acceso

Parmetros fijos se componen


responde a los paquetes Probe Request,
de una marca de tiempo y de
confirmando o rechazando las transacinformacin sobre las capacidaciones.
des de la red.
Association Request: El cliente anuncia

Parmetros Etiquetadps inclusu intencin de unirse a una red especfiyen el SSID, su longitud y el
ca.

Association Response: La contestacin


del punto de acceso, diciendo si permitir al cliente unirse a la red.
Disassociation: El punto de acceso le
indica a los clientes que dejen su conexin actual.
Authentication: La autenticacin del
cliente para la conexin en la red.
Desauthentication: Se enva por el
punto de acceso para eliminar una
autenticacin existente.

Cuadro 2: Modo Monitor


El modo monitor, tambin denominado
modo RFMON, es un modo especial en
el que el firmware de la tarjeta inalmbrica pasa cualquier paquete que reciba
al controlador software, en vez de los
paquetes que realmente estn destinados a ella -puede ser algo parecido a
escuchar mltiples estaciones de radio
al mismo tiempo.

WWW.LINUX-MAGAZINE.ES

canal, adems de las velocidades de transmisin soportadas.


La cuestin es, cmo se supone que los
usuarios van a reconocer que realmente
estn conectados a la red real con la que
se quieren conectar y no a una red controlada por un atacante. De hecho, los
usuarios no tienen forma de saberlo y es
aqu precisamente donde surge el agujero de seguridad.
En una inspeccin ms detallada, se
observa que una red publica la siguiente
informacin:

El nombre lgico de la red


(SSID)

La direccin MAC del punto de


acceso

La configuracin del punto de


acceso
Cualquier punto de acceso puede usar
cualquier SSID, ya que esto es el nombre
lgico de la red actual, y es un valor
libremente configurable que no se valida
y no tiene porqu ser nico.
La direccin MAC del punto de acceso
podra ser fcilmente duplicada si un
atacante usa un punto de acceso basado
en software. Y una direccin MAC duplicada no tiene habitualmente impacto
dentro de una red, al contrario de lo que
sucede en las redes cableadas tradicionales. Un punto de acceso normalmente no
verifica los paquetes entrantes para averiguar si fueron realmente enviados por
l mismo.
Algunos dispositivos incluyen ahora
mdulos de Sistemas de Deteccin de
Intrusos propietarios para comprobar si se
est produciendo un ataque basado en
infiltracin de paquetes. Pero la nica
forma real de eliminar el peligro sera introducir un sistema de validacin emisor/
receptor como el que se implementa en el
proyecto de cdigo abierto llamado Wlsec
[6]. Desafortunadamente este proyecto ha
tenido muy poca aceptacin por los fabricantes de dispositivos inalmbricos.

Sin Autenticacin
Un punto de acceso no podr saltarse
una configuracin de autenticacin y
encriptacin, ya que esta informacin no
se da a conocer. Sin embargo, los parmetros de configuracin de los puntos de
accesos pblicos son diseados para ser
anticipados, algo que no ocurre en los
usados por las empresas privadas.
Ambos esquemas de proteccin son deshabilitados, ya que los puntos de acceso

Nmero 09

15

PORTADA Hotspotter

pblicos no autentican a los usuarios ni


encriptan los datos.
Esto permite a un atacante suplantar una
red; los clientes supondrn que se han
conectado a la red real, aunque en realidad,
se hayan conectado a la red del atacante.
Los atacantes pueden incluso usar mltiples adaptadores para configurar un escenario del hombre en medio, donde el
punto de acceso examina los datos del
cliente antes de enviarlos a su destino.
Esta vulnerabilidad se demostr por
primera vez con Airjack [7]. El grupo
Ssmo, que se hizo famoso con Airsnort,
reconoci rpidamente el problema y
desarroll la herramienta Airsnarf [8],
que genera un punto de acceso basado
en software con una pgina Web de
conexin falsa.
Si un cliente rechaza desconectarse de
una sesin existente, la herramienta
Void11 puede generar paquetes de desautenticacin y forzar al cliente a retroceder
y empezar la bsqueda de redes de nuevo.

Hotspotter
Airsnarf no proporciona a los usuarios
una herramienta totalmente automatizada, ya que supone que algunos parmetros de la red, como el SSID, son conocidos. La herramienta Hottspotter [9], del
autor, utiliza una solucin similar a
Airsnarf pero reacciona autnomamente
frente a las bsquedas realizadas por los
clientes de redes desprotegidas. El programa puede usar cualquier adaptador
que pueda ser configurado usando
iwconfig mode monitor y iwconfig mode
master. Las tarjetas con los chipsets

Cuadro 3: Peligro Grave con


Windows
Para mantener la administracin de los
clientes lo ms sencilla posible y permitir a la gente usar ms o menos cualquier punto de acceso pblico sin tener
que reconfigurar sus porttiles, los usuarios normalmente crean un perfil Mi
red segura y otro Otras. Esta ltima
es un caso especial e incluye cualquier
red, independientemente del nombre de
la red. Si un atacante intenta colarse en
una red segura, el cliente no podr asociarse con la red, ya que la configuracin
de autenticacin y encriptacin se lo
impedir. Sin embargo, este no es siempre el caso de los usuarios Windows con
la configuracin que se ha descrito ya
que el perfil Otras est implcito.

16

Nmero 09

Prism2 y Atheros nos proporcionaron buenos resultados


en nuestro laboratorio.
Hotspotter primero conmuta la tarjeta a RFMON o modo
monitor (vase el cuadro titulado Modo Monitor). En
este modo, el programa acepta cualquier paquete del rea
de recepcin y evala cualFigura 3: Hotspotter en accin, cada punto indica un
quier peticin probe. Los
paquete recibido de la red.
paquetes Probe Request incluyen los detalles de la red que el cliente
espere a que la tarjeta inalmbrica del
est actualmente buscando (vase el
atacante sea configurada como punto de
cuadro Paquetes de Gestin Crticos).
acceso.
Para buscar una red, el cliente enva
Por supuesto que no hay lmites a lo
paquetes Probe Request con el parmetro
que un atacante pueda decirle a
SSID de la red que se busca. De modo
Hotspotter que haga dentro de los confims sencillo, el cliente de nuestro ejemnes de un script bash. Esto puede incluir
plo grita: Hola, es sta la red
asignaciones de direcciones IP basadas
del_punto_de_acceso_pblico
o
en DHCP y resoluciones de nombres
la_de_mi_empresa? Y si sucede esto,
basadas en DNS para el cliente, escaneo
el punto de acceso enva una respuesta y
automtico de puertos, fisgoneo automla conexin puede ser establecida usantico de los datos de la comunicacin o
do la configuracin definida por el perfil
incluso hacerse con el sistema instalandel cliente.
do otro exploit o algn troyano. El ataSi el cliente pierde la conexin, se
cante podra presentarse al cliente con
intenta de nuevo. Dependiendo de la
una pgina de conexin falsa.
configuracin, el cliente puede intentar
Conclusin
localizar las redes definidas en sus perfiles a intervalos regulares o esperar a que
Si se piensa en la cantidad de porttiles
el usuario le indique cuando hacerlo.
que tienen integrados tarjetas inalmbriSi el cliente no encuentra la red que
cas en la actualidad, no es de extraar
est buscando, normalmente sigue con
que las comunicaciones inalmbricas en
la siguiente red que tenga definida en su
trenes, aeropuertos o ferias sean un prolista de perfiles. Esto permite a un atablema de seguridad bastante serio. Es
cante descubrir los perfiles que un clienimportante tomar medidas de seguridad
te tiene definido.
aunque sean caras y no facilitar a los ataHotspotter toma el SSID de la red solicantes nuevos vectores para atacar las

citada y la compara con una lista de puntan seguras redes empresariales.


tos de accesos que no proporcionan
encriptacin. Si Hotspotter encuentra
RECURSOS
alguna coincidencia, inmediatamente
[1] TKIP: http://www.cisco.com
desactiva el modo monitor y automtica[2] WPA: http://wwww.wi-fi.org
mente configura la tarjeta como un
punto de acceso software (vase la
[3] AES: http://www.faqs.org/rfcs/rfc3565.
html
Figura 3). De modo ms simple: S!
Aqu esta la red del_punto_de_acce[4] Directorio International de puntos de
so_pblico; ya puedes conectarte a m.
accesos: http://mobile.yahoo.com/wifi
El cliente tan slo tiene que acceder. Esto
[5] Cliente Odyssey para Windows: http://
hace que la conexin a la red est firmewww.funk.com/radius/wlan/
mente controlada por el atacante.
lan_c_radius. asp

Exploit Automtico
Si se especifica la opcin -r o -e y se le
pasa a Hotspotter un script bash todo
esto ocurre automticamente. -r significa
que se ejecute antes de conmutar al
modo punto de acceso y -e significa que

WWW.LINUX-MAGAZINE.ES

[6] Proyecto WLSec: http://wlsec.net


[7] Airjack: http://sourceforge.net/
projects/airjack
[8] Airsnarf: http://airsnarf.shmoo.com
[9] Hotspotter: http://wwww.
remote-exploit.org

PORTADA ARP Spoofing

ARP Spoofing y Poisoning

TRUCOS DE TRFICO

Cualquier usuario de una LAN puede curiosear y manipular el trfico local. Las tcnicas denominadas ARP
spoofing y poisoning proporcionan a los atacantes una manera fcil de llevarlo a cabo.
POR THOMAS DEMUTH, ACHIM LEITNER

uriosidad, venganza o espionaje


industrial pueden ser las razones
por las que desde dentro de su
propia red un atacante pueda realizar
sus fechoras. Las estadsticas confirman
que entre el 70 y 80 por ciento de los ataques efectuados a una red proceden
desde dentro de la misma [1]. Los administradores pasan bastante tiempo impidiendo estos ataques internos ya que
proteger la red desde dentro es mucho
ms difcil que protegerla frente a ataques externos.
Una de las tcnicas ms formidables de
ataques internos es la que se conoce como
ARP spoofing. ARP spoofing coloca a un
atacante en una posicin en la que puede
espiar y manipular el trfico local. El ataque conocido como el hombre de en medio
es fcil de realizar gracias a un software
sofisticado, incluso los atacantes con muy
pocos conocimientos sobre redes disponen de buenas utilidades para llevar a
cabo su cometido con xito.

Cmo funciona ARP?


El protocolo ARP se public en
Noviembre de 1982 como RFC 826 [2]

18

Nmero 09

por David C. Plumier. Como la seguridad


en las tecnologas de la informacin no
era un factor importante en aquella
poca, el objetivo era simplemente proporcionar funcionalidad. ARP transforma direcciones IP a direcciones MAC. Si
el cliente C necesita enviar un paquete al
servidor S, tiene que saber cual es la
direccin MAC de S si ambas mquinas
estn dentro de la misma subred. Incluso
si S reside en una red diferente, C an
necesita la MAC -en este caso, la direccin del router que reenviar el paquete.
El router se har cargo de todo lo dems.
Para averiguar la direccin MAC, C
retransmite una solicitud ARP a todas las
mquinas de la red local, preguntando
Quin tiene la direccin IP a.b.c.d?. La
mquina que tiene dicha direccin IP
responde indicndole al cliente su direccin MAC (Figura 1).
Como se muestra en la Figura 2, un
paquete ARP se transporta como informacin dentro de una trama Ethernet. Para
permitir que esto pueda hacerse, el valor
de 0x8006 se coloca en la cabecera de la
trama en el campo tipo esto le indica al
destino que se trata de un paquete ARP.

WWW.LINUX-MAGAZINE.ES

Como sera muy costoso el tener que


retransmitir solicitudes ARP y esperar las
respuestas antes de enviar datos, cada
pila IP contienen una tabla ARP, tambin
conocida como ARP cach (Figura 3). La
cach contiene una tabla con las direcciones IP y las direcciones MAC correspondientes. La tabla puede albergar
entradas estticas (por ejemplo, aquellas
generadas por un usuario) y entradas
dinmicas (aquellas que ha ido aprendiendo a travs del protocolo ARP). Las
entradas dinmicas a menudo son vlidas para perodos cortos de tiempo, normalmente unos cuantos minutos.

Efectuando ataques en la
LAN
Como ARP no realiza ningn intento por
protegerse frente paquetes manipulados,
es vulnerable a una serie de ataques. Los
ms comunes son MAC spoofing, MAC
flooding y ARP spoofing.
MAC spoofing implica que el atacante
debe usar una direccin fuente MAC
manipulada. Esta tcnica tiene sentido si
los privilegios van ligados a una direccin
MAC. Muchos administradores de WLAN

ARP Spoofing PORTADA

Figura 1: El cliente utiliza ARP para averiguar la direccin MAC del servidor en la LAN antes
de enviar paquetes a este servidor. La peticin a Who has se transmite a todas las mquinas en la LAN. El nodo con la direccin pedida responder directamente a la mquina que pregunta.

(Wireless LAN) ponen la direccin MAC


de los usuarios autorizados en una lista de
control de acceso. Esto es una medida de
seguridad dbil ya que es fcil de vulnerar.
El atacante tan slo tiene que conocer una
direccin privilegiada y usarla cuando la
mquina con dicha direccin est apagada. MAC spoofing es til cuando los atacantes quieren proteger su identidad.
Hay una forma bastante sencilla de
impedir esta clase de ataques en una red
cableada: muchos switches permiten
seguridad a nivel de puertos. El switch tan
slo aprende la direccin MAC una sola

vez y la almacena permanentemente. A


partir de este momento, el switch no aceptar ninguna otra direccin MAC fuente
conectada a ese puerto. Este mecanismo
es efectivo frente a los ataques MAC spoofing. Como punto negativo se tiene que el
administrador debe reconfigurar el switch
cada vez que se cambie la red.
La seguridad a nivel de puertos puede
tambin proteger la red frente a otra
clase de ataques. El ataque conocido
como MAC flooding est diseado para
echar abajo la seguridad a nivel de puertos de un switch.

Al contrario que los hubs, los switches


usan tablas CAM (Memoria de contenido
direccionable), que especifican el puerto
correspondiente a cada direccin MAC
del switch. El switch tan solo enviar
paquetes a travs del puerto que conduzca a la mquina destino.
Los atacantes pueden deshabilitar esta
funcionalidad sobrecargando el switch
con direcciones -la tabla CAM solo puede
contener un nmero determinado de
direcciones. Si el ataque tiene xito, se
consigue que el switch funcione como un
hub y esto permite que las comunicaciones sean visibles por cualquier puerto.

ARP Poisoning
El tercer ataque no es tan fcil de detectar y no hay contramedidas simples. El
ataque se basa en un ARP spoofing,
donde el atacante deliberadamente
transmite un paquete ARP falso. ARP
poisoning es un tipo especfico de ARP
spoofing cuyo objetivo es manipular
(envenenar en ingls, de ah el nombre)
las tablas ARP de otras mquinas.
Como los sistemas operativos no suelen comprobar si una respuesta ARP es
realmente la contestacin a una solicitud
ARP enviada previamente, la informacin de la direccin de la respuesta es
almacenada en la cach. En los sistemas
Windows los atacantes pueden incluso

Direcciones de la LAN: Conceptos Bsicos


Si dos ordenadores en una red quieren
charlar, necesitan una forma de identificacin entre ellos unvoca. Ethernet utiliza un nmero de 48-bit (6 byte), que es
asignado por el fabricante. La denominada direccin MAC (Control de Acceso al
Medio) es nica en el mundo. Esto permite a los usuarios aadir (ms o
menos) tantos adaptadores Ethernet
como quieran a la LAN. Sin switches o
bridges Ethernet usa broadcasting; esto
es, cada paquete en el cable se enva a
cada nodo de cada segmento de la red.
Pero solo el destino pretendido aceptar
el paquete, mientras todos los otros
nodos lo ignorarn.
Esta solucin es sorprendentemente
fcil, pero no se adapta bien en diversos
entornos. Todo el que est conectado al
medio comn comparte el ancho de
banda. Los bridges y los switches reducen la situacin dividiendo la red en mltiples segmentos y aprendiendo qu
direcciones MAC estn disponibles a travs de los puertos (tabla CAM, Content

Addressable Memory). Esto permite a


estos dispositivos transmitir paquetes
slo a los segmentos donde se encuentra la mquina destino. Sin cada segmento, los nodos de la red pueden
enviarse paquetes unos a otros sin interferencias con comunicaciones en otros
segmentos.
Este principio no es aplicable a todas las
redes. Cada switch necesita conocer el
entorno que le rodea. Para manejar esto,
los creadores de Internet presentaron un
esquema de direcciones basados en las
direcciones IP. Las direcciones IP tienen
una longitud de 32 bits (4 bytes) y comprende una red y una seccin de host. La
mscara de red le dice qu parte de las
direcciones se refiere a la red y qu parte
identifica al host.
Las redes individuales que forman
Internet estn conectadas por routers.
Los routers slo necesitan conocer direcciones de red para enviar paquetes de
forma correcta. Mientras se asignan

WWW.LINUX-MAGAZINE.ES

direcciones IP, la LAN continua utilizando


slo direcciones MAC. Pero sera un
inconveniente para cada programa que
necesite conocer ambas direcciones IP y
las direcciones MAC. Aqu es donde ARP
(Address Resolution Protocol) puede
ayudar proporcionando la direccin
MAC que coincida con una direccin IP.
El administrador no necesita configurar
esto es decir, no hay necesidad de configurar las coincidencias entre direcciones IP/MAC. Como parte negativa, la
automatizacin lleva a un gran problema
de seguridad, que discutiremos con ms
detalle en este artculo.
Junto con ARP, tambin est RARP
(Reverse ARP, [3]). De forma similar a
DHCP, un servidor RARP asigna una
direccin IP a una mquina basada en el
conocimiento de la direccin MAC del
equipo. Como RARP no pasa ningn
otro parmetro (nombre del servidor,
direccin del gateway, mscara de red),
hoy en da es muy extrao usarlo.

Nmero 09

19

PORTADA ARP Spoofing

modificar entradas declaradas por los


usuarios como estticas.
Realizando esto se permite que un atacante monitorice el dilogo entre un
cliente y un servidor y utilizando la tcnica del hombre de en medio, manipule el dilogo. El hombre en medio manipula las entradas del servidor en cach
ARP del cliente, haciendo creer al cliente
que la direccin MAC del atacante es en
realidad la direccin del servidor. El
mismo truco se usa para el servidor.
Si el cliente quiere hablar con el servidor, comprobar su tabla ARP manipulada y enviar el paquete a la direccin
MAC del atacante. Esto permite al atacante leer y modificar el paquete antes
de reenviarlo al servidor. Entonces el servidor supone que el paquete fue enviado
directamente por el cliente. La respuesta
del servidor de nuevo va al atacante, que
la reenva al cliente. Si el servidor reside
en otra subred, el atacante tan solo tiene
que lanzar su ataque contra el router.
Desde luego, un atacante puede provocar una denegacin de servicio simplemente descartando cualquier paquete
recibido. Para manipular los datos, el
atacante simplemente tiene que reenviar
datos diferentes a los que reciba. Los atacantes pueden fcilmente recolectar contraseas, ya que el nmero del puerto les
permite averiguar el protocolo usado e
identificar las credenciales del usuario
basndose en este conocimiento.

Precaucin incluso con SSL


y SSH
Las conexiones encriptadas no son automticamente inmunes, como demuestran diversas herramientas ARP. Estos
programas estn ahora disponibles para
varios sistemas operativos (vase el cuadro titulado Exploits para ARP).
Adems de la funcionalidad de ARP
poisoning, incluye implementaciones
para clientes y servidores de SSL (Secure
Socket Layer), TLS (Transport Layer
Security), SSH (Secure Shell) o PPTP
(Point to Point Tunneling Protocol).
Accediendo a un servidor web SSL, el
navegador alerta al usuario que algo va
mal con el certificado para la conexin.
Pero hay muchos usuarios que no comprenden la importancia de la alerta y
simplemente la ignoran. El hecho de que
muchos servidores usen un certificado
generado por ellos mismos hace que
dichas alertas sean relativamente fre-

20

Nmero 09

cuentes; de hecho, se suele hacer clic y


simplemente ignorar el mensaje. Un
error en algunas versiones del navegador
Internet Explorer hace que sea posible
atacar las conexiones SSL sin que el
navegador ni siquiera muestre la alerta.
El ataque a SSH sigue un patrn similar (Figura 4). Si el cliente ya conoce la
clave del lado del servidor, mostrar un
mensaje claro (Figura 5). Pero muchos

usuarios y administradores ignoran el


aviso, suponiendo que alguien ha cambiado la clave del servidor. Pocos protocolos o implementaciones son inmunes.
(IPsec es una excepcin. IPsec rehsa
trabajar si algo va mal con el proceso de
autenticacin).
A causa de este problema, casi cualquier clase de comunicacin interna es
vulnerable. Hay incluso herramientas

Herramientas de Explotacin ARP


A continuacin nombraremos algunos
programas que permiten a los atacantes
explotar las vulnerabilidades de ARP. Los
administradores pueden utilizar estas
herramientas para testear sus propias
redes. Son bastante tiles para demostrar la severidad de los ataques ARP. El
problema de seguridad real, por supuesto, no es el hecho de que estas herramientas existan, ya que ARP es relativamente inseguro.
ARP-SK: Los programadores describen
sus herramientas como una Navaja
Suiza para ARP; est disponible para
versiones Unix y Windows. El programa puede manipular las tablas ARP en
varios dispositivos. http://www.arp-sk.
org
Arpoc y WCI: Este programa para Unix y
Windows realiza un ataque tipo hombre
de en medio en la LAN. Contesta a cada
peticin ARP que alcanza la mquina
con una respuesta ARP manipulada y
reenva cualquier paquete de entrega no
local al router apropiado. http://www.
phenoelit.de/arpoc/
Arpoison: Una herramienta de lnea de
comandos que crea un paquete ARP
manipulado. El usuario puede especificar la fuente y la direccin IP/MAC de la
tarjeta. http://arpoison.sourceforge.net
Brian: Esta herramienta extremadamente simple (comprendido en un slo fichero C) utiliza ARP poisoning para deshabilitar las interconexiones en la LAN. Esto
permite a un atacante fisgonear todo el
trfico
en
la
red.
http://www.
bournemouthbynight.co.uk/tools/
Cain & Abel: Este sofisticado software
de Windows comenz como una herramienta de recuperacin de claves.
Fisgonea la red y utiliza una variedad de
tcnicas para descifrar claves encriptadas. La versin 2.5 de la herramienta fue
la primera en introducir ARP poisoning,
que permite a los atacantes fisgonear el
trfico IP en la LAN. El programa ataca
conexiones SSH y HTTPS. http://www.
oxid.it/cain.html/

WWW.LINUX-MAGAZINE.ES

Dsniff: Los programas individuales en


esta suite de herramientas llevan a
cabo distintas tareas. Dsniff, Filesnarf,
Mailsnarf, Msgsnarf, Urlsnarf y
Webspy fisgonean la red y cogen
datos interesantes (como claves,
correos
y
ficheros).
Arpspoof,
Dnsspoof y Macof permiten a los
administradores y atacantes acceder
a datos que un switch normalmente
protege. Sshmitm y Webmitm soportan el ataque hombre de en medio en
SSH y HTTPS (aunque el autor se
refiere a ellos como ataques Monkey
in the Middle). http://naughty.monkey.
org/~dugsong/dsniff/
Ettercap: Un potente programa con
una interfaz basada en texto (ver Figura
4); la ltima versin tambin tiene un
interfaz Gtk. Las acciones se realizan
automticamente, con la herramienta
se muestran tarjetas potenciales en
una ventana. Junto a Sniffing, los ataques ARP y la obtencin de claves
automticas, Ettercap tambin puede
manipular datos sin una conexin. El
programa tambin ataca conexiones
SSHv1 y SSL (utilizando las tcnicas
del ataque del hombre de en medio).
http://ettercap.sourceforge.net
Hunt: Las conexiones fallidas, fisgoneo
de datos y secuestro de sesiones. La
herramienta utiliza manipulacin ARP y
otras
tcnicas.
http://
packetstormsecurity.nl/sniffers/hunt/
Juggernaut: En 1997, Phrack Magazine
public Juggernaut, el predecesor de la
mayora de los sniffers actuales con
capacidad para manipular la cach
ARP.
http://www.phrack.org/show.
php?p=50&a=6
Parasite: El servicio Parasite fisgonea la
LAN y responde a peticiones ARP con
respuestas ARP manipuladas. La herramienta permite gradualmente a la
mquina establecerse por s misma
como un hombre de en medio para
cualquier comunicacin en la red.
http://www.thc.org/releases.php

ARP Spoofing PORTADA

difcil de llevar a
cabo. Los administradores tendran que restringir
el uso de la conexin a Internet.
HTTP,
HTTPS,
FTP y el correo
electrnico hacen
Figura 5: Durante el ataque Ettercap (Figura 4), el cliente (odo en
que le sea fcil a
este ejemplo) recibe una clave modificada del servidor. La clave proun atacante infilviene del atacante y no del servidor solicitado (bashir). Si el usuario
trarse dentro de la
escoge ignorar la advertencia, la conexin ser fisgoneada.
red software daino. Los adminispara novatos que pueden obtener contratradores tendran tambin que prohibir
seas de unos 50 protocolos. Como este
el uso de disquetes, CDs, adems de disataque sucede a nivel ARP y normalmenpositivos mviles como porttiles y
te tan solo los accesos IP son registrados
PDAs. Debido a las restricciones de uso,
los atacantes de hoy en da se sienten
esta solucin es inviable.
bastante seguros ya que nadie se percaSi se usa Linux en la red interna y no
tar de que ellos estn al acecho.
se le da a los usuarios los permisos de
root, se pueden evitar la mayora de los
Impidiendo los ataques ARP ataques: los usuarios necesitan los priviUna posible solucin para impedir los
legios de root para enviar paquetes ARP
ataques ARP sera imposibilitar la desdainos. Sin embargo, como administracarga y ejecucin de software externo,
dor, no se tiene una forma efectiva de
aunque esta regla es extremadamente
impedir que los usuarios arranquen sus

mquinas desde un CD o que conecten


sus porttiles a la red.
Las entradas ARP estticas pueden
ayudar a impedir los ataques ARP, pero
la mayora de los administradores querrn evitar el esfuerzo titnico que supone el asignar las direcciones manualmente para todas las mquinas. Como el
sistema operativo de Microsoft permite a
los atacantes manipular incluso las
entradas ARP estticas asignadas
manualmente, conseguir un entorno
seguro es realmente difcil.
Esta solucin tan slo tiene sentido en
pequeas redes, ya que el nmero de
entradas ARP crece proporcionalmente
al cuadrado del nmero de adaptadores
de red. Dicho de otro modo, haran falta
9900 entradas para un sistema con cien
mquinas (99 para cada uno de ellos).
Esto implica un enorme esfuerzo de
administracin, especialmente si se tienen que resolver problemas de red.

Echndole un ojo
Arpwatch [4] es una herramienta de
cdigo abierto para plataformas UNIX

PORTADA ARP Spoofing

ataque. Esta arquitectura hace que


ARP-Guard
se
adapte bien tanto
Figura 3: La tabla ARP en un sistema Linux con una entrada incomen redes pequeas
pleta, una entrada esttica y dos entradas dinmicas (C: completa, M:
como en grandes
esttica).
redes y el interfaz
basado en web que dispone hace que sea
que monitoriza las actividades ARP
apreciado por los administradores.
inusuales. La mquina que ejecuta
ARP-Guard tiene sensores LAN y
Arpwatch lee la informacin de direccioSNMP. Los sensores LAN funcionan
namiento almacenada en cada paquete
como Arpwatch o cualquier sistema IDS,
ARP que pasa por ella y almacena esta
analizando cualquier paquete ARP que
informacin en una base de datos. Si el
el sensor lea. Por el contrario, el sensor
dato no coincide con las entradas ya
SNMP usa el protocolo SNMP para
almacenadas, Arpwatch enva un correo
conectarse a los dispositivos existentes y
al administrador avisndole. El autor
preguntarle por sus tablas ARP.
dice que la herramienta soporta SNMP,
Los sistemas de deteccin de intrusos,
aunque nos ha resultado imposible conIDS, (vase el cuadro titulado Snort y
firmarlo en nuestro laboratorio.
ARP) tambin son capaces de detectar
Actualmente, la mayora de las redes
ataques ARP, pero normalmente se instausan direcciones IP dinmicas asignadas
lan en las fronteras de la red. Pero a
por DHCP (Dynamic Host Configuration
muchos negocios, simplemente no les
Protocol). En esta clase de entornos,
vale la pena instalar un IDS en la red
Arpwatch devolver gran cantidad de
interna. Adems, los empleados podran
avisos de falsos positivos ya que avisar
sentir que estn dentro del Gran
de cualquier cambio producido por las
Hermano bajo la mirada del administradirecciones IP/MAC.
dor de la red. El administrador puede ver
ARP-Guard [5], un producto reciente
todo el trfico de la red y adems monide ISL, funciona dentro del marco de
torizar el acceso de la plantilla. La utiliuna arquitectura gestionada por sensodad de esta solucin es cuestionable,
res. Mltiples sensores monitorizan la
como la mayora de los sistemas IDS
informacin ARP y envan dicha inforsimplemente ignoran el trfico ARP. Y
macin al sistema de gestin, que analipor ltimo, el sistema al completo podra
za los mensajes y alerta a los administracolapsar al enfrentarse a ataques de tipo
dores en el caso de que se produzca un

ARP poisoning en combinacin con la


asignacin dinmica de direcciones IP.

La criptografa al rescate
Los protocolos criptogrficos (IPsec
sobre todo) se aseguran de la confidencialidad, autenticidad e integridad de los
datos, los ataques ARP se reducen simplemente a una denegacin de servicios.
Cualquier intento de fisgonear o manipular los datos fracasarn. Sin embargo,
pasar algn tiempo hasta que IPsec y
otros protocolos criptogrficos se instalen y configuren correctamente dentro de
las redes internas.
Hay un grupo de investigadores que
solicitan que ARP sea reemplazado con
una versin ms segura [7]. S-ARP se
basa en criptografa, un CA (Autoridad
de Certificacin) y mensajes ARP firmados digitalmente. Sin embargo, se cuestiona si vale realmente la pena: IPsec
proporciona mucha ms proteccin con
el mismo esfuerzo, donde S-ARP tan solo
protege ARP. Lo nico que ARP tiene a
su favor es que implica menor sobrecarga de CPU en los sistemas.

Otras tcnicas de
Prevencin
Agunos fabricantes de cortafuegos y routers sostienen que sus productos son
capaces de detectar ataques ARP spoofing, pero estrictamente esto no es verdad ya que estos sistemas tan solo pue-

Snort y ARP
Snort [6] es un ejemplo sobresaliente de
lo que es un IDS para redes. Este sistema
de deteccin de intrusiones ayuda a los
administradores a detectar ataques en
una red en una fase temprana, permitiendo implementar contramedidas.
Snort dispone de un preprocesador
Arpspoof con cuatro mecanismos de
deteccin.

te y destino. Si una de estas comparaciones no coinciden, Snort emite una


advertencia. Como en el caso anterior,
esto no detectara envenenamiento
ARP per se, aunque s Proxy ARP. Por
otro lado, esta tcnica a menudo es
legtima e involucra una mquina que
contesta peticiones ARP en delegacin de otra mquina.

Para cada peticin ARP que detecta, el


preprocesador Arpspoof valida la
direccin fuente en el cuadro Ethernet
contra la direccin fuente el paquete
ARP. Si ambas direcciones no coinciden, emite una advertencia. El envenenamiento ARP no implica la utilizacin de direcciones diferentes en estos
campos, por lo que no se detectara un
ataque en todos los casos.

El sistema alerta en el caso de peticiones ARP que se envan a direcciones


unicast en vez de a broadcast. Aunque
este comportamiento no se conforma
al estndar (que tiene ms de 20
aos), existen buenas razones para
ello. Sin embargo, un autntico ARP
no necesita unicastear peticiones,
por tanto, al igual que ms arriba, este
mecanismo podra fallar a la hora de
detectar una ataque de envenenamiento.

Para respuestas ARP, se lleva a cabo


una comparacin de direcciones fuen-

22

Nmero 09

WWW.LINUX-MAGAZINE.ES

Snort comprueba todos los paquetes


ARP basndose en una lista de direcciones IP y MAC proporcionadas por
el administrador. Si la direccin IP est
en la lista, el IDS leer su correspondiente direccin MAC de la lista y la
comparar con la direccin MAC del
paquete y del cuadro Ethernet. En el
caso de discrepancia, Snort emite una
advertencia. Este mecanismo slo es
til para redes pequeas, al ser el
esfuerzo de configuracin demasiado
grande en otros casos. No hay ninguna manera de utilizar esta funcionalidad de manera consistente con asignacin dinmica de direcciones
(DHCP).
En otras palabras, la capacidad de Snort
para la deteccin de envenenamiento
ARP es limitada, al igual que en el caso
de otros Sistemas de Deteccin de
Intrusiones.

ARP Spoofing PORTADA

vos terminales. El parche Antidote [8] le indica a una mquina Linux


que enve una solicitud
a la direccin MAC previa antes de cambiar
una entrada ARP. La
mquina slo cambiar
la entrada si la solicitud
a la direccin previa no
es
respondida.
De
nuevo, esta solucin no
proporciona
ninguna
proteccin real frente al
sabotaje. El atacante
puede simplemente asegurarse de que el ataque
suceda
cuando
la
mquina con la direccin MAC previa est
Figura 2: Un paquete ARP se transmite como contenido de la
apagada o sea inalcanzable. En el caso de que
trama Ethernet. Los campos con el tipo y la longitud de las
haya bastante sobrecardirecciones en cada paquete son seguidos por el cdigo y los
ga o que se tenga una
datos de destino.
solucin de balanceo de
den detectar y registrar modificaciones
carga, el parche puede causar que la
de sus propias tablas ARP y no tienen
comunicacin a estos sistemas falle.
forma de saber si el cambio se ha produOtra alternativa para protegerse contra
cido por una causa legtima.
ataques ARP poisoning es impedir el reaDividir la red en un gran nmero de
signamiento de direcciones MAC-IP exissubredes y asignar un pequeo nmero de
tentes. El parche Anticap [9] implementa
usuarios a cada subred puede ayudar a
este comportamiento para Linux,
limitar la exposicin a ataques ARP. Los
FreeBSD y NetBSD. Solaris tiene una
switches, que permiten a los administraopcin similar, que requiere que un temdores manejar el trfico de red, proporcioporizador expire antes de aplicar el camnan proteccin contra ataques ARP y sirbio. Este comportamiento se puede conven tambin para gestionar el trfico.
figurar libremente, sin embargo, una
Como contrapunto, esta clase de switch es
solucin como el parche Anticap solacaro, aumenta el volumen de trabajo de
mente protege sistemas que estn encenlos administradores y pueden tener el
didos permanentemente y los atacantes
efecto de bloquear algunas aplicaciones.
no tendrn ningn problema de manipuAlgunos desarrolladores intentan aalar las entradas nuevas una vez que las
dir proteccin a la pila IP en los dispositientradas en la cach hayan expirado.

El kernel 2.4 de Linux o posteriores ya


no reaccionan frente a respuestas ARP
no solicitadas. Desafortunadamente, este
mecanismo se puede saltar fcilmente,
como explica el fichero readme de
Ettercap. El kernel siempre tiene que
procesar las solicitudes ARP. Como al
kernel se le pasa una combinacin de
direccin IP y direccin MAC (de la fuente), aade estos datos a su cach ARP.
As que el atacante tan solo tiene que
enviar una solicitud ARP manipulada.
Ettercap enva una combinacin de solicitud y respuesta, y cualquier sistema
responder a una de estas tcnicas.
La proteccin incorporada dentro de la
pila IP es menos potente para impedir el
ARP spoofing. Si un atacante responde a
una solicitud ARP ms rpido que la
mquina a la que realmente se le est
enviando la solicitud, el atacante gana la
carrera y su direccin es la que se aade
a la tabla ARP.

Sin proteccin
Las tcnicas actuales no pueden proporcionar una proteccin completa frente a
ataques ARP, pero puede armarse con
sistemas IDS y sensores especializados
en la manipulacin ARP para detectar la
mayora de los intentos. Para estar completamente seguro, hay que instalar
IPsec en la red. Ignorar el problema no
es una buena solucin a menos que se
tenga una confianza plena en todos los

usuarios que accedan a la red.

RECURSOS
[1] Encuesta KPMG: http://www.kpmg.
com/about/press.asp?cid=469
[2] Address Resolution Protocol, RFC 826:
http://www.ietf.org/rfc/rfc826.txt
[3] Reverse ARP, RFC 903:http:// www.
ietf. org/ rfc/ rfc903. txt
[4] Arpwatch: http://www-nrg.ee.lbl.gov y
http://www. securityfocus. com/tools/
142
[5] ARP-Guard:https:// www. arp-guard.
com
[6] Snort: http:// www.snort.org
[7] Secure ARP: http:// security.dico.
unimi.it/research.en.html#sarpd y
http://www.acsac.org/ 2003/ papers/
111. pdf

Figura 4: Ettercap esperando para una conexin entre 192.168.1.120 y 192.168.1.124 (fuente y
destino, arriba a la izquierda). La herramienta puede fisgonear telnet y FTP. Utiliza un ataque
tipo hombre de en medio en SSHv1 para desencriptar la conexin.

WWW.LINUX-MAGAZINE.ES

[8] Parche Antidote: http:// www.


securityfocus. com/ archive/ 1/ 299929
[9] Parche Anticap: http:// cvs. antifork.
org/cvsweb. cgi/ anticap/

Nmero 09

23

PORTADA Polticas de Seguridad SSPE

SSPE:Administracin de polticas de seguridad para mltiples cortafuegos

CONTROL CENTRAL
El Simple Security Policy Editor (SSPE) nos ayuda a organizar nuestra red y mantener las polticas de seguridad en mltiples cortafuegos. Podemos referenciar una poltica central para generar conjuntos de reglas para
el filtrado de paquetes y pasarelas VPN. POR CHRISTIAN NEY

ener muchas redes requiere


muchos cortafuegos. El cortafuegos protege la pasarela a Internet,
separa departamentos dentro de una
empresa y ayuda a conectar sitios remotos gracias a la tecnologa VPN. Con este
escenario, es muy til disponer de una
herramienta central para administrar las
polticas de seguridad de los cortafuegos.
El pionero en este campo fue la interfaz
grfica Checkpoint Firewall-1 [3]. Pero
este software comercial sola ser demasiado complicado, con demasiadas
caractersticas, no todas tiles. Esto aada a la herramienta bastante complejidad.
El Simple Security Policy Editor (SSPE)
[1] es mucho ms ligero. Se compone
bsicamente de una coleccin
de scrips de shell y
Perl que

24

Nmero 09

ayudan a administrar un entorno de cortafuegos distribuido.


Al ejecutarlo por primera vez, SSPE
muestra un cuadro de dilogo basado en
texto plano ([6] y Figura 1). Sin emabrgo, este front-end tan espartano esconde
una poderosa herremienta por debajo.
Esta interfaz en modo texto ofrece soporte para administracin remota: podemos
usar un modem o un telfono mvil para
llamar, aunque la herramienta tiene sus
ms y sus menos con las limitadas trasmisiones X11. Que sea una interfaz en
modo texto no significa que no podamos
usar el ratn. Dependiendo del terminal
de emulacin, seremos capaces de pulsar
sobre la ventana de texto.
En lugar de mostrar un men de
opciones para todo, SSPE presupone que
el administrador establecer una serie de
archivos de configuracin. Muchos usuarios preferieren este mtodo, que es
mucho ms consistente con la naturaleza de los cortafuegos. (Otras
interfaces ms sofisticadas
como Firewall Builder [2],
simplemente proporcionan un front-end para
las herramientas
en lnea de
comandos
del sistema

WWW.LINUX-MAGAZINE.ES

operativo, ocultando su complejidad al


usuario).

Enfoque integral
Debido a que cada caracterstica adicional es una amenaza potencial para la
seguridad, trabajar sin una interfaz
demasiado compleja mejora la seguridad
de la estacin de trabajo. Incluso si un
problema de seguridad potencial no afecta al cortafuegos directamente, el peligro
est igualmente presente, desde el
momento en el que un atacante podra
manipular las reglas que el administrador subir posteriormente a los cortafuegos.
El creador de SSPE establece una mnima instalacin Debian que incluya los
paquetes que necesita SSPE: Bash,
Dialog y Perl. Pero con requisitos mnimos cualquier distribucin Linux debera funcionar. En nuestras pruebas no
hubo ningn problema con Debian
Woody y Sarge, el derivado Ubuntu,
Gentoo y Red Hat Linux.

Instalacin de SSPE
Es muy recomendable fortalecer nuestra
estacin de trabajo de administrador.
Claro, que con este consejo podramos
llenar toda una estantera. La documentacin de SSPE proporciona un buen
nmero de consejos tiles. Sugiere a los
usuarios que corran sus equipos en una
red confiable y que instalen el sistema
desde una fuente igualmente confiable.
En la documentacin tambin se
comenta qu servicios deberan deshabilitar los administradores.
Antes de instalar SSPE,
necesiaremos tener instalado IPsec. Aunque SSPE est
basado en el proyecto
Freeswan [4], que fue
abandonado hace dos
aos, Openswan [5]

Polticas de Seguridad SSPE PORTADA

Listado 1: Archivo Profile

Figura 1: El men principal de SSPE es muy claro. La interfaz basada en texto plano permite la
administracin remota de la herreminta.

proporciona un perfecto y compatible


sustituto. Un fork incompatible podra
causar algun problema inicial, pero cualquier persona podr resolverlo gracias a
la disponibilidad de las fuentes Open
Source.
Instalar el software SSPE es un proceso algo contraintuitivo debido a la
ambigedad de la informacin proporcionada. El documento INSTALL incluido en el paquete no pretende dar ms
que algunos consejos para la instalacin y presupone que el administrador
sabe lo que est haciendo. Cuando nos
quedemos sin ms consejos, nos
encontraremos sentados delante de una
pantalla vaca y sin obtener los mensajes de error descriptivos que necesitaramos para encontar el problema. La
causa puede ser un simple directorio
que falta o la ruta en la que estamos
trabajando. Pero los scripts no dan
cuenta de estos errores.

Cuenta de Administrador
Es preferible no ejecutar ningn software
crtico para la seguridad como usuario
root: SSPE slo necesita una cuenta normal de usuario. Tendremos que aadir
un directorio para SSPE en el directorio
de usuario. La documentacin se refiere
a este directorio como adm. Como varios
scripts esperan encontrar el directorio en
$HOME/adm, deberamos seguir esta
recomendacin. La sigiente tarea ser
crear un rbol de directorios bajo el
directorio de administracin. Podemos

hacer esto de una manera sencilla


copiando los subdirectorios desde el tarball de SSPE. SSPE espera encontrar los
scripts de shell y Perl en adm/bin. Los
scripts modifican los archivos de configuracin genrica en adm/etc.
El directorio adm/desc tiene otro subdirectorio para cada mquina que configure SSPE. Aqu es dnde se guardan las
reglas, tablas de enrutado y otros detalles del equipo. adm/software tiene programas que distribuye SSPE a sus pasarelas. Los archivos temporales se sitan
en adm/tmp y tambin necesitaremos un
archivo adm/.config que define las variables que necesita SSPE en tiempo de
ejecucin. Una variable particularmente interesante es BASEDIR:
muchos scripts apuntarn a un agujero negro si la variable BASEDIR
se define incorrectamente.
Por lo tanto debemos
asegurarnos
de
que apunte al
directorio adm.
Adems de
las variables
defindas
en
.config, algunos
scripts auxiliares
requerirn
una
variable de shell
denominada ADMROOT, que apunta al
directorio creado en el
primer paso. La mejor
idea es crear un archivo

WWW.LINUX-MAGAZINE.ES

01 find sspe-0.2.5 -type d -exec


cp {}
02 adm \;
03 # adduser sspe
04 # su - sspe
05 $ mkdir adm
06 $ for DIR in bin etc desc
software ;
07 do cp -r sspe-0.2.5/$DIR adm/
; done
08 $ mkdir adm/tmp
09 $ cp sspe-0.2.5/config
adm/.config
10 $ vi adm/.config # BASEDIR
anpassen
11 $ echo "export
ADMROOT=/home/sspe/adm"
12 >> ~/.profile
13 $ source ~/.profile

profile para configurar todo esto.


Podemos manejar todo este proceso
como se muestra en el Listado 1.
Como SSPE direcciona los equipos por
el nombre del host, tiene sentido aadir
dichos equipos al archivo /etc/hosts.
Aunque podemos saltarnos este paso si
tenemos operativo un entorno DNS, es
preferible usar /etc/hosts por motivos de
seguridad, ya que as reducimos el riesgo
de ataques por envenenamiento de las
DNS.
Las comunicaciones con los cortafuegos se basan enteramente en SSH con
autenticacin con clave
pblica, por lo que
el nuevo usuario
tambin necesita
un par claves
SSH. Para eludir
la necesidad de
teclear la frase
de paso, los
admi-

Nmero 09

25

PORTADA Polticas de Seguridad SSPE

nistradores pueden asignar una frase de


paso vaca a la clave o bien usar un
agente de autenticacin SSH. Por
supuesto, tendremos que transferir la
clave pblica a la mquina objetivo
donde SSPE se loguee como root. La
documentacin de SSPE menciona esto
pero realmente no da ningn consejo al
respecto.

Configuracin Basica
Los detalles de la configuracin se almacenan en varios archivos, cada uno de
ellos administra un asunto especfico (se
suministran ejemplos). La documentacin es mucho ms detallada en este
punto y se extiende para explicar las
relaciones entre los componentes individuales.
El archivo central se denomina
hostnet. Se localiza en adm/etc y agrupa
las mquinas que se regirn por polticas
similares. El agruparlas hace ms fcil
desplegar un diseo de seguridad altamente granular. Lo normal es tener una
poltica comn para la red interna,
donde slo se permite el acceso a clientes muy concretos. Las reglas de acceso
para el propio cortafuegos son usualmente idnticas para muchos equipos,
slo la maquina de administracin necesita especial atencin. En el Listado 2
tenemos un ejemplo.

Listado 2: Hosts y Redes


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23

#Name Network address # Comment


#####################################################################
any 0.0.0.0/0 # anything not explicitly assigned
# Internal networks
lan-dtm 192.168.0.0/24 # Work LAN DTM
lan-muc 192.168.1.0/24 # Work LAN MUC
dmz 192.168.2.0/24 # DMZ
# The boss has more privileges than others
boss 192.168.0.15/32 # The boss' PC
# The administrative machines need SSH access
admin 192.168.0.10/32 # sysadmin PC
# The SSPE workstation needs special rules
sspe 192.168.0.2/32 # SSPE administrative machine
# Internal and external gateway definitions
def-gw 192.168.0.1/32 # Internal NIC of firewall
gw-all 192.168.0.1/32 # Firewall DTM location
gw-all 1.2.3.4/32 # Firewall external DTM location
gw-all 2.3.4.5/32 # Firewall external MUC location

Listado 3: Redes Privadas


01
02
03
04
05

#Name
Network address # Comment
##############################################################
lan-dtm
192.168.0.0/24 # Work LAN DTM
lan-muc
192.168.1.0/24 # Work LAN MUC
dmz
192.168.2.0/24 # DMZ

NAT e IPsec
Si nuestra red usa NAT (Network
Address Translation) es importante definir previamente las redes
privadas de uso
interno
(usualmente basadas
en la RFC 1918
[7]), para asegurar que el
conjunto
de

26

Nmero 09

reglas se aplica correctamente. El archivo


de configuracin privates (vase Listado
3) se usa para este propsito. El mapeo
NAT para la red y las direcciones IP se
definen en nathosts (vase Listado 4).
Si queremos que adems SSPE
maneje la configuracin de IPsec,
tendremos que modificar el
archivo ipsecs.
Otros tres archivos de
configuracin terminan de definir el
conjunto de reglas
del cortafuegos.
Las reglas para el
acceso de administracin en rules
admin
e
IPsec
rules.ipsec son ms
bien estticas y no
varan mucho entre las
mquinas implicadas. El
conjunto de reglas se
almacena en rules.user. La

WWW.LINUX-MAGAZINE.ES

sintaxis de todos estos archivos es bastante sencilla (Listado 5).


Las reglas aplicadas en nuestros archivos de ejemplo permiten a la mquina
admin establecer una conexin SSH con
la mquina obejtivo sspe (ambas mquinas estn definidas en hostnet). La palabra clave Oneway asegura que la conexin es unidireccional. SSPE aplica estas
reglas a cada pasarela, por lo que el conjunto de reglas que definamos debera
ser lo ms universal posible.

Cortafuegos Individuales
Ya podemos usar la interfaz de SSPE
que se ejecuta tecleando adm/bin/adm.
Por supuesto, nada nos impide modificar los archivos de configuracin en los
directorios bajo desc de manera
manual, pero parece evidente que la
opcin machine administration | add
(vase Figuras 1 y 2) nos ofrecen un
mtodo ms sencillo. Las mquinas tienen que usar los mismo nombres que

Polticas de Seguridad SSPE PORTADA

Listado 4: Configuracin NAT


01
02
03
04

#Local network NAT Address


# Comment
###########################################################
192.168.0.0/24 1.2.3.4 # DTM
192.168.1.0/24 2.3.4.5 # MUC

Conclusiones

Listado 5: Conjunto de reglas


01 #Source Target Direction
Protocol
Port
Options
02 #############################################################
03 admin
sspe
Oneway TCP
ssh
accept LOG

se definieron en nuestro archivo hostnet. Desafortunadamente, la herramienta no resuelve nombres con direcciones IP e insiste en preguntar al
administrador estos detalles.
SSPE genera el directorio requerido
con tres archivos: desc contiene la descripcin, ip la

Si pulsamos en apply en el men (vase


Figura 1) se despliega el diseo de la seguridad de todas las mquinas implicadas, o
a una seleccin de ellas. Aqu comprobaremos si la configuracin es correcta.
El apartado ipsecs administration simplemente revela el contenido de la configuracin del archivo de configuracin
ipsecs, pero sin los comentarios. Si la
estacin de trabajo no tiene un archivo
/ect/ipsecs, SSPE muestra un mensaje de
error y se cierra. Si tiene xito, el programa espera a que el administrador pulse
[Enter]. Entonces empieza a generar y
distribuir las configuraciones IPsec y
otros secretos previamente compartidos.
El apartado machine configuration
(vase Figura 2). No slo se usa para
aadir nuevas pasarelas y listar las ya
existentes: podemos incluso deshabilitar
mquinas individuales que esten temporalmente no disponibles.

Policy

a los archivos rules.* globales. Estos


enlaces simblicos aseguran que cada
cortafuegos observa tambin el conjunto de reglas global. En un escenario
simple con un solo cortafuegos, slo
necesitaramos las reglas globales. En
casos ms complejos se necesita usar
distintos archivos rules.user para cada
cortafuegos. Las reglas de este archivo
tienen prioridad respecto del archivo
global.

Men Cinco Opciones


El programa principal de SSPE est principalmente diseado para ayudar a
visualizar las configuraciones. El apartado rules administration lista el contenido de hostnet y permite a los administradores llamar a un editor de textos
para editar manualmente el conjunto de reglas global. Ser necesario politicas individuales para
las reglas especficas de sitios
concretos.

WWW.LINUX-MAGAZINE.ES

SSPE logra su objetivo de proporcionar


una administracin ms simple y efectiva de sistemas con cortafuegos distribuidos. Puede ser algo complicado habituarse al diseo, pero est realmente
bien pensado y es capaz de soportar
escenarios realmente complejos.
El proyecto no ha tenido la relevancia
que merece hasta la fecha, pero su popularidad se est incrementando. Slo cabe
esperar que ms desarrolladores se den
cuenta de su potencial y contribuyan con

innovaciones.

RECURSOS
[1] SSPE: http://sspe.sourceforge.net
[2] FW-Builder: http://www.fwbuilder.org
[3] Checkpoint Firewall-1: http://www.
checkpoint.com/products/firewall-1/
[4] Freeswan: http://www.freeswan.org
[5] Openswan: http://www. openswan.
org
[6] Dialog: http://hightek.org/dialog/
[7] RFC 1918, Address Allocation for
Private Internets http://www.ietf.org/
rfc/rfc1918.txt

EL AUTOR

Figura 2: Los cortafuegos que necesitan una configuracin individual se


aaden al menu de equipos. SSPE aade las configuraciones individuales
a la configuracin bsica, que se aplica a toda la red.

direccin de la
mquina y hw
identifica sistemas operativos
tipo Unix y
Cisco.
Esto
influye
en
cmo descubre
SSPE las rutas
de una pasarela, por ejemplo.
Adems de
estos
tres
archivos independientes,
hay tres enlaces simblicos

Christian Ney es un administrador


de Unix y cortafuegos empleado
por una lnea area regional. En su
tiempo libre, Christian administra
un wiki en RootieWiki.de y contribuye en un buen nmero de proyectos de software libre.

Nmero 09

27

PRCTICO Ubuntu Notebook

Sub-notebook HP Compaq NC4200 con Ubuntu Linux

EL PORTTIL LINUX

Figura 1: HP comercializar el NC4200 a partir


de julio con Ubuntu
Linux en lugar de
Windows XP. El soporte
hardware personalizado
con Ubuntu 5.0.4 es
excelente.

Debido a los componentes altamente especficos de muchos porttiles, Linux requiere a menudo de distintos
parches o incluso drivers de Windows para funcionar correctamente. El HP NC4200 es diferente: la distribucin Ubuntu Linux con la que viene soporta prcticamente todas sus funcionalidades de hardware.
POR MIRKO DLLE

l mercado de los porttiles se


divide fundamentalmente en
dos grupos: aquellos con dispositivos Centrino certificados y los que
tienen otro hardware diferente. Aunque
Centrino no es otra cosa que un gran
montaje de marketing de Intel para
dominar el sector WLAN, la certificacin Intel tiene un efecto en el mercado
de los porttiles: todos los porttiles

28

Nmero 09

Centrino tienen ms o menos el mismo


hardware base. El mismo que el del
HPs NC4200 que se vender con una
versin personalizada de Ubuntu
Linux en lugar de Windows XP.

El prototipo a prueba
El Hardware Competence Center de
Linux Magazine se las arregl para conseguir una unidad de pre-produccin del

WWW.LINUX- MAGAZINE.ES

porttil. Tiene casi el tamao de una


hoja A4. En la versin estadounidense la
pantalla puede rotarse 180 grados y
situarse encima del teclado, convirtiendo el porttil en un tablet PC, incluso
con pantalla tctil y algunos botones
adicionales en el borde de la pantalla. La
versin europea lleva una pantalla
estndar con 12.1 pulgadas y una resolucin de 1024x768 pixels.

Ubuntu Notebook PRCTICO

Figura 2: El botn con el smbolo de la antena a la izquierda del conector USB deshabilita y vuelve a habilitar el WLAN y el Bluetooth sin necesidad de reiniciar el sistema. El botn de informacin situado entre el de encendido y el conector USB genera un cdigo de exploracin que
arranca por defecto el explorador de ayuda de Gnome.

Por lo dems, la unidad de pruebas es


idntica a la final: el porttil Centrino
estar dotado de un Pentium Mobile 1,73
GHz, 512 MByte de RAM y un disco duro
de 40 GBytes. Pero no se incluye ni una
unidad de disco ptico ni una simple
baha por los 1500 Euros de este caro
porttil: HP lo ha diseado tan pequeo
que slo estarn disponibles como unidades externas.
La ausencia de unidad ptica es el
principal problema para instalar el sistema operativo: Ubuntu Linux 5.0.4 se
adjunta slo en CD, el disco duro contiene nicamente un sistema Free-DOS. Sin
una unidad externa USB CD no hay
forma de instalar Ubuntu en el porttil.
Afortunadamente, no importa la marca
de la unidad CD, una grabadora DVD
estndar con un conector USB 2.0 funcionar sin problemas y nos ahorrar
unos buenos euros en comparacin con
una simple unidad CD-ROM del fabricante del porttil.

Primer contacto
Aunque no tenemos unidad ptica, el
porttil viene equipado con un buen conjunto de conectores. Junto con tres puertos USB 2.0, un slot PCMCIA y una ranura
para tarjetas SD/MMC, el HP NC4200
viene con un conector de modem, un
puerto ethernet y conectores VGA y PS/2
en la parte trasera. En cuanto a conexiones inalmbricas, el porttil trae, siguiendo el estndar Centrino, un adaptador
WLAN de Intel de 54 MBit/s as como
una interfaz IrDA. El mdulo Bluetooth
que traa instalado la unidad de pruebas
est disponible como ampliacin. Tanto el
adaptador WLAN como el Bluetooth pue-

den deshabilitarse y volverse a habilitar


con un pequeo botn situado en el lado
izquierdo del porttil, (vase Figura 2),
sin necesidad de reiniciar.
La batera de este sub-notebook puede
acumular unos 50 Wh de energa y
aguant ms de tres horas durante la
prueba. Debido a que la batera de esta
unidad de pre-produccin tena casi un
ao de uso, no le pasamos el test habitual. Un porttil nuevo debera aguantar
entre tres y cuatro horas sin necesidad
de alimentacin.
El acabado del porttil es razonablemente bueno, no tiene partes que vibren
ni ms grandes de la cuenta. El teclado
tiene un umbral de actuacin claramente
perceptible y para suplir el ratn HP ha
incluido un puntero tipo track point
adems de un touchpad con sus dos
botones correspondientes.

Ubuntu personalizado
Los desarrolladores de HP y Ubuntu han
simplificado el proceso de instalacin de

la distro enormemente: en lugar del


nombre de usuario y su password, ya no
hay selecciones complicadas. nicamente la denominacin de los dispositivos de
red es un poco extraa, eth0 es el nombre para el mdulo WLAN mientras que
eth1 est asociado con el puerto ethernet
de la parte de atrs del porttil. En la
mayora de los porttiles es exactamente
a la inversa.
Los desarrolladores de Ubuntu han
hecho un gran trabajo en cuanto al
soporte del hardware: salvo por la ranura
de tarjetas SD/MMC, el modo suspendido y la pantalla tctil (que no est disponible en Europa), todos los dems componentes funcionan a la primera.
El mdulo del kernel ipw2200 es el responsable del mdulo Intel WLAN Pro/
Wireless 2200BG y hace accesible el dispositivo WLAN a travs de un dispositivo normal ethernet denominado eth0
con extensiones wireless en lugar de
denominarlo wlan0. Por lo tanto, al configurar el firewall o el enrutado, debemos

HP Compaq NC4200
Fabricante:
Hewlett Packard http://www.hewlett-packard.com
CPU:
Pentium-M, 1,73 GHz
Memoria:
512 MB DDR (max. 2 GB)
Discos:
Disco duro 40 GB, 2,5 pulgadas
Pantalla:
TFT, 12,1 pulgadas, 1024x768 Pxeles
Batera:
LiIo, 10,8 Voltios, 4500 mAh (48,6 Wh)
Dispositivos de sealamiento:
Track point, Touchpad con zona de scrolling y tercer
botn de ratn
Dispositivos de red:
Intel Pro Wireless 2200BG WLAN Adapter (802.11b/g),
Ethernet 10/100/1000 MBit/s (Broadcom), 56k Smartlink Modem, Bluetooth (opcional)
Conectores:
3 x USB 2.0, Modem, Ethernet, Monitor externo, PS/2, Auriculares/Micrfono,
PCMCIA, SD/MMC
Tamao/peso: 28,5 cm x 23,5 cm x 3 cm / 1,8 kg
Precio:
1500 Euros aprox.

WWW.LINUX- MAGAZINE.ES

Nmero 09

29

PRCTICO Ubuntu Notebook

Figura 3: HP monta el NC4200 tanto con un track point como con un touchpad, ofreciendo al usuario los dos principales sustitutos del ratn.
La zona ranurada a la derecha del touchpad funciona como rueda de scroll y tercer botn.

tener esto en cuenta para evitar proporcionar servicios no deseados o abrir


puertos en el dispositivo equivocado.
El demonio slmodem emula un pseudo TTY con emulacin de un modem
serie estndar para el softlink modem.
Adems de esto, el enlace simblico
/dev/modem apunta a este pseudo TTY
para facilitar la configuracin.

Teclas especiales
Para conectar el telfono mvil al porttil, HP ha incorporado un adaptador
Bluetooth junto con una interfaz IrDA.
Ambos estn listos para operar desde el
primer momento tras instalar Ubuntu.
Incluso las teclas especiales de volumen,
mute y el botn de informacin del lateral izquierdo. El nico problema que
puede acarrear el botn de info es la
saturacin: si abrimos muchas ventanas
de ayuda podemos ir quedndonos sin
memoria disponible.
Tambin podemos mapear nosotros
mismos las teclas especiales a comandos
que queramos, ya que cada tecla genera
un cdigo que pueden remapearse en
System / Settings / Macros.

El tercer botn del ratn


El touchpad es un sustituto del ratn
bastante bueno: adems del rea sensitiva y los dos botones del ratn que hay
bajo esta, tiene una zona ranurada a la
derecha (vase Figura 3) que simula una

30

Nmero 09

rueda de desplazamiento. Adems, esta


zona ranurada funciona tambin como el
botn central de un ratn de tres botones
si se le da un toquecito. Esto resuelve el
viejo problema de apretar el botn
izquierdo y el derecho simultneamente
para emular el tercer botn en operaciones de copia y pega. El nico pero se
lo lleva la situacin de esta zona ranurada: una persona diestra puede tocar esta
rea sin querer, al operar con el touchpad. Estara mejor puesta en la parte
izquierda.
Los modos de ahorro de energa de los
Intel Pentium Mobile estn disponibles
desde la instalacin estndar de Ubuntu,
excepto el modo suspendido a RAM (S3)
que no funcionaba en esta unidad de
pre-produccin. Cada vez que ponamos
el porttil en estado S3, que aparece
como disponible en /proc/acpi/sleep, el
porttil se suspenda pero no se poda
volver a despertar. Segn HP, esta caracterstica debera estar disponible en el
prximo lanzamiento de Ubuntu, que
debera aparecer con mejoras y mayor
soporte para los porttiles HP. Thomas
Schneller ,de HP, es el responsable de
desarrollo. Para cualquier duda se puede
contactar con l en [1] .

Resumen
El hardware del HP Compaq NC4200
est bien soportado por Ubuntu Linux,
empezando por los componentes

WWW.LINUX- MAGAZINE.ES

Centrino ampliamente utilizados y terminando por algunos detalles adorables


geniales como las teclas especiales programables. Con otras distribuciones de
Linux podra aparecer algn problema
menor con el soporte del harware. Las
fuentes y los parches del kernel saldrn
en julio, cuando HP comience a comercializar el porttil con Ubuntu en lugar
de Windows XP.
Debido al pequeo tamao de este
sub-notebook hay algunas limitaciones
que deben de tenerse en cuenta: ausencia de disco ptico, una segunda batera
debe conectarse externamente y que slo
est disponible una pantalla de 12.1 pulgadas con una resolucin de 1024x768
pxeles como mximo. Hay pocas pantallas del mismo tamao y con mayor resolucin en el mercado, lo que hara al porttil mucho ms caro, pero que una resolucin XGA es el mnimo absoluto hoy
da, no es ningn secreto.
Si HP consigue finalmente incorporar
el modo suspendido o el lector de tarjetas SD/MMC bajo Linux, el HP NC4200
ser sin duda el porttil Linux ptimo.

RECURSOS
[1] Sitio de Linux sobre portatiles HP:
hp_linux_laptops@swipp.de
[2] Descargas de la iso de Ubuntu para
porttiles HP: http://www.ubuntu.com/
support/custom/hplaptops

ColdFusion MX 7 Server PRCTICO

Una mirada al nuevo servidor ColdFusion MX7 de Macromedia para Linux

MUY COOL

entre otras. Con ColdFusion el usuario no


tiene que preocuparse de ningn fichero
de configuracin; las opciones de configuracin estn disponibles en el
Administrator.

Contenido Enriquecido

El nuevo servidor ColdFusion MX7 de Macromedia permite crear aplicaciones web de alto rendimiento. Vamos a mostrar en este artculo las
novedades y los cambios que se han producido en esta ltima versin.
POR LARKIN CUNNINGHAM

a versin de ColdFusion MX7 [1]


marca el dcimo aniversario de la
plataforma de desarrollo web
ColdFusion. Originalmente era una aplicacin Windows en C++, actualmente
es un entorno de desarrollo basado en
J2EE que se ejecuta en Linux, AIX, Mac
OS X y Solaris, adems de funcionar tambin en Windows.
La plataforma ColdFusion fue creada y
desarrollada por Allarie Corporation.
Macromedia adquiri ColdFusion en el
2001 y lanz la versin ColdFusion 6.0,
llamando al producto ColdFusion MX
para integrarlo con otros productos de la
lnea
Macromedia
MX,
como
Dreamweaver y Flash.
Macromedia ha seguido desarrollando
ColdFusion y ha ido aadindole distintas mejoras con el paso del tiempo. Esta
ltima versin ha ido ms lejos an y ha
proporcionado a ColdFusion una generacin de contenidos nuevos como la mejora de capacidades grficas, generacin de

informes usando FlashPaper y PDF y formularios de entrada de datos Flash, permitiendo diseos complejos de formularios como las solapas.

El Administrador
ColdFusion viene con una aplicacin web
de administracin (Figura 1) para ayudar
a gestionar el entorno ColdFusion. La
aplicacin de administracin permite
configurar la variable cach del cliente, la
memoria de Java/JVM y otras variables
de tiempo de ejecucin que se pueden
modificar para mejorar el rendimiento
global. Esta caracterstica proporciona
una interfaz fcil de usar para gestionar
los parmetros de configuracin que
requieren un fichero de texto (php.ini) en
PHP.
El Administrator tambin permite configurar las fuentes de datos, los servicios
web, el planificador de tareas, las etiquetas personalizadas (se ver ms adelante)
y la seguridad del entorno de ejecucin

WWW.LINUX- MAGAZINE.ES

Macromedia es sin duda el maestro del


contenido enriquecido en Internet. El formato Flash [3] para las animaciones basadas en web, los juegos y los interfaces amigables al usuario es un estndar de hecho.
Los Applets de Java y los controles ActiveX
parecen primitivos si se les compara.
Por tanto, no es sorprendente que
Macromedia se haya aprovechado de su
famosa tecnologa Flash para mejorar la
produccin de contenidos en ColdFusion.
El Formato Flash es una opcin a la hora
de mostrar grficas y formularios de
entrada de datos, y el nuevo formato
Macromedia FlashPaper [4] (Figura 2) es
una buena opcin cuando se desea obtener documentos como informes. Tambin
est soportado el formato Adobe PDF
(Portable Document Format). La eleccin
de PDF y FlashPaper significa que el
usuario puede obtener contenidos que se
garantizan que van a ser impresos exactamente como aparecen en el navegador
web.
El soporte de Flash y PDF en Linux ha
mejorado considerablemente en estos
ltimos meses. Esto supone que se puede
instalar una aplicacin ColdFusion en la
intranet bajo un entorno Linux ofreciendo las mismas caractersticas que se disponan para otras plataformas.

La etiqueta CFCHART
La etiqueta CFCHART de ColdFusion permite obtener grficas con una alta cali-

Listado 1: empquery.cfm
01 <CFQUER Y NAME= qr yGetREmps
DATASOURCE= #MyDSN# >
02 SELECT * FROM employees
03 </CFQUERY>
04
05 <CFOUTPUT QUERY= qryGetEmps >
06 Name: #qryGetEmps. FirstName#
#qryGetEmps. LastName#<br>
07 A d d r e s s : # q r y G e t E m p s .
Address1#, #qryGetEmps.
Address2#
08 </CFOUTPUT>

Nmero 09

31

PRCTICO ColdFusion MX 7 Server

dad en formatos PNG, JPEG o Flash. El


formato Flash para las grficas proporciona opciones adicionales a las mismas,
como lneas o barras elevndose desde el
eje-X al punto exacto del valor del dato o
grficas de tartas con sombras y degradados. Cada formato de grfica permite el
uso de regiones sensibles al clic del
ratn, proporcionando al usuario la
potencia de asignar valores URL a los
segmentos de las grficas. Esta caracterstica proporciona la posibilidad de
crear niveles de grficas para los
Sistemas de Informacin Empresarial
(MIS) y los Sistemas de Soporte a la
Decisin (DSS). ColdFusion ofrece
muchas otras opciones para las grficas.
Por ejemplo, se puede elegir entre grficas de lneas, barras, tartas, etc.
PHP ofrece algunas opciones de terceros para crear grficas. Probablemente la
opcin ms popular para crear grficas
en PHP sea JpGraph, que proporciona

Listado 1: empquery.cfm
01 <CFQUERY NAME= qryGetREmps
DATASOURCE= #MyDSN# >
02 SELECT * FROM employees
03 </CFQUERY>
04
05 <CFOUTPUT QUERY= qryGetEmps >
06 Name: #qryGetEmps. FirstName#
#qryGetEmps. LastName#<br>
07 Address: #qryGetEmps.
Address1#, #qryGetEmps.
Address2#
08 </CFOUTPUT>

Listado 2: empquery.php
01 $dbconn = new mysqli($dbhost,
$dbuser, $dbpass, $dbname);
02
03 $result =
$dbconn->query('SELECT * FROM
employees');
04
05 while ($row =
$result->fetch_assoc())
06 {
07 printf( Name: %s %s<br> ,
$row['FirstName'],
$row['LastName']);
08 printf( Address: %s, %s ,
$row['Address1'],
$row['Address2']);
09 }

32

Nmero 09

una coleccin de
tipos de grficas
mejores que las
de
ColdFusion.
JpGraph est disponible gratuitamente para uso
no comercial. Hay
que decir que las
grficas
en
ColdFusion estn
mejor conseguidas,
aparecen
mejor definidas,
con bordes suavizados y el motor
interno de generaFigura 1: El Administrator de ColdFusion evita que el usuario se tenga
cin de grficas es
que enfrentar con la lnea de comandos y los ficheros de configurams sencillo de
cin.
configurar.
En la Figura 3 se puede ver una grfica
CFCHARTDATA. Como se puede observar
de ejemplo mostrando los niveles de
en el Listado 3, se pueden usar bastantes
spam y virus de los ltimos 30 das. En el
parmetros para configurar las grficas
Listado 3, se encuentra el cdigo que,
en ColdFusion.
haciendo uso de la etiqueta CFCHART, se
Formularios Flash,
ha usado para crear la grfica de la Figura
ActionScript y Remoting
3.
Los formularios de entrada de datos
La etiqueta CFCHARTSERIES se usa
basados en Flash permiten el procesapara especificar cada lnea o barra en una
miento de los mismos en el lado cliente,
grfica de lneas o barras, o para especifitanto la visualizacin como la validacin
car los segmentos en una grfica de tarta.
de los mismos. Los formularios de entraEn el ejemplo descrito previamente, se
da de datos basados en Flash amplan las
itera sobre algunas consultas, creando
caractersticas de HTML y JavaScript, y
muchos puntos de datos con la etiqueta

La solucin basada en etiquetas


CFML es un lenguaje basado en etiquetas con CFML y HTML almacenado en
ficheros de pginas web .cfm. En vez de
usar la solucin tradicional de los lenguajes de script como PHP y ASP, CFML
usa etiquetas similares a HTML, con etiquetas de apertura y cierre. No todo lo
que tiene CFML est basado en etiquetas, sin embargo, la mayora de las etiquetas tienen su equivalente en script. El
Listado 1 muestra una consulta SQL simple seguida de la salida de los resultados
de la consulta.

Las variables y las llamadas a funciones


se incluyen entre caracteres almohadillas (#) y se incluyen entre etiquetas
CFML o como parmetros de etiquetas
CFML para ser interpretados por
ColdFusion. Incluir la consulta como
parmetro de la etiqueta CFOUTPUT
hace que la etiqueta itere por todas las
filas del resultado de la consulta.

Ntese como las etiquetas CFML toman


parmetros como las etiquetas HTML
estndar. En el ejemplo anterior, la etiqueta CFQUERY se usa para obtener un
conjunto de resultados de la conexin a
la base de datos que se ha creado usando la cadena de conexin MyDSN definida en el Administrator de ColdFusion (se
ver ms adelante). La salida de los
datos resultados se lleva a cabo fcilmente usando la etiqueta CFOUTPUT.

Como se puede ver en los listados,


CFML tiene la ventaja de ser ms fcil de
escribir y leer que el cdigo equivalente
en PHP. Para un diseador web sin conocimientos o con pocos conocimientos de
programacin, CFML es ms fcil y rpido de aprender que PHP. CFML proporciona a los principiantes la capacidad de
crear potentes aplicaciones con tan slo
unas cuantas etiquetas.

WWW.LINUX- MAGAZINE.ES

Comprese esto con el equivalente en


PHP 5 / mysqli [2] en el Listado 2. La captura de excepciones ha sido omitida por
simplicidad.

ColdFusion MX 7 Server PRCTICO

a la aplicacin ColdFusion interactuar con aplicaciones Flash MX


avanzadas y animaciones. Un
desarrollador Flash MX que no
conozca CFML puede an realizar un ActionScript del lado del
servidor que interacte con los
recursos ColdFusion. Esto permite una separacin entre la lgica
de negocio y la presentacin en
Flash.

Programacin
Orientada a Objetos
Aunque CFML y PHP histricamente han sido lenguajes de programacin estructurados, ambos
implementan caractersticas de
orientacin a objetos. Sin embargo, ninguno de los dos puede considerarse realmente uno lenguaje orientado a objetos,
ya que no implementan todas las caractersticas de los lenguajes orientados a
objetos como C++ o Java. CFML proporciona lo que se conoce como
ColdFusion Components o CFCs. CFCs
soportan encapsulamiento, herencia e
introspeccin. Se almacenan en ficheros
.cfc en vez de en ficheros .cfm.
El Listado 4 muestra un ejemplo de
fichero CFC que define un componente
llamado CovertTemp, que convierte valores de temperatura de la escala Celsius a
Fahrenheit y viceversa. El Listado 5
muestra algunos ejemplos de cdigo

Figura 2: Un ejemplo de un documento FlashPaper


inmerso en una pgina web.

son mucho ms fciles de implementar y


desplegar que los formularios de entrada
de datos basados en Applets de Java.
Flash no slo permite mayor control
sobre cmo se introducen los datos forzndolos a las reglas de negocio, sino
que tambin hace que la experiencia del
usuario sea mucho ms rica. La Figura 4
muestra un ejemplo de formulario Flash
que usa solapas, un control calendario,
ttulos y caractersticas especiales de disposicin.
ActionScript es un lenguaje de script
que se usa para interactuar con Flash
MX. Se puede usar ActionScript en el
cdigo ColdFusion para interactuar con
un servidor Flash Remoting permitiendo

Listado 3: chart.cfm
01 <cfchart scalefrom="0" scaleto="1" showlegend="yes" markersize="4" labelformat="percent" title="Percentage Spam
and Viruses - Last 30 days"
backgr undcolor="##eeeeee"
showborder="yes"
format="FLASH"
xAxisTitle="Date"
yAxisTitle="Percentage of
Overall" chartHeight="400"
chartWidth="540" show3D="no"
showXGridlines="yes" seriesPla
cement="cluster">
02
03 <cfchartseries type="line"
seriescolor="blue" serieslabel="Spam"
04 markerstyle="circle">
05 <cfloop query="qry30days">
06 <cfchartdata

07
08
09

10
11
12

item="#DateFormat(scan_
date,"dd-mmm-yy")#
value="#(pspam_sum +
bspam_sum) / total_sum#">
</cfloop>
</cfchartseries>
<cfchartseries type="line"
seriescolor="red" serieslabel="Viruses"
markerstyle="circle">
<cfloop query="qry30days">
<cfchartdata
item="#DateFormat(scan_
date,"dd-mmm-yy")#"
value="#virus_sum / total_
sum#">
</cfloop>
</cfchartseries>

13
14
15
16 </cfchart>

WWW.LINUX- MAGAZINE.ES

CFML que invocan a los mtodos de los


componentes.
Las caractersticas de orientacin a
objetos de ColdFusion no son tan elegantes como las proporcionadas por PHP 5,
pero ColdFusion ofrece lo que realmente
se necesita para crear una aplicacin
basada en componentes fcil de mantener.

Extendiendo ColdFusion
Se puede extender la funcionalidad de
ColdFusion a travs del uso de las etiquetas personalizadas escritas en CFML,
Java o C++. En el caso de usar CFML,
simplemente hay que crear un fichero
que contenga el cdigo de la etiqueta personalizada y colocarlo en un directorio
que se encuentre definido en la ruta de
ColdFusion (similar al classpath). Las etiquetas escritas en Java o C++ (llamadas
etiquetas CFX) tienen que ser declaradas
explcitamente usando el Administrator.
Las etiquetas personalizadas pueden ser
entonces usadas como cualquier otra etiqueta CFML, tal como si fuera parte del
ncleo del lenguaje. Esto tambin es
posible en PHP, pero normalmente implica otra fuente de PHP en la pgina o bien
recompilar PHP con un mdulo nuevo.
Como ColdFusion se ejecuta en un servidor de aplicaciones J2EE, tambin se
tiene acceso a las clases de Java en el
classpath de la JVM y en los directorios
de clases WEB-INF/lib y WEB-INF/classes
(tal y como funciona en Tomcat, por
ejemplo). Usando la etiqueta CFOBJECT,

Listado 4: convertTemp.cfc
01 <cfcomponent>
02 <!--- Mtodo de conversin de
Celsius a Farenheit. --->
03 <cffunction name="ctof"
output="false">
04 <cfargument name="temp"
required="yes" type="numeric">
05 <cfreturn ((temp*9)/5)+32>
06 </cffunction>
07
08 <!--- Mtodo de conversin de
Farenheit a Celsius. --->
09 <cffunction name="ftoc"
output="false">
10 <cfargument name="temp"
required="yes" type="numeric">
11 <cfreturn ((temp-32)*5/9)>
12 </cffunction>
13 </cfcomponent>

Nmero 09

33

PRCTICO ColdFusion MX 7 Server

Figura 3: La etiqueta CFCHART permite crear fcilmente grficas


espectaculares.

se pueden crear objetos, permitiendo el


acceso a las funciones y mtodos.
Tambin es posible acceder a los
JavaBeans.
La interoperabilidad entre pginas
CFML, JSP y Servlet tambin es posible.
Esto permite mantener pginas JSP y
aplicaciones Servlet mientras se convierten a CFML. Se puede incorporar funcio-

Abstraccin de Bases de
Datos
CFML incluye, por defecto, una capa de
abstraccin sobre bases de datos que
permite escribir aplicaciones independientes de las bases de datos. La etiqueta CFQUERY, como ejemplo, slo requiere que el parmetro DATASOURCE est
disponible para conectarse a una base
de datos y realizar una consulta SQL.
Como ODBC, ColdFusion ofrece una
capa de abstraccin sobre las bases de
datos. Esta capa de abstraccin puede
soportar conexiones ODBC y conexiones nativas usando JDBC. Incluye controladores para MySQL (antes de la 4.1),
DB2, Informix, SQL Server, Sybase,
Oracle y los Datasources J2EE (usando
JNDI). Los controladores para Oracle y
Sybase tan solo se incluyen en la edicin
Enterprise de ColdFusion, sin embargo,
se pueden crear fuentes de datos usando los controladores JDBC (normalmente copiando un fichero JAR a un directorio de librera adecuado) y especificar la
URL JDBC y el nombre de la clase del
controlador. Se puede conseguir algo
similar con los recursos JNDI.
Hay posibilidades de incorporar abstraccin de bases de datos en PHP usando
ADODB y PearDB, sin embargo, estas
tcnicas precisan que se incluyan ficheros adicionales en los scripts PHP.

34

Nmero 09

nalidad CFML a aplicaciones JSP existentes, por ejemplo, para


usar las grficas de
ColdFusion o las
caractersticas para
generar informes de
negocios. Si se tiene
alguna operacin que
se ejecute con mayor
rendimiento
como
pgina JSP o Servlet,
se puede incorporar
dicha funcionalidad
en
la
aplicacin
CFML.

Motor de Bsqueda
ColdFusion viene con un potente motor
de bsqueda llamado Verity. El motor
Verity se puede ejecutar independientemente del servidor ColdFusion y puede
accederse a travs de mltiples instancias
de ColdFusion (instalando ColdFusion en
modo multiservidor lo veremos ms
adelante). Usando su Administrator, se
puede crear una Collection. Una
Collection es un almacn en disco que
puede ser usado por Verity para buscar
contenido.
Existen varias etiquetas CFML para
indexar y buscar contenido (por ejemplo
texto plano, documentos PDF y documentos HTML). Tambin se puede indexar el contenido devuelto por una consulta. Esta caracterstica de ColdFusion permite buscar rpidamente entre una gran
cantidad de texto mucho ms rpido que
a travs de una consulta SQL SELECT,
donde los campos largos de texto no pueden ser indexados (por ejemplo, el tipo
de datos TEXT de MySQL). Uno de los
campos donde se puede aplicar esta tecnologa es en las bases de conocimiento.
Verity Spider es nuevo en ColdFusion
MX 7. Permite indexar directorios completos o sitios web dinmicamente. Al
contrario que la etiqueta CFINDEX CFML
que permite crear ndices especficos por
los que realizar bsquedas, Verity Spider
los crea dinmicamente. Verity Spider
soporta un amplio rango de tipos de
documentos, entre los que se incluyen
HTML,
PDF,
Microsoft
Office,
WordPerfect, XML y otros. Se comporta
como cualquier otro buscador web, obedeciendo las instrucciones que se proporcionan en robots.txt y siguiendo los enlaces especificados en las etiquetas HTML

WWW.LINUX- MAGAZINE.ES

HREF, FRAME y META Refresh / Redirect.


Las capacidades proporcionadas por
Verity Spider permiten crear una utilidad
de bsqueda dentro de un sitio web.

Ediciones
ColdFusion se proporciona en tres ediciones diferentes. La edicin Developer
puede ser accedida desde la mquina
local ejecutando ColdFusion y dos clientes remotos. Esto hace posible que un
equipo pequeo de desarrolladores trabaje sobre una misma aplicacin usando
una sola instancia de ColdFusion. Esta
edicin contiene toda la funcionalidad de
ColdFusion y se puede descargar gratuitamente.
La Edicin Standard contiene casi toda
la funcionalidad de ColdFusion, excepto
algunas caractersticas concernientes
bsicamente al rendimiento y disponibilidad. En vez de explicar todas las caractersticas que contiene esta edicin profesional, es mejor que indiquemos las
caractersticas que slo estn disponibles
en la tercera y ltima edicin de
ColdFusion, la edicin Enterprise. El precio para la edicin Standard es de 1299
dlares. Con un desembolso mayor de
dinero (la edicin Enterprise cuesta 5999
dolares), se obtienen las caractersticas
adicionales del nivel Enterprise. La
siguiente seccin describe la edicin
Enterprise.

Edicin Enterprise
El Enterprise Manager permite gestionar
mltiples instancias de ColdFusion en un

Listado 5:
convTempForm.cfm
01 <cfinvoke
component="convertTemp"
method="ctof"
02 returnvariable="newtemp"
temp=30>
03 <cfoutput>30 degrees Celsius
is #newtemp# degrees
Farenheit.</cfoutput>
04 <cfinvoke
component="convertTemp"
method="ftoc"
05 returnvariable="newtemp"
temp=64>
06 <cfoutput>64 degrees
Fahrenheit is #newtemp# degrees Celsius.</cfoutput>

ColdFusion MX 7 Server PRCTICO

nico servidor. La configuracin es similar a otros servidores de aplicaciones


J2EE como Tomcat, donde un servidor
de aplicaciones binario es compartido
entre mltiples JVMs privadas (Java
Virtual Machines). Esto significa que
mltiples aplicaciones pueden estar aisladas unas de otras, proporcionando
mayor seguridad y estabilidad sin los
requerimientos de varios servidores
dedicados separados. Incluso se pueden
ejecutar las aplicaciones en un cluster
para mejorar el rendimiento y la disponibilidad.
JRun [5] se incluye con la edicin
Enterprise, proporcionando una alternativa comercial a Tomcat. Se puede combinar el cdigo de la aplicacin
ColdFusion con el cdigo JSP o Servlet
en JRun.
Se pueden desplegar las aplicaciones
ColdFusion con el servidor de aplicaciones J2EE que se prefiera. JRun, Weblogic
y Websphere son soportados por
Macromedia.
La seguridad se ha mejorado para los
entornos basados en servidores virtuales
usando seguridad en cajas de arena. La
seguridad en cajas de arena permite
establecer polticas de seguridad, como
etiquetas, funciones, fuentes de datos y
restricciones en direcciones IP y directorios. Las aplicaciones que se ejecuten
dentro de un directorio no tienen acceso
a las configuraciones y ficheros de otras
aplicaciones.
Se pueden crear eventos personalizados para interactuar con dispositivos
mviles y servidores de mensajes instantneos, por ejemplo, o cualquier
otra aplicacin de servidor a travs de
cualquier protocolo de red (usando
sockets de Java). Incluso se pueden
usar pasarelas disponibles para SMS,
XMPP (Extensible Messaging Service),
Sun JMS (Java Messaging Service) y
Lotus Sametime. XMPP [6] es una solucin de mensajera instantnea de
cdigo abierto de la Jabber [7]
Software Foundation. Lotus Sametime
[8] es un producto ofrecido por IBM
para la mensajera instantnea y conferencias web.
La edicin Enterprise tambin permite
tomar ventaja del motor de informes de
negocio de alto rendimiento basado en la
tecnologa de ejecucin multihilos. Esto
es ideal para los Sistemas de Informacin
Empresarial, que pueden hacer uso de

las caractersticas de grficas para crear


estadsticas anidadas.
Se pueden desplegar las aplicaciones
como Java bytecode, evitando el tener
que exponer el cdigo fuente. Esto es
importante si se quiere proteger la propiedad intelectual.

Plataformas soportadas
Coldfusion es soportado por un amplio
nmero de plataformas, entre las que se
incluyen Linux, Windows, Solaris, AIX y
Mac OS X (slo para desarrollo). La versin de Linux Red Hat Enterprise 2.1 y
3.0, SUSE Linux Enterprise Server 8 y
TurboLinux 8 (slo en Japons) son
soportados por Macromedia, aunque no
debera haber problemas si se ejecuta en
CentOS 3, White Box Linux 3 y otras distribuciones Linux. En teora, se debera
poder
ejecutar
las
aplicaciones
ColdFusion en cualquier plataforma
Java. JRun, BEA Weblogic e IBM
Websphere son soportados tambin por
Macromedia; hay disponible instrucciones para Tomcat y podran presentarse
algunos problemas en JBoss o Resin.
ColdFusion se puede ejecutar como un
servidor independiente o en conjuncin
con Apache (1.3.27 o superior, 2.0.43 o
superior), iPlanet 6.x o Sun ONE 6.x.

Me servir ColdFusion?
No hay una respuesta sencilla a la pregunta de cuando o por qu sacar beneficio a ColdFusion. Para algunas aplicaciones, PHP, Perl o JSP sern suficientes,
y para otras ColdFusion es la mejor
opcin. Casi todo lo que se pueda hacer
con otro lenguaje de scripting se puede
hacer con ColdFusion. Si hay algo que
no pudiera hacer, se conseguira extendindolo con Java, JSP o Servlets.
La eleccin de si usar o no ColdFusion
depender de la naturaleza de la aplicacin. Para desarrollar un sitio con contenidos ricos usando grficas, formularios
Flash, FlashPaper o PDF, ColdFusion es
la mejor eleccin. Para sistemas de gestin con contenidos de propsito general, ColdFusion es tambin una buena
opcin. Para el desarrollo rpido, ofrece
un lenguaje basado en etiquetas fcil de
aprender que permite crear potentes
aplicaciones con un mnimo de esfuerzo.
Para muchos, esto es suficiente para justificar incluso el precio de la edicin
Enterprise de ColdFusion, que permite
construir aplicaciones que demanden

WWW.LINUX- MAGAZINE.ES

Figura 4: Los formularios Flash proporcionan


un gran control sobre los datos introducidos
por los usuarios.

entornos de alto rendimiento y gran disponibilidad.


Muchos desarrolladores de la plataforma Linux tendrn que elegir entre PHP,
JSP / Servlets o ColdFusion. ColdFusion
es la nica eleccin que requiere un desembolso de dinero para desplegarla en
un entorno de produccin, aunque los
tres se pueden descargar gratuitamente
para desarrollar en ellos. Y con la gran
cantidad de empresas de hosting que
ofrecen soporte para ColdFusion a precios razonables, no habr necesidad de
gastarse dinero en una licencia.
En resumen, si se est pensando explorar los beneficios de un producto comercial, antes de decidirse por uno, se debera
investigar al menos ColdFusion MX 7.

RECURSOS
[1] Macromedia ColdFusion MX 7: http://
www.macromedia.com/software/
Coldfusion/
[2] PHP 5 y el mdulo mysqli: http://www.
php.net/manual/en/ref.mysqli.php
[3] Macromedia Flash: http://www.
macromedia.com/software/flash/
[4] Macromedia FlashPaper: http://www.
macromedia.com/software/
flashpaper/
[5] Macromedia JRun: http://www.
macromedia.com/software/jrun/
[6] Protocolo XMPP: http://www.xmpp.
org
[7] Jabber Software Foundation: http://
www.jabber.org
[8] Lotus Sametime: http://www.lotus.
com/products/product3.nsf/wdocs/
homepage/

Nmero 09

35

PRCTICO Podcatching

Podcatching sin Ipod

REPARTIDOR
SONORO
No necesitamos un iPod para disfrutar del reciente fenmeno conocido como Podcatching. En el artculo
de este mes mostraremos como recibir y
reproducir podcasts bajo Linux.
POR TIM HARDY

l podcasting es la ltima moda


en el mundo de los weblogs.
Tambin conocido como audio
en diferido, el podcasting es un mtodo para suministrar streams de audio
en formato mp3 a traves de proveedores de feeds rss, por lo que pueden descargarse automticamente y ser escuchados durante nuestro tiempo libre. Al
suscribirnos a un feed RSS con mp3
adjuntos, podemos recibir los nuevos
mp3 automticamente. Es algo parecido
a los reproductores TiVO de televisin,
pero en formato de audio. El nombre
proviene del iPod de Apple, pero es un
nombre inexacto, ya que no necesitamos
un iPod para escuchar los archivos. El
podcast es el programa emitido, mientras que al acto de recibirlo se llama
podcatching.
Aunque muchos podcasts, como
muchos blogs, son intrascendentes, existe tambin material de alta calidad. Las
IT Conversations de Doug Kate [1] por
ejemplo, tienen ms de 300 grabaciones
de entrevistas, discursos y conferencias
del sector TIC, viejas y recientes, as
como resmenes de conferencias y otros
eventos. Grandes corporaciones como la
BBC en el Reino Unido estn tambin
mostrando inters en este fenmeno y
estn emitiendo algunos de sus programas en formato podcast.
Esta moda de los podcasts puede atribuirse en gran medida al antiguo DJ de
la MTV Adam Curry [2]. Despus de un
debate con Adam Curry en 2001, Dave

36

Nmero 09

Winer
decidi
cambiar
el
modelo de distribucin multimedia en Internet
aadiendo el sub-elemento adjunto
(enclosure) a los feeds rss [3]. En la propia pgina de Curry ipodder.com [4] se
almacenan cientos de podcasts.
Un cliente de podcatching funciona
como un agregador que lee los feed RSS
2.0 con sus adjuntos. El cliente verifica
automticamente los feeds a los que
estamos suscritos y descarga los archivos de audio, colocndolos en nuestro
directorio de audio o en nuestro reproductor mp3. Los usuarios de Ipod e
iTunes en Macs son los que lo tienen
ms fcil. Los usuarios de Linux con
otros reproductores de mp3 tendrn un
poco ms de trabajo para conseguir que
todo funcione de manera automgica.
En este artculo describiremos cmo
configurar nuestro equipo Linux para
hacer podcatching.

WWW.LINUX- MAGAZINE.ES

Bajar
Podcasts
al Ordenador
Ciertos reproductores (como el iPod)
necesitan drivers especiales para sincronizarse ([5], [6]) pero en este artculo
supondremos que estamos usando el
tpico reproductor de mp3 basado en dispositivos de almacenamiento flash que
pueden ser montados como un disco
externo. Empezaremos por describir
algunas aplicaciones para el podcatching
bajo Linux y luego veremos algunas tcnicas de sincronizacin. Si nuestro dispositivo necesita algn software especial
bajo Linux para sincronizarse, puede
seguir la primera parte del tutorial para
suscribirse a los podcasts y adaptar la
segunda mitad adecuadamente.
iPodder [7] es una interfaz grfica de
usuario escrita en Python para suscribirse y recibir podcasts. En el momento de
escribir estas lneas, la ltima versin

Podcatching PRCTICO

Figura 1:La pestaa Subscriptions de iPodder


muestra los feeds a los que estamos actualmente suscritos.

para Linux era la iPodder-Linux-2.0RC2.tar.bz2. Hay un par de pequeos


bugs que van a ser solventados antes de
que aparezca la versin final. iPodder
requiere Python2.3 o superior (pero
n o soporta Python2.5). Tambin
requiere: python-gtk, wxPythonGTK,
libwxPythonGTK2.5_2, pythonlib, libpython2.3, libxml2-python y xmmspython
(para soportar el reproductor xmms).
Para instalarlo, desempaquetamos el
archivo, nos vamos al directorio que acabamos de crear y ejecutamos el instalador.
tar -xvjf iPodder- U
linux-2.0-RC2.tar.bz2
cd iPodder-linux/
sudo run ./install.sh

El paquete se instala en /opt/iPodder/ y


crea un enlace simblico desde
/opt/iPodder/ipodder.sh
en
/usr/bin/iPodder. Si queremos aadir un
icono en el escritorio, hay una imagen
iPodder.png instalada en /opt/iPodder. La
enlazamos con /usr/bin/iPodder y pulsamos para lanzar el programa, o bien
podemos teclear iPodder& en un terminal.
iPodder se inicia por defecto en la pestaa Subscriptions (vase Figura 1), que
muestra los feeds a los que estamos
actualmente suscritos. Pulsando en cualquiera de las entradas listadas descargaremos una lista de los podcasts disponibles desde ese canal en la ventana
Episode en la parte de abajo. Por defecto, slo se verifica el ltimo podcast de
ese canal para su descarga, pero se
puede seleccionar cualquiera de los otros
si queremos escuchar alguno que se nos
haya pasado.

Pulsando en la pestaa Podcast directory (vase Figura 2) podremos elegir los


podcasts a los que suscribirnos, as como
introducir manualmente direcciones de
feeds. Abrimos un directorio de la lista
pulsando sobre l. Hacemos doble clic en
cualquiera de los feeds para aadirlo a
nuestras suscripciones. Cuando hayamos
acabado, volvemos a la pestaa
Subscriptions y pulsamos el botn verde
con dos flechas para poner en marcha la
descarga. Las descargas pueden monitorizarse desde la pestaa Download (vase
Figura 3).
Las descargas pueden programarse
fcilmente con la opcin de horario que
se encuentra en Tools/Scheduler.
Tenemos la opcin de verificar los nuevos feeds en intervalos regulares de
tiempo o a ciertas horas prefijadas. Al
cerrar iPodder se minimiza la aplicacin
y se queda ejecutndose en segundo
plano, por lo que podremos dedicarnos
a otra cosa.
iPodder
crea
un
directorio
~/iPodder-Data/downloads donde guarda los mp3. Debido a un pequeo error
no pudimos ajustarlo a travs de la interfaz grfica, por un problema con la posicin de los bordes. Pero pudimos cambiarlo manualmente editando el archivo
de configuracin ~/iPodderData/ipodder.cfg. Para los propsitos de este artculo, vamos a crear un directorio llamado
~/podin y configurarlo como el directorio de descarga.
iPodder es una aplicacin muy elegante y muy bien diseada con una interfaz
intuitiva. De momento slo tiene soporte
para iTunes y Windows Media Player
como reproductores, pero hemos encontrado una opcin realmente til en File |
Preferences | Advanced para ejecutar un
script tras completar una descarga.
Usaremos ese script un poco ms adelante. Echamos en falta algn que otro detalle: no existe una rutina que verifique el
espacio libre en el disco, aunque este y
otros pequeos fallos estn en la lista de
mejoras de los desarrolladores y se espera que lo solucionen pronto.
Una interfaz de usuario alternativa es
jPodder [8]. jPodder es un cliente multiplataforma escrito en Java. La beta de
Linux en el momento de escribir este
artculo es la 0.9, y an falta pulirlo bastante. Sin embargo es destacable que
viene distribuido junto a Azureus [9] y
ofrece un buen soporte para los podcasts

WWW.LINUX- MAGAZINE.ES

distribuidos via bittorrent, por lo que


puede que merezca la pena seguir investigando su evolucin.

Alternativas en Lnea de
Comandos
BashPodder [10] de Linc Fessenden ocupa
slo 44 lneas de cigo bash y requiere
nicamente bash, wget y sed, los cuales
estn instalados por defecto en la mayora
de las distribuciones Linux.
Linc seala que BashPodder fue escrito para ser pequeo y rpido, y lo que es
ms importante, para seguir la regla KISS
(Keep It Simple Stupid, mantenlo simple
estpido). De esta manera, cualquiera
puede aadir o suprimir parte del script
para adaptarlo a sus necesidades (y
sern bienvenidos si lo hacen).
Para usar BashPodder, descargamos
el programa principal bashpodder.shelf
y el ejemplo de configuracin bp.conf
y los situamos en el directorio en el
que queramos guardar los podcasts.
No hay que descomprimir ni instalar
nada. Simplemente tecleamos chmod
+x bashpodder.shell para hacerlo ejecutable.

Listado 1: syncplayer
01 #!/bin/bash
02 # syncplayer
03 # The location of the
folders.Adjust for your
personal set-up.
04 mp3player=/path/to/mp3player #
the mount point for your
player
05 podin=/path/to/podin
06 podmirror=/path/to/podmirror
07 # Test player is mounted and
folder podcasts exists
08 [ ! -d $mp3player/ ] && echo
"mp3 player not mounted" &&
exit 1
09 [ ! -d $mp3player/podcasts ]
&& echo "Device folderpodcasts
not present" && exit 1
10 # Perform the synchronisation
process
11 rsync -r --progress
--delete--existing --size-only
$mp3player/podcasts/$podmirror
/
12 mv $podin/* $podmirror/
13 rsync -r --progress
--delete--size-only
$podmirror/$mp3player/podcasts

Nmero 09

37

PRCTICO Podcatching

bp.conf es un archivo de texto simple


que lista las urls o los feeds, uno por lnea.
Podemos editar bp.conf a mano, pero si lo
hacemos, hemos de acordarnos de apretar
Enter al final de la ltima entrada, ya que
el script no la procesar si no termina con
un carcter de nueva lnea.
Por defecto, BashPodder sita los podcasts en una carpeta datestamped en ese
directorio desde donde podemos ejecutarlos. Para los propsitos de este artculo, vamos a cambiarlo por ~/podin. Para
cambiarlo, abrimos el script con nuestro
editor de textos favorito, buscamos la
definicin de datadir cerca del principio
y la cambiamos de datadir=$(date +
%Y-%m-%d) a datadir= /path/to/podin
Para ejecutar el script automticamente, usaremos crontab. Crontab usa vi por
defecto, para editarlo con nuestro editor
favorito, debemos exportarlo previamente como la variable VISUAL. Por ejemplo, si preferimos usar joe:
export VISUAL=joe
crontab -e

Para configurar bashpodder.shell para


que se ejecute a las 9am cada da por
ejemplo aadimos la siguiente lnea:
0 9 * * * U
/path/to/bashpodder.shell

En la pgina podemos encontrar numerosas revisiones del script sugeridas por


usuarios, as como aadidos, como el
BPConf de Leon Pennington, una sencilla
interfaz de configuracin para KDE.

Preparados para sincronizar


Lo que pasa cuando conectamos nuestro
dispositivo depende de qu distribucin
usemos. Suse 9.2, por ejemplo, usa
subfs/submount y lo montar automticamente con un nombre derivado del nmero
de serie de nuestro dispositivo. Otra particularidad de las distribuciones Suse es que
usa /media/ mientras que otras usan
/mnt/. Al conectar mi PowerMusic mp3 en
un equipo bajo Suse, por ejemplo, crea
automticamente un punto de montaje
/media/usb-035211010152:0:0:0p1
(Otras distribuciones gestionarn la
conexin en caliente de manera diferente, y puede que deba adaptar lo comentado a su sistema para que funcione. De
ahora en adelante vamos a referirnos al
punto de montaje del reproductor como

38

Nmero 09

Figura 2: La pestaa Podcast directory


ofrece un buen nmero de opciones de
suscripcin y tambin nos deja introducir
manualmente una direccin.

/path/to/mp3. Acurdese de adaptar el


punto de montaje en su sistema).
Para mayor facilidad de uso, vamos a
crear un enlace simblico para que sea
ms fcil de recordar:
ln -s /media/usb- U
035211010152:0:0:0p1
/path/to/mp3player

Ya habamos creado nuestro directorio


para los nuevos podcasts que habamos
llamado ~/podin. Necesitamos ahora
crear otro llamado ~/podmirror, en el
que habr una copia de los archivos del
reproductor mp3.
Dejaremos de momento este directorio
vaco por razones que explicaremos
luego. Para evitar que se mezclen los
podcasts con otras canciones del reproductor, podemos tambin crear un directorio en el dispositivo, que llamaremos
/path/to/mp3player/podcasts/.

Sensaciones sncronas
Sincronizar un dispositivo con una carpeta no es algo tan trivial como pueda
parecer, especialmente si los archivos
pueden borrarse directamente tanto en el
reproductor como en el ordenador.
Vamos a hacer dos suposiciones clave:
que no hay nada en el directorio del
reproductor cuando empecemos, y que
no hay otras maneras de aadir archivos
mp3 al reproductor, aparte de sincronizar con el ordenador.
El proceso necesita tres pasos.
El primer paso es sincronizar el directorio de podcast del reproductor
/path/to/mp3player/podcasts/ con el
directorio ~/podmirror del ordenador. Se
borrar cualquier archivo de ~/podmi-

WWW.LINUX- MAGAZINE.ES

rror que no est en el reproductor, pues se


ha supuesto que se ha borrado del reproductor porque ya no se quera oir ms.
Seguidamente, si existe algn archivo en
el reproductor que no est en ~/podmirror, el proceso ignora el archivo y no crea
una copia en ~/podmirror, pues se supone que se borr deliberadamente del
directorio del ordenador.
El segundo paso es una simple transferencia de archivos mp3 desde ~/podin a
~/podmirror. Esta transferencia no puede
hacerse hasta que la primera sincronizacin haya terminado, pues de otra manera
los nuevos archivos se borraran ya que no
estn en el reproductor mp3.
El tercer paso sincroniza ~/podmirror
con /path/to/mp3player/podcasts/. Borra
cualquier archivo de este ltimo que no
est en ~/podmirror pues se supone que
la hemos borrado deliberadamente del
ordenador. Entonces crea una copia en el
reproductor de cualquier archivo de
~/podmirror que no est en el dispositivo: estos son los nuevos archivos que
hemos transferido desde ~/podin.
Debemos tener cuidado de entender el
proceso, y hacer una copia de seguridad
del reproductor antes de la primera sincronizacin. Un error puede ser desastroso para los archivos del reproductor,
as como tambin sincronizar despus de
haber eliminado los archivos equivocados del reproductor puede acabar con los
contenidos de ~/podmirror.
Para sincronizar el dispositivo, vamos
a usar la aplicacin en lnea de comandos rsync. Buena parte de las distribuciones puede que vengan con su propia versin. Como alternativa siempre podemos

Adjuntos RSS
El siguiente ejemplo de una seccin de
un feed RSS muestra una etiqueta
<enclosure> con sus tres atributos: la url
del archivo a descargar, su tamao en
bytes y de qu tipo es.
<enclosure U
url="http://downloads.bbc.co.uk U
/rmhttp/radio4/history/ U
inourtime/U
inourtime19_pod.mp3" U
length="12582787" U
type="audio/mpeg"/>
La especificacin original de Dave Winer
defina un mximo de un adjunto, pero
como otros aspectos de RSS, esto es
an objeto de discusin.

Podcatching PRCTICO

bajarnos las fuentes desde [12] y compilarlas .


Como se detall antes, el primer paso es
eliminar cualquier archivo de podmirror/
que hayamos borrado del reproductor:
rsync -r --progress --delete
--existing --size-only U
/path/to/mp3player/podcasts/
/path/to/podmirror/

U
U

Muchos dispositivos flash usan el sistema de archivos FAT32 que no guarda la


informacin de fecha/hora al estilo unix.
La opcin -size-only nos permite evitar
actualizar archivos iguales pero que pueden parecer que son distintos debido a la
informacin de fecha/hora.
La opcin -existing evita que rsync reinstale archivos que hayamos borrado de ~/podmirror. Con la opcin -progress veremos por
pantalla informacin de qu operaciones se
estn haciendo, lo que puede ser til si lo
estamos haciendo a mano.
El paso dos, copiar los podcasts desde
~/podin a ~/podmirror es simplemente
hacer lo siguiente:
mv /path/to/podin/*
/path/to/podmirror/

0x0003. La segunda y tercera son las id


del fabricante y producto, respectivamente, que obtuvimos de /proc/usb/devices. Los otros campos no se usan y pueden dejarse a 0x0.
Lo siguiente ser crear on_plug_powermusic en /etc/hotplug/usb/

El paso tres usa rsync de nuevo, pero en


sentido contrario, y sin la opcin -existing esta vez, ya que queremos copiar los
nuevos archivos al dispositivo:
rsync -r --progress U
--delete --size-only U
/path/to/podmirror/ U
/path/to/mp3player/podcasts

Cuando hayamos terminado, no debemos olvidar desmontar el reproductor


antes de desconectarlo para evitar posibles daos a la unidad. Lo desmontamos
con eject /path/to/mp3player y ya estamos listos para escuchar los podcasts.

Todo Junto
Podemos ejecutar el script syncplayer
(vase Listado 1). El script no funcionar
si el reproductor de mp3 no est montado o si el directorio de destino no existe.
Debemos ajustar /path/to/ de las lneas 3
a 5 para nuestro caso.
Para ejecutar automticamente el
script cuando aparezcan nuevos podcasts, podemos configurar iPodder para
que haga la llamada especificando

Figura 3: Administramos y vigilamos las


descargas desde la pestaa Download.

syncplayer en la opcin de ejecutar


scripts al descargar (File/Preferences/
Advanced).
Si estamos usando bashpodder, slo
tenemos que aadir una lnea al final de
bashpodder.shell, editndolo o bien tecleando simplemente echo "path/to/syncplayer >> bashpodder.shell. (Cuidado con
no teclear > en lugar de >> pues si no
sobrescribiremos el archivo).
Si queremos ejecutar automticamente
el script cada vez que insertemos el
reproductor, podemos aprovechar la
deteccin en caliente para activarlo.
Buscamos la id del fabricante y del
producto conectndolo y verificando la
salida de cat /proc/bus/usb/devices para
ver los detalles del reproductor de mp3.
En el caso particular de nuestro
PowerMusic:
P: Vendor=0d7d ProdID=0153
Rev= 1.00
S: Product=PowerMusic

Ahora creamos /etc/hotplug/usb/powermusic.usermap para activar un script al


que llamaremos on_plug_powermusic a
ejecutarse cuando se enchufe el dispositivo:
on_plug_powermusic to runU
when thecdevice is plugged in:
# /etc/hotplug/usb U
/powermusic.usermap
# powermusic mp3 player
on_plug_powermusic U
0x0003 0x0d7d 0x0153 0x0 0x0 U
0x0 0x0 0x0 0x0 0x0 0x0 0x0

El primer campo indica qu flags deben


coincidir. Este campo debe dejarse a

WWW.LINUX- MAGAZINE.ES

# /etc/hotplug/usb/ U
on_plug_powermusic
# on_plug_powermusic
until U
[ -e /path/to/mp3player ]; U
do sleep 1; done
su user -c /path/to/syncplayer U
>& /var/log/messages
exit 0

Cambiamos el usuario de la lnea 3 a


nuestro nombre de usuario y rellenamos
/path/to en sendos casos. Hacemos el
archivo ejecutable, y reiniciamos el hotplug:
chmod +x U
on_plug_powermusic U
&& /etc/init.d/boot.hotplug U
restart

Ahora, cada vez que conectemos el dispositivo, se activar el script syncplayer,


transfirindose los nuevos podcasts a
nuestro reproductor. No olvidemos, por

ltimo, desmontarlo al acabar.

RECURSOS
[1] IT Conversations: http://www.
itconversations.com/
[2] Pgina de Adam Curry: http://live.
curry.com/
[3] RSS Payloads: http://www.
thetwowayweb.com/payloadsforrss
[4] iPodder: http://ipodder.org/
[5] GNUpod: http://www.gnu.org/
software/gnupod/gnupod.html
[6] gtkpod: http://gtkpod.sourceforge.net/
[7] iPodder: http://ipodder.sourceforge.
net/index.php
[8] jPodder: http://jpodder.com/
[9] Azureus: http://azureus.sourceforge.
net/
[10] BashPodder: http:// linc.homeunix.
org:8080/scripts/bashpodder/
[11] BFConf: http://www.leonscape.co.uk/
linux/bpconf/
[12] rsync : http://freshmeat.net/projects/
rsync/

Nmero 09

39

PRCTICO Seguridad Thunderbird

Correo Seguro con Thunderbird y Enigmail

UN PJARO
SEGURO
Thunderbird ofrece varias opciones para un correo seguro
y la encriptacin de Enigmail basada en GnuPG nos proporciona una capa de proteccin adicional.
POR PATRICK BRUNSCHWIG Y OLAV SEYFARTH

l cliente de correo Thunderbird


est teniendo un gran auge en la
comunidad de Internet. La mayora de las distribuciones Linux incluyen
Thunderbird [1] por defecto. Los desarrolladores de Mozilla tienen versiones
preparadas para ejecutarse en la mayora
de los sistemas de sus sitios web. Debian
no tiene un paquete oficial para las versiones actuales, pero versiones de prueba estn disponibles en el repositorio de
mantenimiento [2].
Con la reciente versin 0.9 de
Thunderbird, el pjaro est listo para
volar con una coleccin impresionante
de caractersticas de seguridad. En este
artculo, aprender algunos de los puntos de seguridad de Thunderbird.

Autenticacin
Thunderbird soporta POP, IMAP y SMTP
para el correo electrnico, as como
NNTP Y SMTP para las News y LDAP
para la libreta de direcciones. Todos
estos servicios requieren autenticacin.
En el caso ms simple, el cliente querr
transmitir su informacin de login y se
enviar en claro, abriendo un agujero de
seguridad en el esquema. Para combatir
esto, Thunderbird proporciona a los
usuarios un nmero de soluciones para
una autenticacin segura.
Challenge-Response soluciona transferencias en secreto (tal como una clave por
ejemplo) como un cdigo hash temporal.
Esta solucin confia en el servidor capacitndolo para soportarlo. Thunderbird
intentar detectar las capacidades del servidor, pero no se garantiza el xito.
Aunque DIGEST-MD5 y CRAM-MD5 son

40

Nmero 09

autonegociados para nodos SMTP, necesitar habilitar CRAM-MD5 para cuentas


POP e IMAP utilizando Enable secure
authentication en las opciones del servidor para una cuenta de correo.

Trfico

decirle a Thunderbird que utilice su


nombre de usuario y su clave, a lo largo
de una conexin segura. En este caso,
TLS; el puerto para SSL se configurar
automticamente. En Tools | Settings |
Compose tambin puede configurar los
servidores LDAP para conexiones SSL en
Address autocompletation.

Desafortunadamente, las tcnicas de


Challenge-Response no proporcionan
ninguna proteccin contra los ataques
del hombre de en medio. Para mayor
seguridad y privacidad, puede encriptarEncriptacin de Passwords
se el trfico entre cliente y servidor utilizando el protocolo Transport Layer
Los usuarios con mltiples proveedores
Security (TLS). TLS (un sucesor del prode correo querrn seleccionar una clave
tocolo SSL) encripta cualquier comunidistinta para cada proveedor. Como
cacin entre el cliente y el servidor.
puede llegar a ser difcil recordar todas
Thunderbird slo proporciona TLS para
estas claves y como es molesto el tener
SMTP.
que teclearlas cada vez, Thunderbird perCuando configure una cuenta nueva
mite a los usuarios almacenar las claves.
utilizando el Account Manager, al prinEn la configuracin por defecto,
cipio la conexin ser insegura. Antes
Thunderbird codificar en Base64 las
de conectar con el servidor de correo,
passwords; esto es, no las encriptar y
abra el cuadro de dilogo Tools |
las almacenar en el perfil del usuario
Account
Settings,
donde puede configurar protocolos individualmente. En Account
name | Server settings,
seleccione Use secure
connection
(SSL)
(Figura
1).
Thunderbird configurar el puerto automticamente. Para Use
secure authentication,
se recomienda seleccionar CRAM-MD5.
Para Outgoing server
Figura 1: El cuadro de dilogo Server Settings de Thunderbird
(SMTP)
necesitar
tiene una opcin para configurar una conexin segura.

WWW.LINUX- MAGAZINE.ES

Seguridad Thunderbird PRCTICO

os utilizando estos nombres. Hay dos estndares


incompatibles entre s, S/
MIME y OpenPGP, que le
proporcionan este tipo de
seguridad.
Thunderbird
soporta ambas, suponiendo
que est instalado Enigmail
[4]; hay que tener en cuenta que ni S/MIME ni
OpenPGP
proporcionan
una solucin de seguridad
Figura 2: Enigmail encripta y desencripta mensajes de
completa. Como describirecorreo en Thunderbird.
mos ms adelante en ese
artculo, tambin necesitaen un fichero con un nombre aleatorio y
r proteger los datos de los usuarios y el
con la extensin .s. Esta solucin de
proceso de autenticacin.
seguridad es un compromiso que deber
Mquina Enigmtica
aceptar si es el nico usuario que accede
Enigmail OpenPGP se desarroll como
al sistema. El mdulo de software de
una aplicacin para la comunicacin
criptografa basado en Mozilla Network
entre procesos. En 2001, el desarrollador
Security Services (NSS) proporciona a
de Mozilla Ramalingam Saravana deslos usuarios una mayor seguridad
arroll una librera para abrir y gestionar
encriptando las claves almacenadas.
pipes. Como Mozilla no tena encriptaHay diferentes opiniones sobre el
cin OpenPGP, codific un pequeo plualmacenamiento de las passwords, pero
gin con propsitos de prueba. El plugin
la caracterstica de la encriptacin de claacepta y encripta correos webs para
ves de Thunderbird parece ser un comGNUPG y muestra el texto desencriptado
promiso
funcional.
Si
necesita
en el navegador (Figura 2). Este fue el
Thunderbird para almacenar direcciones
comienzo del mayor plugin para los
de correo en un directorio LDAP protegido por password, no tendr alternativa
para almacenar sus claves, como cada
Gestin de
correo nuevo abre una nueva conexin
En la mayora de los casos, preferir usar
en el directorio LDAP, esto significara
una conexin SSL protegida en el navevolver a teclear su clave.
gador web para recoger su certificado
Para encriptar passwords existentes y
desde el CA. Paquetes integrados como
futuras, necesitar habilitar Use a master
el Mozilla permiten al navegador y al
password to encrypt stored passwords
programa de correo utilizar el mismo
bajo Tools | Preferentes | Advanced |
certificado almacenado. Thunderbird
Saved Passwords | Master Passwords y
tiene su propio almacn y slo si utiliza
luego establezca sus claves maestras
el navegador Firefox junto con
seleccionando Change password. Como
Thunderbird, necesitar descargar el
estas claves necesitarn proteger todas
certificado con su navegador, almacesus otras claves y su propio certificado
narlo en un fichero PKCS-#12 e importarlo al fichero en Thunderbird.
X.509, asegrese de que sea realmente
robusta. Para crear una clave segura, cerLa gestin de certificados est situada en
cirese de que sea lo suficientemente
Tools | Preferences | Advanced |
Certificates | Manage Certificates. Hay
larga, contenga letras maysculas y
pestaas para su certificado protegido
minsculas, nmeros y caracteres especon claves, los certificados de otros
ciales.

Firmado y Sellado
Tras autenticarse de forma segura en el
servidor de correo del proveedor, probablemente querr encriptar cualquier
mensaje almacenado en el servidor.
Actualmente existen gusanos que atacan
con nombres de usuarios y envan corre-

usuarios, los sitios web (certificados


SSL/TLS de servidores de correo y de
news) y certificados CA (que ha aadido
o que las ha aceptado por defecto).
En algunos casos tiene sentido tener dos
certificados por usuario. Uno genrico
para usarse en el gateway. Esto permitir al programa ejecutarse en su gateway

WWW.LINUX- MAGAZINE.ES

clientes de correo de Mozilla y ms tarde


para Thunderbird.
Enigmail no importa automticamente
claves pblicas (aunque puede establecer GnuPG para que lo haga especificando key-server-options auto-key-retrieve),
sin embargo, puede buscar servidores de
claves pblicas para comprobar claves
cuando se enva un mensaje. Muchas
distribuciones Linux integran el soporte
Enigmail con Thunderbird, o lo proporcionan en un paquete separado, por
ejemplo mozilla-thunderbird-enigmail
para Debian.
Si est utilizando la versin proporcionada por el sitio web de Thunderbird,
necesitar instalar Enigmail mediante la
extensin manager. Asegrese que la
versin de Enigmail coincide con su versin de Thunderbird, si no Thunderbird
podr caer. Adems, Enigmail y
Thunderbird necesitan estar en el mismo
idioma.
Tras la instalacin, primero hay que
comprobar si Enigmail est trabajando
correctamente y encuentra GnuPG. Para
hacerlo, abra el men Enigmail | About
Enigmail. La primera vez que haga esto,
le preguntar si quiere configurar
Enigmail. Puede contestar no y volver a
configurar Enigmail ms tarde.

Certificados
para desencriptar mensajes de correo y
chequearlos en busca de malware. El
otro certificado pertenecera al usuario y
se utilizar con propsitos de firmado.
Tras importar su propio certificado,
seleccione un certificado para firmar los
mensajes salientes y otro certificado
para la encriptacin y desencriptacin
bajo Security en la configuracin de su
cuenta.
Para encriptar un mensaje, necesitar
el certificado del receptor. Si no puede
obtenerse desde su PKI, necesitar preguntar al receptor que se lo enve. Esto
es perfectamente aceptable para que el
receptor le envie un mensaje de correo
electrnico firmado contestando al
mensaje, como cualquier certificado, el
mensaje que contiene ser importado
automticamente. Como alternativa,
puede ejecutar una bsqueda contra
un meta keyserver o la autoridad certificadora para localizar el certificado;
Thunderbird por s mismo no tiene esta
caracterstica integrada que hace esto
por usted.

Nmero 09

41

PRCTICO Seguridad Thunderbird

PGP slo encripta el cuerpo del mensaje, pero


requiere que el usuario
encripte los ficheros
adjuntos por separado y
una vez encriptados los
adjunte
al
mensaje.
Adems, Inline-PGP no
En
soporta mensajes HTML
la vencon textos formateados y
tana que se
conjuntos de caracteres
nos muestra, en la
extendidos como el Chino
tercera lnea debera aparecer un mensapueden causar problemas.
je indicando: Using pgp executable path
PGP/MIME encripta el
to encrypt and decrypt. Si ve un mensaje
mensaje incluyendo cualde error en este punto, significa que
quier fichero adjunto y
Enigmail no ha encontrado GnuPG, o
formato; desafortunadaque la versin de Enigmail que ha instamente, no todos los clienFigura 3: El dilogo Recipient Settings permite configurar
lado no es compatible con Thunderbird.
tes de correo PGP soporreglas OpenPGP para destinos especficos.
Si no tiene una clave OpenPGP, puede
tan PGP/MIME.
generarla utilizando el gestor de claves
Enigmail tiene un nmero de opciones
para la firma, encriptacin y aplicacin
Key | Generate key. Para enviar mensajes
para controlar GnuPG y Thunderbird
de PGP/MIME e IDs de claves por reciOpenPGP-firmados o encriptados, necebajo Enigmail | Preferences. Por defecto
piente o grupo de recipientes (Figura
sita configurar Enigmail en cada cuenta.
est marcado para la mayora de los
3). El editor le permite establecer las
Esto indica a Enigmail que aada una
usuarios, pero para optimizar el uso de
preferencias para las direcciones de
pestaa extra OpenPGP Security para
Enigmail, es preferible cambiar unas
correo seleccionadas. Enigmail no slo
cada cuenta. Aqu es donde selecciona
cuantas opciones de Thunderbird. Para
soporta reglas para usuarios individualas claves a usar y especifica los valores
hacer esto ms fcil, las extensiones de
les, tambin para grupos de usuarios,
por defecto para la encriptacin y firmaEnigmail muestran unas cuantas opciocomo todas las direcciones de su
do de mensajes.
nes de Thunderbird que normalmente
empresa.
Aunque es ms apropiado permitir al
vienen ocultas. Ver el cuadro titulado
La funcin de ayuda integrada tiene
programa seleccionar la clave automticaOpciones de Enigmail para algunas
informacin detallada para las reglas.
mente basada en la direccin de correo,
opciones interesantes.
Thunderbird aplica automticamente
no se recomienda si existen mltiples claestas reglas cuando enva mensajes as
Siguiendo las Reglas
ves asociadas a la misma direccin.
que tiene sentido dejar activado el
OpenPGP soporta dos codificaciones
Enigmail tiene un editor de reglas que
prompt. Esto le proporciona un recordaestndar: Inline-PGP y PGP/MIME. Inlinele permiten definir la configuracin
torio, para el caso en el que intente
enviar un mensaje desencriptado.
Opciones de Enigmail
Thunderbird tiene todo lo que el usuario preocupado por la seguridad puede
Habilitando Enigmail | Preferences |
tarlo. La opcin Enigmail | Preferences |
desear, aunque una simple aplicacin de
Sending | Allow flowed text se le indica a
Advanced | Load MIME parts on demand
las tecnologas de encriptacin moderThunderbird que rompa las lneas en un
le permite cambiar este comportamiennas est bastante lejana, como algunos
mensaje en mltiples lneas si las lneas
to.

de los fallos descritos demuestran.


son ms largas de lo permitido. El mailer
Para desencriptar mensajes Inline-PGP,
aade el carcter > en las lneas continuas. Desafortunadamente, esto rompe
la firma que Enigmail crea para el mensaje original. Cuando contesta a un mensaje, Enigmail reemplaza > al comienzo de cada lnea con|, para prevenir
que Thunderbird realice cambios en la
lnea. Pero es mejor desactivar esta
caracterstica.
Para desencriptar mensajes PGP/MIME
encriptados almacenados en servidores
IMAP, no ser capaz de descargar partes
MIME individuales. Por otro lado
Enigmail no coge el mensaje completo
de Thunderbird y no puede desencrip-

42

Nmero 09

necesitar deshabilitar la presentacin


en HTML del mensaje con la opcin
View | Messsage Body | Plain text.
Enigmail soporta ambos, Inline-PGP y
PGP/MIME. Si enva un mensaje con
ficheros adjuntos, le preguntar si quiere
encriptar los ficheros individualmente o
utilizar PGP/MIME para enviarlos. Puede
utilizar el men de contexto para desencriptar y abrir ficheros adjuntos encriptados en los mensajes entrantes. Enigmail
puede almacenar diferentes opciones
por defecto para firmar y encriptar mensajes basados en la informacin de la
cuenta del emisor.

WWW.LINUX- MAGAZINE.ES

RECURSOS
[1] Pgina del producto Thunderbird:
http://www.mozilla.org/products/
thunderbird
[2] Paquetes Debian Thunderbird y
Enigmail http://people.debian.org/
~asac/testing/
[3] CVS snapshot: http://ftp.mozilla.org/
pub/mozilla.org/thunderbird/releases/
0.9/thunderbird-0.9-source.tar.bz2
[4] Enigmail: http://enigmail.mozdev.org

SlimServer PRCTICO

Msica en red con SlimServer

CAJA DE MSICA

Si tenemos una LAN en casa o en la oficina Por qu no se utiliza para algo realmente importante? Escuchar
msica! POR KEVIN DONNELLY

i compartes una casa con otras


personas, especialmente adolescentes, habrs tenido la experiencia de buscar uno de tus CDs, y despus
de una larga bsqueda encontrarlo debajo de un enorme pila de ropa y de papeles, abrir la caja y descubrir que el CD no
est dentro. Despus de pasar personalmente por muchas de estas bsquedas, y
para evitar esta clase de frustraciones,
decid configurar un acceso inmediato a
mi coleccin completa de msica para
todos los habitantes de la casa, a la que
se accedera con un solo clic de ratn:
Jean-Philippe Rameau, Roxy Music, y el
prometedor cantante gals Meinir
Gwilym estaran disponibles con slo un
gesto.

Qu hay disponible?
Desde hace ms o menos dos aos disponemos de software multimedia para
Linux realmente bueno. En KDE, por
ejemplo, Juk [1]y Amarok [2] estn
ampliamente reconocidos como un gran
paso adelante en la gestin de msica.
Este tipo de programas permiten configurar una lista de reproduccin en un PC
y escucharla en ese equipo o enviarlo a
otra ubicacin, aunque en las versiones
anteriores a la 1.2 la funcionalidad de

streaming de Amarok algunas veces no


funcionaba correctamente [3]. Una alternativa a los programas de escritorio son
los gestores de msica basados en web,
tales como Ampache [4], Zina [5] o el
ms reciente Jinzora [6]. Normalmente
estas herramientas son multiusuario,
pero tienen su parte negativa, ya que con
frecuencia es muy complicado ponerlas
en marcha.
Mis requisitos para este proyecto eran
muy especficos: una caja (preferiblemente de fcil instalacin y configuracin) para toda la msica de la casa, que
diera servicio a tantos PCs como necesitara, con cada oyente capaz de controlar
su listado independientemente, y con
soporte completo para ficheros ogg.
Tambin quera algn modo de usar la
salida de un dispositivo que no fuera un
PC en el caso de que decidiera reproducir la msica en el saln y no quisiera
colocar un ordenador all.
Despus de documentarme un poco y
de probar algo del software disponible,
me encontr con la web de Slim Devices
[7] y vi la luz. Fundada en el ao 2000,
Slim Devices fue una de las primeras
compaas en usar el software de cdigo
abierto sobre hardware de diseo especializado. En el 2001 se edit el SLIMP3,

WWW.LINUX- MAGAZINE.ES

una pequea caja que utilizaba un stream mp3 sobre la red, suprimiendo la
necesidad de tener que usar un reproductor basado en un PC.
En el 2003 apareci la siguiente generacin
de
productos
llamado
Squeezebox. El nuevo Squeezebox2 se
lanz hace un par de meses. Se escribi
un servidor GPL basado en Perl al que se
le llam SlimServer, el cual proporciona
una salida de msica para Squeezebox.
La inversin de la compaa y de la
comunidad ascendi a 9 personas durante un ao dedicadas al desarrollo. Lo
importante de SlimServer es que puede
usarse para que fluya la msica a los PCs
independientemente de los dispositivos
de Squeezebox2, o a otros reproductores
que no sean PCs. Decid instalar
SlimServer con un servidor de msica
para la red de mi casa.

Instalacin y Configuracin
El PC que utilic como servidor de msica era una vieja caja que haba estado
recogiendo polvos desde hace 7 aos.
Tena un procesador AMD K6/450 y
128Mb de memoria. Le actualic el firmware el ao pasado para permitir que el
mobo MSI accediera a discos de ms de
20 Mb y le instal 2 discos duros de 80

Nmero 09

43

PRCTICO SlimServer

inicio para SuSE 9.1 [8] que tambin


parece funcionar en SUSE 9.2. Para usarlo, descarga el script y slvalo como /etc/
init.d/init.d/slimserver. Luego haz un
enlace simblico a rcslimserver tecleando, (como root), ln -s /etc/init.d/init.d/
slimserver /usr/sbin rcslimserver. Yo prefiero correr SlimServer desde la cuenta
de usuario Tigris que establec previamente, mejor que desde la cuenta de
usuario SlimServer establecida ppr el
rpm. Para ello cambi 3 de las lneas en
/etc/sysconfig/slimserver:

Figura 1: Configuracin de la carpeta de


msica y la carpeta de listas de reproduccin
en Server Settings.

MBs. La principal ventaja que ofrecen


viejas mquinas como sta es que tienden a no calentarse tanto y son, por
tanto, ms silenciosas que las cajas
modernas. De hecho esta mquina se
podra utilizar en el saln de ser ms
bonita y pequea. La gran desventaja es
que pueden llegar a ser muy lentas
cuando tienen que realizar determinadas tareas, como por ejemplo, renderizar la coleccin de msica. Por este
motivo, el ripeado de los CDs se realiz
sobre mquinas rpidas y se transfirieron los ficheros finalizados. Puedes
seguir algunos consejos sobre cmo
ripear y etiquetar tu msica en el cuadro
titulado Etiqueta esa Pista.
El primer paso fue instalar SuSE 9.2
en la caja del servidor de msica, a la
que llam Tigris. Establec una cuenta
de usuario y un login. Descargu el rpm
SlimServer Linux y lo instal. Utilic la
versin 5.4, aunque actualmente existe
una versin beta disponible en la web de
Dispositivos de Slim. El rpm est construido para Red Hat y, aunque corre bien
bajo SuSE, los scripts de arranque no
funcionan correctamente. Sin embargo,
puedes correr /usr/local/slimserver/slimserver.pl para arrancar el servidor. Si
obtienes un mensaje sobre /etc/slimserver.conf no editable, cambia el propietario a tu usuario con chown.
Quizs quieras vincular SlimServer
con el sistema de arranque de SuSE (si,
por ejemplo, quieres que arranque automticamente despus de un reboot).
Pascal Scheffers ha escrito un script de

44

Nmero 09

SLIMSERVER_USER="tigris"
SLIMSERVER_CFG=U
"/home/tigris/.slimserver.conf"
SLIMSERVER_LOG=U
"/home/tigris/.slimserver.log"

Estos cambios guardan todos los ficheros


relevantes en un lugar (incluyendo los
dos ficheros de bases de datos
SlimServer).
Lo siguiente es crear el fichero .slimserver.conf :
<C>touch .slimserver.conf<C>

y finalmente, como root, edit /usr/local/


slim-server/slimserver.pl comentando la
lnea 762:
# $0 = "slimserver";

para permitir al script de inicio cerrarse


correctamente. Ahora se puede controlar
SlimServer ejecutando (como root) slimserver start|stop|status.
SlimServer contiene su propio servidor
web que corre en el puerto 9000. La
siguiente cosa que hay que hacer es
acceder al servidor de msica, bien
desde el mismo servidor de msica,
(escribiendo en el navegador http://
localhost:9000), o desde otro PC en tu
LAN (introduciendo la direccin IP o el
nombre del host en el navegador: http://
192.168.0.6:9000, o http://tigris:9000, en
mi caso). En la siguiente descripcin
supondremos que ests trabajando ahora
desde otro PC usndolo como cliente del
servidor de msica.
Una vez que te has conectado al servidor selecciona Server Settings en la parte
izquierda del cuadro. Crea una carpeta
para tu msica y pulsa Change (Figura
1). Si no especificas una carpeta para tu
lista de reproduccin, no puedes salvar o

WWW.LINUX- MAGAZINE.ES

Figura 2: La pgina Browse Artists muestra


la lista de interpretes, ordenada por nombres.

cargar las listas de reproduccin ya existentes. Por ltimo, pulsa Rescan para listar la msica. Este comando puede llevarte algn tiempo si tienes muchas pistas. Finalmente, haz clic sobre Home |
Browse Artists para ver tu msica clasificada por artistas (Figura 2). Pulsando en
el nombre de un artista, se te mostrar
los lbumes asociados a dicho cantante
y, pulsando sobre los lbumes, se te
mostrar las pistas. Tambin puedes ir
directamente a los lbumes o gneros
desde la pgina home.
Podras pensar que puedes comenzar
creando una lista de reproduccin, pero
SlimServer necesita que un reproductor
haga una conexin primero.

Msica Maestro!
La manera ms sencilla de comenzar con
SlimServer es acceder a l usando un
reproductor de msica, tal como XMMS
desde un PC cliente. Desde el cliente,
arranca XMMS y haz click en Add | URL.
Escribe http://<direccin ip del servidor
de msica>:9000/stream.mp3 y pulsa
OK. No oirs nada porque no hay nada
sonando, pero si haces clic sobre Home
en la pgina web de SlimServer, deberas
ver ahora una nueva entrada bajo
Settings, la cual te dir algo parecido a
Player Settings para 192.168.0.50 (o
cualquiera que sea la direccin IP del
cliente). Haciendo clic en esta entrada se
te permite establecer un nombre para el
cliente y tambin ajustar elementos de la
configuracin, tales como el formato del
display para la informacin de la
pista(Figura 6).

SlimServer PRCTICO

Etiqueta esa pista


Si se est configurando un servidor de
msica, vale la pena perder un poco de
tiempo pensando cul ser la norma
estndar para los nombres de los archivos y las etiquetas de metadatos. Linux
tiene una buena cantidad de ripeadores. De entre los principales, yo prefiero
KaudioCreator, porque lo encuentro ms
sencillo que Grip. Personalmente utilizo

Hay que observar que si se cambia el


nombre del interprete del lbum y despus se hace clic, KaudioCreator preguntar si tambin se desea reemplazar el
nombre del intrprete en las pistas, as
que habr que contestar que no si se han
editado los intrpretes de las pistas a
mano. Si se estn transfiriendo pistas de
un equipo a otro a travs del protocolo
SSH incluido en Konqueror, mucho cuidado, ya que la aplicacin puede cascar
debido a tildes en los nombres de los
archivos.
Durante el ripeado, pueden aparecer
ventanas
emergentes
donde
KaudioCreator indica que ha detectado
daos en el CD. Normalmente es inofensivo ignorar esos errores y el ripeado
continuar en segundo plano.

clase entre las aplicaciones de Linux


para el rebanar y cortar en taquitos las
etiquetas de los metadatos. Se puede
configurar que un directorio en concreto
sea revisado cada vez que arranca el programa mediante Settings | Preferences |
Browser tab. Tras aadir nuevos archivos al directorio, se pueden aadir tambin al display haciendo clic con el botn
derecho en el rbol de archivos y eligiendo Refresh Tree.
Los archivos que de algn modo sean
errneos (por ejemplo, archivos a los
que les falte una etiqueta importante,
como pueda ser el Ttulo) se muestran
en rojo (Vase la Figura 5), as como los
archivos que se han editado pero no se
han guardado, o aquellos nombres de
archivos que contengan caracteres que
no le gusten a EasyTag (y sorprendentemente parece que el smbolo de interrogacin es uno de ellos). Se puede aplicar
una etiqueta a ms de un archivo en un
solo paso, para marcar todos los archivos de un mismo lbum: Resaltamos los
archivos, introducimos el nombre en el
campo lbum, despus se pulsa el botn
a la derecha del campo y por ltimo pulsamos sobre el icono de guardar. El
escner tambin ofrece una manera de
escribir las etiquetas basndose en el
nombre del archivo de la pista, pero
hasta donde he podido comprobar, esta
caracterstica no funciona de manera fiable.

Una alternativa a la edicin de los archivos antes de ripearlos es editarlos posteriormente usando EasyTAG [12] de
Jerome Couderc, que est incluido en
el nombre del intrprete y el lbum
los discos de SuSe 9.2. Para utilizar
como directorios y despus uso el
EasyTAG, se selecciona Scanner |
esquema nmero de la pista ttulo de
Rename File in EasyTAG y seleccionala pista nombre del intrprete como
mos el esquema en el campo Scan File
nombre del archivo. Esto se puede camName (vase la Figura 4), puede ser de
biar fcilmente dirigindonos a Settings
ayuda conmutar entre las mscara y la
| Configure KAudioCreator | Encoder |
informacin de la inscripcin haciendo
Wizard y utilizando los botones para
clic en esos dos iconos en la barra de
crear los rboles de directorios y nomventana de herramientas de la ventana
bres de archivos (Vase la Figura 3).
Scanner. Despus se selecciona con el
Se pueden buscar CDs
ratn el archivo que se
en las bases de datos
quiere cambiar, siendo
CDDB para ahorrar
Si EasyTag no puede ver los archivos del
posible realizar selectiempo al ripear, pero
directorio, primero se debe comprobar si
ciones mltiples, utilihay que tener en cuense tienen los metadatos correctos utilizando la combinacin
ta que la informacin
zando vorbiscomment -l nombrearchide ratn y tecla shift.
CDDB de la mayora de
Se pulsa sobre el
vo.ogg. Una versin de KaudioCreator
las lbumes compilaicono
verde
para
necesita que se cambien los permisos de
dos rompen el esqueexplorar los archivos
644 a 655 y despus a 644 otra vez, para
ma anterior. El intrseleccionados.
Los
que se vea el archivo. Hay algunas anoprete del lbum norarchivos
resaltados
malas ms: una versin de Grip coloca
malmente aparece en
cambiarn al color rojo
un nmero en vez de un nombre en el
el
listado
como
para indicar que han
campo gnero y a consecuencia de esto
Various, lo cual
sido editados. Por ltiSlimServer se suele colgar.
puede estar bien, pero
mo,
se
la mayora de las pispulsa en el
Figura 4: Utilizacin de EasyTAG
tas parece que tambotn
de
bin
tienen
a
para editar un nombre de archivo
guardar de
Various como intrdespus de haberlo ripeado.
la ventana
prete y el intrprete
principal
correcto slo se menciona en el ttulo de
para guardar los cambios.
la pista. En estos casos se puede corregir
Sin embargo, renombrar
el nombre, despus de haberlo ripeaficheros no es el fin principal
do, haciendo doble click en la primera
de EasyTag. Este programa se
pista y cambiando los campos de intrutiliza para escribir metadaprete y nombre de la pista como se
tos en mp3, ogg, flag y otros
Figura 5: EasyTAG marca en rojo los archivos errneos o
desee. Despus con Next Track se
tipos de archivos y probableque no se han salvado.
mueve la ventana a la pista siguiente.
mente sea el primero de su
Figura 3: En KAudioCreator se puede
especificar el esquema de nombres.

WWW.LINUX- MAGAZINE.ES

Nmero 09

45

PRCTICO SlimServer

Figura 7: Administracin una lista de reproduccin en el cuadro Playlist del Slim-Server.

En la pgina web de SlimServer busca


algunas pistas (ya sea mediante la bsqueda de artista, lbum, o gnero) y
adelas a la lista de reproduccin en la
tabla de la derecha pulsando el + junto
al nombre en la tabla de la mano
izquierda. Pulsando + junto a un nombre de un lbum te aadir todas las
pistas de ese lbum (aunque puedes
cambiar este comportamiento en
Settings). Ntese que debers refrescar
el navegador para ver las entradas de la
nueva lista de reproduccin. Esto normalmente ocurre de forma automtica,
pero en la prctica, parece variar dependiendo del navegador, su versin y del
tipo de conexin. Finalmente, pulsa

Play en la lista de reproduccin


(Figura 7).
Despus de una corta demora
causada por el bfer de XMMS,
deberas or tu msica en el PC
cliente. Hasta aqu, todo bien, pero
el bfer es la principal desventaja
del uso de un cliente de streaming
como XMMS. Si cambias de pistas
haciendo doble clic sobre otra
pista, puede tardar hasta 10 segunFigura 8: La primera vez que se arranca
dos hasta que el sonido salga de
SoftSqueeze, aparece el dilogo SoftSqueeze
XMMS. Esto molestaba tanto a
Preferences.
Richard Titmuss que escribi una
emulacin Java del dispositivo de
corre java-jar SoftSqueeze.jar. Una vez
Squeezebox llamado SoftSqueeze [9].
que has comenzado SoftSqueeze se abriSoftSqueeze mejora sensiblemente la
r el dilogo Preferences (Figura 8).
sincronizacin con SlimServer. Adems
Sobre la etiqueta Basic, copia la direcusa el protocolo slim basado en TCP, lo
cin IP de tu servidor de msica en el
que ayuda a SoftSqueeze a atravesar el
campo SlimServer Hostname, y (debido a
cortafuego en el caso de que quieras or
que el skin por defecto de slim es demala msica de tu casa en la oficina. El
siado grande) elige slim skin para
inconveniente es que, como es un proSoftsqueeze Skin (Figura 9). El skin por
grama en Java, puede acaparar muchos
defecto imita a Squeezebox, pero los
ciclos del procesador.
otros skins tambin son bonitos. Pulsa
Para instalar SoftSqueeze, descarga
OK. Si la aplicacin empieza a saltar de
primero el plugin mp3 de Java desde el
un lado a otro de la pantalla, que no
sitio de Sun [10], abre el fichero y mueve
cunda el pnico: este comportamiento
el mp3plugin.jar al directorio /lib/ext
tan aberrante se debe a un bug de Java,
bajo el Java Runtime Environment (en
corregido en Java 1.5. Muvelo hacia un
SUSE 9.2 ste se encuentra en /usr/lib/
lado de la pantalla y todo volver a estar
jvm/jre/lib/ext). Luego descarga el fichebien.
ro comprimido de SoftSqueeze desde su
El controlador de Squeezebox tambin
sitio web (ntese que las versiones supese emula (Figura 10). Pulsa en la flecha
riores a 1.17 incluyendo, parecen no fundel botn de la izquierda de abajo para
cionar con SlimServer 6beta, necesitareconseguir un controlador vertical y en la
mos utilizar SlimServer 5.4). Abre y
flecha de la derecha para conseguir otro

Reproductores en todas partes


En la actualidad est apareciendo una
ingente cantidad de nuevos dispositivos
para aprovecharse de la tendencia creciente de centralizar la msica en un
lugar, pero un breve repaso sugiere que
no hay muchos que funcionen con
Linux.
El producto ms similar a Squeezebox2
es el Roku Soundbridge [14]. Este producto puede utilizar SlimServer 5.4 y los
usuarios pueden incluso conseguir algo
de soporte a travs del email. Sin embargo, Roku indica que el SoundBridge
est optimizado para el Windows
Media Connect e iTunes, y que han probado el SoundBridge con SlimServer
en las plataformas Windows y
Macintosh, pero no en Linux. El
Netgear MP101 [15] tambin es similar a
Squeezebox2, pero parece que slo fun-

46

Nmero 09

ciona con archivos mp3 y WMA y necesita Microsoft Windows como plataforma
del servidor.
Algunos concentradores multimedia
pueden manejar fotos y vdeos tan bien
como la msica; por ejemplo D-Link
MediaLounge
DSM-320
[16],
el
ViewSonic WMA100 [17], el Prismiq
MediaPlayer [18] y el Philips Streamium
SL300i [19]. Parece que ninguno de ellos
puede reproducir archivos ogg y la
mayora dependen por completo de una
televisin para la interaccin con el
usuario (aunque el Streamium tiene integrada una pequea pantalla). Parece que
tambin necesitan Microsoft Windows
como plataforma del servidor, funcionando con Microsoft Media Server o con
su propio software.
En un rango de precios mayor estn las

WWW.LINUX- MAGAZINE.ES

cajas como Hifidelio [20] y el Sonos


ZonePlayer ZP100 [21]. El formato es el
de caja todo-en-uno que ripea y almacena las pistas de msica, as como proporciona el acceso a las mismas.
Reproducen archivos ogg, pero parece
que los PCs necesitan utilizar iTunes para
conectarse a ellas (y an no hay una versin nativa de iTunes para Linux). El
ZonePlayer es con diferencia el reproductor de medios con mejor aspecto,
con un control remoto al estilo de un
PDA, pero tambin es el ms caro.
Aunque an no reconoce los archivos
ogg (aunque parece que lo har pronto),
es el nico cacharro que especficamente funciona con Linux como servidor,
conectndose a travs de Samba (aunque Red Hat 9.0 es la nica distribucin
que est oficialmente soportada).

SlimServer PRCTICO

duccin de cada cliente parece


ser accesible desde cualquier
otro cliente simplemente selecFigura 9: El reproductor de msica
cionando el nombre relevante
SoftSqueeze.
del cliente en la caja que cuelga
en la parte superior derecha de
horizontal. Si el panel de botola pgina web. Por consiguiente,
nes tapa al reproductor oprime
esperemos que los usuarios no
Alt y arrstralo a un lado con el
hagan trastadas con las listas de
ratn. En el controlador, las flereproduccin de otros usuarios.
chas de la derecha e izquierda
La configuracin tambin est
entran y salen de los mens y
disponible desde cada cliente,
las flechas de arriba y abajo se
aunque hay un plugin de
mueven arriba y abajo a travs
Michael
Herger
de las opciones. la manera ms
NoSetup::Plu-gin.pm) que lo ciesencilla de controlar SlimServer
Figura 10:
rra todo a cal y a canto.
es, de hecho, a travs de la
SoftSqueeze
SlimServer tiene muchas y tiinterfaz web, pero a veces, si
emula un
les caractersticas y una activa
has presionado Pause en el conmando a discomunidad de usuarios, con una
trolador, debers volverlo a pretancia.
lista de correos muy til y howsionar otra vez antes de or la
tos sobre temas tan variados
como ficheros AAC y WMA, el uso de
msica, incluso si has seleccionado Play
cartulas de los lbumes y la recepcin
en la pgina web.
de radio a travs de Internet. Tambin se
En Marcha
puede instalar SlimServer en una
Los usuarios puede que sean adultos
LinkStation Buffalo, lo que proporciona
jvenes, o personas un poco torpes, as
un servidor de msica atractivo pero de
que es una buena idea simplificar el
bajo precio [11]. Una de sus principales
acceso a SlimServer. Puedes hacerlo
atractivos es que puede usarse como
fcilmente aadiendo 2 iconos al escritofuente nica para rellenos peridicos de
rio. El primero de ellos arrancar
reproductores de Linux.
SoftSqueeze y el segundo abrir la pgiSqueezebox2, especialmente la versin
na web del cliente en SlimServer. Para el
inalmbrica, forma ahora parte de mi
reproductor, pulsa con el botn derecho
lista de mis nuevos y ms apreciados seren el escritorio y elige Create New | File |
vicios de entretenimiento de saln. La
Link to Application. En el cuadro
nueva caja ofrece una mayor cobertura y
Application, escribe java -jar /ruta/a/
la capacidad de emitir radio de Internet
SoftSqueeze. Como comando se pone jar.
directamente sin pasar a travs de un
Para la pgina server, pulsa en el escritoPC. Una caracterstica puente permite
rio y elige Create New | File | Link to
Location (URL). En la caja, copia y pega
la URL desde la pgina web. Esto incluir algo como ?player=19:b8:89:b8:37:68
al final, la cual es una falsa direccin
MAC que SoftSqueeze pasa a SlimServer
para identificar al cliente. A continuacin puedes decirle a tus usuarios que
pulsen primero sobre el icono reproductor y que empiecen a elegir su msica.
El nmero de clientes que puedes
soportar depende del ancho de banda de
tu red, pero en la LAN de casa, Tigris
puede soportar 4 usuarios sin problemas aunque la CPU funciona a tope.
Tambin funciona bien con un cliente
porttil inalmbrico. Ya no tengo excusa
para no trabajar en el jardn.
Figura 6: Configuracin de las opciones del
La nica desventaja que SlimServer
display y del nombre del cliente en la pgina
puede tener es que cada lista de reproPlayer Settings.

WWW.LINUX- MAGAZINE.ES

que dispositivos inalmbricos (como una


PlayStation) se conecten a una LAN
inalmbrica e Internet a travs de
Squeezebox2.
Si ests considerando comprar alguno
de los dispositivos musicales actuales
que existen en el mercado (ver el cuadro
titulado Reproductores por todas partes), vale la pena preguntarle a las compaas que estn detrs de esos productos si estn realmente preparadas para
soportar totalmente a Linux, ya no
hablamos de apoyar el desarrollo de una
aplicacin GPL como SlimServer.
Comprar productos de esas compaas
que apoyan Linux, en oposicin a aqullas otras que no lo hacen, es una buena
manera de estimular a los fabricantes a

que apoyen Linux.

RECURSOS
[1] http://developer.kde.org/~wheeler/juk.
html
[2] http://amarok.kde.org/
[3] http://marc.theaimsgroup.com/
?l=suse-linux-e&m=110822924029212
&w=2
[4] http://www.ampache.org/
[5] http://pancake.org/zina
[6] http://www.jinzora.org/
[7] http://www.slimdevices.com/
[8] http://lists.slimdevices.com/archives/
developers/2004-July/009722.html
[9] http://softsqueeze.sourceforge.net/
[10] http://java.sun.com/products/
javamedia/jmf/mp3/download.html
[11] http://fieldnetworks.com/slim/
linkstation.html
[12] http://easytag.sourceforge.net/
[13] http://eng.iaudio.com/
[14] http://www.rokulabs.com/products/
soundbridge/index.php
[15] http://www.netgear.com/products/
details/MP101.php
[16] http://www.d-link.com/products/
?pid=318
[17] http://www.viewsonic.com/products/
tventertainment/ medianetworks
[18] http://www.prismiq.com/products/
product_mediaplayer.asp
[19] http://en.streamium.com/
whatisstreamium
[20] http://www.hermstedt.com/english/
hifidelio
[21] http://www.sonos.com/

Nmero 09

47

DESARROLLO Perl: Yahoo API Scripting

Uso de la API Yahoo Search con Perl

CONTACTO

Siguiendo los pasos de Google, Amazon y eBay, Yahoo acaba de lanzar un servicio API Web para su motor de
bsqueda. En el reportaje de este mes no daremos un repaso a un guin, ni a dos sino que son tres los
guiones en Perl los que sern analizados y que nos ayudarn a corregir la ortografa, localizar a los compis
del colegio a los que perdimos la pista hace tiempo y ver las fotos de vacaciones de otras personas, y todo
gracias a la nueva API Web de Yahoo. POR MICHAEL SCHILLI

s muy comn que los servicios de


Internet ofrezcan un API Web.
Los desarrolladores usan la API
Web para integrar los servicios de
Internet con sus propias aplicaciones.
Yahoo acaba de publicar una interfaz
REST(Representational State Transfer,
transferencia de estado representacional)
para su infraestructura de bsqueda.
Bsicamente, REST permite enviar una
URL a una aplicacin y a cambio obtiene
un fichero XML. Por supuesto que tambin hay un nuevo mdulo Perl,
Yahoo::Search, a juego; el mdulo est
disponible en CPAN y ha sido desarrollado por el gur de las expresiones regulares Jeffrey Friedl.
Yahoo::Search facilita la bsqueda de
documentos, imgenes, vdeos y otras
muchas cosas. El acceso HTTP y la extrac-

48

Nmero 09

cin XML se ocultan debajo de sencillas


llamadas a mtodos. Si intentamos escribir una aplicacin, necesitaremos registrarnos para obtener nuestra propia ID de
aplicacin. Se permitir realizar 5000 llamadas por da a los servicios mencionados en este artculo. Para registrarnos en
[2], necesitaremos nuestro propio ID
Yahoo, que podremos conseguir a cambio
de una direccin de correo electrnico
vlido. Tambin ser necesario que aceptemos las directivas de privacidad de
Yahoo (Yahoos Privacy Statement); no
debemos olvidar leerlas con atencin.

Quizs quiso decir?


Si no estamos seguros de cul es la ortografa correcta de una palabra, siempre
podemos trincar nuestro diccionario
favorito, aunque es muy posible que

WWW.LINUX- MAGAZINE.ES

echemos en falta algunas de las ultimas


palabras de moda, trminos de la cultura
pop o los nombres propios. En este caso,
Internet es de gran ayuda. La mayora de
los motores de bsqueda ofrecen una
funcin Quizs quiso decir? que es lo
que ellos sugieren como la alternativa
correcta si tecleamos algo que estos
motores no puedan entender.
Por ejemplo el guin de errores ortogrficos (Vase el Listado 1) utiliza el
mtodo Term() del API Web para invocar
al corrector ortogrfico de Yahoo con una
palabra o frase para que la revise:
$ typo foo foughters
Corrected: foo fighters

El corrector ortogrfico no slo encuentra palabras en el diccionario. Podemos

Perl: Yahoo API Scripting DESARROLLO

notaremos inmediatamente los cambios


si l o ella comienzan una nueva pgina
web o se hacen famosos de un da para
otro. Por supuesto que nadie tiene tiempo de realizar manualmente este tipo de
bsquedas, adems de que puede ser
muy complicado seguirle la pista a los
resultados.

Servicio de bsqueda

Figura 1: Los viejos compaeros del colegio han aparecido en la Web. El guin nos manda un
correo con un resumen de la lista de aciertos.

verificar casi cualquier trmino sobre el


cual se haya escrito en la Web. Incluso
hasta los de los polticos bien conocidos:
$ typo tonie blayre
Corrected:tony blair

Listado 1: typo
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22

#!/usr/bin/perl -w
#############################
use strict;
my $term = "@ARGV";
die
"uso: $0 palabra/frase ..."
unless length $term;
use Yahoo::Search AppId =>
"YOUR_APP_ID";
my ($suggestion) =
Yahoo::Search->Terms(
Spell => $term );
if (defined $suggestion) {
print "Corregido: ",
"$suggestion\n";
} else {
print "Sin sugerencias\n";
}

El listado 1 muestra cmo se ha implementado. La orden use de la lnea 11


carga el mdulo Yahoo::Search, que previamente habremos instalado usando la
shell de CPAN, y le pasaremos la ID que
hemos obtenido desde [2]. En este punto
necesitamos modificar los detalles del
guin para reflejar nuestras credenciales.
El parmetro Spell del mtodo Terms()
espera una palabra o frase, que enviar al
servicio Yahoo, analizar el XML devuelto
por la contestacin y extraer la respuesta
si es que existe una. La lnea 14 almacena
la contestacin en la variable $suggestion.
A continuacin una estructura if-else nos
dar la respuesta o bien indicar No
corrections si el motor no encuentra nada.
Aunque el servicio est haciendo progresos con la internacionalizacin, no podemos esperar buenos resultados en otras
lenguas distintas del ingls, sobre todo
cuando se trata de palabras con tilde.

Buscando en el bal de los


recuerdos
Los robots de los motores de bsqueda
vagabundean sin descanso a travs del
conocimiento depositado en Internet
buscando nuevas fuentes de informacin. Esto significa que los resultados de
las bsquedas pueden cambiar y cambiarn. Si buscamos todos los das el
nombre de un compaero de colegio,

WWW.LINUX- MAGAZINE.ES

Para que conseguir que las cosas sean


ms fciles para nosotros, el guin
buddy (coleguita, vase el Listado 2)
arranca una vez al da mediante cronjob.
El guin recupera los primeros 25 resultados de una lista de nombres almacenados en el archivo de configuracin
~/.buddy. Este guin enviara las URLs
de las que no tenga conocimiento previo,
junto con un extracto del contenido del
sitio Web, a una direccin de correo electrnico preconfigurada. Esto le permitir
saber si alguno de sus coleguitas de la
lista ha sido nominado, por ejemplo,
para los premios Nobel.
Durante todo un mes nuestro hbil
guin buddy mantendr cualquier URL
que encuentre en una cach. Cada vez
que encuentre un nombre que ya ha sido
cacheado, se extiende el periodo de
cach. Los nombres que han estado
ausentes durante un mes, sern redescubiertos como si fueran nuevos, simulando de este modo una mala memoria y
animndonos ocasionalmente.
La lnea 12 del guin espera una direccin de correo electrnico a la cual deber enviar las actualizaciones. Si lanzamos buddy en la lnea de ordenes, especificando la opcin -v (para el modo prolijo, viste), la lnea 24 inicializa la estructura Log4perl con un nivel de registro de
$DEBUG, haciendo que los registros sean
ms exhaustivos. Por omisin, slo veremos los mensajes de registro con la prioridad igual o superior a WARN.
La lnea 26 declara la funcin mailadd
(que ser definida despus) para decirle a
Perl que sta es una funcin nueva, permitiendo hacer as cualquier llamada que
preceda a la definicin sin necesitar parntesis. La funcin mailadd, que comienza
en la lnea 93, mantiene el texto del correo
acumulado en una variable our llamada
$maildata. La funcin mailsend de la
lnea 100 comparte la misma variable. Las
llamadas a mailadd simplemente aaden
texto a $maildata. Despus la llamada a
close() en la lnea 118 enviar el mensaje

Nmero 09

49

DESARROLLO Perl: Yahoo API Scripting

completo a la direccin que hayamos indicado (Vase la Figura 1) usando el mdulo de CPAN Mail::Send.
La funcin plough, que ha sido exportada por el modulo Sysadm::Install,
espera una funcin de callback y un
nombre de fichero en la lnea 30. La funcin analiza el archivo de configuracin
~/.buddy, llamando a la funcin callback despus de cada lnea que haya
leido, pasando el contenido de cada
lnea a la variable $_. La lnea 31 descarta las lneas comentadas con # y la orden
chomp arrancar de un mordisco el
carcter newline. La lnea 33 empujar a

cualquier compaero que el proceso


encuentre al final de array @buddies y
as se va ampliando continuamente.
Despus la lnea 53 utiliza el mtodo
Results() para contactar con el servicio
de Yahoo, envolviendo los nombres de
nuestros compaeros guardados en el
archivo de configuracin con dobles
comillas y pasando despus esta cadena
entrecomillada qq{"$buddy"} con el
parmetro Doc, ya que sta es una bsqueda para un documento Web.
La lista de objetos resultantes devueltos en la respuesta utilizan los mtodos
Url() ySummary() dando como resulta-

do las URL y un extracto para cada acierto. El archivo de cache (lnea 37) est
preparado tras las bambalinas, gracias a
Cach::FileCache y est localizado en
/tmp/FileCache. El cach mantiene cualquier entrada durante 30 das, tal como
se especifica mediante el parmetro
default_expires_in.
Como el servicio Web exige estrictamente UTF-8, los nombres en ~/.buddy
deben estar codificados en UTF-8. Esto es
irrelevante para nombres en ingls
corriente, pero los caracteres acentuados
son una historia diferente. Si tenemos una
moderna distribucin de Linux, nuestro

Listado 2: buddy
001
002
003
004
005
006
007
008
009

001 #!/usr/bin/perl -w
#############################
# buddy - Seguimiento de
# resultados de bsqueda
# 2005, m@perlmeister.com
#############################
use strict;

my $BUDDY_FILE =
"$ENV{HOME}/.buddy";
010 my $EMAIL_TO = 'email@algunlado.com';
011
012 use Sysadm::Install qw(:all);
013 use Yahoo::Search;
014 use Text::Wrap;
015 use Cache::FileCache;
016 use Log::Log4perl qw(:easy);
017 use Getopt::Std;
018 use Mail::Send;
019
020 getopts( "v", \my %o );
021
022 Log::Log4perl->easy_init(
023 $o{v} ? $DEBUG : $WARN );
024 sub mailadd;
025
026 my @buddies = ();
027
028 plough sub {
029 return if /^\s*#/;
030 chomp;
031 push @buddies, $_;
032 }, $BUDDY_FILE;
033
034 my $cache =
035 Cache::FileCache->new({
036
namespace => "Buddy",
037
default_expires_in =>
038
3600 * 24 * 30,
039 });

50

Nmero 09

040
041 my $search =
042 Yahoo::Search->new(
043
AppId => "YOUR_APP_ID",
044
Count => 25,
045
046
047 for my $buddy (@buddies) {
048 DEBUG "Peticin de bsqueda
",
049
"para '$buddy'";
050 my @results =
051
$search->Results(
052
Doc => qq{"$buddy"} );
053
054 my $buddy_listed = 0;
055
056 DEBUG scalar @results,
057
" resultados";
058
059 for my $result (@results) {
060
if($cache->get(
061
$result->Url()
062
063
DEBUG "Encontrado en cache:
",
064
$result->Url();
065
066
# Refrescar si se encuentra
067
$cache->set(
068
$result->Url(), 1);
069
next;
070 }
071
072 mailadd
073
"\n\n### $buddy ###"
074
unless $buddy_listed++;
075
076 mailadd $result->Url();
077
078 $cache->set(

WWW.LINUX- MAGAZINE.ES

079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117

$result->Url(), 1);
mailadd fill( "
",
"
",
$result->Summary() ),
}
}
mailsend();
#############################
sub mailadd {
#############################
our $maildata;
$maildata .= "$_\n" for @_;
}
#############################
sub mailsend {
#############################
our $maildata;
return
unless defined $maildata;
DEBUG "Enviando email: ",
"$maildata";
my $msg =
Mail::Send->new();
$msg->to($EMAIL_TO);
$msg->subject(
"Noticias Buddy Watch");
my $fh = $msg->open;
print $fh $maildata;
close $fh;
}

Perl: Yahoo API Scripting DESARROLLO

editor almacenar los caracteres acentuados en UTF-8 predeterminadamente. Si


an usamos Latin 1, deberemos utilizar
alguna herramienta, tal como toutf8, en la
lnea de ordenes como por ejemplo toutf8
buddy.latin1 >~/.buddy, para convertir
el archivo rpidamente:
# toutf8
use Text::Iconv;
my $conv = U
Text::Iconv->new("Latin1", U
"UTF-8");
print $conv->convert U
(join '', <>);

Solamente necesitamos modificar la


direccin de correo electrnico en la
lnea 12 del guin para que concuerde
con nuestras necesidades. Una entrada
en cron como por ejemplo 0 5 * * *
$HOME/bin/buddy llamar al guin cada
maana, consultando al motor de bsqueda, actualizando la cach y envindonos un mensaje por correo electrnico
con todas las novedades producidas
desde la ultima bsqueda. Funciona
mejor con nombres poco corrientes;
seguir la pista de nombres como Juan
Ruiz generarn demasiado ruido.

ce una clave de bsqueda


en el diccionario (por
ejemplo San Francisco y
pulsa sobre el boton de
Search, se establece el
parmetro CGI q y la
lnea 68 llama al mtodo
Results() del paquete
Yahoo::Search. El parmetro Image pasa la clave
de bsqueda, Count limita el resultado a 50 aciertos, y el ajuste de
AllowAdult con un valor
de 0 al menos, intenta
prevenir que contenido
adulto se despliegue en
su pantalla.
Como el texto de los
ttulos estn otra vez en
UTF-8, el mtodo heaFigura 2: Una consulta para San Francisco en el formulario
der() en la lnea 26 le
de entrada devuelve una presentacin de diapositivas con visindica a nuestro navegatas de la ciudad.
dor que las pginas dinmicamente
generadas
para convertir los datos devueltos a la
estn codificadas en UTF-8.
estructura anidada original de Perl.

Memoria Cach

El guin CGI slideshow almacena el resultado de nuestras bsquedas. En otras


palabras, slideshow las URLs de las imImagina esto
genes y un resumen de texto almacenado
como un array de arrays, en un archivo de
El nuevo servicio tambin permite la
cach persistente. Esta tcnica evita que
bsqueda de imgenes. El motor de bsel proyector de la presentacin de diaposiqueda recuperar una serie de URLs que
tivas tenga que interrogar al motor de
coincidirn con nuestra clave de bsquebsqueda cada vez que el proyector avanda, pasndosela al guin slideshow
ce hacia la siguiente imagen.
(Vase el Listado 3), el cual las mostrar
El mdulo Cach::FileCache almacena
en la ventana de nuestro navegador con
pares de clave-valor donde los valores
un intervalo de 5 segundos.
son simples scalars, pero no se permiten
El guin mostrar en primer lugar un
estructuras anidadas. El mdulo Storable
sencillo formulario de bsqueda (Vase
puede ayudarnos a seguir trabajando a
la Figura 3). Cuando un usuario introdupesar de la carencia de estructuras
anidadas. La funcin freeze() del
mdulo
Storablepuede
serializar
una
estructura
de
datos antes de
almacenarla en la
cach. Si hace
falta
recuperar
desde la cach los
datos serializados,
Figura 3: La bsqueda de imgenes del Listado 3 nos ofrece una
se llama al desbuena presentacin, que sobre todo contiene instantneas de vacaerializador thaw()
ciones.

WWW.LINUX- MAGAZINE.ES

Detalles
Para evitar que accidentalmente el guin
CGI use datos de entrada inseguros y sin
comprobar que puedan hacer llamadas
al sistema (por ejemplo, para evitar la
posibilidad de abrir un gran agujero de
seguridad en la aplicacin) la opcin -T,
(del modo taint, manchar) est correctamente habilitada al comienzo del guin
en la siguiente lnea Shebang que llama
al intrprete de Perl.
El primer bloque if (lnea 28) est
habilitado si se llama al guin, tanto con
la cadena de consulta como con el
nmero de serie de la imagen actual. En
este caso, la cach mantendr una
secuencia de URLs de imagen con subttulos que coinciden, de una llamada
anterior. La lnea 31 descongela el array
de arrays, y el operador del mdulo en la
lnea 35 garantiza que el nmero de serie
incrementado seale siempre a una posicin dentro del array y no a alguna parte
fuera de los lmites.
La funcin refresh() llamada en la
lnea 36 usando el parmetro 5 est definida en la lnea 107. Esta funcin
refresh() devuelve las secuencias HTML,
que pasan meta etiquetas al navegador
para decirle que cargue la siguiente imagen despus de esperar el nmero de

Nmero 09

51

DESARROLLO Perl: Yahoo API Scripting

segundos especificados con el parmetro


del intervalo que ha pasado.
El segundo parmetro opcional para
la funcin refresh() especifica si el
siguiente URL para ser cargado por el
guin mostrar la siguiente imagen
(next_ url incrementando simplemente
el parmetro numrico s) o si el guin
debe ir de nuevo a la pgina de comienzo con el URL original. La lnea 88 utili-

za este segundo parmetro si no se


encuentra ninguno de los resultados de
la bsqueda.

Instalacin
Para instalar el guin, simplemente lo
copiamos al directorio cgi-bin de nuestro
servidor Web, tecleamos una consulta,
nos sentamos y a relajarnos con las
fotos de vacaciones de otras personas!

RECURSOS
[1] Listados de este artculo: http://www.
linux-magazine.es/Magazine/
Downloads/09
[2] Pgina principal del API de Yahoo
para los desarrolladores: http://
developer.yahoo.com

Listado 3: slideshow
001 #!/usr/bin/perl -wT
002 #############################
003 # slideshow - Bsqueda de
imgenes
004 # en Yahoo como presentacin
CGI
005 # 2005, m@perlmeister.com
006 #############################
007 use strict;
008
009 use CGI qw(:all);
010 use Yahoo::Search AppId =>
"YOUR_APP_ID";
011 use Cache::FileCache;
012 use Storable qw(freeze thaw);
013
014 my $cache =
015 Cache::FileCache->new({
016
namespace => 'slideshow',
017
default_expires_in =>
018
3600,
019
auto_purge_on_set => 1,
020 });
021
022 my $data;
023
024 print header(-charset =>
"utf-8");
025
026 if(param('q') and defined
param('s')) {
027
028 $data = thaw
$cache->get(param('q'));
029
030 my $seq = param('s');
031 $seq %= scalar @$data;
032 print refresh(5);
033 print center(
034 a(
035
{ href => url() },
036
"Stop"
037 ),
038 a(
039
{ href => next_url() },
040
"Next"

52

Nmero 09

041 ),
042 p(),
043 b( param('q') ),
044 ":",
045 i( $data->[$seq]->[1] ),
046 p(),
047 img(
048
{ src =>
049
$data->[$seq]->[0]
050
}
051 ),
052 p(),
053 a(
054
{ href =>
055
$data->[$seq]->[0]
056
},
057
$data->[$seq]->[0]
058 ),
059 );
060
061 } elsif(param('q')) {
062
063 my @results =
064
Yahoo::Search->Results(
065
Image => param('q'),
066
Count => 50,
067
AllowAdult => 0,
068
);
069
070 if (@results) {
071
for (@results) {
072
push @$data,
073
[
074
$_->Url(),
075
$_->Summary()
076
];
077
}
078
print refresh(0);
079
$cache->set(
080
param('q'),
081
freeze($data)
082
);
083 } else {
084
print refresh( 0, 1 );
085 }
086 } else {

WWW.LINUX- MAGAZINE.ES

087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129

print h2(
"Bsqueda de
Presentacin"),
start_form(),
textfield(
-name => 'q' ),
submit(
-value => "Search" ),
end_form(),
font(
{ size => 1 },
"Impulsado por " .
"Yahoo Search"
);
}
#############################
sub refresh {
#############################
my ($sleep, $reset) = @_;
return start_html(
-title => "Presentacin",
-head => meta({
-http_equiv =>
"Refresh",
-content =>
"$sleep, URL=" . (
$reset ?
url() :
next_url())}));
}
#############################
sub next_url {
#############################
my $s = param('s');
$s ||= 0;
return
sprintf "%s?q=%s&s=%d",
url(), param('q'),
$s + 1;
}

Infografa - VTK DESARROLLO

Un simulador 3D del Sistema Solar

UNIVERSO
VIRTUAL

En muchas ocasiones habris visto representaciones tridimensionales del Universo en el que vivimos, por
ejemplo, cada vez que aparecen en los informativos vdeos con las simulaciones de las misiones de la NASA.
Este mes vamos a crear un sistema Solar virtual tridimensional empleando VTK desde Python.
POR ANA M FERREIRO Y JOSE A. GARCA .

a escena del Sistema Solar la


vamos a crear en VTK, basndonos en las tcnicas explicadas en
el nmero 8 de Linux Magazine.
Construiremos una interfaz de usuario
en Tkinter que contenga un rea de renderizado y un frame con botones para
controlar el inicio y el fin del movimiento.
En este artculo construiremos una
versin simplificada del Sistema Solar,
donde slo incluiremos el Sol y los tres
planetas ms prximos a l (segn la
Figura 1). Alrededor de la Tierra situaremos tambin la Luna. Cada uno de estos
objetos celestes tendrn asociados sus
correspondientes movimientos de rotacin y traslacin. Aprenderemos cmo

poner las texturas de los planetas, as


como el modo de controlar los movimientos. Con todas las tcnicas que veremos ya podis dejar libre vuestra creatividad

Organizacin de ideas
La estructura del programa est organizada en dos clases: class MyGUI que controla los widgets de la interfaz de usuario; y class RenderWindow que controla
el rea de renderizado de VTK, donde
incluiremos los planetas.
Mercurio, Venus y la Tierra rotan sobre
su eje y se trasladan en un movimiento
elptico en torno al Sol. En nuestro caso,
por simplicidad, vamos a suponer que el
movimiento es circular y que cada plane-

WWW.LINUX- MAGAZINE.ES

ta tiene forma de esfera. Como las


dimensiones reales son tan grandes, tendremos que trabajar a escala, pues de lo
contrario slo veramos unos pequeos
puntos en la escena. Para ello vamos a
considerar el radio de la rbita de la
Tierra como unidad de referencia. Los
datos que vamos a emplear los organizamos en diccionarios, como sigue:
#Radios de los planetas
radios={'Sol': (3*6.96*10**5)U
/(1.49*10**8),
'Tierra': (6.378*10**3)U
/(1.49*10**8)*100}
#Radios de las rbitas
r_rbita={'Sol': 0.0,

Nmero 09

53

DESARROLLO Infografa - VTK

y la Luna; igual que en la


Figura 3. Haced un zoom
sobre cada planeta. Podeis
ver la Luna con sus crteres,
la superficie terrestre con los
distintos continentes y ocanos, etc. (Figura 4 y Figura 5).

'Tierra':
(1.49*10**8)/U
(1.49*10**9)}

A cada uno de los planetas le


vamos a aplicar una textura,
una imagen del planeta que
pega adecuadamente en la
esfera para dar sensacin de
realismo en la representacin
(en la zona de descargas de
Linux Magazine en [1]
podis descargar las texturas
de todos los planetas as
como el cdigo completo del
programa):

Movimiento de
rotacin y traslacin

Figura 1: Sistema Solar hasta el planeta Tierra.

@LI textures={Sol:
fotosol2.jpg, Tierra:
reletierra.jpg}

Para poder apreciar el movimiento de


los planetas, consideramos que 1 da
equivale a la variable self.var_seg=1 (en
segundos).
Pongmonos manos a la obra. Lo primero es crear la GUI con el rea de renderizado y los botones PLAY, STOP y
QUIT, cuyo comportamiento detallaremos posteriormente. En el fichero sistsolar_Paso1.py, que encontraris en el rea
de descarga, tenis la base del cdigo
donde se construye la GUI con la escena
de VTK (Figura 2).

Creacin del Sistema Solar


Coloquemos los planetas en nuestra
escena (los planetas sern los actores de
la misma). Para hacer referencia a cada
planeta, vamos a usar el diccionario
self.planetsActor={}, que guardar las
instancia a cada vtkActor.
Vamos a crear el mtodo create_planet(self, center,radio,name_texture), en la
clase RenderWindow; para construir un
planeta con forma de esfera de un determinado radio, con una textura name_textura, y ubicado en la escena en la posicin center. El cdigo correspondiente a
este mtodo se puede ver en el Listado 1.
El objeto vtkTexturedSphereSource()
crea una esfera centrada en el origen y de
un radio especificado, sobre la que se
puede pegar una textura. El objeto
vtkJPEGReader() lee ficheros JPEG; cuyo
path lo especificamos mediante el mtodo
SetFileName. El objeto atext =
vtk.vtkTexture() proporciona los mtodos

54

Nmero 09

para controlar el mapeado de la textura,


que se asocia al actor planetActor mediante el mtodo SetTexture. Finalmente,
mediante return planetActor devolvemos
una instancia del vtkActor que se crea.
Ahora basta escribir en el constructor
de la clase RenderWindow el siguiente
bucle:
for k in radios.keys():
self.planetsActor[k]=U
self.create_planet(centro[k],U
radios[k],textures[k])
self.add_actor(self.U
planetsActor[k])

Mediante radios.keys() obtenemos la


lista de los planetas que queremos ubicar en la escena. Segn el centro, el
radio y la textura de cada planeta creamos un actor,self.planetsActor[k], que
colocamos en la escena mediante el
mtodo que add_actor, de la clase
RenderWindow.
Probad el cdigo ahora. Si habis
seguido todos los pasos, deberais estar
viendo el Sol, Mercurio, Venus, la Tierra

Figura 2: Interface bsica con un rea de


renderizado.

WWW.LINUX- MAGAZINE.ES

Ahora vamos a mover los


planetasEn primer lugar,
usaremos
la
variable
self.move que nos va a servir
para controlar el movimiento del sistema; self.move=1
si hay movimiento y
self.move=0 en caso contrario. Creemos
en la clase RenderWindow los siguientes
mtodos:
def stop(self):
self.move=0
def ini_move(self):
self.move=1

Para trasladar cualquier planeta en torno


al Sol, describiendo una rbita circular
(segn se muestra en la Figura 6), basta
crear el siguiente mtodo:
def translate_planets(self,U
dt,ind):
omega_T=(2*math.pi)/(self.U
dur_year[ind]*self.var_seg)
x=self.r_orbita[ind]*U
math.cos(omega_T*dt)
y=self.r_orbita[ind]*U
math.sin(omega_T*dt)
self.planetsActor[ind].U
SetPosition([x,y,0])

Las variables x e y, son las coordenadas


en
el
instante
dt.
Mediante
self.planetsActor[ind].SetPosition([x,y,0]
),
situamos
el
actor
self.planetsActor[ind] en el punto
(x,y,0).
En el caso concreto de la traslacin de
la Luna, el mtodo de traslacin sera
anlogo, slo que habra que tener en
cuenta la posicin de la Tierra; tal como
se recoge en las siguientes lneas,
aux=self.planetsActorU
['Tierra'].GetPosition()
xTierra=aux[0]
yTierra=aux[1]

Infografa - VTK DESARROLLO

Cada uno de los planetas rota sobre s


mismo en torno al eje Z (Figura 7). En el
caso concreto de la rotacin de la Tierra
bastara escribir,
self.planetsActor['Tierra'].U
RotateZ(omega_gr*dt)
self.planetsActor['Tierra'].U
Modified()

El mtodo RotateZ rota el actor


omega_gr*dt grados (en radianes), en
torno al centro de dicho actor. Mediante

Listado 1: Mtodo
create_planet
01 create_planet(self,
center,radio,name_texture)
02
03 esfera =
vtk.vtkTexturedSphereSource()
04 esferaMapper =
vtk.vtkPolyDataMapper()
05 esfera.SetPhiResolution(40)
06 esfera.SetThetaResolution(50)
07 esfera.SetRadius(radio)
08
esferaMapper.SetInput(esfera.G
etOutput())
09
10 planetActor = vtk.vtkActor()
11
planetActor.SetMapper(esferaMa
pper)
12
planetActor.GetProperty().SetO
pacity(1)
13
planetActor.GetProperty().SetL
ineWidth(1)
14 planetActor.SetPosition(center)
15
16 jpgReader =
vtk.vtkJPEGReader()
17
jpgReader.SetFileName(name_tex
ture)
18 jpgReader.Update()
19 atext = vtk.vtkTexture()
20
atext.SetInput(jpgReader.GetOu
tput())
21 atext.InterpolateOn()
22 planetActor.setTexture(atext)
23
24 return planetActor

Figura 3: Sistema Solar en el instante inicial.

Figura 4: Superficie de la Tierra y la Luna.

Modified() actualizamos el tiempo de


actualizacin del actor en la escena.
Para lograr un movimiento global creamos el mtodo move_sistsolar(self), en
el que llamamos a cada uno de los mtodos que acabamos de ver:
01 while(self.move):
02
time.sleep(2.0*self.dt_mov)
03
self.dt+=self.dt_mov
04
05
for k_rot in ['Mercurio',
'Venus','Tierra']:

WWW.LINUX- MAGAZINE.ES

06
07
08

self.translate_planets
(self.dt,k_rot)
aux=self.planetsActor
['Tierra'].
GetPosition()
xTierra=aux[0]
yTierra=aux[1]

09
10
11
12
self.rotate_Tierra(self.
dt_mov)
13

Nmero 09

55

DESARROLLO Infografa - VTK

Figura 8: Movimiento del Sistema Solar.

Probad el programa ahora y pulsad


PLAY Todos los planetas comienzan a
moverse y al cabo de unos segundos
deberais ver una situacin similar a la
Figura 8, donde los planetas ya no estn
alineados.
Con todo lo que hemos visto, ya
podeis crear el resto de los planetas
aadiendo los correspondientes movimientos de rotacin y traslacin.
Tambin podis dibujar las rbitas de
los planetas y colocar luces rojas en el
Sol para dar sensacin de fuego, segn
se ve en la Figura 9 (en el fichero sistsolar_Paso4.py tenis detallado el cdigo
correspondiente). Si queris jugar con
muchos ms tipos de texturas podis
encontrarlas y descargarlas de forma
gratuita, por ejemplo, en la pgina de

Celestia [5].

Figura 5: Vista del Sol, Mercurio y Venus.

RECURSOS

self.translate_Luna(self.
dt,xTierra,yTierra,'Luna')
14
self.render_window()
15
self.gui.update_parent()

Mediante time.sleep() se pausa la ejecucin en los segundos que se indiquen.


La variable self.dt_mov guarda el tiempo correspodiente a la traslacin; y
self.dt_move almacena el paso de tiempo. El mtodo self.gui.update_parent()
pertenece a la clase MyGUI, y sirve para
actualizar la GUI en cada paso del
bucle:

Figura 7: Movimiento de traslacin.

pondiente a los botones PLAY y STOP.


Al pulsar el botn STOP invocamos el
mtodo self.renwin.stop(); mientras
que al pulsar PLAY se invoca el mtodo
mover;
def mover(self,event=None):
self.renwin.ini_move()
self.renwin.move_sistsolar()

def update_parent(self):
self.parent.update()

Ahora ya tenemos todo lo necesario


para el movimiento del sistema solar,
slo nos falta escribir el cdigo corres-

56

Nmero 09

[2] Kitware. VTK: http://www.kitware.org


[3] Python: http://www.python.org
[4] Enthought Scientific python: http://
www.scipy.org
[5] Celestia (pgina con gran nmero de
texturas de cuerpos celestes): http://
www.celestiamotherlode.net

LOS AUTORES

Figura 6: Movimiento de rotacin.

[1] Fuentes y medios para el programa


de este artculo: http://www.
linux-magazine.es/Magazine/
Downloads/09

Figura 9: Sistema Solar con sus rbitas y


luces.

WWW.LINUX- MAGAZINE.ES

Ana M. Ferreirro Ferreiro es matemtica, pero su verdadera pasin


es la informtica. As que parte de
su tiempo lo dedica al desarrollo
en Python de interfaces grficas
multiplataforma, y al desarrollo de
software de visualizacin cientfica 3D.
Jos A. Garca Rodrguez tambin
es matemtico y desde hace unos
aos se dedica al desarrollo de
cdigo paralelo y optimizacin de
cdigos en C++.

Python DESARROLLO

Enlazando Python con la realidad

REUTILIZACIN
DE CODIGO

Python, Perl, Php, Ruby todos adolecen del mismo problema, tarde o temprano tendremos que volver al
mundo real y trabajar con una librera C. POR JOS MARA RUIZ

a en los aos 70 la gente del


mundo de la Ingeniera del
Software comenz a imaginar un
futuro donde slo se avanzara. No
habra que volver a escribir programas
para problemas ya resueltos. El famoso:
No reinventes la rueda. Comenzaron a
hablar de objetos y componentes.
Desgraciadamente esta visin del futuro se pareca demasiado a esa otra en la
que todos vamos en cohetes al trabajo y
comemos en una hamburguesera que
orbita alrededor de la Tierra. La realidad
es ms extraa quin se imaginaba un
ordenador en cada casa y todos conectados mundialmente?
A da de hoy el cdigo ms reutilizado es que viene en forma de libreras,
ya sea de funciones o de objetos. Pero la
mayor parte de estas libreras, y especialmente en el mundo de Linux, han
sido programadas en C o C++. Estos
lenguajes, debido a mltiples factores,
han sido los ms populares para el desarrollo de libreras y sistemas, y hoy por
hoy siguen siendo insustituibles en
muchos mbitos. De C se destacaba su
portabilidad (es muy sencillo encontrar

o crear un compilador de C para una


nueva arquitectura) mientras que de
C++, su balance entre portabilidad y
capacidad para grandes diseos.
En este artculo vamos a ver cmo
podemos hacer uso de una pequea
librera C desde Python a travs de un
ejemplo grfico.

Nuestra librera OpenGL en C


La librera que vamos a utilizar va a proveer una serie de funciones que nos permiten manipular objetos 3D a travs de
OpenGL. A que suena rimbombante? En
realidad no es tan difcil. No entraremos
en detalles respecto a OpenGL, pero
aclararemos un poco qu es.
OpenGL es un estndar mundial creado por SGI (Silicon Graphics Interactive)
para el desarrollo de aplicaciones 3D
interactivas. Esto traducido a la informtica domstica significa juegos!.
Todos los juegos multiplataforma que
utilicen 3D estn programados utilizando OpenGL (DirectX, la otra alternativa,
slo
funciona
bajo
plataformas
Microsoft, o sea en sistemas Intel con
Windows).

WWW.LINUX- MAGAZINE.ES

OpenGL tiene un diseo simple, los


objetos se componen de vrtices (un
tringulo tiene 3 vrtices) y estos vrtices definen reas que pueden tener una
serie de propiedades como puede ser
color o brillo. Una vez definidos los objetos pasamos a crear una serie de funciones que sern llamadas cuando se produzcan eventos. OpenGL utiliza un bucle
infinito que, bsicamente, se dedica a
recoger un evento, por ejemplo, la pulsacin de una tecla por parte del usuario,
para, a continuacin, llamar a la funcin
que se dedica a gestionarlo. As de simple.
Evidentemente hacer un videojuego
3D es una tarea muy complicada, pero la
base es esa, hacer que las imgenes en
pantalla reaccionen a eventos que se disparan en cualquier momento y que la
reaccin sea en tiempo real, o sea, que el
usuario no perciba demora en el tiempo
de reaccin. Todos hemos actualizado
nuestra tarjeta grfica alguna vez para
que la sensacin, a ms frames por
segundo mejor, fuese ms realista.
En el Listado 1 (descargable desde [5])
podemos ver un programa OpenGL muy

Nmero 09

57

DESARROLLO Python

simple, pero
que ser la base para
nuestra librera. Para compilarlo deberemos ejecutar make listado1 en el mismo
directorio en que est, copiando a ese
directorio el contenido del Listado 2
(descargable desde [5])a un fichero llamado Makefile.
Y qu hace nuestro programa? Pues
nuestro programa base genera un cubo
3D con texturas y lo gira sin parar hasta
que pulsamos la tecla 2. Entonces lo
detiene, comenzando a girar de nuevo
cuando pulsemos la tecla 1. Con los tres
botones del ratn podemos cambiar el
ngulo en el que gira el cubo.
Si compilamos el programa tal cual
obtendremos un ejecutable que podremos usar. La velocidad a la que gire el
cubo depende de la potencia del equipo
de cada uno.
Ahora necesitamos algo para pegar
cdigo C con Python, y ese algo es
SWIG.

SWIG
SWIG es una aplicacin desarrollada en
1995 en el departamento de Fsica
Terica del Los lamos National
Laboratory (ver [1] en Recursos). Fue all
donde se desarroll la primera bomba
atmica y desde entonces ha sido un
centro puntero en investigacin a nivel
mundial. El objetivo era el de reducir la
complejidad de muchas aplicaciones
cientficas donde es obligado el uso de
lenguajes de bajo nivel, como C o
Fortran. Desgraciadamente con estos lenguajes es muy complicado, por ejemplo,
desarrollar GUI que a da de hoy son
imprescindibles. Tambin son lenguajes

58

Nmero 09

complicados que slo


deben ser usados por
expertos, y la mayor parte
del personal de Los lamos son
cientficos con poca preparacin en programacin. As que tenemos potentsimas libreras C y Fortran desarrolladas
en lenguajes que no son capaces de usar
sus destinatarios.
Qu hicieron los ingenieros de Los
lamos para simplificar el uso de estas
potentes herramientas de clculo? Pues
se dedicaban a crear libreras que permitiesen manejarlas desde lenguajes ms
expresivos, como pueden ser Perl o
Python. Este proceso, a la vez que laborioso, es altamente repetitivo, de manera
que decidieron no volver a tener que
pasar por l. Desarrollaron SWIG que, de
forma casi automtica, genera todo el
cdigo necesario para utilizar desde multitud de lenguajes de alto nivel (desde
Python hasta OCaml pasando por Java o
C#) libreras de C.
Lo de casi automtico es esencial. Slo
tenemos que generar un fichero de interfaz (acabado en extensin .i) y SWIG
generar un fichero <nombre>_wrap.c
que compilaremos junto al original para
crear la librera. De esta manera obtendremos una librera dinmica (esos
ficheros .so que podemos ver a miles en
/usr/lib), as como una librera en el lenguaje de destino. En nuestro caso ese
lenguaje ser Python.

El programa OpenGL.
En el Listado 1 vimos un programa de
ejemplo en OpenGL. Es bsicamente un
cubo, que gira y responde a eventos.
Tiene una serie de propiedades que no
podemos alterar, como la velocidad de
giro o el color. En el Listado 3 (descargable desde [5])veremos la librera equivalente necesaria para nuestros propsitos.
Examinmosla.

WWW.LINUX- MAGAZINE.ES

Para comenzar, al ser una librera no


puede tener funcin main, as que la
hemos renombrado arranque(). Se han
incorporado nuevas funciones con el
objetivo de poder modificar algunas
caractersticas del objeto (color, velocidad, ttulo de la ventana).
OpenGL (ver [2] en recursos) se compone de las libreras GL, GLU y GLUT.
Esta ltima es muy importante, pero desgraciadamente la librera GLUT estndar
tiene un defecto ( o problema, segn
como
se
mire).
La
funcin
glutMainLoop() es el bucle infinito de
gestin de eventos. Se entra en ella pero
jams se sale. Cuando se dispara el evento que provoca la salida del bucle, el programa acaba. Cualquier cosa que pongamos detrs de la llamada a
glutMainLoop() no se ejecutar jams.
Eso no parece muy lgico no? y si
quiero poder arrancar el gestor de eventos, pararlo y volver a arrancar? Como
no somos los nicos con este problema
(casi todo el mundo piensa que es un
problema ;) unos valientes, en la mejor
tradicin del software libre, han creado
FreeGLUT (ver [3] en Recursos para ms
informacin). Bsicamente es igual a
GLUT solo que, entre otras cosas, nos
permite salir del bucle interno de
glutMainLoop() pero sin que finalice el
programa.
Y por qu queremos que ocurra esto?
Pues porque necesitamos una librera,
queremos que la funcin arranque()
vuelva al programa principal (que ser
nuestro intrprete de Python) una vez
que finalice su ejecucin, en lugar de
finalizar todo el programa.
Este un un problema tpico que nos
podemos encontrar al crear libreras para
Python usando libreras C. A veces lo
que queremos usar son las funciones de
un programa ya existente (por ejemplo,
imagina poder acceder a las funciones
que tiene Mozilla o Firefox para RSS o
anlisis de HTML), as que los pasos
sern: elimina los puntos de salida del
programa (generalmente los exit()) y elimina el main.
As ya tendremos nuestra librera, lista
para ejecutar SWIG sobre ella.

El archivo de interfaz para


SWIG
SWIG (ver [4] en Recuros) necesita un
archivo que le diga qu funciones y definiciones de datos exportar a Python. Este

Python DESARROLLO

para
aislar
cdigo especfico
para
SWIG respecto de las libreras originales.
Y
bueno,
casi
hemos
acabado, slo
Figura 1: El cubo inicial tal y como
Figura 2: Con las teclas podemos
nos
queda
se ve en la ventana del programa.
modificar su posicin y giro.
declarar los
tipos de datos
y cabeceras necesarias. Podemos ver las
fichero se parece mucho a los ficheros de
definiciones en el Listado 4 (descargable
cabeceras (o headers, mirar en
en [5]). Bsicamente son las cabeceras
/usr/include para ver unos cuantos) de
de las funciones que queremos usar
C. El fichero comienza con la sentencia:
desde Python con la palabra extern
%module listado3
delante. Esta palabra le dice a SWIG que
son funciones que existen en un fichero
Que declara el nombre del mdulo y
externo.
debe ser igual al nombre de nuestra
Las palabras mgicas
librera C. Este nombre ser exportado a
Ya tenemos casi lista la pocin, ahora
cada lenguaje de manera que se corresslo tenemos que usar las palabras mgiponda con la estructura de organizacin
cas del Listado 5 (descargable en [5]).
que en l exista. En el caso de Python el
ste muestra un fichero Makefile que ya
nombre del mdulo se corresponder
usamos para compilar el Listado 1, ahora
con un paquete.
tenemos que ejecutar:
El resultado final de la ejecucin de
SWIG ser un fichero llamado listado3_wrap.c. Es un fichero en lenguaje C,
> make
que define una serie de funciones que
nos permitirn acceder a la librera listaY se realizar la ejecucin de las rdedo3.c definidas en listado3.i.
nes:
Algunas de las definiciones que pondremos en listado3.i devuelven datos de
swig -python listado3.i
tipos definidos en OpenGL, por lo que
gcc -c -fPIC listado3.c $(INCS)
tendremos que decirle a SWIG que en el
gcc -c -fPIC listado3_wrap.cU
fichero listado3_wrap.c debe incorporar
$(PYINCS) $(INCS)
la cabecera:
gcc -shared listado3.cU
#include <GL/glut.h>

listado3_wrap.c -o _listado3.soU
$(INCS) $(PYINCS) $(LIBS)U
$(PYLIBS)

Esto se hace mediante la declaracin:


%{
#include <GL/glut.h>
%}

Entre los smbolos %{ y %} podemos


introducir cualquier declaracin extra o
incluso cdigo que no exista en el fichero
listado3.c. Digamos que es una manera

El primer comando genera el fichero listado3_wrap.c, as como listado3.py. Hay


una opcin, -python que podramos cambiar por -perl o -java. Esta opcin controla el lenguaje que se utilizar para generar la librera.
Pero claro, estos ficheros no
son ms que cdigo,

WWW.LINUX- MAGAZINE.ES

hay que compilarlos. De eso se encargan


los tres siguientes comandos. El primero
compila nuestra librera, el segundo los
ficheros generados por SWIG y el tercero
lo une todo para generar la librera dinmica.
Esos $(INC) o PYLIBS son opciones de
compilacin guardadas en variables de
control en el Makefile, varan de sistema
en sistema, pero las que aparecen en el
Listado 5 son las ms genricas.

Nueva librera
Por increble que parezca hemos acabado, ya tenemos nuestra librera. Si miramos en el directorio en el que hemos
estado realizando todas las acciones
veremos un fichero llamado _listado3.so.
Es una librera dinmica que puede ser
cargada en cualquier momento. A qu
esperamos? Arranquemos nuestro intrprete de Python:
> python
Python 2.4 (#2, Apr 3 2005,U
22:24:02)
[GCC 3.4.2 [FreeBSD] 20040728]U
on freebsd5
Type "help", "copyright",U
"credits" or "license" for moreU
information.
>>> import listado3
>>>

Con la orden import acabamos de cargar


la librera y la tenemos disponible para
su uso. Comencemos con la accin ms
simple, arranquemos el programa con las
opciones por defecto:
>>>listado3.arranque()

Cuando pulsemos INTRO aparecer una


ventana en la pantalla con un objeto que
se mueve a gran velocidad. Es nuestro
cubo, lo que ocurre es que se mueve
demasiado rpido. Si pulsamos la tecla
2, el cubo se detendr, para ponerlo de
nuevo en movimiento debemos pulsar 1.

Nmero 09

59

DESARROLLO Python

>>> listado3.setTiempoEsperaU
(10000000)
>>> listado3.arranque()

Para no complicar el cdigo (debera


haber usado nanosleep de la librera C
estndar) se ha introducido un bucle que
itera un nmero determinado de veces
en la funcin display() de listado3.c.
Esta funcin es invocada por OpenGL
para dibujar en pantalla los objetos, si se
introduce un retraso en ella tardar ms
en realizar su trabajo. Eso se traduce en
que podremos ver mejor el cubo girando
si hacemos que el retraso sea el adecuado.
En nuestro sistema, un valor de
10.000.000 de iteraciones hace que el
cubo se vea girar de manera suave.
Evidentemente al ser un bucle, depende
de la velocidad del sistema. No es la
manera ms elegante de introducir un
retraso, pero s la ms simple y corta
(nuestras pginas son limitadas).
La variable espera en listado3.c es de
tipo INT. Eso significa que su valor mximo ser un poco ms de 4.000.000.000
qu ocurre si introduzco un retraso de
5.000.000.000?
>>> listado3.setTiempoEsperaU
(5000000000)
Traceback (most recent callU

60

Nmero 09

last):
File
"<stdin>", line
1, in ?
OverflowError: argument
numberU
1: long int too large toU
convert to int
>>>

Python se queja!, diciendo que la asignacin no se puede realizar. Un fallo de


este tipo en un programa C nos hubiera
llevado a un fallo irreversible que abortara el programa. Pero en Python no, simplemente llegamos de nuevo al intrprete. Esta es una de las razones por las que
es interesante utilizar Python sobre libreras C, eliminamos muchos errores fatales porque Python verifica por nosotros
los tipos de datos y es capaz de recuperarse de los errores.
Juguemos con los colores del cubo. El
cubo tiene 6 caras y lo normal sera darle
un color a cada cara, pero en OpenGL se
le dan colores a los vrtices. Como el
cubo tiene 8 vrtices tenemos que asignar 8 colores. Qu color tendr el cubo
en el centro de una de sus caras si cada
vrtice tiene un color? Pues siguiendo la
jerga de OpenGL tendr un color interpolado, una mezcla de los 4 colores de
los vrtices.
Una de nuestras funciones nos permite
definir el color de los vrtices
(setColor()), as que vamos a hacer que
las caras sean de color gris. A un vrtice
le damos color negro y al siguiente blanco. En el Listado 5 podemos ver un programa que asigna colores blanco y negro
alternativamente a los vrtices. El resultado no es del todo gris, por qu?
Porque depende de la manera en que
fueron definidos los vrtices. Los vrti-

WWW.LINUX- MAGAZINE.ES

ces 0 y 1
no
tienen
porqu estar en
el sentido correcto. Se puede jugar
con el cdigo del
Listado 5 para intentar
conseguir otros colores.

Conclusin
No resulta tan complicado acceder a
miles de libreras en C desde Python, en
la propia documentacin de SWIG aparece como ejemplo generar una librera
Python de manera casi automtica para
la famosa librera GD de dibujo 2D.
Seguro que la prxima vez que veamos
una nueva librera para Python nos preguntaremos si los autores han usado
SWIG, puede que incluso lo pudiramos

haber hecho nosotros ;)

RECURSOS
[1] Los lamos National Laboratory:
http://www.lanl.gov
[2] OpenGL: http://www.opengl.org
[3] Proyecto FreeGLUT: http://freeglut.
sourceforge.net
[4] Proyecto SWIG: http://www.swig.org
[5] Descarga de los listados de este artculo: http://www.linux-magazine.es/
Magazine/Downloads/09

EL AUTOR

Si pulsamos, con el cubo


girando, con los botones
del ratn sobre la ventana, veremos que cada
botn cambia la direccin de giro del cubo en
un
sentido
distinto.
Cuando nos aburramos del
cubo, o estemos mareados
si nuestro ordenador es muy
rpido, pulsaremos q y la ventana desaparecer. Volveremos a
ver el prompt >>> de Python. Esto ya
es todo un logro, hemos ejecutado una
funcin C que interacta con OpenGL
desde Python!. Pero an as apenas
hemos hecho nada, tambin lo podramos haber hecho con un script BASH!
Vamos a interactuar ms con la librera. Si miramos el fichero de interfaz listado3.i que est en el Listado 4 veremos
las funciones que estn disponibles para
su uso desde Python. Cambiemos la
velocidad de giro de manera que podamos ver el cubo.

Jos Mara Ruiz actualmente est


realizando el Proyecto Fin de
Carrera de Ingeniera Tcnica en
Informtica de Sistemas mientras
estudia Fsica. Lleva 8 aos usando y desarrollando software libre
y, desde hace dos, se est especializando en FreeBSD. Pedro
Orantes est cursando 3 de
Ingeniera Tcnica en Informtica
de Sistemas y en sus ratos libres
toca en un grupo de msica.

La Columna de Charly ADMINISTRACIN

El Da a Da del Administrador de Sistemas: Mtop

CHEQUEO
DE RUTINA
Estara bien si cada base de datos MySQL estuviera en perfecto estado
de salud las 24 horas del da, los 7 das de la semana pero desafortunadamente de vez en cuando los problemas aparecen. Los ficheros de

una base de datos est siendo inundada por muchas peticiones. Mtop

Mtop eliminando el privilegio reload. Si


se elimina este privilegio, Mtop no ser
capaz de manejar el comando flush.

al rescate. POR CHARLY KHNAST

En la Cima del Mundo

registros no son de mucha ayuda cuando se est investigando por qu

ace poco vimos el ApacheTop en


esta columna. ApacheTop es una
herramienta que le dice lo que
su servidor web est haciendo en este
momento, destacando los posibles cuellos de botella. En la columna de este
mes veremos otro miembro de la familia
top: Mtop, el monitor en tiempo real
para MySQL [1]. El tamao del paquete
comprimido de Mtop es de al menos
unos 48 Kbytes. Necesita unos cuantos
mdulos de Perl: Curses, DBI,
DBD::mysql y Net::Domain. Pero probablemente la mayora estarn instalados y
si no, CPAN se encargar de ello. Tras
satisfacer las dependencias, introduzca
perl Makefile.PL, make y make install en
/usr/local/bin para completar la compilacin de Mtop.
El siguiente paso es permitirle a Mtop
acceder al proceso de informacin de
MySQL. A diferencia de Apachetop,
Mtop no slo analiza los ficheros de
registros del servidor, sino que adems
necesita acceso directo a ellos. Decid
configurar un usuario con privilegios

SYSADMIN
Socks v5.... 62
El protocolo universal para proxy
El Taller del Administrador 67
Creacin y manejo de cuentas de usuarios

extremadamente restringidos en MySQL


y no le asign contrasea. Los siguientes
comandos SQL resolvern el problema
para la versin 4.0.2 o superior de
MySQL:
grant super, reload, U
process on *.*
to mysqltop;
grant super, reload, U
process on *.*
to mysqltop@localhost;
flush privileges;

El nico punto crtico son los privilegios


de process. Puede dejar el privilegio
super si no necesita terminar las consultas desde Mtop.

Cuidadn!!
Desde las versiones 3.22.11 hasta la 4.0.1
de MySQL se utiliza el privilegio process
para asignar los derechos de finalizacin
de consultas. Se necesitan las tres lneas
siguientes para estas versiones:
grant reload, U
process on *.* U
to mysqltop;
grant reload, process on *.*
to mysqltop@localhost;
flush privileges;

Ahora es el momento de lanzar Mtop por


primera vez. Si la base de datos se est
ejecutando en otra mquina, necesitar
especificar la mquina destino estableciendo el parmetro -h host. Si la base de
datos no est procesando muchas consultas, el interfaz de usuario de Mtop
debera parecer bastante bonito y limpio.. Tres de las abreviaturas ms importantes utilizadas por Mtop son:

RRN: El nmero de peticiones


de consultas de acceso a la
siguiente lnea de la tabla. Un
valor grande indica que la tabla
no est indexada o que las consultas no estn utilizando sus
ndices.

TLW: Indica cuantas veces las


peticiones para acceso exclusivo en la tabla han fallado. El
motivo de esto podra ser una
tabla enormemente grande o
una consulta mal formulada.

QPS: El nmero de comandos


SQL desde que el servidor se
lanz o desde que tuvo lugar la
ltima ejecucin del comando
flush.
Al igual que los otros miembros de la
familia Top, Mtop tambin soporta atajos
de teclado. Consulte la pgina de ayuda
de Mtop para averiguar qu atajos de

teclado estn disponibles.

RECURSOS
Quienes prefieran restricciones ms
severas pueden limitar los privilegios de

WWW.LINUX-MAGAZINE.ES

[1] Mtop: http://mtop.sourceforge.net

Nmero 09

61

ADMINISTRACIN Socks v5

El protocolo genrico Socks para proxy versin 5 a examen

CALCETINES
PARA EL PROXY
Socks es un protocolo universal de proxy para TCP y UDP que permite a los hosts de una red interna pasar de
forma segura por el cortafuego y autentificar a los usuarios. Este artculo describe la ltima versin del protocolo para proxy Socks y muestra cmo se implementa. POR THOMAS KUHN Y ACHIM LEITNER

uchos administradores de cortafuegos permiten acceso directo a


la Web desde la red interna pero
son ms restrictivos con otros servicios
como el FTP o el SMTP. Comentan que las
reglas de los filtros que permiten un mnimo de servicios y puertos son ms fciles
de manejar y seguir. Los Gateways del
nivel de Aplicacin (ALGs) proporcionan
control y se implementan como proxies (Figura 1). Sin embargo,
la aplicacin del cortafuego necesita un
proxy por cada
servicio.
El protocolo Socks
[2] (RFC
1928,

Figura 1b) traza una ruta entre el filtro


de paquetes de estado y el ALG. Socks
est implementado, por ejemplo, en el
paquete Dante [1]. La tecnologa del
proxy genrico Socks deja al cortafuego
el control de las aplicaciones, redes separadas en la Capa de Transporte y deja a
los clientes un puerto de peticiones fijo
(tpicamente 1080). Los clientes realizan
peticiones al Socks, especificando el tipo
de los servidores y servicios (como
HTTP, SMTP o FTP). El proxy Socks
(tambin conocido como servidor Socks)
autentifica los clientes y autoriza el acceso a los clientes, configura la conexin al
servidor y de forma transparente reenva
cualquier dato enviado o recibido.

Intermediarios
Normalmente, las aplicaciones de los
clientes necesitan tener integrados el
soporte Socks para permitir el uso del
proxy, de forma que Socks utiliza la
forma de interactuar del protocolo.
Sin embargo, un wrapper
puede aadir soporte
Socks a binarios utili-

62

Nmero 09

WWW.LINUX-MAGAZINE.ES

zando la tecnologa LD_PRELOAD. Para


hacer esto, el wrapper implementa una
librera de socket personalizada.
El nombre Socks proviene de Socket,
el ttulo original del trabajo fue SOCK-etS. Hay dos versiones principales: Socks
v4 y v5. Ambos protocolos se insertan en
el modelo OSI entre las capas de
Transporte y Aplicacin. La
versin 4 est limitada al
manejo de solicitudes
de conexin, reglas
del proxy y
reenvo de
datos. No
proporciona
ningn
tipo de

Socks v5 ADMINISTRACIN

Figura 1a: Si el cortafuegos est implementado como un gateway a nivel de aplicacin, separa
la red interna y externa en el nivel de aplicacin. Sin embargo, necesita un proxy para cada
protocolo.

cando qu servicio necesita (la direccin


de destino DST.ADDR y el puerto
DST.PORT). El proxy Socks evala la
peticin, basada en la ID del cliente y la
direccin de destino, tomando una lista
de control de acceso en consideracin al
estilo tpico del cortafuegos. Si al cliente
no se le permite el acceso por el tipo de
peticin, el proxy Socks rechaza la conexin del cliente. En cualquier otro caso,
responde con uno o mltiples paquetes
de respuestas del servidor.

Direcciones

Figura 1b: A diferencia de un ALG, Socks asume el papel de un proxy genrico, aceptando conexiones desde cualquier protocolo de aplicacin en el puerto 1080, autenticando clientes y
autorizando transferencias.

autentificacin y est restringido para


TCP. Socks v5 aade mecanismos de
autenticacin robustos y soporte extendido a UDP.

Un Rodeo
En un escenario tpico de Socks, el cliente querr acceder al servicio HTTP proporcionado por un servidor en una red
externa. El procedimiento se muestra en
la Figura 2, el formato de los datos en la
Figura 3 y el contenido de los campos en
la Tabla 1. El cliente comienza abriendo
la conexin TCP al proxy Socks (1); por
defecto la conexin utiliza el puerto
1080. El cliente enva un paquete de

Negociacin sugiriendo unos cuantos


mtodos de autenticacin (nmero en
NMETHODS y mtodos en METHODS).
Si el proxy acepta la peticin (paso 2
en la Figura 2), utiliza un paquete de
Negociacin de Servidor para decirle al
cliente el mtodo de autenticacin
(METHODS con exactamente
una entrada). A continuacin,
el proxy autentifica al cliente
(paso 3). El procedimiento
exacto en este paso depende del mtodo seleccionado.
En este punto, el cliente
enva una peticin al proxy indi-

Las peticiones y respuestas de Socks


pueden contener distintos tipos de direcciones. El protocolo soporta direcciones
IPv4 e IPv6, junto con nombres de dominios. El ltimo elimina la necesidad del
cliente para realizar consultas al DNS y
la red interna no necesita resolver nombres externos DNS.
Dependiendo del tipo de respuesta del
cliente, es decir, dependiendo del valor
de CMD (Figura 2 y Tabla 1), los detalles
de la direccin en la respuesta del servidor Socks tienen una diferencia significativa. Una respuesta a una peticin CONNECT contiene el BND.PORT y
BND.ADDR, esto es la direccin con la
que el proxy se ha conectado al servidor de destino.
La direccin BND.ADDR
normalmente no

Listado 1: Servidor Socks


01
02
03
04
05
06

logoutput: syslog
#logoutput: stdout

internal: eth0 port = 1080


external: eth1
#internal: 10.0.0.11 port =
1080
07 #external: 192.168.23.1
08
09 method: username
10 #method: none
11 #method: rfc931
12 #method: pam
13

14
15
16
17
18

user.privileged: proxy
user.notprivileged: nobody

client pass {
from: 10.0.0.3/0 port 1-65535
to: 0.0.0.0/0
19 }
20
21 client block {
22 from: 0.0.0.0/0 to: 0.0.0.0/0
23 log: connect error
24 }
25
26 block {

WWW.LINUX-MAGAZINE.ES

27 f r o m : 0 . 0 . 0 . 0 / 0 t o :
10.0.0.11/0
28 log: connect error
29 }
30
31 pass {
32 f r o m : 1 0 . 0 . 0 . 3 / 0 t o :
10.0.0.10/0
33 protocol: tcp udp
34 }
35 block {
36 from: 0.0.0.0/0 to: 0.0.0.0/0
37 log: connect error
38 }

Nmero 09

63

ADMINISTRACIN Socks v5

Figura 2: Cuando establecemos una conexin Socks v5, el cliente comienza enviando un
paquete de negociacin al proxy Socks (1). El cliente se autentifica (3); el proxy establece la
conexin con el servidor (6) y reenva los datos (8).

es la misma que la direccin del servidor


Socks, en la cual el cliente enva la respuesta original. Este sistema es conocido
como servidor sock multihome, es tpico
de un cortafuegos Socks que conecta dos
redes. Tras un exitoso comando Connect,
el cliente y el servidor pueden comunicarse de forma transparente mediante el
proxy; el Socks simplemente reenva
cualquier dato.
El cliente enva una peticin REQUEST
para indicar que espera una conexin
entrante desde el servidor. Este escenario
podra parecer que es al revs, pero esto
es normal en el caso del protocolo FTP
en modo activo. Con FTP y siguiendo los
tradicionales cliente-servidor, el cliente
primero establecer una conexin al servidor FTP; esto se conoce como control
de conexin. Si un fichero necesita ser
transferido, el servidor establece una
conexin de datos tras el cliente. Antes
de esto, el cliente necesita decirle al servidor qu direccin y qu puerto del servidor puede utilizar. Esta informacin se
enva a travs del canal de control.

Un Mundo al Revs
Selectivamente el Socks puede permitir
este tipo de conexin en la red interna. El
cliente abre el canal de control al servidor
enviando una respuesta normal Connect.
El cliente luego utiliza una respuesta Bind
sin una segunda conexin para preguntar
al proxy Socks para abrir un puerto a la
conexin de datos entrante.
El proxy enva dos contestaciones en
respuesta. El primero contiene el puerto
y la direccin que el servidor Socks escuchar por las conexiones entrantes. El
proxy no enva la segunda respuesta
hasta que el servidor abre la conexin.
Cuando esto ocurre, la respuesta del
proxy contiene la direccin y el puerto

64

Nmero 09

como el cliente necesita para la autenticacin de una conexin TCP.

Autenticando

de la mquina utilizada para abrir la


El mtodo de autenticacin tambin
conexin. Finalmente, el proxy reenva
puede proporcionar confianza e integrilos datos desde el servidor externo al
dad entre el cliente y el proxy. La autencliente interno.
Si quiere que el Socks
Tabla 1: Etiquetas de los Paquetes
acte como un proxy
UDP, el cliente necesita
Etiqueta
Contenido/ Descripcin
utilizar primero TCP
ATYP
Tipo de Direccin:
para contactar con el
0x01: Direccin IPv4
0x02: Nombre de dominio
proxy y autenticarse
0x03: Direccin IPv6
(Figura 4). El CMD lo
BND.ADDR
Socks Proxy source address para transminegocia, en este caso es
sin de datos al servidor
el tercer valor de la
BND.PORT
Socks Proxy source port para transmisin de
Tabla 1: UDP Associate.
datos al servidor
Como el cliente actualCMD
Tipos de transmisin:
mente utilizar UDP
0x01 CONNECT
para
transmitir
los
0x02 BIND
datos, necesitar decirle
0x03 UDP Associativo
al proxy que llegarn
DST.ADDR
Direccin destino solicitada (en el servidor)
estos paquetes. Para
DST.PORT
Puerto destino solicitado (en el servidor)
hacerlo, el cliente aade
FRAG
Nmero de fragmento actual (para paquetes
a su propia direccin y
UDP)
METHODS
Campo de seleccin para el mtodo de
puerto a los campos
autenticacin:
DST.ADDR y DST.PORT.
0x00: Sin autentificacin
El proxy abre un
0x01: GSSAPI
puerto interno UDP,
0x02: Nombre de usuario y contrasea
permitiendo al cliente
0x03 a 0x7E: Definido por IANA
enviar paquetes hacia
0x80 a 0xFE: Reservado para mtodos priva
fuera. El cliente lee la
dos (slo utilizado localmente)
direccin y el puerto del
0xFF: El proxy ha rechazado el mtodo ofre
proxy desde la respuescido por el cliente
ta del servidor a la resNMETHODS
Nmero de entradas en el campo METHODS
puesta UDP asociada:
REP
Campo de respuesta:
BND.PORT
y
0x00: Perfecto
0x01: Generic Socks proxy error
BND.ADDR. Y aqu es
0x02: Conexin deshabilitado por ruleset
donde el cliente tiene
0x03: Red no accesible
que enviar cualquier
0x04: Host no accesible
paquete UDP destinado
0x05: Peticin de conexin rechazada
a la red externa. El
0x07: No soporta comandos Socks
cliente coge su propio
0x08: No soporta el tipo de direccin
paquete UDP en una
0x09 a 0xFF: No definido
solicitud UDP (Figura
RSV
Reservado
3). La UDP se queda
VER
Versin del protocolo (0x05)
abierta tanto tiempo

WWW.LINUX-MAGAZINE.ES

Socks v5 ADMINISTRACIN

Figura 3: La versin 5 de Socks utiliza cinco tipos de paquetes: Client Negotiation, Server
Negotiation, Client Request, Server Reply y UDP Request. El campo especifica el nombre y el
tamao. La Tabla 1 describe el contenido.

ticacin podra implicar el encapsulado


de los datos, por ejemplo, utilizando un
protocolo seguro como SSL o TLS. Tras
completar el proceso de negociacin del
cliente/servidor, el cliente se autentica
usando SSL/TSL. Cualquier otro dato
enviado durante la conexin tambin
puede ser protegido por SSL/TSL y esta
forma de comunicacin segura asegura
la confiabilidad e integridad. Los usuarios pueden utilizar dispositivos mviles,

wireless seguros mediante el proxy


Socks.

Dante
La implementacin del cliente y el servidor de Socks con licencia BSD Dante
para Unix[1] soporta Socks v4 y v5 y los
ltimos MSproxy. La versin 1.1.15 se ha
lanzado a finales de Enero de 2005.
Dante lo desarroll una consultora
noruega llamada Inferno Nettverk A/S,

que tambin ha comercializado mdulos


de control de banda ancha y monitoreo
de puertos y reenvos.
Se comenta que la versin gratuita es
suficiente para la mayora de las tareas.
Adems de proporcionar los servicios
Socks y MSproxy, tambin puede actuar
como proxy HTTP, autenticar usuarios
basndose en sus nombres de usuarios y
contraseas o a travs de PAM
(Pluggable Authentication Module). El
soporte para nombre de interfaces en los
ficheros de configuracin permite el uso
de DHCP.

Configuracin del Proxy


La instalacin normal, utilizando configure && make && make install, coloca el
fichero de configuracin del servidor en
/etc/sockd.conf (Listado 1). En la lnea 1,
una instruccin logoutput le indica a
Dante dnde colocar los ficheros de log
(Syslog o Stdout). En las lneas 4 y 5 se
especifican el nombre de las interfaces de
red. Esto es muy til para equipos configurados con DHCP. Las lneas 6 y 7 muestran que las direcciones IP son aceptadas.

ADMINISTRACIN Socks v5

que chequear los ficheros de registros del


proxy, que estarn en /var/log/messages
si utiliza Syslog.

Socks por todas partes

Figura 4: En un escenario UDP, el cliente primero utiliza TCP para conectarse con el proxy
Socks. El Client Request (4) contiene un comando UDP Associate, en el cual el cliente le dice
al proxy desde donde ser enviado el paquete UDP.

Al igual que el servidor Socks, el paquete


Dante tiene un script wrapper denominado socksify. El script socksify proporciona al usuario la opcin de aadir capacidades de Socks a la mayora de los programas cliente de la red. Con socksify,
puede aadir la capacidad Socks a protocolos como SMTP, FTP, NTP, DNS o IRQ.
Por ejemplo:
./socksify -c ftp 10.0.0.10

Hay que tener en cuenta que la interfaz


interna necesita un nmero de puerto.
El mtodo de autenticacin soportado
por Dante incluye el nombre del usuario /
contrasea (lnea 9), el mtodo Ident
especificado en RFC 931 (lnea 11) y PAM.
El servidor Socks necesita distintos usuarios privilegiados para reflejar el mtodo
de autenticacin. Si necesita acceder al
fichero de contraseas, optar por una
cuenta de usuario con los privilegios necesarios (definido como proxy en la lnea
14), aunque en cualquier otra circunstancia es mejor ser nobody (lnea 15).
Sugerimos utilizar una cuenta de usuario
dedicada para el servidor Socks v5. Los
administradores pueden ejecutar el servidor en un entorno aislado para alejarlo de
los sistemas de ficheros y tambin dar al
servidor su propio fichero de claves.

Buen Filtrado
Las reglas de filtrado en los ficheros de
configuracin le permiten especificar
qu clientes pueden acceder al proxy
Socks y a qu direcciones se puede
conectar el proxy. Dante analiza las
reglas de los filtros secuencialmente.
Primero evala cualquier regla con el
prefijo client para establecer qu ordenadores tienen permisos para acceder al
servidor Socks (desde las lneas 17 al
24). Las reglas pass permiten el acceso, y
las reglas block lo deniegan. Desde las
lneas 17 a la 19 permiten al ordenador
con la direccin 10.0.0.3 tener acceso sin
restricciones, y las lneas 21 a 24 deniegan cualquier

66

Nmero 09

otro acceso. Estas reglas son aplicadas a


nivel TCP/IP y no tienen nada que ver
con el protocolo Socks.
La segunda clase de reglas de filtros
comprueba el contenido de las peticiones de los clientes. Estas reglas especifican las clases de peticiones que el proxy
atender. La regla block en las lneas de
la 26 a la 29 del Listado 1 rechaza cualquier peticin de los ordenadores que
quieran conectarse a 10.0.0.11. El trfico
TCP y UDP de la mquina 10.0.0.3 con
peticin para 10.0.0.10 es admitida (lneas 1 a 34). El proxy ignorar cualquier
otra solicitud.

Primeros Tests
Llamando a /sbin/sockd-d se lanza al
proxy en modo de depuracin. Este
modo le dice al proxy que registre cualquier cosa importante en logoutput.
Ethereal es perfecto para chequear los
detalles de la comunicacin. Utilizamos
el navegador Mozilla como nuestro
cliente de prueba. Establecemos el servidor Socks a 10.0.0.11 y el puerto 1080 en
el Manual de configuracin del proxy en
nuestro caso.
Si el proxy Socks rechaza una conexin de una cuenta con privilegios de
acceso inapropiados, el usuario podra
darse cuenta de los sntomas sin llegar a
saber por qu ha fallado la conexin. Por
ejemplo, si el navegador Mozilla muestra
un fallo de conexin, simplemente mostrar que The document contains no data
en el caso de un error en la
parte 2 de las reglas de filtrado, pero no hay que
mencionar que la causa
sea el proxy. Para
investigar las posibles
causas de un problema de
conexin de este tipo, hay

WWW.LINUX-MAGAZINE.ES

Junto con un fichero de configuracin


adecuado /etc/socks.conf, el comando
anterior le dice a socksify que llame al
programa ftp mediante el proxy Socks
sin necesidad de recompilar el cliente.
route {
from: 0.0.0.0/0 to: U
0.0.0.0/0 U
via: 10.0.0.11 port = 1080
proxyprotocol: socks_v5
}

La configuracin anterior le indica a


socksify que utilice Socks v5 como un
protocolo proxy y que establezca una
conexin de red segura mediante el puerto 1080 en el ordenador 10.0.0.11.

Uno para Todos


La tecnologa Socks le proporciona a los
administradores de la red la capacidad de
desplegar un mtodo simple y transparente
para la gestin de seguridad. Socks tambin aade autenticacin y encriptacin a
aplicaciones de la red. A diferencia de
muchos otros protocolos, el protocolo
Socks no distingue entre conexin y autenticacin de usuario y por tanto, Socks proporciona un cortafuegos con control com
pleto sobre todo el trfico de datos.

RECURSOS
[1] Dante: http://www.inet.no/dante/
[2] RFC 1928, SOCKS Protocol Version
5: http://www.ietf.org/rfc/rfc1928.txt
[3] RFC 1929, Username/ Password
Authentication for SOCKS V5: http://
www.ietf.org/rfc/rfc1929.txt
[4] RFC 1961, GSS-API Authentication
Method for SOCKS Version 5: http://
www.ietf.org/rfc/rfc1961.txt

Cuentas de usuario ADMINISTRACIN

Administrar cuentas de usuario en Linux

LLEVAR LA CUENTA
DE LA MANADA

Los pasos para configurar cuentas nuevas bajo Linux estn automatizados y usan frecuentemente herramientas con interfaz grfica. Por debajo, una serie de mecanismos suministran al usuario el entorno que
cumpla con sus necesidades. En el artculo de este mes veremos las tcnicas para configurar las
cuentas.POR MARC ANDR SELIG

on cualquiera de las modernas


distribuciones de Linux, slo
necesitamos unos pocos clics
para crear una nueva cuenta de usuario.
La Figura 1 muestra un ejemplo en Suse.
Las interfaces grficas de este tipo se
apoyan en programas en lnea de coman-

dos como adduser o useradd para el trabajo duro.


Es extremadamente importante para
los administradores saber exactamente
qu se est haciendo al crear una cuenta
de usuario. Las caractersticas automatizadas pueden ajustarse a medida para

WWW.LINUX-MAGAZINE.ES

adecuarse a los requerimientos de nuestro sistema. Cuando creamos una cuenta, ciertas bases de datos necesitan los
detalles del nuevo usuario. Estos usualmente necesitan un directorio de usuario
y permisos de escritura a juego. Los
administradores abandonan a sus usua-

Nmero 09

67

ADMINISTRACIN Cuentas de usuario

queando el fichero al mismo tiempo para


evitar el acceso de otros usuarios de
administracin, y renueva las bases de
datos binarias del usuario despus de
terminar las modificaciones.

Grupos

Figura 1: El men principal de SSPE es muy claro. La interfaz basada en texto plano permite la
administracin remota de la herramienta.

rios a la hora de las configuraciones de


programas, muchas de ellas estn incluso pre-fijadas. Por supuesto, es imposible tener en cuenta absolutamente todas
las configuraciones al crear nuevos usuarios, especialmente si el usuario no accede al sistema hasta pasado un cierto
tiempo.

Crear una Cuenta de


Usuario
Al crear una nueva cuenta de usuario, el
primer paso es guardar la informacin de
ese usuario en la base de datos centralizada. Suponiendo que no tenemos un
sistema distribuido como NIS, NIS+,
NetInfo o LDAP, sino que simplemente
administramos los usuarios desde un
nico equipo, el fichero se llamar
/etc/passwd. Este es un fichero de texto
con una entrada para cada cuenta, incluyendo el nombre de login y el ID del
usuario, el ID del grupo primario, el
directorio de usuario y el shell por defecto. Podemos aadir incluso detalles
como el nombre y apellidos del usuario o
el nmero de telfono.
Los sistemas Unix guardaban una contrasea encriptada que serva para
autenticar al usuario de /etc/passwd. El
problema con este mtodo es que
/etc/passwd necesitaba ser ledo globalmente, es decir, sus permisos estaban

68

Nmero 09

fijados a 0700. Y eso implicaba que cualquiera poda leer las contraseas encriptadas.
Los procesadores actuales no tardan
demasiado en romper contraseas dbiles [1] mediante fuerza bruta, por lo que
cualquier usuario con acceso al sistema
tiene la oportunidad de realizar una
escalada de privilegios.
Para mejorar la seguridad, muchos de
los derivados de Unix guardan las contraseas en el archivo /etc/shadow. Este
archivo es propiedad del administrador y
del grupo shadow, y los privilegios de
lectura se suelen restringir al administrador y posibles miembros del grupo shadow. Esto evita que otros usuarios accedan a las contraseas. Un registro tpico
de /etc/passwd tiene el siguiente aspecto:
pepe:x:1000:1000:Jose Garcia U
Selig,,,:/home/pepe:/bin/bash

Algunos sistemas Unix no usan el archivo de contraseas directamente, sino


que generan una base de datos binaria
a partir de ese archivo. A destacar la
familia BSD, notable en este aspecto.
Para evitar conflictos y condiciones de
carrera, existe un vipw que permite al
administrador editar el archivo de
contraseas. Esta herramienta ejecuta
el editor vi con /etc/passwd, blo-

WWW.LINUX-MAGAZINE.ES

Los grupos de usuarios son una caracterstica central de la administracin de


privilegios en cualquier sistema Unix.
Los administradores pueden crear grupos de manera similar a crear usuarios,
usando las herramientas addgroup o
groupadd, por ejemplo. Los grupos se
guardan en un fichero llamado
/etc/group.
Cada fichero creado en una mquina
Unix se asigna automticamente a un
usuario y a un grupo. Los administradores pueden asignar permisos de manera
separada para el usuario y el grupo de
cada archivo. La posibilidad de asignar
mltiples usuarios a un grupo facilita a
estos usuarios el acceso a archivos o
directorios especficos.
Algunos ejemplos tpicos de grupos
son modem o dialout para el acceso al
puerto del modem, audio para la tarjeta
de sonido y cdrom para asignar permisos
para la unidad de CD-ROM. Un sistema
con bases de datos podra asignar a los
usuarios autorizados un grupo llamado
db, por ejemplo.
Los usuarios pueden pertenecer a
todos los grupos que sea necesario, pero
cada usuario tendr un grupo primario
que especifica la propiedad de grupo de
cualquier archivo que el usuario cree. El
grupo prima-

Cuentas de usuario ADMINISTRACIN

Figura 2: Crear una nueva cuenta de usuario


implica una serie de tareas. Las herramientas como useradd descargan mucho trabajo
para el administrador.

rio se lista en /etc/passwd y cualquier


otra pertenencia se almacena en
/etc/group. El comando id muestra las
pertenencias a grupos de un usuario:
pepe@ishi:~$ id
uid=500(pepe) gid=100(users) U
groups=100(users),14(uucp),
16(dialout), U
17(audio),33(video)
pepe@ishi:~$

Las distribuciones modernas de Linux


tienen dos mtodos diferentes respecto a
las asignaciones al grupo primario.
Algunas establecen un grupo de usuarios
global users para todas las personas
usuarias del sistema. Estos pueden luego
ejecutar chmod para especificar si cualquier fichero que creen debe tener acceso de lectura para los dems miembros
del grupo (poniendo los permisos a
0640: lectura y escritura para el propietario, lectura para el grupo y sin permisos
para el resto). En caso contrario se fija-

rn como 0600: sin permisos ni para el


grupo ni para el resto).
Otras distribuciones asignan cada
usuario a un grupo de su propiedad. Esto
mejora ligeramente la proteccin de
datos y permite a los usuarios fijar
pequeos equipos aadiendo cada usuario a sus grupos individuales. Habiendo
dicho esto, tiene ms sentido configurar
grupos especficos orientados a tareas
que simplemente dejarlo a ver qu pasa.
Hay un buen nmero de grupos de
administracin para el control de acceso
a programas o archivos especficos. Por
ejemplo, el grupo wheel agrupa tradicionalmente a los usuarios autorizados a
ejecutar el comando su o equivalentes.
Las distribuciones de hoy en da no suelen tener un grupo wheel para simplificar
las cosas, sino que simplemente cualquier usuario est autorizado a ejecutar
su. Los grupos como tty, disk y lp refieren a componentes del sistema (acceso a
terminales, discos duros e impresoras),
mientras que los bin o sys permiten a los
administradores especificar qu cuentas
pueden ejecutar programas. Estos grupos
no se asignan nunca a usuarios humanos.
El grupo especial nobody (o nogroup)
se asigna a usuarios sin privilegios. Sin
embargo, hay un cierto peligro de que
muten al grupo de todo el mundo ya que
muchos paquetes de software suelen
crear archivos con pertenencia a este
grupo. Tiene ms sentido configurar un
grupo especial nobody para cada paquete
de software.

Directorios de Usuario
Cuando un administrador crea un nuevo
usuario aadiendo simplemente el direc-

Listado 1: Cuanta de usuario pepe


01
02
03
04
05
06
07
08
09
10
11

$ su
Password:
# vipw
[...]
# passwd pepe
# mkdir /home/pepe
# cd /etc/skel && tar cf - . |
(cd /home/pepe && tar xpf -)
# chown -R pepe:users
/home/pepe
# chmod -R u+rwX,go-rwx
/home/pepe
# exit
$

torio de usuario /home/user a


/etc/passwd no est haciendo un gran
avance. Por supuesto, el directorio ha de
crearse. Adems del paso obvio de
mkdir, el administrador tiene que acordarse de configurar los permisos de
usuario y grupos adecuados, ejecutando
chown (y posiblemente chgrp).
Dependiendo de nuestra distribucin y
preferencias, podemos fijar los permisos
de los directorios de usuario a 0755, 0711
o 0700. En el primer caso se permite a
todo el mundo el acceso de lectura al
directorio. La segunda variante permite
el acceso a ficheros y directorios situados
bajo el directorio de usuario, suponiendo
que tienen los permisos configurados y
sus nombres son conocidos, para evitar
listados de directorios. La tercera variante evita el acceso de otros usuarios.
Como el directorio de usuario pertenece
al nuevo usuario, ste puede modificar la
configuracin por defecto ms tarde.

Listado 2:/etc/X11/xinit/xinitrc
01 #!/bin/sh
02 # $Id: xinitrc,v 1.2
2003/02/27 19:03:30 jharper
Exp $
03
04
userresources=$HOME/.Xresource
s
05 usermodmap=$HOME/.Xmodmap
06
sysresources=/etc/X11/xinit/.X
resources
07
sysmodmap=/etc/X11/xinit/.Xmod

map
08
09 # merge in defaults and keymaps
10
11 if [ -f $sysresources ]; then
12 xrdb -merge $sysresources
13 fi
14
15 if [ -f $sysmodmap ]; then
16 xmodmap $sysmodmap
17 fi
18
19 if [ -f $userresources ]; then

WWW.LINUX-MAGAZINE.ES

20
21
22
23
24
25
26
27
28
29
30
31
32
33

xrdb -merge $userresources


fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
# start some nice programs
xterm &
# start the window manager
exec fvwm2

Nmero 09

69

ADMINISTRACIN Cuentas de usuario

Pero los administradores no pueden


simplemente sentarse y relajarse despus
de haber creado un directorio de usuario. Se necesita fijar la configuracin por
defecto de los programas ms comunes y
deben configurarse las variables globales
para el usuario. Muchos programas Unix
usan los llamados dotfiles para la configuracin. Los dotfiles son archivos ocultos de configuracin (o directorios)
situados en el directorio de usuario y que
pertenecen al usuario que ejecuta el programa. Se les llama as dado que el nombre del fichero o directorio empieza
siempre por un punto.

El Esqueleto
Un gestor de ventanas necesita saber qu
software est instalado para poder proporcionar los mens adecuados. Los procesadores de textos y los programas de
retoque de imgenes tienen que soportar
las impresoras y adaptarse a otros detalles locales. Los navegadores tienen que
saber bajo qu proxys estn trabajando,
etc
El directorio /etc/skel/ (viene de
esqueleto) tiene una plantilla bsica para
los nuevos directorios de usuario. Los
administradores pueden guardar los dotfiles o asignar a nuevos usuarios en este
directorio. Cuando se crea un nuevo
directorio, este esqueleto simplemente
se copia all.
Con esto se completara la cuenta de
usuario y su entorno. El Listado 1 muestra los comandos necesarios para crear

70

Nmero 09

una cuenta de usuario. Ejecutar este listado de comandos cada vez que necesitemos crear un nuevo usuario lleva
demasiado tiempo, por lo que herramientas como adduser y useradd nos
ayudan a automatizar estos pasos. La
Figura 2 nos muestra un esquema de los
pasos implicados.

Configuracin Avanzada
Un gran problema con las cuentas preconfiguradas es que muchas de las configuraciones se desconocen de antemano.
Aunque el idioma y la zona horaria son
fciles de arreglar, y no suelen variar, las
configuraciones de programas especficos son algo completamente distinto y
pueden incluso variar en caso de actualizaciones. Para empeorar las cosas, los
administradores no pueden presuponer
que el usuario empezar a usar la cuenta
inmediatamente y para comenzar a controlar la configuracin desde ese
momento.
En muchos casos tiene sentido preparar archivos de configuracin en una
localizacin centralizada, suponiendo
que el programa soporta este mtodo.
Los tpicos gestores de ventanas de X11,
o la configuracin de xinit son buen
ejemplo de esto. Los administradores
pueden simplemente mantener la estructura de configuracin central en
/etc/X11/. En caso de una actualizacin,
el administrador (o el gestor de paquetes) simplemente modifica estos directorios para propagar automticamente la

WWW.LINUX-MAGAZINE.ES

nueva configuracin a los usuarios. En


caso de que los usuarios avanzados no
estn conformes con la configuracin
por defecto, los administradores dan por
sentado que cambiarn la configuracin
en sus directorios de usuario.
El Listado 2 muestra un ejemplo de
archivo /etc/X11/xinit/xinitrc, que inicializa el teclado y los perfiles centralizadamente (lneas de la 11 a la 17).
Dondequiera que los usuarios hagan
cambios individuales, el script aplica
automticamente estos cambios (lneas
de la 19 a la 25).
Los administradores pueden usar un
mtodo similar para configurar variables
de entorno en los perfiles centrales del
shell /etc/profile/ (para Sh y Bash) o
/etc/csh.cshrc y /etc/csh.login (para Csh y
Tcsh). Da igual el sitio donde el usuario
defina sus propias versiones de estos
archivos dentro de sus directorios de
usuario (son archivos dotfile), que el
shell ejecutar estos arhivos, dndoles
mayor prioridad a sus configuraciones,
al menos para las variables. Las configuraciones centrales como las de ulimits
pueden fijarse para que tengan mayor
prioridad que las variables locales. El
Bash permite a los administradores definir algunas variables como readonly
(slo lectura). Esto le da a los administradores un control preciso sobre las configuraciones.
Si el mtodo de configuracin y administracin centralizado resulta impracticable, debido a aplicaciones que no lo
soportan y no hay manera de salvar el
escollo, siempre podremos recurrir al
viejo truco: sustituir el archivo del programa con un script de arranque. El
script tendr que verificar el directorio
de usuario en busca de una versin del
archivo de configuracin, y si no existe,
copiar el archivo con la configuracin
inicial desde la ubicacin central antes
de ejecutar propiamente la aplicacin.
Dependiendo de la cantidad de esfuerzo
que estemos dispuestos a invertir en
esto, podramos incluso conseguir en el
script de arranque que cambie los ficheros de configuracin automticamente

en caso de actualizacin.

RECURSOS
[1] John the Ripper, una herramienta
para crackear contraseas: http://
www.openwall.com/john/

Bienvenidos a Linux User


sta es la seccin dedicada a la presentacin de software interesante y til
que nos ayuda en nuestro quehacer diario con el escritorio Linux. Aqu
aprenderemos a utilizar software estndar de una manera ms eficiente,
adquiriremos valiosos conocimientos y descubriremos apasionantes
nuevas aplicaciones.

La conquista del escritorio

72

Konqueror de KDE 3.4 es una herramienta perfectamente verstil que se siente en la web cmo en
casa.

Desktopa

76

xdesktopwaves nos permite convertir el escritorio


en un paisaje acutico. Podemos aadir lluvia y
tormentas o simplemente arrastrar el ratn para
animar las cosas.

Inkscape

78

Inkscape trae a los usuarios de Linux la potencia de


los grficos vectoriales.Nuestro taller ensea cmo
utilizar este programa.

Educacin

81

Terminamos esta breve presentacin de ATNAG


mostrando varios juegos, y cmo se crean y organiza su explotacin en el cuaderno de clase.

Rock y consola

86

Echamos un vistazo a las aplicaciones que rocanrolean desde la lneade comandos.

WWW.LINUX- MAGAZINE.COM

ISSUE 52 MARCH 2005

71

LINUX USER KTools: Konqueror 3.4

Navegacin con Konqueror 3.4

LA CONQUISTA DEL
ESCRITORIO
Siguiendo la pista de invasores previos como
Navigator e Internet Explorer, Konqueror continua con la misin de conquistar Internet. Konqueror de KDE 3.4 es una herramienta perfectamente verstil que se siente en la web como en casa.
POR HAGEN HPFNER

a habido bastantes crticas sobre


el hecho de que Internet
Explorer est inseparablemente
ligado a los sistemas Windows. KDE
tiene su propio navegador nativo y aunque la posicin de Konqueror en el
mundo de Linux no es tan dominante
como IE en Windows, la ltima versin
de Konqueror proporciona nuevas caractersticas para integrar Konqueror con la
experiencia del usuario. Este artculo
examina algunas caractersticas prcticas
y poco conocidas de Konqueror en el
escritorio KDE 3.4.

direccin. Suse Linux viene ahora con el


paquete KDE-3.4 en la versin 8.2 o posteriores de la distribucin [2]. Los usuarios de Gentoo Linux necesitan habilitar
primero la nueva versin de KDE, que
an no se considera como estable.

Arranque
Hay mltiples formas de ejecutar
Konqueror. El icono y la entrada Home

en el men de inicio de KDE nos lleva a


Konqueror en el formato de administrador de ficheros. Incluso se puede desplegar una ventana de comienzo rpido
(Alt + F2) y teclear una direccin de
Internet, para lanzar Konqueror en
modo navegador de Internet. La entrada
Internet | Web Browser (Konqueror) o el
comando konqueror desde la consola,
tambin nos llevan a la pantalla del

Configuracin
Al instalar KDE automticamente se instala Konqueror en el disco duro. El cuartel
general del escritorio KDE es parte del
paquete kdebase y el nmero de versin
del paquete refleja la versin de KDE que
se tiene instalada. La mayora de las distribuciones contienen los nmeros de versin. As que si est interesado en la ltima versin de KDE 3.4, habr que estar
preparado para algunos pasos manuales.
Mientras escribo este artculo, el servidor FTP del proyecto KDE [1] tiene binarios para Fedora Core 3 y Conectiva. Los
usuarios con experiencia que tienen
tiempo para compilar los paquetes podran estar interesados en el cdigo fuente
de KDE, que est disponible en la misma

72

Nmero 09

Figura 1: Konqueror tras lanzarse sin un perfil de vista.

WWW.LINUX- MAGAZINE.ES

KTools: Konqueror 3.4 LINUX USER

profile xyz y
Configure view
profiles.
xyz
representa
el
nombre del perfil actual. La
configuracin
por defecto de
KDE 3.4 tiene
seis perfiles de
vistas preconfigurados.
Por
ejemplo, Tabbed
Figura 2: Konqueror navegando mediante solapas.
Browsing
(Figura 2) proKonqueror (Figura 1). Cuando aparece
porciona una sesin de navegacin web
Konqueror, este proporciona enlaces a
con solapas en Konqueror.
sitios importantes y tareas, permitiendo
Comprese esto con la ventana tradiel acceso tanto al directorio home del
cional del administrador de archivos que
usuario como a los mdulos del Centro
proporciona el perfil de vista denominade Control de KDE.
do File Management. Incluso se puede
mostrar una ventana de lnea de comanPerfiles de Vistas
dos inmersa en el navegador en este
La opcin de usar mltiples perfiles de
modo seleccionando View | Show
vistas es extremadamente til. El men
Terminal Emulator (Figura 3).
de configuracin tiene tres elementos
La vista denominada KDE development
titulados Load view profile, Save view
es una variante de la vista de navegacin
basada en solapas que automticamente
nos lleva a la herramienta de documenTabla 1: Mostrando
tacin de desarrollo de KDE. A los fans
Informacin
de la herramienta Norton Commander
kioslave
Tarea
puede que les interese echar un vistazo a
finger
Muestra informacin de
Settings | Load view profile | Midnight
los usuarios; necesita
Commander para una sesin de
tener finger instalado y
fingerd ejecutndose.
Konqueror con un panel, conteniendo
help
Llama a la ayuda de KDE
una vista en forma de rbol del sistema
info
Accede a la pgina de
de ficheros.
informacin del sistema
La configuracin por defecto es de
en la barra de direccio
todo
menos intuitiva, ya que ambos
nes de Konqueror
paneles
muestran el mismo directorio, y
man
Muestra las pginas de
si
cambia
de directorio, se produce el
ayuda para un comando
cambio en ambos paneles. Para cam-

Tabla 2: Kioslaves para


Acceder al Sistema de
Ficheros
kioslave
audiocd
camera

floppy
mac

tar

Tarea
Muestra la pista en un
CD de audio
Accede a imgenes de
una cmara digital con
soporte gphoto2; suponiendo que gphoto2 est
instalado.
Accede al disquete usando mtools
Accede a particiones con
formato HFS utilizando
hfsplus tools
Navega por ficheros tar
como si fuesen directo
rios normales; este kioslave si lo necesita utiliza
automticamente la
compresin mostrada en
la Tabla 4.

biarlo, hay que hacer clic en una check


box de la parte de abajo de la derecha
de las vistas.
Si los perfiles predefinidos no son de
su agrado, se puede guardar fcilmente
su configuracin personalizada bajo un
perfil nuevo. Para ello, se configura la
ventana hasta ajustarla a nuestro gusto.
Por ejemplo, podra aadir una ventana
de terminal. Luego se selecciona
Configure views profiles y se teclea un
nombre para el perfil. Ahora el nombre
se aade al submen Load view profile.
Para asegurarse que Konqueror se ejecute con su perfil favorito cuando se
haga clic sobre el icono del escritorio,
necesita ahora establecer el parmetro -profile del administrador de ficheros.
Para ello, hay que cambiar la lnea de
comandos del icono a konqueror -profile
mi_vista; la prxima vez que se haga
clic sobre el icono, Konqueror aparecer con la vista elegida.

Figura 3: Konqueror como un gestor de ficheros con emulador de terminal.

WWW.LINUX- MAGAZINE.ES

Nmero 09

73

LINUX USER KTools: Konqueror 3.4

Kioslaves

ma, ya que el kioslave usa


Los mdulos especiales llalas
funcionalidades
de
mados Kioslaves extienden la
hfsplus.
funcionalidad de Konqueror.
Puede teclear audiocd:/
Los Kioslaves de Konqueror
en la barra de direcciones
le permite acceder a redes, a
para visualizar las pistas de
archivos comprimidos, a CDs
un
CD
de
audio.
de audio [3] y cmaras con
Dependiendo de los codecs
soporte gphoto [4]. Kioslaves
y herramientas que se tenson los mdulos kio de entragan instaladas, se proporcioda/salida. Cada Kioslave es
nar una serie de carpetas
responsable de un protocolo
con ficheros virtuales en forindividual, que no tiene pormato flac, mp3 u ogg. Los
qu ser un protocolo de red.
ficheros en estas carpetas no
Las bibliotecas kio tienen la
estn realmente en el CD,
ventaja de permitir a cualpero si arrastra uno de los
quier programa KDE acceder
ficheros de la carpeta MP3
a mdulos individuales, eliFigura 4: Konqueror como un centro de ayuda.
al disco duro, Konqueror
minando la necesidad de que
crear el fichero MP3 al
los desarrolladores se preocupen con proposibles alternativas. La Tabla 1 contievuelo. Para ello, primero lee la pista y la
tocolos complicados y no pierdan el tiemne un listado de kioslaves que proporconvierte al formato comprimido. Por
defecto, el administrador de ficheros
po intentando integrarlos en sus aplicacionan acceso a informacin genrica.
acceder a freedb, una base de datos de
ciones.
Konquistando el Sistema de Internet con informacin de artistas y
Para averiguar cual de estos mdulos
Ficheros
nombres de pistas de CDs. Esto permite
tiene disponible Konqueror, hay que
Konqueror puede mostrar contenidos
a Konqueror aadir etiquetas ID3 preciteclear help:kioslave en la barra de
con formato para las particiones, CDs de
sas y descriptivas. Como Fedora no tiene
direcciones del programa. Konqueror
audio y cmaras. Por ejemplo, hay un
soporte para MP3 por defecto, los usuamostrar una lista con todos los kioslamac kioslave para acceder a los sistemas
rios con la distribucin Fedora no podrn
ves que tiene instalados. De hecho,
de ficheros HFS+ de Apple. Para que
ver la carpeta MP3.
est utilizando uno de ellos ahora:
esta caracterstica funcione, hay que
La Tabla 2 contiene una lista de kioslahelp:, que da acceso directo al sistema
tener las herramientas hfsplus en el sisteves que emulan sistemas de ficheros. Entre
de ayuda de KDE. help:ksnapshot nos
lleva a los ficheros de ayuda de la
herramienta de captura de pantalla de
Tabla 3: Protocolos de Red con Soporte Kioslave
KDE. Si no est buscando ayuda de las
aplicaciones KDE, pero necesita la
kioslave
Tarea
pgina man de un comando Unix, exisfish
Utiliza
SSH para acceder a otras mquinas. Por ejemplo, fish:/hoepfner@nero
te un kioslave que se encarga de ello.
abrira una conexin para el usuario hoepfner en la mquina nero.
Teclee man:/su en la barra de direccioftp
El Protocolo de Transferencia de Ficheros
nes de Konqueror para acceder a la
imap
Utiliza el Protocolo de Acceso a Mensajes en Internet para acceder a servidoversin HTML de la pgina man del
res IMAP.
comando su (Figura 4). Si la bsqueda
imaps
Acceso encriptado a servidores IMAP
encuentra
varias
pginas
man,
ldap
Acceso al directorio X.500 o a un servidor LDAP
Koqueror muestra
nfs
Acceso a NFS en una red
primero una
nntp
Acceso a un servidor de News. La documentacin previene a los usuarios que
un acceso NNTP consume tiempo y recursos de red - mostrando todos los
lista con
grupos en un leafnode instalado localmente tarda un cuarto de hora en un
las
pop3
pop3s
rlogin
sftp
smb
telnet

webdav
webdavs

74

Nmero 09

Pentium M a 1300MHz
Utiliza el protocolo POP para accede a una cuenta de correo
Acceso encriptado al buzn de POP
Login remoto del host
FTP seguro
Acceso compartido de Windows mediante Samba; Konqueror llama a
smbclient en segundo plano.
Hace login en una mquina remota ejecutando telnetd. Como las contraseas
se transmiten sin cifrar en conexiones telnet, debera utilizar una conexin
segura fish:/ en vez de telnet.
Acceso a un servidor HTTP utilizando el protocolo WWW Distribuido
Autorizado y Versionado
La variante encriptada del protocolo WebDAV

WWW.LINUX- MAGAZINE.ES

KTools: Konqueror 3.4 LINUX USER

Figura 5: El kioslave imap le permite eliminar un buzn


de correo como si fuese un directorio local.

Si
se
dispone de
una cuenta IMAP, tan
slo hay que reemplazar nombreusuario por la ID del usuario
y server por el nombre del servidor IMAP
(Figura 5).
Se pueden borrar mensajes directamente usando Konqueror, tal y como se
hara con un programa de correo.
Si la seguridad es algo que le preocupa y desea una sesin encriptada para
acceder a la cuenta IMAP, necesita el
kioslave imaps para mostrar los contenidos de los buzones de correo. La
Tabla 3 muestra los otros protocolos de
red que Konqueror soporta a travs de
los kioslaves.

Figura 6: Tecleando print:/ en la barra de direcciones de


Konqueror le permite acceder al gestor de impresin de KDE.

otros, la lista incluye un kioslave que permite un acceso fcil a cualquier cmara
con soporte gphoto2. Tecleando camera:/
en la barra de direcciones de Konqueror
hace que se autodetecte el dispositivo
antes de proceder a mostrar las carpetas y
los ficheros de imgenes que contiene.

Especialistas en Redes
Konqueror tambin proporciona un acceso sencillo a los recursos de red. El programa no slo entiende los protocolos
http y ftp, sino que tambin permite el
acceso a buzones de correo en servidores
IMAP si se teclea imap://nombreusuario@servidor en la barra de direcciones.

Tabla 4: Kioslave Internos


kioslave
bzip
bzip2
gzip
cgi

file
mailto
print
thumbnail

Tarea
Acceso a archivos comprimidos bzip
Acceso a archivos comprimidos bzip2
Acceso a archivos comprimidos gzip
Ejecuta programas CGI
sin un servidor web
activo
Muestra ficheros locales
y directorios
Lanza el editor de correo
que tenga por defecto
Informacin y configura
cin de la impresora
Ejecuta KDE para crear
thumbnails

Kioslaves Internos
Los programas KDE hacen uso internamente de los kioslaves. Por ejemplo,
haciendo clic en una direccin de correo
en el centro de control se abre su programa de correo favorito, que por defecto es
KMail. Las aplicaciones KDE que hacen
esto usan el kioslave mailto. Y por
supuesto, se puede hacer lo mismo tecleando mailto:usuario@dominio en la
barra de direcciones de Konqueror. Esto
hace que el editor de KMail se ejecute
con la direccin de destino ya insertada
en el campo de direccin del mensaje. Se
puede teclear print:/ para acceder a otro
kioslave interno de KDE. Si se realiza
esto, nos dirigir a la herramienta de gestin de impresin de KDE (Figura 6). La
Tabla 4 muestra una lista de los kioslave
internos.

WWW.LINUX- MAGAZINE.ES

Conclusin
Konqueror es un gran intento por parte
de los desarrolladores de KDE de implementar una herramienta universal que
puede manejar casi cualquier tarea relacionada con los ficheros. Uno de los problemas de Konqueror es que el programa
llega a ser tan grande que podra llevar a
un usuario varios meses para descubrir
algunas de las caractersticas extremadamente tiles que los desarrolladores de
Konqueror han incluido en esta aplicacin innovadora.
El manual de usuario de Konqueror es
un buen punto de partida para empezar
sus aventuras con Konqueror. Un buen
comienzo puede ser leer el manual y la
ayuda online para aprender algunas de las
caractersticas ms interesantes y tiles de
esta poderosa herramienta. Se puede acceder al manual a travs del men de ayuda
o tecleando help:konqueror en la barra de

direcciones de Konqueror.

RECURSOS
[1] KDE 3.4: ftp:// ftp. kde. org/ pub/ kde/
stable/ 3. 4/
[2] KDE 3.4 para Suse Linux: ftp://ftp.
suse.com/pub/suse/i386/
supplementary/KDE/
[3] Ms informacin del kioslave de
audio CD: http://docs.kde.org/en/3.3/
kdebase/kioslave/audiocd.html
[4] gphoto2: http:// www.gphoto.org/

Nmero 09

75

LINUX USER Desktopia: xdesktopwaves

Hacer
Hacer olas
olas con
con xdesktopwaves
xdesktopwaves

CABALGANDO LAS
OLAS

Incluso si el fondo de escritorio ms imaginativo ya empieza a aburrirnos, es hora de cambiar. xdesktopwaves nos permite convertir el escritorio en un paisaje acutico. Podemos aadir lluvia y tormentas o simplemente arrastrar el ratn para animar las cosas. POR ANDREA MLLER

l agua atrae a millones de veraneantes a las costas, lagos y ros


cada ao. Ahora, Oliver Hamann
ha desarrollado una herramienta para
traer un aspecto hmedo a nuestro escritorio. xdesktopwaves [1] inunda nuestro
escritorio y genera olas cuando arrastramos el ratn o movemos ventanas. El
programa ofrece una variedad de opciones que permiten al usuario aadir efectos como lluvia y tormentas o cambiar el
color del agua. No es necesario deshacerse de nuestro fondo favorito, el paisaje acutico que proporciona xdesktopwaves es transparente.

Desempaquetamos el archivo xdesktopwaves-1.3.tar.gz y nos vamos al directorio que se crea en este paso, xdesktopwaves-1.3. Tecleamos make para compilar el programa. Pasamos a usuario root
y tecleamos make install para copiar el
programa a /usr/X11R6/bin y la pgina
man a /usr/X11R6/man/man1.
Si preferimos situar la aplicacin en
nuestro directorio /usr/local, simplemente modificamos el Makefile antes de
compilar cambiando las lneas BINDIR y
MAN1DIR de la siguiente manera:
BINDIR = /usr/local/bin
MAN1DIR = /usr/local/man/man1

Hgalo-usted-mismo
La aplicacin est disponible en la pgina del proyecto. No hay paquetes listospara-usar, por lo que tendremos que
compilar el programa desde el cdigo
fuente. Todo lo que necesitamos es el
compilador gcc y los paquetes de desarrollo del sistema grfico. Muchas distribuciones llaman al paquete requerido
XFree86-devel
o
xorg-devel.

76

Nmero 09

Como alternativa, podramos simplemente ejecutar el programa en el directorio de las fuentes tecleando ./xdesktopwaves.

Bajo Tierra
xdesktopwaves renderiza olas en una
ventana situada por encima de la ventana raz (root window). Este mtodo no

WWW.LINUX- MAGAZINE.ES

funcionar sin ms en KDE, ya que el


entorno de escritorio KDE, de hecho,
dibuja una ventana por encima de la
ventana raz de tal manera que la oculta.
Para poder inundar nuestro escritorio a
pesar de esto, tendremos que abrir el
Control Center y habilitar la opcin
Desktop | Behavior | Allow programs in
desktop window (vase la Figura 1).
El comando xdesktopwaves lanza el
programa con las opciones por defecto
(vase Figura 2). Esto implica que el
programa usar el primero de los diez
esquemas de color predefinidos y dibujar las olas con calidad media. Los
niveles de calidad especifican cmo de

Desktopia
Slo t decides que aspecto tiene tu
escritorio. Con Desktopia tomamos
regularmente un viaje al mundo de los
gestores de ventanas y entornos de
escritorio, presentando herramientas
tiles y llenas de color y preciosos
juguetes.

xdesktopwaves LINUX USER

Figura 1: Para usar xdesktopwaves con KDE, debemos cambiar Allow


programs in desktop window en el panel de control.

realistas parecern las olas al arrastrar


el ratn o mover una ventana. El valor
ms alto genera un movimiento de olas
realmente genuino. Por supuesto, este
realismo es a costa de una mayor carga
para la CPU. La manera ms fcil de ver
la diferencia entre los niveles de calidad es ejecutar primero el programa
con el nivel inferior tecleando xdesktopwaves -q 0 y luego con el superior tecleando xdesktopwaves -q 9.
La opcin -c, con un valor entre 0 y 9,
selecciona uno de los esquemas de color
predefinidos. xdesktopwaves -c 1 nos presenta un agua azul profundo, mientras
que xdesktopwaves -c 6 genera un verde
caribeo. -c 5 nos muestra un agua perfectamente cristalina en el escritorio. -c 8
muestra un rojo intenso, que ms bien
aparenta un accidente en una central
qumica que unas vacaciones.

Ajuste Fino
Si no estamos contentos con los esquemas de color propuestos, podemos disear un esquema por nuestra cuenta. Las
opciones -wc, -sc y -lc seguidas del nombre del color, nos permiten configurar el
esquema. El comando showrgb | less nos
muestra los colores vlidos, listados con
sus valores RGB. El color tras -wc fija el
color del agua, -sc el color del cielo y -lc
el de las reflexiones de luz. Tendremos
que arrastrar el ratn y hacer olas para
poder ver estos dos ltimos. Cuando
estemos experimentando con los parmetros, puede que queramos ejecutar
xdesktopwaves en una ventana separada,
mejor que en modo background. Para

Figura 2: Arrastrando el ratn o moviendo una ventana generaremos


olas en el escritorio.

ello, debemos especificar la opcin -w al


nar estos parmetros: por ejemplo, xdesejecutar el programa.
ktopwaves -rn 10 -st 6 (vase la Figura 3)
El fondo de escritorio puede ser una
nos presenta un efecto realmente consemolestia si estamos intentando conseguido.
guir el esquema de colores adecuado:
Si disfrutamos de un fondo de pantalla
podemos especificar el parmetro -o para
movidito, xdesktopwaves puede ser exacdeshabilitar la transparencia. Para ser
tamente lo que andbamos buscando.
atentos con nuestra CPU, deberamos
Como el programa no se ejecuta en una
especificar la opcin -i para que el proventana de raz, podemos incluso combigrama no consuma ciclos de reloj
si no hay actividad en el escritorio.
Podemos incluso fijar qu eventos generarn olas mediante los
parmetros adecuados. Por ejemplo, -nwm deshabilita las olas causadas por el movimiento del ratn
por el escritorio. -nww le indica
que podamos mover las ventanas
sin marearnos. Para eliminar la
necesidad de cerrar el programa
pulsando [Ctrl]+[C] en la consola,
desde la que lanzamos el programa, debemos ejecutar xdesktopwaFigura 3: Los parmetros -rn y -st nos proporves -e.
cionan lluvia y tormentas.

Aviso de Tormenta
Si estas calmadas aguas nos estn dejando dormidos, podemos incluir el parmetro -st con un nmero entre 1 y 10
para avivar las cosas. Este parmetro
empieza en 1 con una ligera brisa y va
ganando fuerza hasta una tempestad
(10) que nos dar un buen remojn. -rn,
de nuevo seguido de un nmero de 1 a
10, aade algo de lluvia al esritorio.
Mientras que xdesktopwaves -rn 2 presenta un ligero chirimiri, con -rn 10 inundaremos nuestro escritorio con una violenta lluvia monznica. Podemos combi-

WWW.LINUX- MAGAZINE.ES

nar xdesktopwaves con otras aplicaciones


de fondo de pantalla como xpenguins.
Para los tendentes al agua xfishtank [2],
que convierte nuestro escritorio en un
acuario, es otra posible eleccin para un

animado y lquido escritorio.

RECURSOS
[1] xdesktopwaves: http://
xdesktopwaves.sourceforge.net/
[2] xfishtank: http://www.tuxfinder.com/
packages?defaultname=xfishtank

Nmero 09

77

LINUX USER Inkscape

Grficos vectoriales con Inkscape

EL PINCEL
ELECTRNICO
Los profesionales cuando tienen que dibujar con el ordenador, optan normalmente por los grficos vectoriales.
Inkscape trae a los usuarios de Linux la potencia de los
grficos vectoriales. Nuestro taller ensea cmo utilizar
este programa. POR PETER KREUSSEL

unque se pueda ser un genio con


la pluma y el papel, dibujar
directamente en el ordenador no
siempre dar los brillantes resultados
que se estn buscando. Cuando las lneas se convierten en garabatos, los profesionales se vuelven hacia las curvas de
Bzier para que les ayuden a dibujar
lneas lisas, a los puntos de anclaje para
definir la trayectoria de la curva y a las
tangentes para definir los radios.
Aunque los principales editores de
mapas de bits, como GIMP, dan soporte
a las curvas de Bzier, hace falta un pro-

Durante aos, Linux no ha tenido un


autntico equivalente a las herramientas
de dibujo de grficos vectoriales ms
importantes del mundo de Windows o
de Macintosh. Pero ahora, un programa
de fuente abierta, llamado Inkscape, ha
llegado para llenar ese hueco. Aunque
Inkscape carece de muchos de los efectos especiales que se encuentran en los
caros programas comerciales, la actual

Figura1: Un sencillo smiley compuesto de


algunos arcos y una curva de Bzier.

Figura2: La secuencia de pasos para dibujar


el smiley descrito en este artculo.

78

Nmero 09

grama de grficos vectoriales para exprimir toda su potencia [1].

Iniciacin Fcil a Inkscape

WWW.LINUX- MAGAZINE.ES

versin 0,41 de Inkscape ofrece todo lo


que realmente se necesita para realizar
logos o ilustraciones en la pantalla.

Dont Worry, Be Happy


Como primer ejemplo prctico, intentaremos dibujar el smiley mostrado en la
Figura 1. Completar este dibujo nos ser
de gran ayuda con muchas de las ms
importantes tcnicas que se necesitan
para realizar ilustraciones ms complejas.
Una vez se ha lanzado, y aunque nos
parezca mentira por lo novedoso,
Inkscape muestra un documento nuevo
vaco. Cambiamos el factor de zoom pulsando las teclas [+] y [-] hasta que apenas se puedan ver los mrgenes. La
Figura 2 muestra la secuencia de pasos
que hay que seguir para obtener el smiley.
Seleccionamos
la
herramienta
circle/ellipse/arc en la caja de herramientas de la izquierda (vase la Figura 3).
Ahora presionamos la tecla [Ctrl], hacemos click con el ratn en el rea superior
izquierda del dibujo, mantenemos el
botn izquierdo del ratn y lo arrastramos hacia la esquina inferior derecha.
Con esto obtendremos un crculo relleno
de rojo. Manteniendo pulsada la tecla
[Ctrl] guarda el aspecto, es decir, la relacin entre la altura y la anchura a 1:1,

Inkscape LINUX USER

ficar la altura y la
zar el botn central del ratn para mover
anchura del objeto
la seccin actual de la pantalla.
seleccionado. La
Pulsamos la tecla [shift] y hacemos
tecla [Ctrl] funcioclick en mltiples elementos. Con la
na igual que la
herramienta de la seleccin aadimos
herramienta de cresos elementos a la seleccin actual.
culo. Si manteneUtilizamos esta tcnica para seleccionar
mos pulsada la
el ojo completo (que es el arco y el crcutecla,
cualquier
lo pequeo). Con [Ctrl]+[D] duplicamos
cambio que realilos objetos seleccionados. En vez de usar
cemos mantendr
el ratn, podemos mover los objetos preel aspecto, es decir,
sionando las teclas de flecha. Para prola relacin entre
bar esto, presionamos la tecla [flecha
Figura6: Este dilogo se utiliza
las ejes X e Y.
derecha] varias veces y veremos cmo la
para fijar el color del relleno
Para animar el
copia del ojo se mueve hacia la derecha;
Figura3: Las herramientas
mediante los componentes de color
montono crculo
pulsando [shift] aumentaremos la disms importantes de Inkscape.
[R]ed, [G]reen, y [B]lue.
rojo, vamos a eletancia de cada paso. La ventaja de hacer
gir la herramienta
esto as, en vez de con el ratn, es que
2:1 o 1:2. Si nos equivocamos, podemos
de seleccin y seleccionar el crculo
los ojos ahora estn exactamente a la
pulsar [Ctrl]+[Z] para deshacer.
grande. Presionamos [Shift]+[Ctrl]+[F]
misma altura.
Para los ojos, necesitamos dibujar un
para ir al cuadro de dilogo Fill and stroMano alzada
semicrculo abierto con la abertura en el
ke dialog (trazar y rellenar) (Figura 6).
Para la boca tambin necesitamos un
fondo. Las dos cajas de herramientas
Podemos ajustar los componentes de los
arco que comience en 0 grados y termine
horizontales sobre el rea de dibujo nos
colores [R]ed, [G]reen y [B]lue (Rojo,
en 180. Esta vez no mantenemos pulsaayudarn a hacer esto. La caja de herraVerde y Azul) para establecer el color del
da la tecla [Ctrl] mientras dibujamos el
mientas superior ofrece un juego de
relleno. Si arrastramos la barra de desarco, ya que necesitamos que este arco
rdenes estndar (Figura 4); para descuplazamiento de G (para el componente
sea ms ancho.
brir ms, colocamos el cursor sobre un
del color verde) hacia la derecha, el crSe puede utilizar la herramienta de
botn para ver la funcin de esa herraculo cambiar a un color un poco ms
dibujo para dibujar cualquier cosa a
mienta. La caja de herramientas de abajo
cercano al color amarillo.
mano alzada, pero por esta vez vamos a
cambia para reflejar la herramienta de
Si ahora establecemos el tipo de rellereducir nuestras expectativas y solamendibujo que hemos seleccionado.
no a linear gradient (efecto de degradado
te dibujaremos un trazo horizontal para
lineal), Inkscape nos dar un efecto de
Dibujando crculos
la esquina de la boca. Para hacerlo, pricolor degradado que comienza en amarimero habilitamos la herramienta de
Necesitamos fijar los ngulos para dibullo y termina en transparencia. Para utilidibujo y arrastramos el ratn a la posijar la curva con la herramienta de crcuzar un efecto de degradado ms fino,
cin donde queremos que comience la
los, que es la que est habilitada en este
pulsamos en el botn marcado en turlnea. Despus mantenemos pulsada la
momento (la Figura 5 nos muestra la
quesa que muestra la Figura 7.
tecla [Ctrl], arrastramos el ratn un poco
caja de herramientas). Para Start 180 y
Seguimos estos pasos para fijar el efechacia la derecha y hacemos click en el
End 360 nos dar un semicrculo. Para
to de degradado para los ojos: selecciopunto final. Hacer click con el botn
asegurarnos de que el semicrculo est
nar el semicrculo, abrir el cuadro de diderecho termina esta accin. Lo qu ocuabierto, necesitamos comprobar el open
logo Fill and stroke dialog, fijar los valorre al pulsar [Ctrl] con esta herramienta
arc. Ahora dibujamos un crculo lo
res de color a R=190, g=200, b=255,
es que se cierra el ngulo de cualquier
mismo que en el paso 1, y el programa
seleccionar el linear gradient y modificar
lnea recta que necesitemos dibujar en
automticamente nos dar el arco abierel efecto de degradado hasta que nos
pasos de 15, facilitando la tarea de
to que necesitamos.
guste lo que vemos.
dibujar una lnea totalmente recta.
Si el arco no est en el lugar adecuado,
Ahora todo lo que necesitamos hacer
es demasiado grande, o demasiado pequees dibujar un crculo pequeo (herrao, necesitamos hacer click en la herramienta crculo, Start: 0, End: 0), hacer
mienta de seleccin en la caja de herraclick en el botn X del cuadro de dilogo
Figura5: La caja de herramientas horizontal
mientas de la izquierda. Cuando arrastreFill and stroke dialog (para no utilizar un
inferior muestra los ajustes que afectan a la
mos el ratn sobre el arco, veremos que el
relleno) y habremos terminado con el
herramienta de dibujo que se ha seleccionacursor se transforma, convirtindose en
ojo izquierdo. Siempre que necesitemos
do. La herramienta del crculo se selecciona
un cursor de movimiento. Mantenemos
dibujar elementos muy pequeos, como
aqu.
pulsado el botn izquierdo del ratn y
en este caso, lo
arrastramos el arco al sitio correcto.
normal es hacer
Figura4: La caja de herramientas horizontal en la tapa tiene botones
Cuando soltemos el botn del ratn, notazoom pulsando
para las ordenes estndar en la parte superior, por ejemplo Save, Open,
remos los mandos alrededor del crculo.
la tecla [+].
Cut y Paste.
Podremos arrastrar los mandos para modiPodemos utili-

WWW.LINUX- MAGAZINE.ES

Nmero 09

79

LINUX USER Inkscape

Figura7: Inkscape permite definir un


efecto de degradado de color para el smiley. Seleccionamos el botn enmarcado
en turquesa para un degradado ms fino.

Ahora repetimos el paso que realizamos anteriormente para duplicar el


ojo: seleccionamos la lnea corta con la
herramienta de seleccin, presionamos
[Ctrl]+[D] para duplicar, y despus pulsamos la tecla [flecha derecha] para
mover la lnea a la posicin correcta.
Antes de intentarlo con formas ms
complejas, hay que tomarse un poco de
tiempo para practicar con la herramienta
de dibujo dibujando algunas lneas arbitrarias. Hacemos click con el ratn para
marcar el punto de partida, pero cuando
nos desplazamos al segundo click, mantenemos pulsado el botn del ratn y
movemos el ratn tangencialmente a la
lnea que estamos dibujando. Podemos
dibujar un control tangencial en cualquier punto final. Pulsamos el botn y
movemos el puntero para ver cmo la
longitud y la direccin de la tangente de
control afectan a la forma de la lnea
roja. Ahora soltamos el botn de ratn y
movemos el puntero otra vez; veremos
que ahora podemos dibujar una nueva
seccin de lnea. Hacemos click, mantenemos pulsado el botn de ratn y arrastramos el ratn. Despus de dibujar algunos segmentos, acabamos la lnea

Figura 9: Usando el ratn para dibujar la


forma de una lengua.

80

Nmero 09

Figura 8: Cambiando la forma de una curva


Bzier moviendo los puntos finales de las tangentes de control.

haciendo click con el botn derecho o


pulsando la tecla [enter].
Inkscape tambin tiene herramientas
que permiten modificar curvas que ya
existen: Modify nodes and handles
(Modificar nodos y mandos). Estas
herramientas permiten mover los mandos y modificar la direccin y longitud
de las tangentes del control. Incluso los
artistas grficos profesionales dibujarn
primero una lnea irregular antes de arreglar los detalles. Probamos de la siguiente manera: utilizamos la herramienta
para seleccionar un mando y entonces
utilizamos el ratn para arrastrar los crculos pequeos en los finales de las tangentes (Figura 8).
Para terminar el smiley, elegimos la
herramienta de seleccin y seleccionamos nuestras lineas de practicas .
Entonces presione [Del] para eliminar
estas lneas.
La Figura 9 nos muestra cmo usar el
ratn para dibujar la lengua. Hacemos
click como muestra el dibujo.
Arrastramos manteniendo pulsado el
botn del ratn y lo movemos en la
direccin de la flecha (aparecer el control de tangente para que podamos cambiar su longitud y direccin), entonces
soltamos el botn del ratn. Necesitamos
tres lineas para la lengua; aadimos un
nodo en cualquiera de los sitios que
cambia la curva. Ahora rellenamos la
curva ya finalizada con el color rojo y
definimos un efecto de degradado.
El relleno de la lengua oculta el borde
superior de la boca. Inkscape nos ofrece
otra potente herramienta para solucionar
esto, permitiendo que realicemos opera-

WWW.LINUX- MAGAZINE.ES

ciones boleanas con las trayectorias.


Primero seleccionamos el arco de la
boca con la herramienta de seleccin.
Duplicamos el arco pulsando [Ctrl] [D].
Adems, seleccionamos la lengua pulsando la tecla [Shift]. Despus, elegimos
Difference en el men Path.
Apenas queda un paso para completar
el dibujo. Utilizamos la herramienta de
seleccin para seleccionar todos los objetos, excepto la lengua. Entonces pulsamos
[Ctrl]+[F] para abrir el cuadro de dilogo
Fill and stroke dialog . Para cambiar el
estilo del trazo, hacemos click en la pestaa superior del cuadro de dilogo y fijamos la anchura del trazo en 6 Pt; es posible que tengamos que teclear Pt como unidad en el cuadro de entrada. Esto le da
una anchura uniforme al trazo.

Herramientas simples
Aunque el smiley no es ninguna Mona
Lisa, dibujndolo nos ha enseado
muchos de los fundamentos de los grficos vectoriales SVG: la realizacin de formas bsicas y de curvas Bzier, la aplicacin de rellenos, fijar propiedades del
trazo y la aplicacin de operaciones boleanas a las trayectorias. Estas tcnicas son
la base de una gran parte de las habilidades de los profesionales y de gran canti
dad de dibujos muy complejos.

RECURSOS
[1] Comparacin de grficos vectoriales
y bitmaps: http://www.inkscape.org/
cgi-bin/wiki.pl?VectorAndBitmap
[2] Especificaciones de SVG: http://www.
w3.org/TR/SVG/
[3] Paquetes RPM y fuentes de Inkscape:
http://www.inkscape.org/download.
php
[4] Aqu se puede buscar paquetes de
Gtk2: http://search.rpmseek.com/
search.html?hl=com
[5] ftp://ftp.de.debian.org/debian/pool/
main/i/inkscape/

Educacin LINUX USER

Cosas que hacer con juegos

TRABAJANDO
CON ATNAG

En el nmero anterior conocimos ATNAG, una herramienta para la creacin de actividades especficas para
Educacin Infantil y los primeros aos de Primaria, y cmo se est trabajando en torno a ella en el proyecto
COR-EDUX del Colegio Corazn de Mara de Palencia. Terminaremos esta breve presentacin mostrando varios juegos, y cmo se crean y organiza su explotacin en el cuaderno de clase.
POR M DOLORES ALMANSA TEJADA Y JUAN RAFAEL FERNNDEZ GARCA.

amos a analizar en detalle el


mdulo del juego de relaciones,
ya que sus implicaciones y posibilidades son muy ricas: incluye lectura,
diferentes criterios o conceptos de clasificacin,
valores
matemticos
(suma,resta); veremos cmo se est
trabajando en grupos de trabajo para el
desarrollo de actividades y se planea
incluirlo en las programaciones del
colegio. En el artculo anterior habamos dejado instalado ATNAG en nuestro ordenador y habamos creado cuentas para los profesores y los alumnos.

Recordemos las caractersticas del centro que estamos analizando: una red de
terminales conectados a un servidor.
Por supuesto que no es imprescindible
este escenario para utilizar ATNAG pero
nos dar pie a conocer toda su potencia.
Recordemos tambin que es una aplicacin GNU Linux que funciona sobre el
sistema de cuentas de este sistema operativo y da servicio a los usuarios existentes en el entorno. Mencionemos por
ltimo que el concepto de cuenta y de
autentificacin no puede ser el mismo
para un alumno de cuatro aos que

WWW.LINUX- MAGAZINE.ES

para un alumno de secundaria o un


adulto.

Qu hay en un cuaderno?
La interfaz bsica tanto para los profesores como para los alumnos es un cuaderno con hojas. En stas la maestra o maestro aadir las actividades a realizar por
un alumno/a, por un grupo o por toda la
clase. La metfora del cuaderno permite
centralizar en un punto nico todas las
acciones: la administracin de la aplicacin y sus actividades, personalizar la
interfaz y los juegos, construir enuncia-

Nmero 09

81

LINUX USER Educacin

Figura 1: El cuaderno del profesor.

Figura 2: La herramienta relaciones.

dos, y hacer jugar a los alumnos y alumnas en la red.


Un par de cuestiones previas: aunque
los profesores pueden crear cuadernos
nuevos (y despus estos cuadernos
podrn ser modificados nicamente por
el profesor que los cre y el administrador), al instalar un nuevo profesor se
produce automticamente la creacin de
un cuaderno llamado <nombre_del_profesor>.cfg. Tambin al empaquetar se
crea un cuaderno y ste sirve cuando se
desempaqueta para lanzar las actividades contenidas. Por otro lado (por razones de espacio y de simplicidad) no
vamos a entrar en el tema del alta de
los alumnos, la creacin de las
clases y la asociacin de alumnos
con
ordenadores.
Daremos por supuesto
que el administrador

82

Nmero 09

ha hecho su trabajo y el proservir para hacer una primera aproximafesor no tendr que preocucin al programa. La primera hoja, llaparse ms que de crear las
mada Administracin, contiene los prohojas de trabajo y de asignargramas
de
Instalacin
y
las a sus alumnos.
Desinstalacin de juegos para los
Cuando un profesor regisusuarios. Mediante el programa Por
trado como tal (si no lo hizo
Defecto se pueden fijar los valores predurante la instalacin el
definidos que se deseen para cada uno
administrador puede aadir
de los juegos, se puede acceder a la
nuevos profesores desde la
Documentacin a travs de un navegaopcin A Nuevos Usuarios)
dor, y puede ejecutarse una herramienta
entre en su escritorio, ver 3
que permite la traduccin de los recursos
iconos: Juegos-Educativos
(Ilo, por Internacionalizacin y
o Lanzador, ActividadesLOcalizacin). Disponemos tambin de
Ldicas o Modelo (modeuna Demo, muy til para familiarizarle.cfg) y Documentacin
nos con juegos y herramientas. Y final(doc_view.sh). Para iniciar la aplicacin
mente Resultados es la herramienta
pulsaremos dobleque nos facilita el
mente con el ratn
seguimiento del prosobre
el
icono
greso de los alumLanzador, simbolinos. En la prxima
zado por una peonza
versin tambin se
en el escritorio (lo
vern dos iconos
que equivale a ejecums: Exportar e
tar el comando launImportar: a travs
cher.sh). Se nos ofrede ellos se podrn
cer la opcin de
empaquetar -con un
abrir un cuaderno,
archivo tar.gz-, las
una hoja o un grupo;
actividades que se
elegiremos abrir un
quieran o desempacuaderno, y entre los
quetar archivos comcuadernos disponiprimidos con cuables el que se nos ha
dernos de actividaasignado durante la
des que hayan realiinstalacin (que es
Figura 4: Configuracin del juego relazado en otros cenhasta que se modifitros.
ciones.
ca una copia del cuaLa segunda hoja,
derno enseignant.cfg). Para el artculo
llamada Juegos, contiene los programas
hemos creado una cuenta de profesor
que permiten configurar (nivel de difirafa, por lo que el cuaderno que vamos
cultad, imgenes, textos y enunciados,
a utilizar se llama rafa.cfg (figura 1).
con o sin sonido) los 22 juegos, verlos
Vemos en la figura que la interfaz se
previamente, y guardarlos en una lista
divide en tres partes
principales: la clsica parte superior
con el men y los
iconos de navegacin, un ndice de
hojas a la izquierda
y una parte principal que muestra la
hoja seleccionada.
Las hojas
constituyen
la
parte
viva
del
conjunto.
Figura 3: Opciones para el juego lectura en la herramienta relacioEl ndice
nes.
nos va a

WWW.LINUX- MAGAZINE.ES

Educacin LINUX USER

para su uso en una clase. Puede tambin


crearse un comentario que acompae a
los juegos cuando los ejecute el alumno
o alumna posteriormente.
La tercera hoja, Herramientas, contiene 11 programas que permiten construir
nuevos recursos (creacin de geoformas,
archivos de nmeros y letras, paleta de
colores, laberintos, juegos de la oca, de
test) que sern utilizados por los mdulos de Juegos. Debemos tener clara la
diferencia entre las pginas de configuracin de los Juegos y las de creacin de
recursos bsicos con las Herramientas.
Para evitar confusiones posteriores
vamos a esforzarnos desde ahora en distinguir el mdulo de juegos Relaciones de
la herramienta Relaciones.
Qu puede hacer el profesor en su
cuaderno? El trabajo se realiza en pginas. Slo tiene permisos para disear
actividades y guardarlas, o crear pginas
a las que aadir las actividades que
quiera de la base de datos. Tambin
puede asignar esa pgina a un grupo de
alumnos/as y en unos ordenadores concretos, mediante un icono de acceso
directo en el escritorio del alumno. El
profesor o profesora podr aadir, quitar,
renombrar tantas pginas como sean
necesarias. Pero sobre todo, podr seleccionar una pgina para asociarla (ordenador-alumno), y dejarla de libre acceso
para su uso.
Pero, cmo aadir actividades?
Primero crearemos la pgina que las contenga. En el cuaderno marcaremos con el
ratn en el ndice una pgina, normalmente Pgina vaca, y en el men
superior Pginas seleccionaremos Crear
una Pgina Detrs.

Herramientas y juegos
El siguiente paso consiste en configurar
la actividad que se va a incorporar y

adaptarla a los
destinatarios.
Prometimos al
comenzar esta
segunda parte
del
artculo
mostrar
el
mdulo
de
juego
Relaciones,
estrechamente
relacionado
con
otro
mdulo llamado
Lectura.
Ambos obtienen los recurFigura 6: Relaciones entre valores.
sos
de
la
Herramienta
del
mismo
nombre
Nombre del Archivo Activo, que corresRelaciones (que establece relaciones
ponde a la imagen con la que se asociaentre imgenes o imgenes y palabras y
rn los distintos criterios o Palabrases utilizada por numerosos juegos). El
Clave. A travs de las puntas de flecha
uso combinado de estos recursos nos
(negras) situadas en la parte inferior del
permitir mostrar el entorno ATNAG.
cuadro se ir navegando por las distintas
Aunque puede procederse a crear la
imgenes que contiene el directorio
actividad directamente desde el mdulo
seleccionado anteriormente.
del juego, es ms conveniente haber

Relaciones vinculadas a la
utilizado previamente las herramientas
imagen.
para crear los recursos bsicos que utili
Acciones: a travs de las flezar la actividad; esta configuracin
chas de direccin izquierdaquedar guardada en el histrico de
derecha (azules) se ir vincurdenes y har fcil su incorporacin a
lando cada palabra clave con la
la hoja.
imagen.
Por tanto en primer lugar deberemos

Palabras Clave: Estos criterios


familiarizarnos con la herramienta
de clasificacin se asocian a la
Relaciones. Tal y como se observa en la
imagen mediante las flechas
imagen 2 vamos a escoger (1) el directo(azules) izquierda-derecha, tras
rio que contiene los archivos imagen, (2)
haber seleccionado en la lista
el archivo de Palabras-Clave con las que
Palabras Clave, el criterio a desse va a relacionar cada imagen y (3) el
plazar a la columna de Relacioarchivo donde quedarn registradas las
nes vinculadas.
relaciones (el fichero de relacin).

Las casillas situadas debajo de


Una vez seleccionados estos archivos
las flechas de direccin
y directorio, se confirmar la accin,
izquierda-derecha (Acciones),
obteniendo el cuadro de dilogo de la
estn relacionadas
figura 3. En l se observan
con
el
los siguientes apartados:

Figura 5: Parmetros del juego relaciones.

WWW.LINUX- MAGAZINE.ES

Nmero 09

83

LINUX USER Educacin

Figura 7: Configuracin del juego lectura.

Figura 9: El juego lectura en accin.

mdulo de juego Lectura y las


describiremos en su momento.
Una vez completadas todas las posibles
relaciones en el men Archivo se har
un clic sobre Guardar.
El juego Relaciones trata de establecer
nexos de unin entre objetos representados en imgenes (1 N) y unos criterios
de clasificacin representados a travs de
etiquetas (relaciones o valores, como
veremos despus). Para configurarlo pulsamos sobre la hoja Juegos y lanzamos
(botn derecho sobre el icono y
Ejecutar) el juego. La figura 4 nos
muestra la ventana de configuracin del
mdulo.
Para la explicacin vamos a crear una
actividad para trabajar los conceptos
Dentro-Fuera. Deberemos escoger en
la lista el directorio que contiene las
imgenes y en la de relaciones, la que
corresponde. A continuacin se desplegar el cuadro de la figura 5. Para los
criterios Dentro y Fuera colocaremos una etiqueta con una imagen simblica. Es importante colocarlas en el
mismo orden en se han activado las
casillas Dentro y Fuera en el
apartado Presentacin de
Relaciones para que el programa clasifique correctamente las imgenes. Si no se elige
una etiqueta
sim-

blica el programa presentar una papelera con un texto debajo de la misma


aludiendo al criterio de clasificacin de
las imgenes.

Otros ejemplos: valores


matemticos y lectura
Decamos que dentro del juego
Relaciones es posible vincular imgenes
con valores y as trabajar los conceptos
matemticos de cantidad -suma, resta,
multiplicacin y divisin- utilizando los
operadores matemticos =, != , >, <,
>=, <=, < x <, etc, en las etiquetas. La aplicacin eligir aquellas imgenes necesarias para poder establecer vnculos de unin con la etiqueta presentada en pantalla (figura 6).
Otra aplicacin de la herramienta
Relaciones se da en el Juego Lectura.
Cuando describamos el uso de la herramienta decamos que las casillas situadas debajo de las flechas de direccin
izquierda-derecha de la figura 7
(Acciones) establecen criterios para que
el nio/a discrimine auditiva y visualmente si el nombre de una imagen con-

Nmero 09

Cmo se aade una actividad a una hoja?


Pulsando con el botn derecho sobre la
hoja creada aparece un men. All desplazamos el ratn hasta Aadir actividad-ldica (figura 10). Esta accin hace
que se abra otro cuadro que contiene las
actividades guardadas en la base de
datos clasificadas por edades. Al pulsar
sobre una de ellas se rellenan automticamente casi todas las casillas de la parte
derecha y el/la profesor/a slo deber
poner un nombre a la actividad y un
icono (figura 11, pequeo anticipo de la
prxima versin y de los materiales que
se estn creando).

Balance pedaggico

Figura 8: Parmetros del juego lectura.

84

tiene o no las
letras, fonemas
y
slabas.
Tambin
es
posible asociar
una imagen con
un texto escrito,
e incluso discriminar su correcta ortografa o
formacin del
plural.
El
juego
Lectura (figura
8) se organiza
por tanto atendiendo a seis criterios diferentes:
1) Reconocimiento de Slabas. 2)
Reconocimiento
de
Fonemas.
3)
Reconocimiento
de
Letras.
4)
Reconocimiento de la Asociacin
Imagen-Texto (nombre, frase) 5)
Reconocimiento de la Ortografa correcta
6) Reconocimiento de la formacin del
Plural
La imaginacin del profesorado y la
pericia en el diseo de imgenes pueden
hacer posible cualquier criterio de clasificacin o relacin. La figura 8 muestra un
detalle de la configuracin del juego;
vamos a seleccionar palabras que empiecen por la slaba ba. La figura 9 nos
muestra el juego en accin.

WWW.LINUX- MAGAZINE.ES

S, balance pedaggico. No vamos a


entrar en las peculiaridades de la aplicacin desde el punto de vista de un desarrollador o de un localizador. Ni vamos
a incidir en la solucin cliente-servidor
ms que, en tanto que permite la reali-

Educacin LINUX USER

Figura 10: Aadiendo una actividad.

Figura 11: Seleccin de la actividad.

Los alumnos han aprendido a


orientarse perfectamente por la aplicacin. Si se dice: hay que ir a la A de
ATNAG, saben lo que es. Identifican los
ordenadores como un elemento ms del
aula y de su entorno de trabajo, como un
mural o el color de la puerta, de tal
modo que cualquier variacin (no olvidemos que son equipos obsoletos y reutilizados, y al recibir algo en mejor estado, se cambia) es notada en seguida.
Queremos destacar que la experiencia
sirve para romper un lugar comn en el
pensamiento de los profesores: aunque
muchos asociemos la mquina al individualismo, hemos observado que para los
nios es un motivo ms de socializacin
y ayuda mutua: unos a otros se ensean
el mecanismo de la actividad.
Aunque en la actualidad la Herramienta
de Autor ATNAG sigue en desarrollo y se
trabaja en contacto con el autor aportando
sugerencias y comentarios, para el Grupo
de Trabajo de Profesores y Profesoras del
Centro Corazn de Mara, uno de los objetivos prioritarios es realizar las actividades
para cada Unidad Didctica de los niveles
de 3, 4 y 5 aos, con el deseo de ponerlo al
servicio de cualquier Centro Educativo a
travs de la web del Proyecto COR-EDUX.
Se es consciente que el proceso es muy
laborioso y se apela a la participacin de
ms profesorado en el grupo de trabajo en
lnea.
La colaboracin se ha pedido tambin
a diseadores grficos de software libre,
para poder obtener imgenes sin dificultades de licencias. Como se dijo en el primer artculo, el Proyecto COR-EDUX
quiere ser una propuesta de enlace entre
desarrolladores, diseadores, maestros y
pedagogos por un Proyecto Educativo
GNU/Linux desde la Educacin Infantil.

WWW.LINUX- MAGAZINE.ES

Y en el prximo nmero
Hay entre los profesores una demanda
generalizada de orientacin sobre recursos educativos, dnde y cmo encontrar
los materiales adecuados para cada nivel
y actitud pedaggica. La necesidad de un
catlogo de recursos educativos parece
evidente; y sin embargo las soluciones
propuestas hasta ahora fallan por motivos que analizaremos. Presentaremos
GNU Edu, un muy interesante indexador
con un motor de bsqueda que puede
utilizar palabras clave y objetivos educativos mnimos y la posibilidad de que
sean los profesores los que publiquen los
recursos y los acompaen de los datos
(licencia, destinatarios, tipo de activi
dad) adecuados.

LOS AUTIORES

dad de un proyecto pedaggico de


xito.
En este par de artculos slo se han
podido abordar un par de motores de
juego, pero si tenemos en cuenta los 22
restantes, con todas sus potencialidades,
permiten de forma firme y suficiente un
cambio metodolgico importante en las
aulas: el gran nmero de mdulos, as
como la posibilidad de adaptar las actividades a las capacidades de cada alumno/a y de llevar un seguimiento del proceso, hacen que a travs de esta aplicacin se pueda integrar el ordenador de
forma plena en el aula de Infantil y abre
la posibilidad de crear un Proyecto educativo donde las actividades sobre soporte de papel queden bastante reducidas.
Para los alumnos ha sido toda una
experiencia enriquecedora y llena de
ancdotas, como la de que en los primeros das de contacto con los equipos, en
las aulas de tres aos queran utilizar el
ratn como un mando a distancia; tambin les ha costado aprender a situar en
el espacio y reproducir sobre una cuadrcula o rejilla un dibujo constituido por
formas geomtricas, pero ha terminado
por ser la actividad que ms les gusta.

Mara Dolores Almansa Tejada


es profesora de educacin infantil en el Centro de Ed. Infantil
Corazn de Mara de Palencia,
coordinadora
del
Proyecto
Educativo GNU/Linux Cor-Edux
y asesora pedaggica de la
Herramienta de Autor ATNAG.
Juan Rafael Fernndez Garca es
profesor de educacin secundaria y tiene una larga experiencia
en la traduccin y documentacin del software libre. Ha sido
coordinador de uno de los
Centros que participan en la
experiencia andaluza de integrar
las TIC en la educacin y actualmente trabaja como asesor de
formacin del profesorado.
Socio de OFSET.

Nmero 09

85

LINUX USER Lnea de Comandos

Reproductores de audio desde la lnea de comandos

ROCK
Y CONSOLA
No siempre es necesaria una aplicacin con interfaz grfica para
escuchar canciones en MP3 u Ogg
Vorbis. En el artculo de este mes,
echaremos un vistazo a estas aplicaciones que rocanrolean desde
la lnea de comandos.
POR HEIKE JURZIK

i disponemos de un equipo
potente, reproductores como
amaroK o JuK no son slo un
regalo para nuestros odos, sino tambin
para nuestra vista. Pero si tenemos un
ordenador ya tirando a viejo, no tenemos
porqu renunciar a escuchar msica
mientras trabajamos. Gracias a los ligeros reproductores que funcionan desde
la lnea de comandos para MP3 y Ogg
Vorbis, slo necesitaremos abrir un terminal en modo texto.
La otra ventaja es que estos programas
se integran perfectamente con otras
rdenes de lnea de comandos. Podemos
hacer bsquedas en nuestro disco y con
los resultados crear automticamente
una lista de reproduccin. Y en cuanto a
conversiones a formato WAV (por ejemplo para grabar canciones en audio CD),
la lnea de comandos es definitivamente
mejor que cualquier interfaz grfica.

Msica ligera con mpg123 y


mpg321
mpg123 [1] es una herramienta en lnea
de comandos con una larga trayectoria,

86

Nmero 09

que ha dado servicio durante muchos


aos en plataformas Unix y Linux. Como
mpg123 no se public bajo licencia GPL,
Joe Drew desarroll una alternativa completamente libre: el reproductor mpg321
[2]. No hay grandes diferencias entre
estas herramientas, por lo que las opciones en las que nos detendremos se aplican a ambas por igual.
La manera ms cmoda de llamar al
programa es tecleando mpg123 archivo.mp3 o mpg321 archivo.mp3. Al
mismo tiempo que reproduce el archivo
por los altavoces, muestra informacin
adicional en el terminal (vase Listado
1). Junto con la versin del programa, se
muestra informacin como el ttulo,
artista y lbum (suponiendo que las etiquetas ID3 estn correctamente rellenas), as como la calidad del archivo
MP3. Si es demasiada informacin para
tu gusto, podemos evitar que se muestre
con la opcin -q.
Para interrumpir la reproduccin, pulsamos [Ctrl]+[Z] para enviar el proceso
a segundo plano. Tecleando fg devolvemos el proceso a primer plano y se conti-

WWW.LINUX- MAGAZINE.ES

na la reproduccin por donde la habamos dejado. Para cerrar el reproductor,


presionamos [Ctrl]+[C].

Hablando de Ogg
Ogg es una alternativa al formato MP3.
Al ser un formato completamente abierto, no patentado, orientado tambin a
aplicaciones de streaming, Ogg proporciona un contenedor para codecs como
Vorbis o FLAC. El codec Ogg Vorbis de
compresin de audio con perdidas [3]
tambin ofrece una mejor calidad que
MP3. El paquete vorbis-tools, que est
incluido en la mayora de las distribuciones, contiene una til seleccin de herramientas:

ogg123: Un reproductor en
lnea de comandos que funciona de manera similar a
mpg123 o mgg321.

oggdec: Un sencillo decodificador que convierte Ogg Vorbis


en WAV.

oggenc: Convierte ficheros WAV


y AIFF en Ogg Vorbis.

ogginfo: Muestra informacin

Lnea de Comandos LINUX USER

los Ogg Vorbis) del directorio en el que


nos encontremos. Pulsando [Ctrl]+[C]
interrumpimos la reproduccin del archivo y pasamos al siguiente. Para salir del
programa en este caso, debemos pulsar
[Ctrl]+[C] rpidamente dos veces seguidas.
Si no tenemos los archivos de audio en
nuestro equipo demasiado organizados,
sino que estn dispersos por subdirectorios en todo el disco, puede que queramos localizarlos ayudndonos del
comando find:
mpg321 $(find ~ -nombre "*.mp3")

de los archivos Ogg en lnea de


comandos.

vcut: Herramienta para cortar


fragmentos de archivos Ogg
Vorbis.

vorbiscomment: proporciona
soporte para editar etiquetas
Vorbiscomment.
El reproductor ogg123 es todo lo que
necesitamos para escuchar archivos Ogg
Vorbis. El Listado 2 es un ejemplo de la
salida que se muestra por pantalla. De
nuevo, podemos usar los comandos de
control habituales: [Ctrl]+[Z] para pausar la reproduccin, fg para continuar y
[Ctrl]+[C] para cerrar el programa. Al
igual que mpg123 y mpg321 podemos
suprimir la salida de informacin especificando el parmetro -q.

De una tacada
Para reproducir varios archivos seguidos
con mpg123, mpg321 u ogg123, slo
tenemos que especificar los nombres al
ejecutar el programa:
mpg321 U
05_Lily_Of_The_Valley.mp3 U
08_Stone_Cold_Crazy.mp3 U
09_Dear_Friends.mp3

o bien
ogg123 U
01_Barenaked_Ladies_- U
_Celebrity.ogg 02_ U
Barenaked_Ladies_- U
_Maybe_Katie.ogg ...

Por supuesto podemos usar los tpicos


comodines y especificar cosas como
mpg321 *.mp3 para escuchar todos los
archivos MP3 (o ogg123 *.ogg para todos

Esta sentencia find busca archivos con la


extensin .mp3, empezando en nuestro
directorio de usuario (indicado por el
simbolo ~), en todos los subdirectorios.
El smbolo del dolar y los parntesis le
dicen al bash que pase la salida del
comando como argumento a mpg321.
Las cosas se ponen ms delicadas si
nuestros ficheros incluyen espacios en
blanco o caracteres no estndar: el resultado tpico es una lluvia de mensajes de
error. Lo arreglaremos con un sencillo
truco de lnea de comandos:
find ~ -name "*.ogg" U
| ogg123 -@ - -z

El comando find se ejecuta en primer


lugar. Todos los archivos que encuentre

GLOSARIO
ID3:Los archivos de audio (incluyendo
MP3, Ogg Vorbis, WMA y AAC) guardan
informacin en las llamadas etiquetas
ID3. La estndar para etiqueta ID3 describe dos variantes: ID3v1 y ID3v2.x. ID3v1
restringe los meta-datos a un bloque de
128 bytes con una estructura fija al final
del archivo. Al contrario que su predecesor, ID3v2 (la versin actual es la 2.4:
ID3v2.4) no sita la informacin en los
ltimos bytes, sino que precede a los
datos de audio. La informacin puede
llegar hasta los 256Mbytes y est organizada en series de tramas (que pueden
llegar a los 16Mbytes). Las etiquetas
ID3v2 pueden guardar muchsima ms
informacin (incluso imgenes), y adicionalmente soporta el juego de caracteres Unicode. Los dos estndares ID3 no
son mutuamente excluyentes: una aplicacin que acceda a la meta-informacin simplemente eligir la variante que
entienda.

WWW.LINUX- MAGAZINE.ES

Figura 1: La ayuda integrada describe las


funciones principales.

se pasan por tubera a la llamada a


ogg123, que lee desde la entrada estndar (-) y edita la lista de archivos como
una lista de reproduccin (gracias a la
opcin -@). Con el ltimo parmetro, -z,
nos aseguramos de que ogg123 reproduzca los archivos de manera aleatoria,
en lugar de secuencialmente. Tanto
mpg123 como mpg321 entienden los
mismos parmetros, por lo que este
truco tambin es vlido para archivos
MP3.

Convertidos
Para guardar nuestra coleccin de MP3
en un CD de audio y poderlo escuchar en
nuestra cadena de msica, por ejemplo,

Listado 1: Salida de
mpg123
$ mpg321
01_Keep_Yourself_Alive.mp3
High Performance MPEG 1.0/2.0/2.5
Audio Player for Layer 1,2, and
3.
Version 0.59q (2002/03/23).
Written and copyrights byJoe
Drew.
Uses code from various people.See
'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUROWN
RISK!
Title : Keep Yourself Alive
Artist: Queen
Album : Queen Year : 1973
Comment: Genre : Rock
Playing MPEG stream from
01_Keep_Yourself_Alive.mp3 ...
MPEG 1.0 layer III, 128 kbit/s,
44100 Hz joint-stereo

Nmero 09

87

LINUX USER Lnea de Comandos

extensin .mp3, sino que en su


lugar tendra la extensin
.wav). El segundo parmetro es
el archivo de salida $i.
El comando para convertir
Ogg Vorbis a formato WAV es
menos complicado. El programa oggdec cambia automticamente las extensiones y simplemente recibe como entrada el
archivo a convertir.
Figura 2: mp3blaster muestra la siguiente cancin de
la lista de reproduccin.

tendremos que convertir previamente los


archivos comprimidos a formato WAV.
mpg123 y mpg321 nos ofrecen el parmetro -w para conseguir esto. Ntese
que debemos especificar el archivo de
salida antes que el de entrada:
$ mpg321 -w archivo.wavU
archivo.mp3
...
[3:47] Decoding of U
archivo.mp3 finished.

Como slo podemos procesar un solo


archivo de esta manera, es buena idea
hacer la llamada a mpg123 dentro de un
bucle for, con lo que conseguimos automatizar la conversin de multiples archivos. Para convertir todos los archivos
MP3 de un directorio a WAV, podemos
teclear:
for i in *.mp3; do mpg321 -w U
`basename $i .mp3`.wav
$i; done

Esta llamada asigna cada archivo con la


extensin .mp3 a la variable i y luego
ejecuta mpg321 -w con esta variable. El
primer parmetro es de nuevo el archivo
de salida (hecho con el nombre sin la

88

Nmero 09

$ oggdec sunrise.ogg
OggDec 1.0
Decoding "sunrise.ogg" U
to "sunrise.wav"
[100.0%]

Para convertir todos los archivos de una


pasada, slo tenemos que teclear oggdec
*.ogg.

Radiocassette en el terminal
Como hemos podido comprobar, las
aplicaciones vistas hasta ahora carecen
de controles interactivos. Si necesitamos una aplicacin que proporcione
estos controles, pero sin el costo en
memoria de una interfaz grfica de
usuario, mp3blaster[4] puede ser lo
que andamos buscando. Este reproductor admite archivos MP3, WAV y Ogg
Vorbis, y se incluye en la mayora de las
distribuciones. mp3blaster no necesita
un entorno de interfaz grfica: gracias a
Ncurses se ejecuta en una ventana de
terminal y nos proporciona un control
basado en botones.
Para ejecutar el reproductor, tecleamos
mp3blaster en lnea de comandos. Los
atajos de teclado se muestran en la parte
superior derecha de la ventana.
Pulsando [+] y [-] navegamos a derecha
e izquierda de la lista para ver otros

WWW.LINUX- MAGAZINE.ES

Listado 2: Salida de ogg123


$ ogg123
01_Barenaked_Ladies_-_Celebrity.o
gg
Audio Device: Advanced Linux
Sound Architecture (ALSA) output
Playing:
01_Barenaked_Ladies_-_Celebrity.o
gg
Ogg Vorbis stream: 2 channel,
44100 Hz
Title: Celebrity
Artist: Barenaked Ladies
Genre: Rock
Date: 2003
Album: Everything to Everyone
Track number: 01
Time: 02:00,12 [01:27,62] of 0
3:27,73 (110,7 kbps) Output
Buffer 96,9%

comandos. mp3blaster ofrece una informacin realmente amplia cuando reproduce los archivos, incluyendo detalles
tcnicos del mismo, la lista de reproduccin, y la prxima cancin que sonar.
Podemos pulsar el smbolo de interrogacin (?) para desplegar u ocultar la
ayuda integrada.
Si pulsamos [F1] entramos en el
modo de administracin de archivos,
donde podemos seleccionar los archivos a reproducir. Esto cambia tambin
los atajos de teclado mostrados en la
parte superior de la ventana. En la
parte central de la ventana se muestran los archivos y directorios en la
carpeta desde donde lanzamos el
reproductor. Podemos usar las flechas
de direccin o [PgUp] y [PgDn] para
movernos entre estos. Para cambiar de
directorio, slo tendremos que presionar la tecla Enter y para subir un
nivel, seleccionar ../.
Para escuchar un archivo,
usamos las teclas de direccin hasta posicionarnos
sobre ste y presionamos
Enter. Si queremos seleccionar varios archivos
y ponerlos en una
lista de reproduccin, pulsamos la
barra
espaciadora
para seleccionar una

Lnea de Comandos LINUX USER

Ncurses: Biblioteca libre escrita en C,


que incluye soporte para el control de
programas a travs de teclado y ratn,
as como de ventanas mltiples.

cancin (queda destacada), y presionamos [F1] para aadir las seleccionadas a


la lista de reproduccin. Podemos seleccionar el directorio completo rpidamente invirtiendo la seleccin ([F2]). Esta
opcin selecciona automticamente
todas las canciones de ese directorio,
permitiendo que presionemos [F1] para
aadirlas a nuestra lista de reproduccin.
Presionamos la tecla [5]
para comenzar la reproduccin. mp3blaster muestra la
pista actual y la siguiente a
reproducir de la lista
(vase Figura 2). Otros
atajos de teclado son [5]
(pausa), [4] (cancin previa), [6] (siguiente cancin), [2] (stop), [1]
(rebobinar)
y
[3]
(avance rpido). La
tecla [F6] activa la
funcin de repeticin. [F7] selecciona el modo de
reproduccin
aleatoria.
El
mezclador
integrado est

escondido en la parte inferior derecha


de la ventana, presionando [T] conmutamos entre los diferentes dispositivos.
Podemos presionar [<] (ms bajo) o
[Shift]+[<] (ms alto) para fijar el
volumen. Aparecer un porcentaje
para tener ms informacin del volumen actual. Por ltimo, pulsando [Q]
cerramos el programa.

Ordenar la magia
Si pulsamos [F1] para cambiar al modo
de seleccin, los distintos formatos de
audio se muestran en verde por defecto.
mp3blaster muestra las listas de reproduccin, tpicamente con extensin
.m3u o .lst, en amarillo. Si seleccionamos una lista de reproduccin pulsando
Enter, mp3blaster aade automticamente todas las canciones a la lista de reproduccin actual.
Igual de sencillo es crear una nueva
lista. Para guardar la seleccin actual de
archivos como una lista de reproduccin,
pulsamos en primer lugar [F4], luego le
damos un nombre a la lista (aadiendo la
extensin .lst o .m3u) y pulsamos [Enter]
para confirmar. Si necesitamos revisar u
ordenar la lista, podemos valernos de la
tecla [D] para borrar una cancin de la
lista. Pulsando [M] o [Shift]+[M] cambiamos el orden de las canciones de la
lista. Asimismo podemos borrar completamente una lista pulsando [C].

tor, podemos tambin especificarle mltiples nombres de archivo. Tras reproducirlas, mp3blaster se cerrar automticamente. Para que no se cierre, podemos
aadir el parmetro -q.

Totalmente automtico
Podemos modificar la apariencia y el
comportamiento de mp3blaster a travs
del archivo de configuracin escondido
en nuestro directorio de usuario (~/
.mp3blasterrc). El programa viene con
un fichero de ejemplo que podemos
modificar con cualquier editor de texto.
El fichero-plantilla sample.mp3blasterrc
normalmente est localizado en
/usr/share/mp3blaster/, aunque los
usuarios de Debian tendrn que buscar
un
archivo
comprimido
en
/usr/share/doc/mp3blaster/examples/.
El fichero de texto tiene una lista de
entradas comentadas, cada lnea
comenzando con unas barras cruzadas
(#). Si eliminamos las barras, habilitaremos la funcionalidad correspondiente. Adems del comportamiento general
del programa, podremos redefinir los
colores o incluso los atajos de teclado.
Puede ser buena idea echarle un vistazo a la pgina man del reproductor
(man mp3blaster) para ms consejos y
trucos de cara a nuestro ~/.mp3blas
terrc.

RECURSOS

Un buen comienzo
mp3blaster tiene unas cuantas opciones
en lnea de comandos que nos permiten
controlar la manera en la cual se comportar el reproductor al ejecutarse. Para
cargar automticamente una lista y
comenzar a reproducirla inmediatamente, usaremos el parmetro -a suministrando el nombre de la lista:

[1] Pgina de mpg123: http://www.


mpg123. de/
[2] Pgina de mpg321: http://mpg321.
sourceforge.net/
[3] Pgina de Ogg Vorbis: http://www.
vorbis.com/
[4] Reproductor mp3blaster: http://www.
stack.nl/~brama/

mp3blaster -a queen.lst

Para cargar una lista sin empezar a


reproducirla, especificamos -l en
su lugar. Para habilitar un
bucle infinito para esa lista,
usaremos la opcin -R
(para repetir):
mp3blaster
queen.lst -R

-a

Adems de pasarle
una lista al reproduc-

WWW.LINUX- MAGAZINE.ES

LA AUTORA

GLOSARIO

Heike
Jurzik
estudi Alemn,
Informtica
e
Ingls en la Universidad de Colonia,
Alemania.
Descubri Linux
en 1996 y qued fascinada con
la potencia de la lnea de comandos desde ese momento. En su
tiempo libre puede que la
encuentre en clases de folclore
irlands, o visitando Irlanda.

Nmero 09

89

Eventos

Resumen de las jornadas y eventos del verano

VERANO MOVIDITO

En verano se acaba la universidad, la gente se coge sus vacaciones, los nios se empaquetan al campamento, hace calor, mucho calor y el ambiente es propicio para montar algn evento de proporciones monstruosas con el fin de difundir el uso del software libre.

rimera parada del verano: La


Campus Party [1], celebrada en la
Ciudad Ferial de Valencia. Con un
afluencia de pblico espectacular (ms
de 5500 participantes, segn los datos de
la organizacin), la Campus arranc el
25 de julio y se clausur el 31, dejando
atrs siete das de intensa creatividad y
actos.

Un Caos que Funciona Bien


La party se dividi en siete secciones
temticas:
Juegos,
Campuscrea,
Campusbot,
Modding,
Astronoma,
Desarrollo
de
Juegos y la Zona
Libre.
Todos
ellos registraron
gran cantidad
de actividades,
talleres y concursos.
En un principio, la zona

90

Nmero 09

Libre iba a englobar tanto el Campusbot


y Desarrollo en vista de que en ambas
zonas el software elegido para desarrollo
era mayoritariamente libre. Pero la enorme cantidad de participantes en todas
las reas oblig a la escisin. A pesar de
ello, la zona libre registr la segunda
mayor afluencia despus de la zona de
juegos con ms de 1000 participantes.
De hecho, la zona libre empez su
vida como zona de Software Libre, y
as rezaba en el cubo del rea, pero a
medida que iba aumentando de tamao
y abarcando ms y ms temas, se opt
por rebautizar la seccin
simplemente
como
Libre, dando cabida a
ponencias y actividades
relacionadas no slo con
el software, sino con el
movimiento
del
Copyleft (a destacar la
exposicin de cuadros
libres del artista
Claudio Zirotti con
licencia
Creative

WWW.LINUX- MAGAZINE.ES

Commons, destinada a que los participantes de la zona pudieran crear obras


derivadas de lo expuesto); la libertad
social (tuvimos la oportunidad de departir con Claudio Prado, asesor tecnolgico
del gobierno brasileo y enterarnos de
primera mano como se est llevando a
cabo la implantacin la tecnologa y filosofa libre en Brasil) y la libertad de trasiego de medios entre iguales (con
ponencia de Jorge Cortell incluida).
Como era de esperar en un evento de
esta envergadura, no falt la polmica,
precisamente tanto por la intervencin
de Cortell (que ya lleva tiempo en el

Eventos

punto de mira), como con respecto a las


normas del Campus que prohiban explcitamente el uso de redes de P2P para
descargas masivas. Literalmente se vetaba la apologa de la piratera, signifique lo que signifique eso, y contamos

con una ms que notoria


presencia de organismos como la SGAE y
ACAM en actividades y foros.
En otro orden de cosas, en la zona
libre, destacaron

las
ponencias
del mencionado Claudio Prado, que nos
habl de la implantacin de Software
Libre en Brasil; Xavi de Blas, que present su interesante proyecto
ChronoJump (ver [2]) que
aglutina la informtica aplicada el deporte y el hardware
y software libres; David
Gascn, que departi sobre
redes verdaderamente libres;
y Juan Jos Porta, ingeniero
jefe de IBM y uno de los responsables del proyecto
Marenostrum, el superordenador que IBM acaba de
instalar en Barcelona.
En suma que, el balance
general, tanto por parte de
la organizacin como los
participantes fue positivo,
ya que se potenci los
aspectos ms creativos de
los asistentes y las charlas, ponencias y talleres fueron de altura (menos el de nuestro director, Paul
C. Brown, que fue un muermo total),
productivos y contaron con un participacin extraordinaria (menos el de
Paul, otra vez, al que acudieron cuatro gatos despistados
que se colaron por error y
despus se arrepintieron).

mente el mismo lugar donde nacieron las


Campus Parties).
Durante el evento, aparte de poder
relajarnos en la piscina, hemos disfruta-

do de la presencia de Richard Stallman,


que nos habl de Software Libre en la
tica y la Prctica; y Juan Toms
Garca, presidente de Hispalinux, que
nos inform del prximo paso en el
movimiento de software

Andaluca Centro
En Mollina, en el centro
geogrfico de Andaluca,
se celebraron desde el 3 al
11 de agosto las Segundas
Jornadas Tecnolgicas
Andaluzas de Software
Libre [3] en el marco
del CEULAJ (casual-

WWW.LINUX- MAGAZINE.ES

Nmero 09

91

Eventos

libre y como aplicar su filosofa y las


ideas derivadas de ella a la sociedad y a
la poltica en su charla Hackeando el
Planeta.
Paul C. Brown volvi a aburrir a
la concurrencia con una charla
sobre piratera y licencias; y
Antonio Larrosa nos ense las
novedades del escritorio KDE en
su ponencia Mundo KDE y
aKademy 2005.
Otros ponentes de altura incluyeron a Ismael Olea del proyecto
LUCAS,
J.J.
Merelo
de
Barrapunto, y Miriam Ruz de
Debian Women/ALIXA, que nos
instruy sobre el papel de las mujeres en
el mbito del Software Libre.
Aparte de ponencias, charlas y conferencias, se desarrollaron diversos talleres
sobre introduccin a y administracin de
Guadalinex, creacin de paquetes
Debian, aplicaciones ofimticas bajo
Linux, programacin en Java utilizando
Eclipse y Netbeans, Linux

92

Nmero 09

sobre
clusters, diseo
grfico con software libre y un largusimo etctera.
En suma, unas jornadas interesantes y
muy recomenda-

bles que esperamos volver a visitar en


subsiguientes ediciones.

Listo para Despegue


Mientras escribimos, esto la aKademy
[4], el congreso anual de KDE, calienta
motores. Durante seis das, la flor y la
nata del desarrollo KDE se concentrar
en la universidad de Mlaga
para difundir el
uso de KDE
entre los usuarios, marcar los
objetivos para
los desarrolladores y, en el
ltimo tramo
del congreso,
entregarse a
una orga desenfrenada de
programacin
de 120 horas
con el fin de
propulsar el
escritorio y
sus aplica-

WWW.LINUX- MAGAZINE.ES

ciones a nuevas cotas de usabilidad


y diseo.
Entre los ponentes ms
destacados, se encuentran
Mark Shuttleworth de
Canonical, que disertar
sobre Ubuntu y Kubuntu,
Mirko Boehm de Kdevelop
y Aaron Seigo del proyecto
Plasma.
Y, tranquilos, en sta no
hay ponencias de Paul C.
Brown.

Y lo que viene
Para que no se diga que slo os contamos cosas ya pasadas, sabed que para
octubre tenemos la segunda entrega de
la
Conferencia
Internacional
del
Software Libre, el primer tramo de la
cual se celebrar en Mrida los das 25 y
26 y la segunda se celebrar en Mlaga
en febrero del 2006 (ver [5]).
Por supuesto que Linux Magazine

estar all para controslo.

RECURSOS
[1] Campus Party 2005: http://web5.
campus-party.org/
[2] La pgina de Xavi de Blas: http://
www.deporteyciencia.com/wiki.
pl?Usuarios/Parleblas
[3] Segundas Jornadas Tecnolgicas
Andaluzas de Software Libre: http://
jornadas.cursosdeverano.org/
[4] aKademy 2005: http://
conference2005.kde.org/
[5] Open Source World Conference II:
http://www.
opensourceworldconference.com/

Ms del 30% de descuento respecto al precio de portada: Consigue 12 nmeros por 5490 Euros y todos los DVDs Gratis!

A diferencia de otras publicaciones, Linux Magazine no llenar tu buzn de recordatorios para que renueves tu subscripcin. sta se renovar
automticamente cada ao. Recibirs una confirmacin aproximadamente 30 das antes del final de tu periodo de subscripcin, pero no se
requiere que hagas nada para seguir suscrito.

No te pierdas Linux Magazine nunca ms! La subscripcin te asegura que recibas los conocimientos Linux de ms alta calidad en tu domicilio
cada mes.

Si por cualquier motivo decides dejar de leer Linux Magazine, puedes cancelar tu subscripcin en cualquier momento. Te abonaremos el precio
de todos los nmeros que no hayas recibido. Sin preguntas, sin fechas de cancelacin, sin problemas.

Linux Magazine es algo ms que una revista de Linux. Patrocinamos grupos, congresos, proyectos y eventos relacionados con el Software Libre.
Suscribindote a Linux Magazine garantizas que podamos seguir apoyando al Software Libre all donde haga falta.

Trucos

Problemas con el arranque con GRUB

GRUB!
GLUBS!
Este mes los redactores de Linux
Magazine lidian con un GRUB de
un lector que se niega a hacer su
labor.

n lector nos escribe con la


siguiente pregunta:

He intentado instalar hasta 3


veces la distribucin de Fedora que adjuntan este mes en su revista y (Linux
Magazine n 8), aunque parece que todo
el proceso se realiza correctamente, al
intentar arrancar de nuevo el ordenador,
simplemente me sale una pantalla negra
con el mensaje: GRUB, a la espera de que
introduzca algo. Pero da igual lo que
introduzca, ni la contrasea que he elegido como root, ni nada. Y no solo eso, sino
que de esa pantalla no sale, con lo que
tampoco puedo arrancar Windows.
Hasta ahora, tena instalada una distribucin de Suse y jams tuve ese problema:
sala el GRUB y poda arrancar la particin que quisiera, Suse o Windows, que es
la que tena por defecto. Tambin con esta
distribucin de Fedora parece que esto es
posible durante la instalacin, pues en
uno de los intentos eleg por defecto
Windows (en los otros dos Fedora) pero
nada. Y por otro lado no ha ocurrido nada
extrao durante la instalacin. De hecho,
en el segundo y tercer intento, lo detectaba
como ya instalado y haba que elegir
Nueva Instalacin para seguir adelante.
Sabriis decirme cul es el problema,
o qu es lo que estoy haciendo mal?
Bueno, la contrasea de root, a estas
alturas, en poco nos va a ayudar, puesto
que el sistema todava no ha arrancado.
De hecho, al parecer, Fedora, por algn
motivo que desconocemos, le ha instala-

do un fichero menu.lst vaco. Le explicamos: GRUB utiliza un fichero, habitualmente situado en /boot/grub que contiene un men con las opciones de arranque. Para un ejemplo, vase el Listado 1.
La primera lnea indica qu sistema se
arrancar por defecto. En este caso se
tratara del Mandrake 2.6.10 (GRUB
cuenta a partir de 0, por tanto Ubuntu es
0, Mandrake 10 es 1, etc.).
La segunda lnea indica cuanto tiempo
esperar GRUB antes de arrancar el sistema por defecto. Y la tercera lnea indica
qu sistema se arrancar en el caso de
que falle el elegido por defecto.
A continuacin vienen las opciones
que se presentarn en pantalla al arrancar GRUB.

title es lo que se mostrar en el


men y ah puede escribir lo
que desee.

kernel le indica a GRUB qu


ncleo Linux se desea arrancar
(es perfectamente factible tener
varios ncleos en una misma
particin y escoger el que ms
nos interese). Mire en el directorio /boot y escoja algo que se
llame algo as como vmlinuz-XX-X, donde las tres X indican el
nmero de versin del kernel.
Adems tendr que indicar la particin
donde se halla el kernel. Recuerde que
GRUB cuenta a partir de 0. Por tanto, en
el ejemplo anterior, (hd0,4) indica en la
quinta particin del primer disco duro.
Tambin tiene que indicar dnde se va
a montar el directorio raz. Cmo ste es

WWW.LINUX- MAGAZINE.ES

un parmetro que se pasa al kernel, ya no


contamos desde 0, sino que utilizamos la

Listado 1: menu.lst de
GRUB mquina de Pris:
01 default 2
02 timeout 10
03 fallback 0
04
05 title Ubuntu
06

kernel (hd0,7)/vmlinuz ro
root=/dev/hda8

07

initrd (hd0,7)/initrd.img

08
09 title Mandrake10
10

kernel (hd0,4)/boot/vmlinuz
ro root=/dev/hda5
psmouse.proto=imps

11

initrd
(hd0,4)/boot/initrd.img

12
13 title Mandrake 2.6.10
14

kernel
(hd0,4)/boot/vmlinuz-2.6.10-1m
dk ro root=/dev/hda5
psmouse.proto=imps

15

initrd
(hd0,4)/boot/initrd-2.6.10.img

16
17 title Guadalinex
18

kernel
(hd0,0)/boot/vmlinuz-2.6.5 ro
root=/dev/hda1
psmouse.proto=imps

Nmero 09

95

Trucos

nomenclatura tpica de
Linux, es decir hda5 (lo
que para GRUB es hd0,4).
Lo montamos, por cierto
como slo lectura (ro),
que es la manera estndar de proceder.
En este caso, tambin le decimos al
kernel el tipo de
ratn del que disponemos (un touchpad de un porttil) para
poder optar a utilizar tapping.
En muchos casos, las distros modernas
utilizan un fichero initrd. Tiene que buscarlo en el mismo sitio que el fichero vmlinuz.
Pero, se preguntar, cmo accedo a
todo esto si no puedo arrancar el sistema? Muy fcil: cjase su DVD de Fedora
Core 4 e insrtelo en su lector. Arranque
y en la primera pantalla de boot, pulse la
tecla F2 para ver las opciones.
Ver que una de las opciones es linux
rescue. Escriba eso en la lnea de
prompt. Lo que vamos a hacer es intentar rescatar el sistema.
Escoja como idioma el espaol y el
teclado es para seguir. No importa si
habilita o no tarjetas de red: no las
vamos a utilizar. Escoja la particin
donde instal Fedora y el modo rescate
se lo montar bajo /mnt/sysimage/. Con
el fin de poder modificar algo, habremos
de escoger la opcin que nos permita
escribir en la particin.

No todo est perdido


Si tiene Windows en una particin y
Suse en otra e instal Fedora en una tercera, y el menu.lst de Suse es bueno (ya
que dice que le funcionaba), puede
usted simplemente copiar el fichero
desde Suse a Fedora.
Para ello tendr que tener montadas
ambas particiones. Nuestro consejo es
que le eche un vistazo a su tabla de particiones
# cat /proc/partitions

3
3
3
3
3

96

0
1
2
5
6

#blocks

name

39070080
10257471
1
8908011
538146

hda
hda1
hda2
hda5
hda6

Nmero 09

7
8

11510541 hda7
7855753 hda8

Y monte todas las particiones montables


(por su tamao, probablemente hda1,
hda5, hda7 y hda8 parecen particiones
montables. hda6 es swap, (utilice cat
/proc/partitions/swaps) por tanto, pasamos de ella) en directorios independientes.
Puede crear directorios bajo /mnt/ con
# mkdir /mnt/hda1
# mdkir /mnt/hda5

Despus vaya montando con


# mount /dev/hda1 /mnt/hda1
# mount /dev/hda5 /mnt/hda5

Despus vaya examinando los contenidos de /mnt/hdaX/boot/grub para ver si


hay algn menu.lst utilizable. Puede utilizar para ello cat
# cat/mnt/hdaX/boot/grub/menu.lst

o vi
# vi/mnt/hdaX/boot/grub/menu.lst

En este ltimo caso, tambin podr editar el contenido de menu.lst (un tutorial
de como utilizar vi, sin embargo, excede
los propsitos de este artculo).
Cuando haya encontrado su menu.lst
perdido, cpielo al directorio /boot/grub
de su particin Fedora Core 4.
Supongamos que tiene su fichero
menu.lst de Suse en /mnt/hda3/boot/
grub/ y su Fedora Core 4 est en /mnt/
hda2, hara:
# cp /mnt/hda3/boot/grub/U
menu.lst /mnt/hda2/boot/grub/

Si eso funciona, podr arrancar como


haca hasta ahora, pero tendr que modificar hda3/boot/grub/menu.lst a mano para
incluir Fedora Core 4 (siga leyendo).

Todo Est Perdido

A nosotros nos sale


major minor

3
3

En el caso de que decidiera sobreescribir


Suse con Fedora, utilizaremos el modo
rescate para recabar informacin desde
sus particiones. Vaya buscando los archivos vmlinuz y initrd y escriba su localizacin en un papel.
Despus tendr que escribir un fichero
menu.lst a mano y guardarlo en el direc-

WWW.LINUX- MAGAZINE.ES

torio /boot/grub de Fedora (recuerde que


puede hacer todo esto desde el modo
rescate).
Imaginemos que tiene Fedora en hda2
y un
# ls /mnt/sysimage/boot/

le ofrece el siguiente aspecto:


config-2.6.11-1.1369_FC4
grub
initrd-2.6.11-1.1369_FC4.img
System.map-2.6.11-1.1369_FC4
vmlinuz-2.6.11-1.1369_FC4

Entonces sabe que la entrada para


Fedora en menu.lst va a ser algo como
default=0
timeout=10
title Fedora Core 4
root (hd0,1)
kernel /boot/vmlinuz-U
2.6.11-1.1369_FC4 roU
root=hda2
initrd /boot/initrd-U
2.6.11-1.1369_FC4.img

Para Acceder a Windows


Bueno, eso necesitara un artculo en
s mismo. Podemos recomendarle el
recurso [1] o el artculo rm -fR / de
la pgina 92 a la 94 del nmero 7 de
Linux Magazine. Tambin puede consultar la excelente FAQ de GRUB en
[2], pero una entrada en menu.lst para
Windows podra tener el siguiente
aspecto (suponiendo que Windows
est en hda1):
title Windows
rootnoverify (hd0,1)
makeacive
chainloader +1
boot

Y debera funcionar. Si no lo hace, refirase a los Recursos citados ms arriba.

RECURSOS
[1] GRUB y Windows: http://www.
geocities.com/epark/linux/
grub-w2k-HOWTO-es.html
[2] FAQ de GRUB: http://gnu.archive.hk/
software/grub/grub-faq.es.html

EVENTOS

LinuxWorld Conf. & Expo UK

akademy 2005

OSWC 2005

Fecha: 5-6 Octubre

Fecha: 27 Agosto - 4 Septiembre

Fecha: 25-26 Octubre

Ciudad: Londres, Reino Unido

Ciudad: Mlaga, Espaa

Ciudad: Mrida, Espaa

Sitio Web:
www.linuxworld
expo.co.uk

Sitio Web:
http://confe-

Sitio Web:
http://www.opensourceworldconference.com

rence2005.kde.org

Calendario de Eventos
Evento
Fecha
akademy 2005
27 Agosto - 4 Septiembre
LinuxWorld Conference & Expo Moscow
7 -9 Septiembre
International Computer Music Conference 5-9 Septiembre
Opensaar 2005
13-14 Spriembre
LinuxWorld Conference & Expo South Africa 14-16 Septiembre
php works
14-16 Septoembre
New Security Paradigms Workshop 2005
20-23 Septiembre
LinuxWorld Conference & Expo UK
5-6 Octubre
IT Underground
12-13 Octubre
LinuxWorld Conference & Expo NL
13-14 Octubre
hack.lu 2005
14-15 Octubre
AUUG 2005
16-21 Octubre
12th Annual Tcl/Tk Conference
24-28 Octubre
Versteckte Computer Unkontrollierbare... 5-6 Noviembre
International PHP Conference 2005
6-9 Noviembre
LinuxWorld Conference & Expo NL
9-10 Noviembre
LinuxWorld Conference & Expo Frankfurt 15-17 Noviembre
linux.conf.au 2006
23-28 Enero
LinuxWorld Conference & Expo Australia
28-30 Marzo 06

Ciudad
Mlaga
Mosc, Rusia
Barcelona,Espaa
Vlklingen,Saar
Ciudad del Cabo,S.A.
Toronto,Canad
Lake Arrowhead,CA,EEUU
Londres,Reino Unido
Varsovia,Polonia
Utrecht,Holanda
Kirchberg,Luxemburgo
Sydney,Australia
Portland,Oregn,EEUU
Munich,Alemania
Frankfurt,Alemania
Utrecht,Holanda
Frankfurt,Alemania
Dunedin, Nueva Zelanda
Sydney, Australia

Sitio Web
http://conference2005.kde.org
www.linuxworldexpo.ru
www.icmc2005.org
wwww.opensaar.de
www.linuxworldexpo.co.za
www.phparch.com/phpworks
www.nspw.org/current
www.linuxworldexpo.co.uk
www.itunderground.org/en
www.linuxworldexpo.nl
www.hack.lu
http://auug.org.au/events/2005/auug2005
www.tcl.tk/community/tcl2005
www.fiff2005.de
www.phpconference.com
www.linuxworldexpo.nl
www.linuxworldexpo.de
http://lca2006.linux.org.au
www.linuxworldexpo.com.au

Informacin de Contacto
Director
Paul C. Brown
Coolaboradores
Paul C. Brown, Jose Manuel Gonzlez Vida, Juan
Rafael Fernndez, Pedro Orantes, Jos Mara Ruz,
Alberto Planas.
Traductores
Paqui Martn Vergara, Paul C. Brown, Antonio
Rueda, Vctor Tienda.
Maquetacin
Sergio Hardasmal
Diseo de Portada
Pinball
(info@pinball-werbeagentur.de)
Publicidad
www.linux-magazine.es/pub/
Para Espaa
Paul C. Brown
pbrown@linux-magazine.es
pbrown@linuxnewmedia.es
Tel.:
(+ 34) 951 010 556
Mvil.:
(+ 34) 655 036 836
Fax.:
(+ 34) 951 010 516
Sergio Hardasmal
anuncios@linux-magazine.es
Tel.:
(+ 34) 951 010 556
Fax.:
(+ 34) 951 010 516
Para el Resto del Mundo
Brian Osborn
ads@linux-magazine.com

Tel.:
Fax.:

(+49) 6509 910 495


(+49) 6509 910 497

Director Editorial
Paul C. Brown
Director de Produccin
Sergio Hardasmal
anuncios@linux-magazine.es
Subscripciones: www.linux-magazine.es/
magazine/subs
Precios Subscripcin
Espaa:
Europa:
Resto del Mundo - Euros:
Resto del Mundo - Dlares U.S.A.:

49,50
59,90
79,90
$ 94,90

Tel.:
(+34) 951 010 556
Fax.:
(+34) 951 010 516
subs@linux-magazine.es
Linux Magazine
Linux New Media Spain, S.L.
Avda. Juan Lpez Pealver, 21
29590 - Campanillas Mlaga
ESPAA
info@linuxnewmedia.es
Tel.:
(+34) 951 010 556
Fax.:
(+34) 951 010 516
www.linux-magazine.es - Espaa
www.linux-magazine.com - Mundo
www.linux-magazine.de - Alemania

WWW.LINUX- MAGAZINE.ES

Si bien se toman todas las medidas posibles para


garantizar la precisin del contenido de los artculos publicados en Linux Magazine, la editorial no se
hace responsable de imprecisiones aparecidas en la
revista. Asimismo, Linux Magazine no comparte
necesariamente las opiniones vertidas por sus
colaboradores en sus artculos. El riesgo derivado
del uso del DVD y el material que contiene corren
por cuenta del lector. El DVD es estudiado escrupulosamente para confirmar que est libre de virus y errores.
Copyright y Marcas Registradas 2004 Linux New
Media Spain, S.L. Linux New Media Spain S.L. prohbe
la reproduccin total o parcial de los contenidos de
Linux Magazine sin su permiso previo y por escrito.
Linux es una Marca Registrada de Linus Torvalds.
Impreso en Alemania
Impresin: Dierichs Druck + Media GmbH
Distribucin: SGEL
Depsito Legal: MA-116-2005
ISSN edicin impresa: 1576-4079
ISSN edicin online: 1699-2237

Nmero 9

97

PRXIMO NMERO

Noviembre 2005: Nmero 10

PRXIMO
NMERO
INTEGRACIN
WINDOWS - LINUX

DVD: SUSE 9.3


El DVD del nmero 10 de
Linux Magazine nos trae la
ltima versin orientada a
escritorio de la empresa
alemana Suse. Ideal para el
usuario final y profesional.

Convivir con Windows no siempre es fcil, pero a


veces no hay ms remedio. El mes que viene
dedicamos nuestra seccin de portada a los intrincados pasos que hay que dar para que Linux se lleve
bien con otros sistemas.
Para empezar, abordaremos el espinoso temas de
los arranques duales y cmo evitar los problemas
ms comunes de este proceso.
Uno de los mayores problemas para trabajar con
Windows es su sistema de ficheros propietario NTFS.
Hasta el momento no ha sido posible, por ejemplo,
escribir de manera fiable utilizando los drivers
disponibles para Windows Insistimos: hasta ahora.
Presentamos Captive NTFS, una herramienta que
permite el acceso a NTFS desde Linux y, en cierta
medida, a sistemas de ficheros Linux desde Windows.
Correr programas bajo WINE puede ser un autntico quebradero de cabeza si no se tienen las instrucciones adecuadas. Afortunadamente Linux Magazine trae un informe de 7 pginas en su nmero 10
que explica los porqus y los cmos de este capa de
compatibilidad

PRCTICO
El ms novedoso de los APIs
de Google ofrece interesantes
posibilidades para el desarrollador de aplicaciones
Javascript. Acompanos en
un paseo virtual por el mundo
de la mano de GMaps y
Alberto Planas.
En nuestro artculo sobre
audiostreams veremos

XFCE 4.2
Xfce se ha ganado una reputacin de sistema de ventanas compacto, rpido y
vistoso. En nuestro prximo
nmero averiguamos si su
fama es bien merecida
poniendo a prueba la
ltima versin estable.

cmo capturar y grabar


streams de radios que ofrecen sus emisiones a travs
de Internet.
Linux dispone de mltiples y muy complejas
opciones a la hora de elegir
un motor de bases de
datos, pero a veces slo
necesitamos algo sencillo.
Tellico puede ser la solucin.

ZEND STUDIO
Revisamos el entorno
de desarrollo integrado
de los creadores de
PHP y vemos cmo la
nueva versin de esta
herramienta puede
acelerar la creacin de
sitios web que utilicen
este lenguaje como
motor.

A LA VENTA: OCTUBRE 2005


98

Nmero 09

WWW.LINUX- MAGAZINE.ES

Hazte con
tus ejemplares
atrasados!
#1 Nmero 1: Especial Redes - Servidores de correo TLS

MediaWiki - Konversation - DVD Fedora Core 3 ...


Nmero 2: Hardware Linux - PCs Silenciosos - Gestor
de ventanas Twin - Backups con Konserve ...
Nmero 3: Seguridad para todos - Configuracin
iptables con Shorewall - Ruby Rails - Domtica ...
Nmero 4: Redes Wireless - Scribus - Radio USB
Hackeando con Zaurus - DVD Mandrake 10.1 ...
#2 Nmero 5: Email seguro - Seguridad Wireless - Gimp
con Python - Bluetooth - QEMU - QTCanvas - Scribus (II)
Nmero 6: Multimedia - MLDonkey - OpenOffice
Juegos DOS con SCUMMVM y DOSBox - Scribus (III)
Nmero 7: Sistemas virtuales - Debianiza tu SuSe
Coches teledirigidos - SoundJuicer - DVD SuSe 9.2

No esperes a que se agoten!


#3
#7

#4

#5

#6

W W W. L I N U X - M A G A Z I N E . E S

You might also like