Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
E
l señor Paul Graham, uno de vender un SO; suite ofimá- experiencia han crecido y se han
expandido a la par que la comunidad
los gurús de Lisp más promi- tico; paquete de diseño vec- Linux a lo ancho y largo del mundo.
nentes del mundo, afamado torial, de retoque fotográfico, Como lector de Linux Magazine, te
blogger y venture capitalist, hace unas 3D; navegador, servidor, edi- unes a una red de información
semanas hacía la controvertida afir- tor web; o cualquier otra dedicada a la distribución del
conocimiento y experiencia técnica.
mación de que “Microsoft ha muerto”. cosa que se haya convertido
No nos limitamos a informar sobre el
Aparte de la polvareda que levantó, de uso común entre los usua- movimiento Linux y de Software Libre,
expresaba su deseo de “ser el primero rios. sino que somos parte integral de él.
en decirlo”. No soy de los que se Personalmente, tenía claro
andan con falsas modestias, así que desde que superamos el obstáculo de de identidad de su comunidad. Sería
ahí va: siento decepcionarle señor la aceptabilidad corporativa, que el irónico que la crisis y fallecimiento
Graham, pero eso lo llevo diciendo en modelo de Software Libre iba a matar del más persistente de entre sus ene-
mis artículos desde hace ya algunos al modelo del software privativo, al migos causase peores estragos que sus
añitos. menos en lo que se refiere a aplicati- continuados ataques, pero es lo que
Lo siento, me sentía obligado a vos horizontales. Habrá un nicho para parece que sucede, al menos entre
decirlo, y el que crea que voy de farol, el desarrollo de software privativo aquellos miembros que han verte-
que repase la literatura. especializado (sin embargo, la licencia brado su justificación para pertenecer
Que no crea el lector que hago la para este tipo de software es mayor- a la comunidad sobre el enfrenta-
predicción de manera gratuita y para mente irrelevante), al igual que hay miento a un coloso.
llamar la atención. De hecho, voy a un nicho para los jardineros ornamen- Pero hay más. Junto con la caída de
condicionar mi afirmación y empezaré tales que hacen paisajismo personali- un modelo, el cerrado, viene la acep-
advirtiendo que no hay que creer que zado, pero ¿hacer dinero, dinero de tación en el mercado “convencional”
esto es una cosa que vaya a ocurrir de verdad, vendiendo el Office & Co. sin del otro modelo, el abierto, cosa que
la noche a la mañana, del mismo valor añadido? Eso se acabó, amigo parece hacer florecer una suerte de
modo que no se puede delimitar un mío. esquizofrenia dentro de la comunidad.
marco temporal preciso para el fatal (Claro que me puedo equivocar, y si Un miembro del público en un con-
desenlace, pero las primeras eviden- es el caso, prometo humildad en reco- greso al cual acudí hace unas semanas
cias del desastre están ahí para quien nocer mi error y aceptaré sin rechistar relataba que “hace años, cuando le
quiera verlas. Por otro lado, para que el escarnio público. Así que reco- proponía a alguien colaborar en una
no se diga que mis profecías son más miendo guardar este artículo para proyecto, la respuesta solía ser ‘Vale.
vagas que las de la bruja Lola, tam- poder echármelo en cara dentro de ¿Cuándo empezamos?‘. Sin embargo,
bién incluyo por el mismo precio unas unos años). ahora la gente dice ‘Vale. ¿Cuánto me
cuantas precisiones: Dudo que vea- Volviendo al señor Graham, a pesar vas a pagar?‘”. Puede que el caballero
mos a Bill Gates pidiendo a la puerta de que coincide conmigo en la apre- estuviera recordando los tempranos
de una iglesia, pero Microsoft se hará ciación del estado del mercado (o, días del software libre de una manera
irrelevante al mercado informático, para ser más precisos, su estado un poco nostálgica (y la nostalgia
cosa que, concederéis, es la muerte de futuro), me decepciona un tanto que nunca se ha llevado demasiado bien
la empresa tal y como lo conocemos, su artículo no haga ninguna referencia con la realidad), pero todos los que
una de cuyas señas de identidad es la al software libre, principal verdugo, llevan algún tiempo en este mundo
de disponer de una cuota de mercado para bien o mal, del antiguo modelo. admitirán que se esta produciendo un
superior al 90% (¿Microsoft es Micro- A mi entender, las razones de la cambio en la comunidad… y no preci-
soft sin su monopolio?). Y mi predic- muerte del sistema tradicional para samente a mejor.
ción tampoco cita exactamente a hacer dinero con el software son bas- Durante años se ha dicho que libre
“Microsoft”, sino que abarca más bien tante evidentes y las he expuesto en no era igual a gratuito, es decir que, a
a todo el modelo de negocio que sim- detalle a lo largo de mis artículos y no pesar de la pinta de hippies de sus
boliza, es decir, el del software propie- malgastaré este espacio ni el tiempo mayores gurús, siempre se ha insistido
tario de uso general. Por tanto, del lector repitiéndolas. Entre otros que era legítimo hacer dinero con el
incluyo en el mismo saco a Apple, motivos, porque lo que me preocupa software libre (siempre y cuando se
Adobe, Sun (estos últimos ya lo saben hoy es otra cosa. respetasen algunas sencillas reglas).
– y están tomando medidas) y todos Lo que me preocupa es la crisis del
▲
los ilusos que creen que aún pueden software libre, me preocupa la crisis Continúa en la página 91
UBUNTU 7.04
fice incluye todas las aplicaciones de
escritorio ofimáticas que se puedan
necesitar, como un procesador de
textos que es lo bastante sencillo
como para escribir una circular, pero
que asimismo contiene herramientas
lo bastante potentes como para
U
btuntu 7.04, “Feisty Fawn” tos de Firefox y contactos de mensa- hacerlo apto para la autoedición; un
(“El Cervatillo Vivaracho”) jería instantánea y los importa a programa para hojas de cálculo, sen-
es la última versión del Ubuntu durante el proceso de insta- cillo de aprender pero de gran poten-
popular Ubuntu Linux. Ubuntu es lación. También incluye un nuevo cia y con centenares de funciones;
célebre por su simplicidad, estabili- asistente para automatizar la insta- un programa de presentaciones con
dad y estilo. La espectacular acogida lación de codecs multimedia que no efectos multimedia; un programa de
por parte de la comunidad de esta vienen de manera predeterminada diseño para crear desde sencillos
distro la ha convertido en su corta con Ubuntu, permitiendo a los usua- diagramas hasta complejos objetos
vida en la distribución más instalada rios disfrutar de manera sencilla y 3D, animaciones y mucho más. Per-
y más premiada de toda la historia segura de música y vídeos. Descu- mite además abrir y compartir docu-
de Linux y la nueva versión promete brir y unirse a redes wireless es mentos con otros programas ofimáti-
covertirse en todo un éxito. automático con Avahi, un asistente cos como MSOffice, KOffice, Word
que permite a los usuarios compartir Perfect o StarOffice.
Lo que trae música, encontrar impresoras y
Ubuntu 7.04 “Feisty Fawn” trae lo mucho más. Software
mejor del mundo del código abierto Kernel 2.6.20 X.org X11 7.2 Gnome 2.18
al escritorio. Con esta sencilla y ele- ¿Por qué Ubuntu? Evolution 2.10 Firefox 2.0 Thunderbird
gante distribución se puede navegar Ubuntu es una distro desarrollada 1.5 GIMP 2.2.13 OpenOffice 2.2 AbiWord
2.4.6 Rhythmbox 0.10 Avahi 0.6.17
por la web, jugar a juegos, utilizar el por la comunidad, diseñada
Gstreamer 0.10 F-Spot 0.3.5 Ekiga 2.0.3
correo electrónico y crear documen- teniendo en cuenta estrictos paráme-
Apache 2.2.3 Samba 3.0.24 MySQL 5.0
tos de texto, hojas de cálculo, pre- tros de seguridad. Se instala rápido PostgreSQL 8.2
sentaciones y gráficos. La migración y, una vez en el disco duro, está lista
de Windows a Ubuntu o la comparti- para funcionar. Cuando arranca el Requisitos del Sistema
ción de ambos sistemas en una sistema, el usuario se conecta a un
misma máquina nunca ha sido más escritorio limpio y atractivo. La Procesador: Funciona en la mayoría de
los PCs basados en chips x86, tales
simple: la nueva versión de Ubuntu actualizaciones son sencillas y rápi-
como la serie Intel Pentium y AMD Ath-
ofrece una novedosa herramienta de das y su barra de tareas avisa
lon Memoria: 256 MBs de RAM mínimo
migración de Windows que reconoce cuando hay actualizaciones disponi-
Espacio en disco: 2GBs mínimo
marcas de Internet Explorer, favori- bles.
OSDir.com
OSDir.com
Figura 1: La versión 7.04 de Ubuntu permite ser ejecutado como Figura 2: La suite ofimática OpenOffice proporciona todas la herra-
Live DVD. mientas que se puedan precisar.
Ayuda y Soporte
Existe documentación y soporte de la
comunidad en: http://www.ubuntu.com/
support
RECURSOS
[1] Ubuntu Linux: http://www.ubuntu.
com/
[2] Portal de Ubuntu hispano: http://www.
ubuntu-es.org/
[3] Foros de Ubuntu: http://
ubuntuforums.org/
[4] Ubuntu Wiki: https://wiki.ubuntu.com/
Con la suite de comunicaciones esta herramienta libre de virus son [5] Kubuntu – derivado de Ubuntu, con
Evolution se puede recibir y enviar las búsquedas de mensajes, soporte KDE: http://www.kubuntu.org/
correo electrónico, crear calendarios para múltiples cuentas, filtrado de [6] Edubuntu – derivado de Ubuntu,
y administrar los contactos. Las correo basura, calendarios web, especial para colegios: http://www.
características más destacadas de soporte para dispositivos móviles, edubuntu.org/
OSDir.com
OSDir.com
Figura 3: Desde el escritorio Live podemos acceder a la instalación Figura 4: Existen miles de aplicaciones a disposición del usuario que
gráfica asistida. se pueden instalar con un solo clic.
INSEGURIDADES
Fetchmail Referencia Mandriva: MDKSA-2007:016 puntero de una función no iniciali-
Fetchmail es una utilidad de recuperación Referencia Red Hat: RHSA-2007:0018-10 zada, el cual puede crear una vulnera-
y reenvío de correo remoto. Referencia Slackware: SSA:2007-024-01 bilidad de seguridad para kadmind.
Se encontró un fallo de denegación de • CVE-2006-6143 / MITKBR5-SA-2006-
servicio cuando se ejecuta en modo multi- krb5 003: la capa GSS-API podría fallar al
drop. krb5 es una implementación de un sis- inicializar algunos punteros de salida,
Un servidor de correo malicioso podría tema de autenticación Kerberos. haciendo que los que llaman intenta-
enviar un mensaje sin encabezamiento Se encontraron varios errores en las ran liberar punteros no inicializados.■
que podría hacer que Fetchmail se colgara librerías Kerberos5 y en otras herramien- Referencia Gentoo: GLSA 200701-21
(CVE-2005-4348). tas relacionadas. Estos fallos han sido Referencia SUSE: SUSE-SA:2007:004
Se encontró un fallo en la manera en la corregidos, pero en versiones no actuali-
que Fetchmail usaba encriptación TLS zadas potencialmente podrían ser usadas X.org
para conectarse a hosts remotos. por atacantes remotos para que el sistema X.org es una implementación de código
Fetchmail no suministra ningún modo se colgara o se ejecutara código arbitrario abierto del Sistema X Window. Propor-
de uso de encriptación TLS y no en kadmind. ciona la funcionalidad de bajo nivel sobre
autenticaría conexiones de protocolo POP3 • CVE-2006-6144 / MITKRB5-SA-2006- la que están diseñadas las interfaces de
adecuadamente (CVE-2006-5867-9). ■ 002: la librería RPC puede llamar a un usuario gráficas habituales.
iDefense informó de tres fallos de des-
POLITICAS DE SEGURIDAD DE LAS DISTRIBUCIONES MAYORITARIAS bordamiento de entero en las extensiones
Distribuidor Fuente Seguridad Comentario X.org Render y DBE. Un cliente malicioso
Debian Info:http://www.debian.org/security/ Los avisos de seguridad actuales se in- autorizado podría explotar este problema
Lista:http://www.debian.org/debian-security-announce/ cluyen en la página de inicio. Los avisos
Referencia:DSA-…1) se proveen como páginas HTML con
causando una denegación de servicio (el
enlaces a los parches. Los avisos también sistema se cuelga) o potencialmente per-
incluyen una referencia a la lista de mitiendo ejecutar código arbitrario con
correo. privilegios de superusuario en el servidor
Gentoo 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
X.org (CVE-2006-6101, CVE-2006-6102,
Lista:http://www.gentoo.org/main/en/lists.xml seguridad de Gentoo enlazan desde la CVE-2006-6103). ■
Referencia:GLSA:… 1) página principal. Los avisos se presentan Referencia Gentoo: GLSA 2007-01
en HTML con códigos para fusionar las Referencia Red Hat: RHSA-2007:0003-3
versiones corregidas.
Referencia Ubuntu: USN-403-1
Mandrake Info: http://www.mandrakesecure.net Mandrakesoft posee su propio 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 Squid
avisos de seguridad y referencias a las Squid es un servidor proxy web de código
listas de correo. Los avisos son páginas
abierto. Se descubrió una vulnerabilidad en
HTML,pero no contienen enlaces a los
parches. squid que podría ser explotada remota-
Red Hat Info:http://www.redhat.com/errata/ Red Hat archiva los fallos de seguridad mente mediante el uso de una URL ftp://
Lista:http://www.redhat.com/mailman/listinfo/ bajo lo que denominan erratas. A especial (CVE-2007-0247).
Referencia:RHSA-… 1) continuación los problemas para cada
Se descubrió otra vulnerabilidad de
versión de Red Hat se agrupan. Los avisos
de seguridad se proveen como una
denegación de servicio en squid 2.6 que
página HTML con enlaces a los parches. permite a los atacantes remotos hacer que
Slackware Info:http://www.slackware.com/security La página de inicio contiene enlaces al el servidor se cuelgue causando una sobre-
Lista:http://www.slackware.com/lists/(slackware-security) archivo de seguridad de la lista de correo. carga external_acl_queue (CVE-2007-0248).
Referencia:[slackware-security]… 1) No existe información adicional sobre
seguridad en Slackware.
Adicionalmente, se ha corregido un fallo
Suse Info:http://www.suse.de/en/private/support/ Ya no existe un enlace a la página de en squid 2.6 para max_user_ip en
security/index.html seguridad tras un remodelado en el sitio ntlm_auth. ■
Parches:http://www.suse.de/en/private/ web de SuSE. Existe información en la Referencia Gentoo:GLSA 200701-22
download/updates Lista:suse-security-announce lista de correos y los avisos. Los parches de
Referencia Mandriva:MDKSA-2007:026
Referencia:SUSE-SA… 1) seguridad para versiones individuales de
SuSE Linux se muestran de color rojo en el Referencia SUSE:SUSE-SA:2007:012
sitio de actualizaciones generales. Referencia Ubuntu:USN-414-1
Contiene una corta descripción de la
vulnerabilidad que soluciona el parche. gtk2
1) Todos los distribuidores muestran correos de seguridad en el campo Subject.
El paquete gtk2 contiene el juego de
herramientas de GIMP (GTK+), una
librería para la creación de interfaces de ISC BIND 9.0.x, 9.1.x hasta 9.2.7, 9.3.0 formato en una URI udp:// no válida,
usuario gráficas para el Sistema Win- hasta 9.3.3., 9.4.0a1 hasta 9.4.0a6, 9.4.0b1 posiblemente una variante de CVE-2007-
dow. hasta 9.4.0b4, 9.4.0rc1 y 9.5.0a1 (sólo Bind 0017 (CVE-2007-0255).
Se encontró un fallo en la manera en la Forum) permiten que atacantes remotos Referencia Gentoo:GLSA 200701-18
que la función gtk2 GdkPixbufLoader() causen una denegación de servicio (cuel- Referencia Mandriva:MDKSA-2007:027
procesa entradas no válidas. gue) a través de un tipo de respuesta de Referencia SUSE:SUSE-SA:2007:013
Aplicaciones linkadas contra gtk2 consulta * (ANY) DNS que contiene múlti-
harían que el sistema se colgara si car- ples RRsets, los cuales desencadenan un Samba
gan un fichero de imagen malformado error de inserción (CVE_2007-0494). Samba es una aplicación servidor SMB
(CVE-2007-0010). Referencia Debian:DSA-1254-1 de código abierto.
Referencia Debian: DSA-1256-1 Referencia Mandriva:MDKSA-2007:030 Un error lógico en el código abierto
Referencia Red Hat: RHSA-2007:0019-3 Referencia Slackware:SSA:2007-026-01 de deferencia para smbd puede permi-
Referencia SUSE: SUSE-SR:2007:002 tir que un usuario autenticado agotara
Referencia Ubuntu: USN-415-1 Xine sus recursos en el servidor, tales como
Xine es una aplicación de reproducción memoria y CPU, abriendo múltiples
Bind multimedia. Una vulnerabilidad en la sesiones CIFS, cada una de las cuales
Bind, libremente disponible bajo licencia cadena de formato en la función errors_cre- normalmente engendrarían un nuevo
BSD, es un servidor DNS de código ate_window en errors.c en xine-ui permite a proceso smbd, enviando cada cone-
abierto. los atacantes ejecutar código arbitrario xión a un bucle infinito (CVE-2007-
Vulnerabilidades en ISC BIND 9.3.0 mediante vectores desconocidos (CVE- 0452).
hasta 9.3.3, 9.4.0a1 hasta 9.4.0a6, 2007-0254). El nombre de un fichero en la compar-
9.4.0b1hasta 9.4.0b4, 9.4.0rc1 y 9.5.0a1 XINE 0.99 permite a los atacantes remo- tición del servidor se usa como la
(sólo Bind Forum) permiten a atacantes tos asistidos por el usuario causar una cadena de formato cuando se configura
remotos causar una denegación de servi- denegación de servicio (la aplicación se un descriptor de seguridad NT a través
cio (denominado daemon crash) a través cuelga) y posiblemente ejecutar código del plugin afsacl.so VFS (CVE-2007-
de vectores inespecíficos que causan el lla- arbitrario a través de un fichero M3U deter- 0454).
mado “dereference a freed fetch context” minado que contiene una línea larga Referencia Debian:DSA-1257-1
(CVE-2007-0493). #EXTINF y especificadores de cadenas de Referencia Mandriva:MDKSA-2007:034
NOTICIAS DEL
KERNEL
Eliminación de Código que cuando remitió el parche a la man- vertir este driver al núcleo 53c700. Pero
El esfuerzo por eliminar código dañino, tenedora oficial, Pauline Middelink, no necesita el marco DMA, lo que conti-
sin mantener o inutilizado del kernel obtuvo respuesta y no se adoptó la núa causando regresiones en m68k,
sigue contra viento y marea. Se preve la modificación en el kernel. cosa en la que se está trabajando”. Si
eliminación de JFFS para la versión Peter Schlaf también utiliza el driver esta explicación será suficiente para
2.6.21 del kernel, a menos que se des- y ha estado usando una versión modifi- mantener vivo el driver, aún está por
cubra un grupo de usuarios descono- cada del código de Pauline para su ver.
cido que lo utilice. Lleva sin mante- soporte. En la lista de correos, Schlaf Otros drivers son menos problemáti-
nerse desde hace años y ha sido susti- ofreció encargarse del mantenimiento cos. Adrian remitió parches para elimi-
tuido por JFFS2 desde ese mismo de este driver y Pauline dijo que no nar los siguientes: BINFMT_IRIX,
periodo de tiempo. Jeff Garzik sugirió tenía ningún problema en cederle el FB_S3TRIO, SUN_AURORA y OAKNET,
desecharlo y remitió un parche, mien- privilegio. Asimismo, Mauro Carvalho y nadie los reclamó. En el caso de
tras que Andrew Morton, por su parte, Chehab dijo que se haría cargo de los S3Trio, Geert Uytterhoeven señaló que
no tiene nada que objetar al respecto, parches que se remitiesen para el dri- la escritura del nuevo driver genérico
por lo que parece un hecho consu- ver, ya que él es el mantenedor del sub- S3Trio ya estaba en marcha y que, por
mado. ¡Adios, JFFS! sistema V4L, por lo que parece que este tanto, no existía una verdadera necesi-
La eliminación de los drivers de driver ha sido rescatado de las garras dad de mantener la FB_S3TRIO. ■
sonido OSS ha estado en la lista de que- de la muerte en el último momento.
haceres de Adrian Bunk desde hace El driver VIDEO_PLANB también Nuevas Características
tiempo, y ya se han borrado unos cuan- encontró un nuevo mantenedor. Adrian A pesar de que parezca que lo único
tos a medida que más y más drivers remitió un parche para eliminarlo, pero que se hace es eliminar código viejo
ALSA consiguen funcionar al mismo Benjamín Herrenchsmidt se ofreció del kernel, en realidad se están aña-
nivel para el mismo hardware. DMA- voluntario para intentar arreglarlo. Por diendo nuevas características todo el
SOUND_PMAC y SOUND_ES1371 son su lado, Michel Lanners, el autor origi- tiempo. Andries Brouwere tenía que
los últimos candidatos en ser liquida- nal del código, expresó un gran interés leer un sistema de ficheros Minix
dos. Tanto Thomas Sailer como Kyle en ayudar con explicaciones del hard- versión 3 recientemente, pero quedó
Moffett han confirmado que ambos dri- ware y el código existente, aunque sorprendido al descubrir que ni la
vers pueden ser borrados y nadie se ha reconoció no tener tiempo de mante- versión 2.6.19 ni la última 2.6.20 lo
opuesto a la medida. nerlo él mismo. soportaba.
Adrian también ha intentado cargarse La supervivencia del driver Una rápida búsqueda reveló que
el driver VIDEO_ZR36120, pero en esta SCSI_AMIGA7XX está en vilo en estos Daniel Aragones ya había escrito un
caso se ha topado con algo de resisten- momentos. Adrián envió un parche parche para soportar el sistema de
cia. Resulta que Joe Feise utiliza el dri- para liquidarlo, pero Geert Uytterhoe- ficheros y, después de hacerle una
ver e incluso lo ha parcheado para fun- ven ofreció su asesoramiento diciendo limpieza a fondo, Andries lo remitió
cionar en su sistema doméstico, aun- que “existe un arreglo que permite con- a la lista del kernel para su inclu-
sión. Andrew Morton dijo que el par-
che parecía lo bastante inofensivo
La lista de correo del kernel de Linux comprende lo princi- como para ser incluido de inmediato.
pal de las actividades de desarrollo de Linux. El volumen Jiri Kosina ha resucitado el driver
del tráfico es inmenso, alcanzándose a menudo los diez
de ipwireless_cs 3G PCMCIA, de-
mil mensajes semanales. Mantenerse al día de todo lo que
sarrollado originalmente por Symme-
sucede en el desarrollo del kernel es casi imposible para
tric Systems, y lo ha portado al ker-
una sola persona.
nel 2.6 actual. Los autores originales
Sin embargo Zack Brown es uno de los pocos valientes
también participan en el depurado y
que lo intentan y a partir de ahora, podrá leerse lo último
de las discusiones y decisiones con respecto del kernel de
la mejora del código, tarea, por
Linux llevados de la mano de este experto. cierto, nada sencilla. El código en sí
viola reglas de estilo de programa-
Zack ha publicado un resumen online semanal llamado
“The Kernel Traffic Newsletter” durante cinco años. Linux
ción y no utiliza algunos recursos
Magazine te trae ahora la quintaesencia de las actividades intrínsecos del kernel, pero Jiri y el
del kernel de Linux del mayor especialista en el tema. resto de los desarrolladores creen
poder devolverlo a la vida y anun- sitivos proporcionan una conexión problema con un driver podría ejecu-
cian que un driver plenamente fun- de propósito general entre un orde- tar un script que realizaría una con-
cional estará listo dentro de poco. nador e instrumentos de laboratorio. sulta en el fichero MANTAINERS
Sascha Sommer ha implementado Nicolas Ferre ha modificado el para saber quién es el dueño correcto
un driver experimental para el lector código del driver ads7846 para del código y el estado del proyecto.
de tarjetas SD de Ricoh, disponible soportar el controlador de la pantalla Muchos desarrolladores han expre-
en portátiles como el Samsung P35 y táctil ads7843. sado su apoyo a la idea y Matthias
Dell X300. Samuel Thibaul está muy Parece ser que existen muchos más Schniedermeyer también ha sugerido
ilusionado con este trabajo y Pierre proyectos en marcha y mucha gente partir MANTAINERS en ficheros más
Ossman también encuentra fasci- se dedica a ir de aquí para allá inten- pequeños, tal y como se había hecho
nante el desarrollo. El driver de tando averiguar dónde está cada par- con el monolítico fichero de configu-
momento sólo soporta la lectura, es che y a quién preguntar. Sin ración antes de que apareciera KCon-
lento y presenta otros problemas, embargo, no parece haber ningún fig. Sin embargo, entre otros desarro-
pero Samuel ha sido capaz de utili- problema grave en el desarrollo. lladores, como por ejemplo, Andrew
zarlo con su X300. Morton, la idea no ha calado. Éste ha
David Brownell ha escrito un Eliminando el Spam con declarado: “en mi opinión, la manera
marco para drivers para el reloj en vger… Más o Menos más práctica de averiguar realmente
tiempo real de relojes integrados en Matti Aarnio está probando un técnica quién mantiene un driver es ejecutar
PCs, así como para los relojes inte- de filtrado gris para la lista de correo un git-whatchanged sobre él para ver
grados en otras plataformas. Esto no del kernel. Esto implica retrasar cada quién ha tocado qué”.
es algo íntegramente nuevo, ya que correo hasta cinco minutos, ya que los Mientras tanto, Leonard Norgard
ya existe un driver similar. Pero el servidores de correos legítimos inten- se ha interesado también en la auto-
trabajo de David tiene una serie de tarán reenviar el mensaje nueva- matización del análisis del fichero
características más extensible y un mente, mientras que la mayoría de los MANTAINERS y, con esto en mente,
interfaz de usuario estándar a través servidores de spammers se rendirán. ha remitido un parche para convertir
de SysFS. El problema es que sólo ha Las pruebas iniciales de Matti indi- las instancias de las líneas de estado
sido probado en x86 con ACPI y sin can una caída del 90% del spam “Orphaned” al más ortodoxo estado
HPET, y por tanto, podemos esperar enviado a la lista como resultado del de “Orphan”. Está por ver si los
una maduración difícil del código. cambio. Sin embargo, Matti predice scripts que leen el fichero MANTAI-
Philip Langdale ha escrito código que en unos 200 días, la mayoría de NERS serán reemplazados en un
para empezar a soportar las nuevas los spammers se aprenderán el truco y futuro próximo por git-whatchanged.
tarjetas flash SDHC (Digitalmente harán que sus mensajes sean reenvia- Mientras tanto, han habido cam-
Seguras y de Alta Capacidad). John dos, al igual que los servidores legíti- bios de mantenimiento reales. Aparte
Gilmore donó el hardware y, como la mos. Por tanto, avisa que su solución de la actualización de direcciones de
Asociación de tarjetas SD ha publi- sólo proveerá un breve respiro y que correos o de páginas web aquí y allá,
cado las especificaciones, el proyecto no es una mejora permanente. Martin Waitz ha abdicado del mante-
va viento en popa. El código no ha nimiento del proyecto kernel-doc
sido probado de una manera exten- Mantenimiento DocBook, dejando el trabajo íntegra-
siva, pero Philips declara no haber Richard Knutsson ha sugerido cam- mente en las manos de su co-mante-
perdido ningún dato en sus pruebas. biar ligeramente el formato del nedor, Randy Dunlap. Martin declaró
David Lopez ha remitido reciente- fichero MANTAINERS para incluir la no disponer de tiempo suficiente
mente un driver para soportar los variable de configuración actual para para dedicarse a ello, por lo que no
dispositivos de adquisición de datos cada proyecto listado en él. De esta tenía ningún sentido seguir listado
USB LabJack U3 y UE9. Estos dispo- manera, cualquiera que tuviera un como mantenedor oficial.
NOTICIAS
NOTICIAS
LA NUEVA
A JUGAR GRAN *COSA*
En vista de su rendimiento, posi-
blemente ya sepas que Vista no te
DE JIMBO
iba a servir para ver DVDs, pero si
pensabas que al menos ibas a
WALES
poder jugar, más vale que también
lo vayas olvidando.
Según un estudio publicado por
Phoronix, un sistema Linux con un
kernel 2.6.20 ejecuta mucho mejor
que el nuevo SO de Microsoft los
más populares juegos de acción de
los últimos tiempos. Para la
prueba se estudiaron dos de los
juegos más jugados: Enemy Terri-
tory y Doom 3. Ambos se esco-
gieron por existir versiones nativas
tanto para Linux como para Win- Jimmy Wales, el fundador de la
dows, y las pruebas se realizaron Wikipedia, ya está trabajando en su
sobre equipos de idénticas carac- de 20,30 FPS. Windows Vista con- siguiente gran proyecto: un busca-
terísticas de hardware con Win- siguió renderizar 15,20 FPS. dor para acabar con todos los busca-
dows XP (con Service Pack 2), Doom 3 se negó a funcionar en dores.
Windows Vista, Linux, Linux con Linux con WINE, por tanto la com- Según Wales, la búsqueda, algo
WINE y Linux con Cedega (la ver- petición en esta categoría se limitó intrínseco de Internet, en estos
sión de WINE customizada para a comparar Windows XP, Vista, momentos “está rota” y está rota por
juegos). Linux y Linux con Cedega. Lo sor- la falta de libertad, comunidad, res-
Windows XP superó amplia- prendente es que, a las dos resolu- ponsabilidad y transparencia. Wales,
mente a los demás contendientes ciones a las que se probó el juego, cuya animadversión hacia los gran-
ejecutando Enemy Territory a una los dos sistemas Linux batieron des motores de búsqueda tipo Goo-
resolución 640 x 480, alcanzando claramente a ambos sistemas Win- gle, Yahoo y similares, es algo que le
56,90 FPS (fotogramas por dows: a una resolución de 800 x viene de antiguo, propone desde el
segundo). Windows Vista fue 600, la versión nativa para Linux sitio de su nuevo proyecto, Wikia
último con un decepcionante 32.20 se ejecutó a 12,90 FPS, mientras Search, un modelo basado en tecno-
FPS. Sin embargo, ejecutando que con Cedega se llegó a los 13 logía wiki y administrado por huma-
Enemy Territory a una resolución FPS. XP alcanzó los 11,60 FPS y nos, lo que recuerda a su anterior
de 1024 x 768, el ganador fue sor- Vista se quedó en 9,40 FPS. gran opus.
prendentemente Linux con WINE, A una resolución de 1024 x 768, A pesar de que estas cosas se han
alcanzando 33 FPS. De nuevo Vista las versiones para Linux intentado en el pasado (y fracasaron
fue último, sólo pudiendo alcanzar empataron entre sí, superando a – véase, por ejemplo, el Open Direc-
22,10 FPS. las versiones para Windows, con- tory patrocinado por AOL y parte del
Ejecutando Enemy Territory a siguiendo ejecutar 8,60 cuadros proyecto Mozilla), el wikipedista
una resolución de 1280 x 1024, de por segundo. De nuevo Vista fue el jefe parece convencido de que su
nuevo XP superó a los otros tres farolillo rojo de la competición, idea calará y obtendrá la masa crí-
sistemas con 21,70 FPS. Sin sólo pudiendo renderizar 6,10 FPS. tica necesaria de los usuarios para
embargo, a esta resolución la cosa Wow. que prospere.
estuvo mucho más reñida: Linux Conclusiones del estudio: Que así sea.
nativo obtuvo una marca de 19,90 http://www.phoronix.com/scan. La búsqueda humana de Mr.Wales:
FPS y Linux con WINE empató con php?page=article&item=681&num http://search.wikia.com/wiki/
Linux con Cedega con un resultado =1 ■ Search_Wikia ■
NÚMERO MÁGICO
a las represalias lega-
les y Digg.com
intentó la misma
maniobra, eliminando
todo mensaje y bane-
ando a todo usuario
que mencionara la
ristra. La respuesta de
los usuarios fue
inequívoca, y en la
tarde del 1 de mayo
TODOS los mensajes
en la portada de Digg
mencionaban el
número de una
manera u otra. Poco
después a las 8 de la
mañana (hora espa-
ñola) del 2 de mayo,
Digg echó el cierre,
sacando el sitio de la
web “por razones téc-
nicas”. A las pocas
horas, el fundador de
Una ristra de 16 pares hexadecimales comercializan no se habían dig- Digg, Kevin Rose, publicaba en su blog
está extendiéndose como la pólvora nado a hacer, prefiriendo guardarse que volvía a abrir y que fuera lo que
por todo Internet en el momento de para una pequeña oligarquía su Dios quisiera, comentando que “[…]
escribir esto, y los sitios y blogs que Santo Grial con el objetivo de ins- después de leer centenares de artículos
se atreven a publicarlo están siendo taurar un nuevo monopolio sobre y miles de comentarios, lo habéis
acosados por los lobbies disco/cine- los medios de entretenimiento y dejado claro. Preferís que Digg muera
matográficos con innumerables car- discriminando deliberadamente a luchando antes de doblegarse ante una
tas de Cease and Desist, alegando la comunidad del software libre). empresa mayor”. El suceso llegó a las
que el numerito de marras infringe Como no podía ser de otra portadas la prensa generalista con artí-
su propiedad intelectual. manera, y repitiéndose la historia culos en Forbes y The New York Times
Pero, como en casi todo y como por enésima vez, la comunidad entre otros.
casi siempre, la industria llega hacker tardó muy poco en desen- ¿Hay una moraleja de lo anterior? De
demasiado tarde. El de 2 de mayo trañar la naturaleza de su celosa- hecho hay dos. Primero: Por un lado
del 2007, a las 8 de la mañana, una mente guardado secreto. ya es hora de que la industria de
consulta en Google utilizando como El autor de la hazaña, un hacker medios se de cuenta de que en esta
clave de búsqueda la cadena devol- que opera bajo el seudónimo de era, o juega limpio y le da a sus poten-
vía 28.000 resultados, a las doce de arnezami descubrió el 11 de ciales clientes lo que quieren sin
la mañana 34.000 y a las 18:00 casi febrero la clave, según sus propias trampa ni cartón, o la gente lo cogerá
60.000. palabras, “sin crackear, ni hackear, por sí misma y sin pedir permiso.
El número en cuestión es la clave sin siquiera tocar una sola línea de Y, segundo, si el objetivo de las
de procesamiento de los HD DVDs, código y sin ingeniería inversa”. redes sociales es darle el poder a sus
es decir, la piedra Rosetta que per- arnezami se limitó a estudiar dete- usuarios, nadie ha de extrañarse
mite romper el cifrado de los DVDs nidamente la memoria de su orde- cuando los usuarios esgriman ese
de alta densidad. Gracias a ella cual- nador mientras se reproducía la poder.
quiera puede escribir reproductores película “King Kong” en su Xbox. Post original que desató la controver-
para los nuevos DVDs de altísima Una vez conocida, la reacción de sia:
calidad, saltándose a la torera cual- la web fue espectacular y el código http://forum.doom9.org/showthread.
quier tipo de protección DRM y inmediatamente empezó a circular php?s=d9da68c11a88904641ba24b96ff9
abriendo este formato (y BluRay) a en blogs, foros y redes sociales. La 5a12&p=953036#post953036
los usuarios de Linux (cosa que sus Wikipedia prefirió retirar la página Kevin decide jugársela:
creadores y las empresas que lo dedicada a la secuencia por temor http://blog.digg.com/?p=74?
EL NEGOCIO
DEL SPAM
Los spammers cobran dinero real por sus dudosos servicios, y cientos de anunciantes están deseando pagar.
Os mostramos algunas técnicas innovadoras para controlar y contener el spam, incluyendo estrategias para
ralentizar spambots, impedir que los spammers consigan nuestra dirección y separar el spam del correo legí-
D
e acuerdo con el proveedor de correo electrónico Postini [1], de 524 millones
de correos que pasaron por este proveedor en todo el mundo en un periodo de
24 horas, el 88 por ciento era spam (345 millones de correos), incluyendo
2 millones de “ofertas especiales”, 650.000 planes para hacerse rico y 2 millo-
nes de correos con contenido sexual. Sólo 46 millones de correos legíti-
mos llegaron a su destino.
A pesar de los esfuerzos de los mejores expertos, el problema
del spam no remite. La mayoría de las organizaciones se
centran en contener el problema para evitar pérdidas en
tiempo de administración y productividad del usua-
rio final. En el tema de portada de este mes os
mostramos algunas de las últimas estrate-
gias para luchar contra el spam. Comenza-
mos examinando algunas técnicas para evi-
tar que los spammers consigan nuestra
dirección de correo, como primera medida.
A continuación veremos cómo podemos ale-
jar a los spammers de nuestro camino con
un tarpit. Revisamos también algunas apli-
caciones y servicios anti-spam, y describi-
mos una solución a medida consistente en
un filtro entrenable por el usuario que opera
desde el lado servidor.
Conocer al Enemigo
El origen del término “spam” no está com-
pletamente claro. El término se acuñó origi-
nalmente en Usenet, donde hacía referencia
a publicidad no solicitada. Cuando el fenó-
meno golpeó al correo electrónico, los usua-
EN PORTADA
Protección de direcciones................... 18
Tarpits.................................................. 23
Aplicaciones anti-spam....................... 25
Filtro Spam con IMAP.......................... 31
La Mejor Defensa
La industria informática ha desarrollado
Figura 1: Spamhaus mantiene una lista de los peores países en cuanto a spam, las peores todo un arsenal de estrategias para luchar
redes y los mayores spammers del mundo. contra el problema del spam. Las fuerzas
anti-spam se basan en herramientas
rios comenzaron a denominarlo UCE “…algunos países hacen poco por impe- como:
(Unsolicited Commercial Email) spam. dir que los spammers operen dentro de • Listas negras y listas blancas: Estas lis-
Hoy día, la mayoría de la gente deno- sus fronteras. Estos países se convierten tas contienen las direcciones de correo
mina a cualquier tipo de correo no solici- en paraísos seguros para las operaciones de spammers conocidos (listas negras),
tado simplemente spam. de spam que afectan a todo el mundo, y de remitentes legítimos y conocidos
El proyecto anti-spam Spamhaus [2] incluyendo a sus propios compatriotas. (listas blancas). Las listas blancas redu-
estima que 200 spammers generan el 80 Los países con el mayor número de cen la aparición de falsos positivos. Las
por ciento de todo el spam en los EEUU y spammers operando en sus redes suelen listas negras suelen ser poco efectivas,
Europa. Como las organizaciones spam- ser aquellos con poca o ninguna legisla- ya que los spammers suelen falsificar las
mers son generalmente grupos en lugar ción referente al spam”. direcciones del remitente.
de personas, Spamhaus supone que Spamhaus sitúa a EEUU como el país con • Listas negras y listas blancas basadas
campan por algún lado 600 profesionales la mayor población de spammers con en la IP: usan un método similar. Estas
del spam. Podemos encontrar el top ten mucha diferencia, aunque de acuerdo al top listas catalogan a los spammers a partir
de los spammers mundiales en la página ten de Spamhaus, se aprecia que países de su IP. Esta técnica fue útil cuando los
de Spamhaus [3]. como China o Rusia son también grandes relays abiertos eran los principales dis-
Aunque la mayoría de los usuarios centros de distribución de spam. Según una tribuidores de spam. Hoy día, las listas
desprecian al spam, muchas empresas
aún recurren a él. Una de las razones de
que siga existiendo es que los directores
de marketing no pueden resistirse a su
extremo bajo coste. Los spammers
cobran usualmente entre 100 y 200 dóla-
res (80 a 160 euros) por envío masivo. El
coste es tan bajo que las compañías pue-
den asumirlo sin afectar a sus presu-
puestos. Los spammers tienen un flujo
constante de clientes, incluso si los
correos se envían a direcciones descono-
cidas de manera indiscriminada.
Los spammers operan bordeando los
límites de la legalidad, a veces hacién-
dose pasar por negocios legítimos,
incluso cuando usan herramientas como
gusanos y virus para generar redes de
ordenadores secuestrados para sus Figura 2: Los intentos de engañar a los filtros anti-spam no son siempre tan obvios como en
sucios propósitos. Como dice Spamhaus, este caso.
FRENO AL SPAM
A veces, la mejor forma de evitar que nos llegue el spam es impidiendo riencia de una dirección de correo para que
los robots recolectores no la reconozcan.
que los spammers consigan nuestra dirección.
Efecto Sponts
POR TOBIAS EGGENDORFER
Los fabricantes del sistema Sponts, que
hemos investigado en este artículo, hacen
S
i alguien publica en la web su direc- Dos técnicas que hacen que los spam- referencia a un fenómeno llamado Efecto
ción de correo electrónico, los spam- mers ignoren una dirección son: Sponts. La teoría es que si un spammer fra-
mers inundarán su buzón con a) hacerles creer que la dirección es invá- casa a la hora de enviar un mensaje de
basura (Figura 1). El filtrado de la entrada lida y correo electrónico y recibe un mensaje de
requiere potencia de CPU y se corre el riesgo b) disfrazar la dirección para evitar que “usuario desconocido”, eliminarán la direc-
de perder mensajes legítimos. Hasta ahora, sea descubierta por los recolectores ción de su lista para mantenerla actuali-
el trabajo a la hora de proteger un sistema Este artículo examina ambas técnicas. zada.
contra el spam se ha concentrado en el reco- Vamos a comenzar con un estudio sobre el Los spammers utilizan programas conoci-
nocimiento y filtrado de los mensajes de dispositivo Sponts, una herramienta hard- dos como verificadores de direcciones para
spam que llegan. Otra solución, es conven- ware que envía un mensaje de “usuario des- validar las direcciones de sus listas. El verifi-
cer a los spammers de que nos dejen en conocido” al spammer, y terminaremos con cador toma una lista de direcciones de
paz, desde primera hora, nuestra dirección. una técnica automática para alterar la apa- correo electrónico, lee la parte del dominio,
comprueba si el dominio posee una entrada
SMTP Autenticado DNS MX (Mail Exchange – Intercambio de
Correo) y entonces se conecta a la máquina.
Una de las razones por las que existe la Hace diez años, los servidores abiertos A continuación , los spammers suelen
epidemia actual de spam se debe a que fueron prohibidos y se registraron en lis- seguir con el diálogo del protocolo SMTP
SMTP no tiene un sistema de autentica- tas negras. Una rápida visita a ordb.org hasta RCPT TO: o utilizan el comando SMTP
ción. Aunque han aparecido diversas revelará que actualmente hay aún 250.000 VRFY para comprobar la dirección.
sugerencias para mejorar la seguridad de servidores abiertos. El cambio del proto- Ambos comandos preguntan al MTA
SMTP, todas han fracasado porque restrin- colo SMTP afectaría al menos a unos 25 (Mail Transfer Agent – Agente de Transfe-
gen o deshabilitan algunas funciones de millones de servidores de correo electró- rencia de Correo) para ver si conocen la
SMTP, incluyendo algunas tan triviales nico de todo el mundo, y a muchos más dirección y si es responsable de ella. Si es
como el reenvío de correo, una función clientes, que tendrían que ser actualiza- así, el MTA devolverá un OK en el diálogo
que es tan imprescindible como el desvío dos. SMTP, y en el caso de que no lo sea, devol-
de una llamada en el mundo de la telefo- Además, las soluciones son bastante verá un mensaje de error. El verificador eva-
nía. Al mismo tiempo, las sugerencias inefectivas. El ochenta por ciento de todos luará la respuesta y marcará las entradas
hacen uso de estándares competentes, los dominios que poseen una entrada SPF que hayan producido un mensaje de error
algunos de los cuales están protegidos (Sender Policy Framework – Marco de como entradas inválidas.
por patentes. Política de Envío) en sus registros DNS Aquí es donde el Efecto Sponts podría ser
Aparte de las disputas empresariales y pertenecen a spammers. Por ello tendría útil, pero el dispositivo hace algo más com-
políticas sobre los estándares, los merca- sentido utilizar una entrada SPF como un plejo. Primero trata de detectar el spam en el
dos, el poder y la influencia, además de la criterio adicional a la hora de detectar el comando SMTP HELO, y lo hace investi-
inefectividad de las propuestas actuales, spam. Microsoft manifiesta que SPF fue gando la línea MAIL FROM:. Estos coman-
existe otra razón por las que estas solucio- diseñado para excluir a los spammers y dos son anteriores a RCPT TO: en el diálogo
nes tienen poca probabilidad de triunfar. hacer de SMTP un protocolo más seguro. SMTP (Figura 2). Si el software no está
seguro de que el remitente sea un spammer,
Desintegración de la Figura 1: El círculo vicioso del spam comienza con la publicación, por parte de la víctima, de su
Comunicación dirección de correo electrónico en un sitio web. Los Spiders recolectan la dirección y la envían
Estas consideraciones son sospechosas, así a los spammers. Éstos se encargan de enviar la “basura electrónica”, a través de los servi-
que tomamos dos dominios con bastante dores de correo, a las víctimas.
spam. Ambos recibían 30000 mensajes de
spam al mes y programamos un SMtarPit- tiempo, la dirección que eliminamos y la
based [1], un servidor de correo en minia- dirección que añadimos en Octubre. Fuera de Vista
tura en Perl, que parecía aceptar cada men- Encontramos dos efectos obvios. Primero, Nuestras pruebas han mostrado que simple-
saje entrante de un dominio. Sin embargo, el volumen de spam se incrementó rápida- mente añadiendo espacios en blanco a una
este servidor creó una trampa y rechazó mente en la nueva dirección. Después de dirección de correo electrónico puede ser un
cada mensaje del otro dominio, devolviendo unos cuatro meses, la dirección recibía tanto método de ofuscación efectivo y teórica-
un mensaje de “Usuario Desconocido” y spam como la dirección del grupo de control mente es seguro. Es difícil ocultar la direc-
registrando los resultados. y lo superó hacia el final de la prueba. ción de correo en el caso de que se tenga
Permitimos que el servidor de correo Segundo, la curva del spam de la dirección que publicar en la web. Sería más práctico
aceptara los mensajes de los dos dominios oculta es inversamente proporcional a ésta. reemplazar la información de contacto por
de prueba (Figura 3) durante tres meses. No Después de unos cuatro meses, el volumen una versión ofuscada (camuflada) cuando
hubo ningún incremento en el número de spam se redujo a la mitad respecto al del se sirvan los datos. La idea es que la direc-
medio de mensajes por día y ningún cambio grupo de control. Se esperaría que se redu- ción se introduzca y se almacene de forma
entre ambos dominios (Tabla 1). El dominio jera de nuevo en un par de meses cuando natural y que cuando se muestre, un filtro
cuyos mensajes eran aceptados recibió más los spammers obtuvieran CDs nuevos de proporcione la dirección con espacios en
correo al comienzo y a la finalización de la direcciones en las que ya no apareciese. blanco, es decir:
fase de pruebas, pero el dominio cuyos La eliminación de una dirección de un
correos fueron rechazados superó al otro sitio web tiene el mismo efecto que si se
durante el resto de la prueba. camufla. Algunos usuarios insertan nospam
La única explicación es la naturaleza arbi- en la parte local o en la del dominio de la
traria del spam. No apreciamos ningún dirección de correo electrónico. Para pro-
cambio significativo; ambos servidores de barlo, publicamos la dirección de correo
correo tuvieron la misma cantidad de tra- electrónico max.sample.nospam@exam-
bajo y no hubo ningún signo del Efecto ple.com y
Sponts. betty.sample@nospam.example.com, pero
recelosamente, configuramos el servidor de
Ofuscación correo para que aceptara y contara los
Aún teníamos esperanza en poder combatir correos enviados a
el spam ofuscando la dirección. Publicamos max.sample@example.com y betty.sam-
un par de direcciones durante once meses ple@example.com. La mayoría de los spam-
en diversas páginas web y las eliminamos mers obtuvieron la dirección de Betty elimi-
en Octubre de 2005. Para evitar confundir a nando el subdominio nospam, pero no lo
los spammers, les proporcionamos una hicieron en la mayoría de los casos con la Figura 2: El dispositivo Sponts se encarga de
dirección nueva para que pudieran mandar dirección de Max. Sin embargo, como algu- comprobar diferentes partes del protocolo
el spam. La Figura 4 muestra el volumen de nos spammers fueron capaces de enviar SMTP para ver si el mensaje es spam o no. Si
correo basura que llegó a la dirección de spam a Max, este método de ofuscación no se detecta el spam, entonces se envía un men-
control que estuvo en línea durante todo el es tan seguro como pudiera parecer. saje de “usuario desconocido”.
Figura 4: Cuanto más se publique una dirección de correo en un sitio web, más cantidad de spam se recibirá (amarillo). La dirección de las
barras rojas es eliminada de la web en octubre de 2005 y reemplazada por la dirección azul. El volumen de spam no se incrementa notable-
mente cuando la dirección se elimina de la web.
inclusión de espacios en blanco bajo nin- de espaciado en blanco (espacio en blanco, El único bloque que el filtro procesa es el
guna circunstancia. Afortunadamente, el tabulador, nueva línea) como separador. último, de modo que se puede estar seguro
carácter espacio en blanco es el carácter que Esto nos proporciona una solución para de que el filtro no dividirá ninguna dirección
se usa con mayor frecuencia en textos nor- determinar los límites a la hora de gestionar de correo. La expresión regular de la línea
males escritos en cualquier idioma europeo. los bloques. El filtro procesará cada bloque 68 busca la última palabra del límite y
La distribución de los caracteres probable- hasta el último espacio en blanco y añadirá el divide el búfer. Cualquier cosa que suceda
mente siga los mismos patrones en los fiche- siguiente bloque que se le pase a los resulta- tras la última palabra, la función la pasará
ros (X)HTML, si se utiliza cualquier variante dos. en la siguiente llamada en $leftover.
TARPITS
Un tarpit ralentiza el spam, reduciendo la efectividad de las armas del Mejorar el Mundo
Los tarpits de SMTP autónomos, como
spammer. POR TOBIAS EGGENDORFER. Smtarpit [2], están diseñados para liberar
Internet de los spammers, que en teoría
E
n la Red se pueden encontrar cosechadoras durante días, lo que prueba la deben caer atrapados al toparse con uno de
muchas direcciones de email, que efectividad de los tarpits HTTP. ellos. Por desgracia, los mailers masivos
los spammers pueden conseguir modernos suelen ser aplicaciones multita-
para futuras campañas de mailing utili- Spamming rápido rea o multihebra: abren varias conexiones
zando bots de recolección. Algunas vícti- Hacer spam sólo merece la pena si el paralelas a los servidores de correo. Si uno
mas contraatacan con la herramienta lla- spammer es capaz de conseguir la mayor de los objetivos es un tarpit, el bot pierde
mada “tarpit”. Un tarpit es un sitio web cantidad de direcciones email, en un corto esa conexión; sin embargo, esto no suele
generado automáticamente que sirve de período de tiempo y con el mínimo servir de nada, ya que un cliente puede
cebo y confunde a esos bots con una esfuerzo. En algunas ocasiones se ha suge- abrir una conexión a un servidor SMTP
complicada maraña de URLs sin sentido rido la idea de empezar a cobrar por cada desde cualquier high-port. De estos, hay
(ver Figura 1). email para combatir el spam; sin embargo, más de 64.000, y el mailer masivo puede
Cuanto más tiempo podamos mantener la muchos expertos opinan que el precio de enviar cualquier número de mensajes a
verdadera información escondida, más larga los sellos virtuales afectaría a los usuarios cada conexión.
será la lista de direcciones de tarpit. En cir- de correo legítimos. Así pues, cada tarpit sólo puede bloquear
cunstancias ideales, el bot terminará con una Al ralentizar la transmisión del spam, una de 64.000 conexiones posibles. El
lista llena de enlaces inútiles. Para conseguirlo, convertimos la computación que hay spammer aún puede utilizar maliciosa-
el sitio-cebo tiene que publicar más enlaces detrás en algo muy caro. En un caso ideal, mente todos los demás servidores de
por sí solo que cualquier website medio. las conexiones quedarían ralentizadas correo, y el daño que se la he hecho es irre-
Probé a lanzar una miniaraña (que desarrollé hasta tal punto en que dejaría de ser atrac- levante. El argumento de que suficientes
yo mismo) a lo largo de 23.000 páginas, y tivo para el spammer. Y eso es exacta- tarpits de SMTP distribuidos podrían conse-
determiné que cada página tiene una media mente lo que los tarpits de SMTP preten- guir el milagro, es fácil de desmontar.
de 6.4 enlaces nuevos. El tarpit típico publica- den conseguir. Hay tipos distintos para De hecho, para bloquear el 25% de las
ría 20 por página: el triple del valor medio. diferentes escenarios: algunos están dise- conexiones de correos masivos de spam, el
La única forma que tienen estos bots de evi- ñados para proteger un sitio específico, 25% de todos los servidores de correos ten-
tar la trampa es limitar el tiempo a emplear en mientras que otros se destinan a exiliar el drían que ser tarpits. Si asumimos una can-
cada dominio; pero definir un tiempo límite spam de Internet para siempre. Este grupo tidad aproximada de 25 millones de servi-
hace que el bot se detenga antes de haber ter- de héroes existen sólo para aceptar los dores de correo en todo el mundo, esto sig-
minado, así que el spammer no conseguiría correos de spam. La idea es hacer que el nificaría tener 7,5 millones de tarpits, una
recolectar todas las direcciones del site. Se registro de MX de un dominio apunte al situación claramente inverosímil.
podría decir que, cuantos más operadores uti- tarpit de SMTP, y publicar una enorme
licen tarpits, más difícil será la vida de los lista de direcciones de correo que nadie Herramientas de Bloqueo
spammers. use. Si todo se ciñe al plan, cada email de Spam
Las pruebas prácticas nos muestran que enviado a estas direcciones debería ser la mayoría de mailers masivos utilizan
estos programas son capaces de distraer a las spam. en estos momentos tiempos de espera
Figura 1: Los tarpits de HTTP están diseñados para engañar a las herramientas de recolección de direcciones en sitios web. Las trampas bien
preparadas pueden enredar a los bots en una maraña de enlaces improductivos.
CARRERA
CONTRA EL SPAM
BMW AG
Los filtros de spam pueden ayudar a reducir la cantidad de basura
reccionar una cuenta de correo existente no
que se cuela en los buzones, ya que son bastante fiables y no presen- sería bastante, ya que la guerra contra el
spam comienza en el propio diálogo SMTP.
tan demasiados efectos secundarios. Te mostraremos lo que hemos Así que cada candidato necesitaba su propio
dominio y entrada DNS MX (véase el cuadro
encontrado al probar cinco aplicaciones antispam y dos proveedores titulado “Intercambio de correo en DNS”).
de servicios. POR TOBIAS EGGENDORFER
Cuatro Meses de Spam Fresco
Lo primero que necesitábamos era garanti-
F
iltrar el spam según entra en la red bados y optimizados para luchar contra el zar un suministro de spam continuo a direc-
permirte a los profesionales IT mante- spam conocido. Sin embargo, los spammers ciones múltiples. Para ello, registramos diez
ner el control, lo que incrementa la desarrollan constantemente métodos de dominios y publicamos un website con cua-
efectividad del filtro y mejora la productivi- ocultación con la intención de engañar a los tro direcciones de correo en cada uno de
dad del usuario, al reducir el exceso de filtros existentes, y probando continuamente ellos. Todos estaban online desde seis meses
correo. En números anteriores de Linux su correo basura contra las técnicas de fil- antes de que comenzara la prueba, y había
Magazine hemos perfilado algunos escena- trado. muchos links que los señalaban desde otras
rios basados en software para integrar el fil- Los spammers suelen abrir cuentas de páginas. Añadimos una selección de pala-
trado de spam en un servidor mail. En este correo en los principales proveedores para bras clave para despertar el apetito de los
artículo echaremos un vistazo a algunas comprobar si sus correos pasan el filtro o se bots de spam, y nos sentamos a esperar a
alternativas, como SpamAssassin, a estos fil- envían directamente a la basura. Algunos que mordieran el anzuelo.
tros convencionales. En particular, atendere- programas de envío masivo de correo llegan Cosa de seis meses más tarde, los domi-
mos especialmente algunas aplicaciones a integrar SpamAssassin [3] para hacer sus nios y las dos cuentas de webmail estaban
basadas en hardware, y examinaremos un pruebas antes de enviar nada. El spammer perfectamente preparadas; cada una de ellas
par representativo de filtros de proveedores modificará el texto hasta que el mensaje sea recibía suficiente correo y cantidades pareci-
de servicio de Internet. capaz de saltarse los filtros más populares. das de spam. Durante la fase principal de las
En definitiva, la media de detección de pruebas, cada dirección víctima recibía entre
El Entorno de Pruebas spam conocido no nos dice mucho acerca de 50 y 100 mensajes de spam. El servidor de
El método típico para probar los productos la calidad de las heurísticas de un filtro. Es correo para los dominios era una máquina
antispam es tomar un gran archivo de spam difícil saber cómo va a reaccionar un filtro con diez direcciones IP asignadas. Cada una
[2] y lanzar a los filtros contra él (véase el basado en datos históricos a la marea diaria de ellas se introdujo como el MX de un
cuadro “Técnicas de filtrado”). En el mejor de spam. Esto fue lo que nos impulsó a pro- dominio registrado. Utilizamos Sendmail
de los casos, esto nos dirá si el vendedor ha bar cómo se enfrentaban a spam descono- para recoger los mensajes; este software sim-
hecho los deberes, y si sus filtros están pro- cido, recién salido de Internet. Sólo con redi- plemente los pasa a un pequeño script Perl,
para empresas con más de mil cuentas de del sistema antivirus, lo dejamos tal
correo, y se supone que es capaz de manejar cual. El menú secreto nos dio acceso
más de 10.000. a algunas opciones de configuración
El sistema soporta clustering para medios muy interesantes; por ejemplo, es
que requieren más alto rendimiento. El hard- posible modificar el mensaje de
ware incluye un Dell Poweredge Server con saludo del SMTP, lo que permite a
una caja de rack de 19 pulgadas, y una placa los administradores ocultar la exis-
frontal diseñada por Symantec. Este buque tencia del dispositivo de las sondas
insignia de la empresa ostenta dos CPUs sencillas enviadas por atacantes.
Xeon con una velocidad de reloj de 3 Ghz. El filtro de spam está basado en el
Gracias a sus 2 GB de RAM y sus dos discos Antispam de Brightmail; Symantec
duros Raid 1 en espejo de 73 GB, se asegura compró la empresa en Junio de 2004.
suficiente capacidad de almacenamiento. El Entre otras cosas, emplea SPF, varias
doble suministro de potencia redundante listas negras y blancas, filtrado URL y Figura 2: Durante la fase de recolección (arriba), un
conlleva el hecho de que este paquete está Sender ID con propósitos de detec- servidor de correo recogió spam en 10 direcciones IP
claramente dirigido a un mercado profesio- ción. Además, Symanted emplea de 10 dominios distintos. Durante la fase de pruebas,
nal. El sistema operativo es Red Hat Enter- detección de firma y un algoritmo de se introdujeron los dispositivos como proxies SMTP
prise Linux 3.0. El login como root no está detección comparativo basado en para las direcciones.
previsto. Según Symantec, el sistema utiliza hash. Cada filtro individual devuelve
una versión mejorada de Postfix. un valor, que se emplea para puntuar la posi- 2,8 Ghz y 1 GB de RAM es todo lo que nece-
El interfaz de configuración está basado en bilidad de que un mensaje sea spam. sita para más de 1000 usuarios. El subsis-
web, vía HTTPS por el puerto 41433. La No hay forma de desactivar los distintos tema de disco duro es un SCSI Raid 1. Este
configuración inicial puede realizarse tanto a mecanismos de filtrado de modo individual. aparato también utiliza Red Hat Linux; sin
través de una consola en serie, como Sin embargo, es posible definir valores indi- embargo, lleva más software a bordo que el
mediante el teclado y la pantalla local. Lo viduales de puntuación de spam para grupos anterior. Un Secure Web Gateway (“Gateway
único que configura es el nombre del host y de usuarios (definidos en un servidor de red seguro”) venía preinstalado en el dis-
el medio de red. Tanto la clave de licencia LDAP). positivo con el que probamos (este producto
como la dirección del filtro (de entrada o de En nuestras pruebas, el sistema Symantec está disponible individualmente y no lo
salida) utilizan el interfaz web. El técnico de consiguió puntuar en lo más alto en cuanto a tomamos en consideración en nuestras prue-
Symantec rebuscó en su sombrero de copa y falsos positivos, pero identificó menos de un bas).
conjuraron un menú secreto presionando el 90% del spam. Esto significa que, más o De nuevo, este aparato de McAfee emplea
atajo de teclado [Shift] + [A] en el menú Set- menos, un 10% de spam consiguió cruzar la la consola local para la configuración inicial,
tings (ver Figura 3). “verja”. pero también soporta un método basado en
web que utiliza un cable para conectarlo con
Menú secreto el cliente. HTTPS se emplea nada más como
El técnico activó la opción Rapid Release McAfee Secure Content protocolo de transporte; del lado del cliente,
(“Lanzamiento rápido”) para el filtro antivi- Management Appliance 3200 necesitararemos también un programa
rus; según nos contó, esta opción es estándar McAfee trabaja también con Dell. Este dispo- cliente de Java, o bien lanzar un applet en el
para otros clientes. Dado que nosotros no sitivo de McAfee es algo así como el her- navegador. Éste tardará un poco más que en
estábamos interesados en la funcionalidad mano pequeño del de Symantec: un Xeon de renderizar una página normal de HTML.
Con todo, el interfaz de Java era bastante
perezoso y parecía responder más despacio a
Dispositivos de seguridad la interacción del usuario que cualquier otro.
Todos los aparatos que hemos probado incrementa la posibilidad de un bug, y Por desgracia, el cliente del programa tam-
incluyen la palabra “seguridad” en sus por lo tanto la posibilidad de que apa- poco mejoraba gran cosa el trabajo.
nombres; sin embargo, algunos nos rezca un agujero de seguridad.
Para hacer funcionar el antispam de Mc-
dejaron preocupados, ya que usaban
Uno de nuestros deseos incumplidos Afee, se necesitará un CD de activación. Para
HTTP abierto para las comunicaciones
era la configuración para soportar admi- ello deberemos bajarnos la imagen del
servidor-cliente; u ofrecían un revoltijo
nistración local a través de la consola archivo (son sólo un par de megas) de la
de Javascripts, de aspecto tentador,
(como la posibilidad de desactivar el página de inicio de la compañía, quemar la
como interfaz web. ¿No había cierta
servidor web y otros servicios remotos). imagen en un CD e insertarlo en la disque-
norma para los sistemas de seguridad
que decía algo sobre reducir los servi- Esta posibilidad da al usuario la capaci- tera del dispositivo para leer el CD. En lugar
cios al mínimo y mantener el software dad de optar por un menor riesgo de de este sistema tan complicado y poco intui-
tan simple como fuera posible? Los fil- seguridad a cambio de una menor tivo, sería más fácil y comprensible para el
tros de spam son piezas muy complejas comodidad. El hecho de que algunos usuario simplemente bajarse la imagen ISO
de software. Añadir un interfaz web para fabricantes ni siquiera permitan que el directamente mediante el interfaz web. Y
contentar al usuario con gadgets y tru- usuario configure las reglas del filtro de sería más fácil todavía permitir al dispositivo
cos equivale a incrementar su vulnerabi- spam demuestra cuánto valoran los
contactar directamente con el site de McA-
lidad. Cada línea de código de más conocimientos de sus clientes.
fee.
configurada para interrumpir el proceso de En nuestras pruebas, la Sponts Box se con- bajo a un proveedor de servicios. Expurgate
arranque si no se encontraba el teclado. figuró para responder con un User unknown se encarga de proveer de filtrados externos
Afortunadamente, nos dimos cuenta rápido (“Usuario desconocido”) al spam que se de spam. La empresa encargada es Eleven,
del origen del error. recibe. Gracias a ello, el servidor de correo no una compañía alemana. Los clientes sólo
recibirá ningún mail de spam (excepto los configuran el registro MX de sus dominios al
Un Interfaz Claro que pasen el filtro, claro). Es por esto que fui- servidor de correo de Expurgate. Para poder
El interfaz del sistema de usuario está bien mos incapaces de comprobar el índice de utilizarlo, tendremos que configurar cuatro
diseñado; la función de ayuda interna sirve detección. Aunque el dispositivo registra los MX con la misma prioridad. Cada uno de
realmente de ayuda. La capacidad de alma- intentos de conexión, este valor no sirve de estos nombres de host apunta a diversas
cenar mensajes temporalmente en la Sponts ayuda, ya que algunos spammers abren direcciones IP en varias subredes, implemen-
Box y después redireccionarlos al correo conexiones para probar las direcciones tando así una redundancia a través del
interno a través de la opción Replay también email. La Figura 4 muestra una tasa de detec- balanceo de carga round robin de DNS. La
es útil. La caja crea, además, un servidor ción que hemos extrapolado, gracias a los redundancia es una ventaja importante de
POP3 para mantener activo el servicio de valores comparativos con otros dominios. los proveedores de servicio, en comparación
correo, en caso de un apagón del servidor Las pruebas de ham revelaron que Sponts con una solución basada en un dispositivo.
interno. Box es más agresivo de la cuenta por defecto: Los filtros antispam de Eleven se benefi-
La Sponts Box emplea dos métodos espe- con un índice de falsos positivos del 18%, cian del hecho de proteger múltiples servido-
ciales para la protección antispam: el Sponts esta caja se cae al final de la tabla. res de correo, lo que implica estar en con-
Effect (“Efecto Sponts”) y el análisis del tacto con numerosos mensajes de spam. El
tiempo de transmisión SMTP. Además de Expurgate servicio calcula checksums para todos los
esto, el sistema incluye un número de técni- En lugar de comprar un dispositivo, actuali- mensajes entrantes y los emplea para com-
cas de filtros estándar; todas se pueden con- zarlo regularmente y gestionar el sistema por parar los correos entre sí. Si un checksum
figurar y personalizar de forma individual. nuestra cuenta, podemos subcontratar el tra- aparece con mayor frecuencia que el valor
Slade, Fotolia
CLASIFICANDO
LA BASURA
Vamos a mostrar una solución a medida para mover el spam a una en la mayoría de las distribuciones Linux,
dejará el mensaje en un directorio que
carpeta y añadirle a SpamAssassin nuevos identificadores de spam. dependerá de su clasificación como spam, la
cual se encontrará registrada en la cabecera.
POR MATTHIAS JANSEN
Como característica de aprendizaje, se va a
crear una carpeta especial para los mensajes
M
uchos programas de correo elec- agente de entrega Maildrop y SpamAssas- que los usuarios hayan marcado como spam
trónico incorporan filtros antis- sin. y también se mostrará un script que compro-
pam. Estos clientes de correo Este ejemplo está basado en el agente de bará el contenido de este directorio especial y
también proporcionan algún medio de transferencia de correo de código abierto alimentará la base de datos Bayesiana de
aprendizaje para este filtro, de modo que Qmail [1]. Qmail posee una interfaz simple SpamAssassin con esta nueva información.
puedan aprender los nuevos identificado- para manejar los mensajes antes de asignar-
res del correo clasificado como spam. Para los a los buzones. Para ello, puede ejecutar Clasificando con Maildrop
que esto ocurra, los clientes etiquetan un cualquier programa, como puede ser un El agente de entrega Maildrop fue original-
mensaje no solicitado como spam, o bien script en Perl. (Otros servidores de correo mente diseñado para el servidor de correo
lo mueven a una carpeta separada. Algu- electrónico ofrecen funcionalidades simila- Courier. El propósito de Maildrop es la imple-
nos servidores de correo se podrían benefi- res. Si se está utilizando un servidor dife- mentación de reglas de filtrado y de instruc-
ciar de las ventajas que aportan los siste- rente, habrá que consultar al fabricante o en ciones de entrega para los mensajes de
mas de filtrado de spam con aprendizaje, la documentación del proyecto). correo. Su distribución Linux probablemente
gestionándolos internamente. En este artí- En en este artículo, un mensaje de correo tenga una versión de Maildrop, pero si no la
culo se describe un sistema de filtrado a entrante va a ser filtrado por SpamAssassin. tiene, puede obtenerla Maildrop desde el
medida con aprendizaje, utilizando Perl, el El agente de entrega Maildrop, que se incluye sitio web de Courier [4].
Maildrop posee un sistema de Si se opta por una variante específica del ante construcciones complejas. El ejemplo
configuración central en el fichero usuario, habrá que crear un fichero del Listado 1 explota tan sólo una fracción
/etc/mail-drop.conf. Un parámetro de la /var/vpopmail/domains/sudominio.com/us del potencial de la herramienta.
línea de comandos permite especificar un er/.mail-default. Maildrop espera la entrada Las primeras doce líneas inicializan las
fichero diferente en caso de necesidad. Para del correo por stdin. Hay que tener en variables y cargan las variables externas de
indicarle a Qmail que llame a Maildrop para cuenta que no soporta, en memoria, men- Qmail (véase la Tabla 1). La comilla (`)
cada correo electrónico, se añade una sajes muy largos; así que realizará swap- cumple el mismo papel que en Bash; es
entrada | maildrop al fichero .qmail-default o ping a disco para ahorrarla. decir, asigna la salida del comando entreco-
al fichero de configuración de Maildrop: | millado a la variable en cuestión. Esto per-
maildrop /path parameter config file. Doctor Correo mite a los usuarios realizar llamadas a
El fichero .qmail-default para nuestro Maildrop soporta varias opciones para exa- comandos externos, vuserinfo en nuestro
dominio sería /var/vpopmail/domains/jan- minar el correo entrante. Entiende las caso, para averiguar el directorio de correo
sen-systems.de/.qmail-default. expresiones regulares, que facilita el filtrado del usuario.
Listado 1: /etc/maildroprc
01 # Fichero Global del filtro 25 `test ”$VHOME” == ””` 45 `echo ”INBOX.Spamverdacht”
maildrop 26 if ( $RETURNCODE == 0 ) >>
02 SHELL=”/bin/bash” $VHOME/.maildir/courierimapsub
27 {
scribed`
03 28 log ”No such user,
46 `echo ”INBOX.spamteach” >>
04 import EXT delivering to normal qmail”
$VHOME/.maildir/courierimapsub
05 import HOST 29 to ”$VPOP”
scribed`
06 30 }
47 }
07 logfile 31
48
”/var/log/maildrop.log” 32 # Crea la carpeta para el spam
49 if (/^X-Spam-Status: *YES/)
08 en caso de no existir
50 {
09 VPOP=”| 33 `test -d
”$VHOME/.maildir/.$SPAMFOLDER” 51 log ”Spam!!!”
/var/vpopmail/bin/vdelivermail
’’ bounce-no-mailbox” ` 52 # Intenta entregarlo en la
info -d $EXT@$HOST` 54 to
36 }
11 SPAMFOLDER=”Spamverdacht” ”$VHOME/.maildir/.$SPAMFOLDER”
37 else
12 LEARNFOLDER=”spamteach” 55 }
38 {
13 56
39 `/usr/bin/maildirmake -f
14 log ”EXT is $EXT” ”$SPAMFOLDER” 57 # por si algo sale mal con
23 } ”` 66 }
24 44 67 }
En las líneas 18 a 23, Maildrop realiza una Si no, el Listado 1 estipula que el correo el agente resuelve el alias y pasa el mensaje
comprobación para detectar los correos no debería descartarse, ya que Qmail no a Maildrop para una investigación posterior.
doblemente rebotados (véase la Figura 1), y resuelve los alias antes de entregarlos, así Maildrop comprueba ahora si el destino
los borra. La siguiente comprobación detecta que el mensaje no posee una entrada para dispone de una carpeta para el spam, y si
si Qmail (o Vpopmail [2], que está funcio- la variable VHOME. Esta es la razón por la no la tiene, la crea el script. Todo el mundo
nando por detrás) posee una dirección de que el script pasa el correo al agente de es susceptible de recibir spam en algún
correo válida para el mensaje entrante. entrega normal en las líneas 25 a 30; luego momento. Como algunos clientes de correo
Listado 2: spamreport.pl
01 #!/usr/bin/perl -w 25 if ($lastuser ne $currentuser) 53 }
02 # { 54 }
23 my $currentuser = 50 76 );
24 52 close(SP); 78 }
WWW.LINUX- MAGAZINE.ES
EVALUACIÓN • Nokia N800
MARAVILLAS WEB
Hace aproximadamente un año, Nokia sorprendió al mundo con una útil Internet Tablet, y la comunidad
Linux, ávida de nuevas tecnologías, quedó encantada con funcionalidades como la VoIP y el reconocimiento
de escritura en pantalla. Ahora, recién llegada a las tiendas, analizamos a su sucesora. POR NILS FAERBER
E
l sucesor del Nokia 770, que estéreo tienen buena parte de culpa de resultados. Si ésta es demasiado “rela-
acaba de aterrizar en las tiendas, ello, junto con la pequeña cámara inte- jada”, siempre podemos recurrir al gran (o
se llama N800, uno de los inte- grada, que rota y es retráctil. pequeño) teclado virtual en su lugar.
grantes de la serie N de Nokia. El chico La pantalla es fabulosa. Las ligeras fluc-
nuevo del barrio ha heredado muchas de tuaciones en las áreas blancas del color de Dos Slots de Expansión
las funcionalidades de su predecesor, la 770 han desaparecido casi por completo Nokia ha doblado los recursos de memo-
como una resolución de pantalla de en la N800. ria, tanto de RAM como de flash interna, y
800x400 y el diseño del teclado, perfecta- El reconocimiento de escritura en la ha añadido dos slots de expansión a esta
mente organizado y altamente funcional. pantalla táctil trabaja correctamente si verdadera ganga.
Por ejemplo, el conmutador en la parte escribimos cada letra, pero necesitamos Al contrario que en el 770, los slots
superior del dispositivo cambia el nivel una pulcra caligrafía para obtener buenos son totalmente SD compatibles. Uno está
de zoom en el modo navegador a la vez
que cambia el volumen si estamos Tabla 1: Nokia N800
usando el reproductor de audio. El fabri-
Descripción: Tablet Internet de mano, con OS 2007 (Linux) y pantalla táctil
cante ha mejorado la calidad del pro- CPU: TI OMAP-2420, 320MHz
ducto, y le ha dado una apariencia Memoria: 128MB SDRAM, 256MB Flash, dos slots para tarjetas SD/ MMC
mucho más exclusiva. Pantalla: TFT res. 800x480, 65,536 colores, 220 ppi
Interfaces: WLAN (IEEE 802.11b/ g), Bluetooth 2.0, Mini USB 2.0, Audio In/ Out para cascos
Cámara Retráctil, Magnífica Duración Batería: máximo 3,5 horas, 12 días en standby
Pantalla Dimensiones: 75x144x13mm (3x5.7x0.5 pulgadas)
En lugar del frágil soporte que se sumi- Peso: 206 gramos (0.5lb)
nistraba con el Nokia 770, el N800 tiene Elementos incluidos: Nokia N800, stylus extra, batería recargable de Li-polímero 1500mAh, tarjeta
un robusto pie metálico (véase la Figura MicroSD 128MB, auriculares estéreos, cargador de batería, funda, cable de
1). datos USB, guía rápida
Fuente: Nokia Phones http://www.nokiausa.com/phones
La carcasa es ligeramente más ancha
Precio: US$ 400 / EUR 400
que su predecesora: los dos altavoces
RECURSOS
[1] Maemo: http://maemo.org
[2] Compatibilidad de aplicaciones entre
las distintas versiones de Maemo:
http://maemo.org/downloads/
Figura 1: El precario soporte de su antecesor ha sido sustituido por un robusto pie metálico maemo_3_compatibility.html
en la N800.
ULTEO
El proyecto ultrasecreto de Ulteo pretende convertirse en la distribución de Linux más sencilla del mundo.
E
n los últimos años, muchos sistemas instalación inicial, el sistema buscará auto- El escritorio es un KDE 3.5.2, y la distribu-
Linux debutaron con la promesa de máticamente actualizaciones e instalará ción incluye las versiones de Firefox y
hacerlo más fácil para el usuario todo el software alrededor de un “meca- Thunderbird 1.5.0.8. La primera contribu-
común. El último de estos aspirantes al nismo de actualización gradual”. ción original es Ulteo General Daemon, un
escritorio es la misteriosa distribución cono- La siguiente versión alfa, en apariencia, servicio que localiza automáticamente
cida como Ulteo. alcanzará el segundo objetivo, al proveer de actualizaciones para los programas instala-
Ulteo es una creación del fundador de herramientas adicionales para una fácil dos. Ulteo sólo está disponible para siste-
Mandrake Gaël Duval, recientemente administración; pero los planes posteriores mas x86 durante la redacción de este artí-
expulsado de la corporación que ahora se de Ulteo están velados de misterio. Según culo, aunque Duval planea desarrollar
hace llamar Mandriva. Según Duval, Ulteo su website, “con cada nueva versión, espe- variantes para x86-64 en un futuro. Además
no es sólo un sistema amistoso para el ramos explicar una nueva parte de la visión de KDE, también se planean variantes con
usuario, sino que representa, de hecho, un de Ulteo con mayor detalle”. los escritorios de Enlightenment y Gnome.
auténtico paradigma nuevo que cambiará la Hemos echado un La tecnología que sostiene Ulteo era un
manera en la que concebimos Linux. vistazo a la ver- tema de intensa especulación hasta poco
sión Ulteo Sirius antes del lanzamiento de Alpha1 Ulteo, con
El plan Alpha1 para el mismo Duval propagando algunos de los
El proyecto Ulteo [1] evolucionó a partir de comprobar si rumores, sólo para no revelar nada.
la filosofía de que los usuarios emplean esta revolución El proyecto Ulteo prevé una generosa
demasiado tiempo en tareas como actuali- está lista para ayuda para las herramientas básicas, ade-
zar, administración del sistema y gestión de salir a la calle. más del sistema operativo básico. Al revés
aplicaciones. La solución, según Duval, es que en otras distribuciones actuales, Ulteo
pensar en el sistema operativo y las aplica- Presentación no utiliza un sistema de gestión basado en
ciones como un solo sistema. Ulteo emplea de Ulteo paquetes para el software; de hecho, el sis-
el término “sistema de aplicaciones” (appli- El sistema está tema de paquetes es totalmente invisible
cation system), para referirse al sistema ope- basado en para el usuario. En su lugar, el sistema
rativo junto a su constelación de aplicacio- kernel carga una imagen de archivo al arrancar,
nes esenciales. 2.6.15 y como Knoppix y otras distribuciones en
El objetivo del proyecto Ulteo es crear un utiliza CD, y monta la imagen para proveer un
sistema que: X.org sistema básico.
*provea de las características más nove- 7.0. Los desarrolladores de Ulteo se refieren
dosas y estables, capaces de actualizarse a él como un sistema “live HD”. En otras
automáticamente; palabras, afirman que esta distribución
*requiera muy poca, o ninguna, adminis- es algo parecido a un live CD que fun-
tración del usuario; ciona sobre el disco duro. Según las
*provea al lector de acceso a “potencial- notas de lanzamiento de Alpha1, el sis-
mente, cada aplicación que existe”. tema de aplicaciones al completo está
En este momento del desarrollo, no está montado como un bucle de una imagen
del todo claro si Ulteo podrá estar a la SquashFS de sólo lectura. “Las capas
altura de esta nueva visión tan audaz. de sólo lectura y la de sistema de
Según su website, el plan para la sólo lectura se unen gracias a
actual versión alfa es cen- UnionFS” [2]. El UGD conecta a
trarse en el primero de los servidores de Internet de
estos objetivos. Ulteo, y va integrando las actuali-
Tras la zaciones del sistema según están
disponibles.
Los únicos datos archivados dinámi-
camente en el disco son los del usuario.
La idea es que, si cada usuario individual
bluestocking, Fotolia
Cómo explorar tus directorios con un explorador de archivos 3D
PUNTOS DE VISTA
E
scribiendo el comando ls -R / en tar xfvz fsv-0.9.tar.gz menú File | Change Root, o pulsarse el
la consola, conseguiremos una atajo [Ctrl] + [N].
cascada tan lineal como confusa Para construir el binario necesitaremos FSV analiza los archivos y directorios
de información sobre el directorio. Al ver el paquete de desarrollador de Gtk, que se localizan bajo la raíz, lo que
el listado completo en pantalla, resulta gtkglarea, junto con sus dependencias, y puede llevar un tiempo considerable si
obvio que debe haber un sistema mejor el compilador gcc. A partir de este punto, hay muchos niveles de subdirectorios
para seguirle la pista a nuestros conteni- se siguen los pasos normales: (por ejemplo, el caso del directorio raíz
dos en el disco duro. Los exploradores de /).
archivos 3D como FSV, Xcruizer, TDFSB ./configure && make U Al pulsar con el botón izquierdo del
y 3Dfm emplean la tercera dimensión && sudo make install ratón sobre una carpeta, centraremos la
para ofrecernos una visión más intuitiva vista en ella. El botón derecho abre un
de nuestros directorios. Cuando esté listo, se escribe fsv en una menú contextual que se puede utilizar
ventana de terminal o ([Alt] + [F2]) en para expandir (expand) y ver todo el
FSV: Ladrillo a ladrillo el inicio rápido para lanzar el explorador. contenido, o todos los directorios locali-
FSV muestra los directorios como una pila El panel derecho de la ventana de FSV se zados bajo este nivel (expand all). Pro-
de ladrillos (ver Figura 1) o, para ser más utiliza para navegar en la vista 3D. El perties muestra una lista de las propieda-
exactos, los muestra como un árbol cons- punto de partida es siempre el directorio des.
truido con ladrillos apilados. Podemos desde el que se ejecutó el programa. Cuando abrimos un directorio, FSV
bajarnos el código fuente del explorador de Si se prefiere emplear una carpeta dis- apila su contenido en una pirámide
la página del proyecto [1]; deberemos escri- tinta como base del montón de ladrillos, sobre el botón de la carpeta. Para escon-
bir lo siguiente para descomprimir el tarball: puede modificarse el directorio raíz en el der todo esto de nuevo, basta con hacer
Figura 2: XCruiser muestra los directorios como galaxias (círculos Figura 3: TDFSB te ofrece una vista preliminar del contenido del
vacíos) y los archivos como planetas (círculos rellenos de color). archivo mientras navegas.
Figura 4: 3Dfm muestra la estructura del directorio como una espe- Figura 5: 3Dfm soporta personalización, a través de menús, si los
cie de tela de araña. El centro siempre es el directorio actual. colores no son de tu gusto.
cedimiento estándar para construir e insta- Sólo hace falta pulsar sobre un icono útiles, instalarlas puede resultar compli-
lar: para desplazarse a él. El actual siempre se cado. El actual Suse Linux no tiene
muestra en el centro de la ventana; si clic- paquetes de ninguno de nuestros candi-
./configure && make U kamos sobre él se mostrará una lista de los datos; Ubuntu, al menos, soporta XCrui-
&& sudo make install archivos que almacena (con los subdirecto- ser y TDFSB.
rios “colgando” de las líneas). El “padre” El soporte para otras distribuciones
Esto dejará el archivo de programa en /usr/ del directorio actual se muestra en rojo, suele ser difícil, y construir los explora-
local/bin. Bastará con escribir interface en mientras que los directorios ocultos son dores por cuenta propia nunca es senci-
una ventana de terminal o inicio rápido verdes. Para moverse a un directorio más llo, dada la cantidad de paquetes 3D
para lanzarlo (ver Figura 4). bajo en el sistema de archivos, se cambia la para Linux. De hecho, en nuestras prue-
La visión del sistema de archivos del pro- vista manteniendo pulsado el botón dere- bas no fuimos capaces con otro explora-
grama comienza a partir del directorio cho y arrastrando el ratón. dor, 3Dfile [6], ni sobre openSuse 10.1 ni
actual. Se emplean los típicos iconos de Si los colores por defecto no son los dese- sobre Ubuntu 6.0. ThreeDFM [7] es otro
carpeta para representar subdirectorios y ados, pueden personalizarse a través del ejemplo más de una aplicación 3D más
líneas para mostrar enlaces entre ellos. menú. La caja de diálogo (ver Figura 5) antigua que no funciona con las distribu-
está escondida tras el pictograma en la ciones actuales. ■
esquina de arriba a la izquierda de la ven-
Tabla 1: Atajos de
tana. Podemos utilizar la opción Filter (“Fil-
teclado de TDFSB tro”) para especificar a 3Dfm qué directo- RECURSOS
Tecla Función rios ocultos debe mostrar, por ejemplo.
[1] FSV: http://fsv.sourceforge.net/
[Esc] Cerrar programa Existe otro botón en la esquina izquierda
[2] XCruiser: http://xcruiser.sourceforge.
[T] Cambiar vista del nombre de la ventana. Al pulsarlo, abriremos una
del archivo (apagado, net
caja que permite acceder directamente a
rotando, fijo) [3] TDFSB: http://www.determinate.net/
cualquier directorio escribiendo a mano la
[C] Alternar cruceta encendida / webdata/seg/tdfsb.html
ruta.
apagada [4] SMPEG: http://www.lokigames.com/
[U] Desplazarse hacia arriba (cd ..)
[M] Representación del objeto
Conclusiones development/smpeg.php3
¿DÓNDE ESTÁ LA
DIFERENCIA?
Diff es capaz de encontrar las diferencias entre dos versiones de un archivo. Os mostramos cómo encuentra
los cambios y coincidencias de archivos sin afectar a los recursos del sistema. POR ANDREAS ROMEYKE
P
ara el usuario de la línea de Un método posible para convertir tier En aplicaciones prácticas, la mayor
comandos, descubrir las dife- en tor sería llevar a cabo los siguientes parte del archivo no presenta cambios
rencias entre dos archivos de cambios: tier -> ter -> tr -> tor. Aun- en las comparaciones. Por tanto, el pri-
texto es fácil: un simple comando como que una solución alternativa con mer paso es excluir las partes idénticas.
diff Version_1.txt Version_2.txt es todo menos pasos intermedios
lo que necesitamos. No obstante, si sería: tier -> ter -> tor.
hacemos un análisis más detenido, El menor número de
veremos que diff necesita una gran can- pasos necesarios para
tidad de memoria y algunos ingeniosos hacer el cambio nos pro-
algoritmos para comparar archivos. porciona una métrica
Este artículo investiga cómo consigue para evaluar el grado de
diff encontrar los cambios y coinciden- similitud entre dos cade-
cias en archivos de muchos megabytes nas. Esta métrica es cono-
sin perjudicar los recursos del sistema. cida como la distancia de
Levenshtein o distancia
Distancia de Edición de edición, y es la base
Cada cadena puede cambiarse por otra fundamental del método Figura 1: La visualización de la matriz revela las coinciden-
mediante inserción, borrado o reempla- que usa diff para hacer cias (ceros), incluso si la posición de los caracteres ha cam-
zamiento de caracteres individuales. cambios. biado entre las dos filas.
de
Figura 2: Los fragmentos coincidentes se muestran como diagonales Figura 3: Las conmutaciones se muestran como interrupciones en
de ceros que discurren en paralelo a largo de la diagonal central de la diagonales de ceros. Los caracteres que se han conmutado se locali-
matriz. zan con la línea que forma 90 grados respecto a la diagonal.
Para descubrir los cambios, incluso si byte de cada carácter. Por tanto, un - 2 * |LCS (X, Y )|, siendo X = x_1...
se han desplazado respecto del origi- cero representa un carácter que no ha x_n y Y = y_1... y_m.
nal, necesitamos organizar el texto en cambiado. A la coincidencia de mayor En una matriz así, los desplazamien-
una matriz como se muestra en la tamaño se le llama subsecuencia tos son fáciles de detectar: comparando
Figura 1. común mayor o LCS. otter con lotto (véase la Figura 2) los
Los números de la tabla hacen refe- La distancia de edición se puede deri- ceros (coincidencias) se localizan en
rencia a las diferencias entre los valores var de la longitud de la LCS aplicando una diagonal de la matriz (la diagonal
la siguiente fórmula: d(X, Y) = n + m que desciende de izquierda a derecha).
Listado 1: Búsqueda del
LCS Listado 2: Backtracking
01 sub lcs { 01 # run backtracking on 19 } else { # go upper
02 my $refmatrix=shift; lcs-matrix 20 $y—;
03 my $refxlst=shift; 02 sub backtracking_lcs { 21 }
04 my $refylst=shift; 03 my $refmatrix=shift; 22 # check if value is
05 my $m=scalar @$refxlst-1; 04 my $ref_xlst=shift; changed, then push to @lcs
06 my $n=scalar @$refylst-1; 05 my $ref_ylst=shift; 23 if ($actual_value >
07 foreach my $i (1 .. $m) { 06 my @lcs; $refmatrix->[$x]->[$y]) {
08 foreach my $j (1 .. 07 my $x=scalar @$ref_xlst 24 push @lcs,
$n) { -1; $actual_x;
09 if ($refxlst->[$i] 08 my $y=scalar @$ref_ylst 25 }
eq $refylst->[$j]) { -1; 26 }
10 09 while ($y>0 && $x>0) { 27 @lcs=reverse @lcs; #
$refmatrix->[$i]->[$j] = 10 my reverse because backtracking
$refmatrix->[$i-1]->[$j-1]+1; $actual_value=$refmatrix->[$x] 28 return \@lcs;
11 } elsif ->[$y]; 29 }
($refmatrix->[$i-1]->[$j] >= 11 my $actual_x=$x; 30
$refmatrix->[$i]->[$j-1]) { 12 if ( 31 # print out lcs matrix
12 13 32 sub print_lcs {
$refmatrix->[$i]->[$j] = ($refmatrix->[$x-1]->[$y-1] >= 33 my $ref_matrix=shift;
$refmatrix->[$i-1]->[$j]; $refmatrix->[$x-1]->[$y]) && 34 my $ref_xlst=shift;
13 } 14 35 my $ref_ylst=shift;
14 else { ($refmatrix->[$x-1]->[$y-1] >= 36 print “LCS: ‘“;
15 $refmatrix->[$x]->[$y-1]) 37 foreach my $i (@{
$refmatrix->[$i]->[$j] = 15 ) { # go left upper backtracking_lcs($ref_matrix,
$refmatrix->[$i]->[$j-1]; 16 $x—; $y—; $ref_xlst, $ref_ylst) }) {
16 } 17 } elsif 38 print $ref_xlst->[$i];
17 } ($refmatrix->[$x-1]->[$y] >= 39 }
18 } $refmatrix->[$x]->[$y-1]) { # 40 print “‘\n”;
19 return $refmatrix; go left 41 }
20 } 18 $x—;
Figura 4: Los palíndromos (orden inverso en los caracteres) se mues- Figura 5: En lugar de introducir las diferencias entre los valores de
tran como diagonales en la matriz que suben desde la izquierda a la carácter, es más eficiente escribir la longitud de las subsecuencias en
derecha. el parseo inicial.
Las conmutaciones (de las palabras de Los palíndromos (orden inverso en los
teir a tier del ejemplo, véase la Figura 3) caracteres) se revelan como secuencias Optimización del Tiempo de
se muestran como interrupciones en la de ceros que descienden desde la Ejecución
matriz con ceros formando un aángulo esquina derecha a la esquina izquierda El tamaño de la matriz depende de la
de 90 grados con respecto a la diagonal (la diagonal secundaria) en la matriz longitud de los textos. Si tenemos dos
principal a partir de sus centros. (véase la Figura 4). archivos de 10 KB, el número de compa-
HÁGASE LA LUZ
La oscuridad es amiga de los ladrones, pero el demonio Perl del artículo de este
mes ilumina los actos maléficos, sacando a la luz actividades ocultas y alertando
L
os usuarios normalmente no alcanzan a ver lo que hay riormente [3], el script arpcollect del Listado 1 fija en primer
por debajo de una LAN. Una actividad oculta puede lugar nuestra tarjeta de red a modo promiscuo. En este modo,
ser direccionar paquetes en el último tramo de una la tarjeta no sólo captura los paquetes dirigidos a ella, sino
ruta, lo que supone descubrir la MAC específica emparejada que le pasa todo paquete que encuentre al script de sniffing.
a una dirección IP. Esta actividad es del dominio del proto- Para ello se necesitan permisos de root, cosa que verifica
colo ARP. la línea 11. Si no los tenemos, el script simplemente mues-
Vigilar todas las direcciones MAC actualmente en uso tra un mensaje de error.
puede llevar a interesantes conclusiones acerca de quién usa La función lookupdev() llamada en la línea 16 devuelve
o abusa de la red de área local. el nombre del primer dispositivo de red disponible. Si sólo
Podemos recordar lo señalado en la revista anteriormente tenemos un NIC, éste debe ser “eth0”. En la siguiente lla-
[2] por mi compañero Charly Kühnast acerca de arpalert [4] . mada a open_live() se entra en un bucle infinito (el time-
El demonio monitoriza las peticiones ARP y las compara con out se ha deshabilitado con el valor -1), que lee los prime-
las direcciones MAC de una lista blanca. ros 128 bytes de cada paquete entrante, y entonces llama
Las direcciones MAC desconocidas hacen saltar una inmediatamente a la función callback.
alarma. Sin embargo, pueden generarse alarmas duplicadas Se pasa la función tanto a la dirección de red local de la
para un mismo incidente, dejando mucho que desear la docu- máscara de $user_data, como a la información en bruto
mentación incluida. Afortunadamente los módulos Net::Pcap del paquete $raw_packet.
y NetPacket::Ethernet de CPAN facilitan enormemente El módulo NetPacket::Ethernet decodifica la trama
las cosas a la hora de realizar un script en Perl Ethernet, y revela la dirección MAC de la fuente
para extraer la dirección MAC de los paque- en formato hexadecimal, en la clave hash
tes que circulan por nuestra LAN. src_mac.
Rose, el mapeador de base de datos Como la dirección no incluye aún los
orientada a objetos, nos propor- típicos dos puntos (:) cada dos dígi-
ciona una sencilla manera de tos, la línea 50 usa una expresión
guardar la información en una regular para insertar estos separa-
base de datos MySQL, que dores.
podemos revisar más tarde De la línea 62 a la 65, arpcollect
cuando tengamos tiempo. Si referencia las direcciones IP de
necesitamos determinar qué los paquetes para verificar si el
dispositivos han estado acti- paquete se originó en un dispo-
vos en nuestra LAN, digamos, sitivo de la red de área local.
en las últimas 24 horas, pode- Pueden descubrirse las direc-
mos simplemente realizar una ciones IP leyendo la información
llamada al script lastaccess extra del paquete Ethernet, que
(mostrado en el Listado 6), que se extrae por la función strip()
genera la salida presente en la del módulo NetPacket::Ethernet.
Figura 1. El paquete IP en bruto resultante se
desempaqueta con la función
Sniffing desde Root decode() del módulo NetPacket::IP, y
Al igual que el sniffer de red gráfico la dirección IP origen queda revelada por
capture ya revisado en esta sección ante- la clave hash src_ip.
Listado 1: arpcollect
01 #!/usr/bin/perl -w 16 Net::Pcap::open_live( $dev, 29 # Add separating colons
02 use strict; 1024, 1, 30 $src_mac =~
03 use Net::Pcap; 17 -1, s/(..)(?!$)/$1:/g;
04 use NetPacket::IP; \$err ); 31 my $edata =
05 use NetPacket::Ethernet; 18 my $db = WatchLAN->new(); 32
06 use Socket; 19 Net::Pcap::loop( $object, -1, NetPacket::Ethernet::strip($ra
07 use WatchLAN; \&callback, w_packet);
08 die “You need to be root to 20 [ $netaddr, $netmask ] ); 33 my $ip =
run this.\n” 21 ############ NetPacket::IP->decode($edata);
09 if $> != 0; 22 sub callback { 34 # Package coming from
10 my ( $err, $netaddr, $netmask 23 ############ local network?
); 24 my ($user_data, $hdr, 35 if ((inet_aton(
11 my $dev = $raw_packet) = @_; $ip->{src_ip} ) &
Net::Pcap::lookupdev( \$err ); 25 my ($netaddr, $netmask) = 36 pack( ‘N’, $netmask )
12 Net::Pcap::lookupnet($dev, @$user_data; 37 ) eq pack( ‘N’, $netaddr
\$netaddr, 26 my $packet = )) {
13 NetPacket::Ethernet-> 38 $db->event_add( $src_mac,
\$netmask, \$err) and 27 39
14 die “lookupnet $dev failed decode($raw_packet); $ip->{src_ip} );
($!)”; 28 my $src_mac = 40 }
15 my $object = $packet->{src_mac}; 41 }
cidos en la LAN, el script namedev lee arpemail usa la clase WatchLAN::Acti- propia columna y los valores en las
las entradas de su sección DATA línea a vity::Manager para buscar registros tablas referenciadas.
línea. El formato que usa es exacta- mediante una consulta SQL. El método arpemail “recuerda” los dispositivos
mente lo que espera el script original get_activity() de la línea 14 consulta la que ha etiquetado como sospechosos
arpalert [4] en su archivo de tabla activity, y el parámetro en una caché basada en archivo
configuración. with_objects asegura que la informa- Cache::File para evitar repetir los mis-
ción referenciada en las tablas device mos mensajes de aviso. Si existe una
Alarma en el Sector B ip_address también se extrae. Rose enu- entrada en la caché para la dirección
Tras ejecutar namedev, sólo los disposi- mera las tablas como t1 (activity), t2 MAC $mac, entonces el siguiente cons-
tivos desconocidos en la LAN van a (device) y t3 (ip_address), por lo que la tructor devuelve el valor falso:
tener un valor NULL en name dentro de consulta SQL:
la tabla device. Para determinar todas !$cache->get($mac) &&
las entradas de activity que referencian query => [ “t2.name” =>undef ] ($cache->set($mac, 0) || 1);
a entradas de device con el campo
name a NULL, debemos hacer un JOIN de la línea 19 refiere a la tabla device y En caso de que $mac sea desconocida,
de las dos tablas. Si necesitamos tam- la verifica en busca de entradas con un el método get de la caché devuelve
bién las direcciones IP de la entrada, valor NULL en la columna name. El falso, que al negarse se convierte en
estarán implicadas al menos tres tablas. resultado de esta consulta es una refe- verdadero, lo que da lugar a que sea se
Rose controla esto tras el escenario. El rencia a un array de entradas coinci- ejcute la sentencia siguiente al AND
script arpemail (véase el Listado 5) dentes de la base de datos, cada una de lógico.
notifica al administrador del sistema las cuales es un objeto del tipo Watch- El método siguiente set se usa para
siempre que una MAC previamente des- LAN::Activity, que proporciona méto- añadir el nuevo valor a la caché, y el
conocida se detecta en la tabla device. dos para consultar los valores de su siguiente ||1 hace que siempre
Listado 3: WatchLAN.pm
01 ########### 30 } $minute);
02 package WatchLAN; 31 ############## 53 $activity->device(
03 ############## 32 sub event_add { 54 { mac_address => $mac }
04 use strict; 33 ############## );
05 use Apache::DBI; # share a 34 my($self, $mac, $ip)= @_; 55 $activity->ip_address(
single DB conn 35 56 { string => $ip } );
06 use Rose::DB::Object::Loader; $self->{cache}->{“$mac,$ip”}++ 57
07 use Log::Log4perl qw(:easy); ; $activity->counter($counter);
08 use DateTime; 36 $self->cache_flush() 58 $activity->save();
09 my $loader = 37 if time() > 59 }
Rose::DB::Object::Loader->new( $self->{next_update}; 60 $self->{cache} = {};
10 db_dsn => 38 } 61 $self->{next_update} =
‘dbi:mysql:dbname=watchlan’, 39 ############## time() -
11 db_username => ‘root’, 40 sub cache_flush { 62 ( time() %
12 db_password => undef, 41 ############## $self->{flush_interval} ) +
13 db_options => { 42 my ($self) = @_; 63 $self->{flush_interval};
14 AutoCommit => 1, 43 for my $key ( keys %{ 64 }
RaiseError => 1 }, $self->{cache} } ){ 65 ##############
15 class_prefix => ‘WatchLAN’ 44 my ($mac, $ip) = split 66 sub device_add {
16 ); /,/, $key; 67 ##############
17 $loader->make_classes(); 45 my $counter = 68 my ( $self, $name,
18 ############## $self->{cache}->{$key}; $mac_address ) = @_;
19 sub new { 46 my $minute = 69 my $device =
20 ############## DateTime->from_epoch( WatchLAN::Device->new(
21 my ($class) = @_; 47 epoch => 70 mac_address =>
22 my $self = { $self->{next_update} - $mac_address );
23 cache => {}, 48 71 $device->load( speculative
24 flush_interval => 60, $self->{flush_interval}, => 1 );
25 next_update => undef, 49 time_zone => “local”, 72 $device->name($name);
26 }; 50 ); 73 $device->save();
27 bless $self, $class; 51 my $activity = 74 }
28 $self->cache_flush(); WatchLAN::Activity->new( 75 1;
29 return $self; 52 minute =>
devuelva un valor verdadero, sin nes de ancho de banda que se guarda ¿Qué Ha Estado Pasando?
importar el valor de set devuelto en ese en $events. Para ver qué dispositivos ha visitado
momento. Si el array referenciado por $events nuestra LAN en las últimas 24 horas, el
El comando grep de la línea 24 y aparece vacío, entonces el script de script lastaccess usa el módulo Date-
siguientes usa esta retorcida lógica y fil- vigilancia arpemail, al que se llama Time de CPAN para especificar un
tra las direcciones MAC guardadas en la como un trabajo de Cron normal, sim- punto temporal hace exactamente 24
caché de la lista de potenciales ladro- plemente finaliza. horas.
DESARROLLO • Perl: Monitorización LAN
Listado 5: arpemail
01 #!/usr/bin/perl -w undef ], 27 });
02 use strict; 14 sort_by => [‘minute’], 28 my $t = Template->new();
03 use WatchLAN; 15 ); 29 $t->process(
04 use Mail::Mailer; 16 $events = [ grep { 30 \*DATA, { events => $events
05 use Cache::File; 17 my $mac = }, $mailer
06 use Template; $_->device()->mac_address(); 31 ) or die $t->error();
07 my $cache = Cache::File->new( 18 !$cache->get($mac) && 32 close($mailer);
08 cache_root => 19 ($cache->set($mac, 0) || 33 __DATA__
“$ENV{HOME}/.arpemail”); 1); 34 [% FOREACH e = events %]
09 my $events = 20 } @$events ]; 35 When: [% e.minute %]
WatchLAN::Activity::Manager-> 21 exit 0 unless @$events; 36 IP: [% e.ip_address.string
10 get_activity( 22 my $mailer = new Mail::Mailer; %]
11 with_objects => [ 23 $mailer->open({ 37 MAC: [%
‘device’, 24 ‘From’ => ‘me@_foo.com’, e.device.mac_address %]
12 25 ‘To’ => ‘oncall@_foo.com’, 38 [% END %]
‘ip_address’ ], 26 ‘Subject’ => “*** New MAC
13 query => [ “t2.name” => detected ***”,
El administrador Rose lanza entonces los últimos valores. Sería preferible listaccess define la función time_diff
una consulta SQL que devuelve cada dejar este tipo de cálculos a la base de en la línea 40 para calcular, en formato
evento ocurrido desde ese momento, datos. Sin embargo, el objeto empaque- entendible, la diferencia temporal entre
ordenado temporalmente con la hora tador de Rose aún no soporta la agrega- los valores de segundos.
redondeada a minutos, según la ción de funciones como MAX() con La sustitución de texto de la línea 56
columna minute de la base de datos. GROUP BY. A tenor del actual ritmo de transforma las unidades de tiempo en
El hash %latest guarda sólo los últi- desarrollo, sin embargo, esta funciona- plural a unidades en singular si el
mos eventos de varias direcciones lidad puede haberse implementado resultado es una única unidad. El resul-
MAC. lastaccess sobrescribe continua- para cuando este número esté en los tado generado por lastaccess se parece
mente las mismas direcciones MAC con quioscos. mucho a la Figura 1. Podríamos exten-
der el script arpemail para fijar IPs
Listado 6: lastaccess estáticas para dispositivos específicos
de la tabla device, siguiendo el ejemplo
01 #!/usr/bin/perl -w 21 $name ||= “unknown
de arpalert [4], y enviar una alerta cada
02 use strict; (id=$id)”;
vez que un dispositivo con una IP está-
03 use WatchLAN; 22 printf “%23s: %s ago\n”,
tica use de repente una dirección dife-
04 my $reachback = DateTime $name,
rente.
05 ->now( time_zone => “local” 23
Como siempre, simplemente no hay
) time_diff($event->minute());
límites a la imaginación del desarrolla-
06 ->subtract( minutes => 60 * 24 }
dor ahora que el entorno de trabajo se
24 ); 25 ###############
ha establecido convenientemente. Y
07 my $events = 26 sub time_diff {
afortunadamente, podremos acceder a
WatchLAN::Activity::Manager-> 27 ###############
la información de la base de datos para
08 get_activity( 28 my ($dt) = @_;
nuestra inmensa alegría. ■
09 query => [ minute => 29 my $duration =
10 { gt => DateTime->now(
$reachback }, 30 time_zone => “local”
RECURSOS
11 ], 31 ) - $dt; [1] Listados de este articulo: http://www.
12 sort_by => [‘minute’], 32 for (qw(hours minutes linux-magazine.es/Magazine/
Downloads/28/Perl
13 ); seconds)) {
14 my %latest = (); 33 if(my $n = [2] “Una Mirada a ARP”, por Charly Küh-
15 for my $event (@$events) { $duration->in_units($_)) { nast, Linux Magazine, Número 26,
pág. 57
16 $latest{$event->device_id()} 34 my $unit = $_;
= $event; 35 $unit =~ s/s$// if [3] “Perl: Traffic Control”, por Michael
Schilli, Linux Magazine, Diciembre
17 } $n == 1;
2004, http://www.linux-magazine.
18 for my $id (keys %latest) { 36 return “$n $unit”;
com/issue/49
19 my $event = $latest{$id}; 37 }
[4] El script Arpalert original: http://
20 my $name = 38 }
arpalert.org
$event->device()->name(); 39 }
Kspread y Python nos ofrecen una forma simple de realizar facturas automáticas.
FACTURACIÓN
mos instalar con nuestro sistema de
Python no sólo puede ayudarnos en nuestro ordenador personal, paquetes favorito el programa Koffice
cuya versión sea superior a 1.6. Todas las
sino también en el del trabajo. Vamos a ver cómo sacar el máximo
versiones de Koffice superiores a 1.6
partido a KOffice 1.6 con Python y Kross, el nuevo sistema de scrip- dependen de Kross, por lo que nuestro
sistema de paquetes probablemente ins-
ting que KDE incorporará en la versión 4.0. talará Kross, así como todas las depen-
dencias asociadas.
POR JOSE MARÍA RUÍZ AGUILERA Kross es muy reciente. De hecho el API
para la versión 1.6.2 es realmente
pequeño. Algunos dirían que incluso
L
a gente de KDE se encontraba librerías, y por ello decidieron crear poco útil, pero aún así se le puede sacar
ante un dilema. Necesitaban Kross. partido. Se encuentra aún en fase de pro-
incorporar algún sistema de Kross permite emplear lenguajes totipo, la versión 2.0 de Koffice ofrecerá
scripts en la nueva versión de Koffice. script como Python o Ruby dentro de un soporte muchísimo más amplio con
No pensaban reinventar la rueda, exis- KDE. De hecho, será parte integrante de todas las funcionalidades que Koffice
tiendo tantos intérpretes y lenguajes KDE 4 y no sólo de Koffice 1.6, como puede ofrecer, de forma que podremos
con comunidades fuertes y miles de hasta el momento. Por lo tanto, en un hacer casi cualquier cosa con Kross.
futuro muy próximo será posible crear Por el momento Kross no es una libre-
Listado 1: holamundo.py scripts que saquen el máximo partido ría que podamos importar, por lo que
01 #!/usr/bin/env krossrunner de todo KDE 4. Pero eso será dentro de debemos ejecutar nuestros scripts dentro
02 algún tiempo. de Koffice empleando el mecanismo que
03 import krosskspreadcore Ahora vamos a concentrarnos en lo veremos más adelante. El código que
04 que podemos hacer ahora. Mejor aún, aparece como ejemplo en la próxima sec-
05 doc = en lo que podemos hacer ahora y que ción no puede ejecutarse en un intér-
krosskspreadcore.get(“KSpreadD nos pueda hacer la vida más sencilla. prete normal de Python.
ocument”) Como demostración del scripting de La próxima versión de Kross permitirá
06 Python a través de Kross vamos a crear su carga como librería en cualquier intér-
07 hoja = doc.currentSheet() un programa que genere facturas a par- prete de Python, lo que hará mucho más
08 tir de una base de datos, Python y una sencilla la ejecución de scripts.
09 hoja.setName(“Hola Mundo”) plantilla de factura.
10
API Actual
11 celda = hoja.cell(1,1)
Kross Como ya se ha dicho, la API de Kspread
12 celda.setText(“Hola Mundo”) ¿Qué necesitamos para poder emplear (ver [1]) actual es muy simple. Tanto que
Kross? Pues realmente, sólo necesita- sólo consta de 4 objetos y sus métodos:
• KSpreadCoreModule (representa a nos devuelve una lista con las hojas que método setText(), que nos permite alma-
Kspread) existen: cenar una cadena de texto. Pero esta
• Doc (representa a un documento) cadena es posteriormente interpretada
• Sheet (representa una hoja) >>> doc.sheetNames() por Kspread. Por tanto, podemos pasar
• Cell (representa una celda) [“Sheet 1”,”Sheet 2”,”Sheet 3”] como cadena de texto una fecha o un
El primero, de nombre más complicado, número. El método setValue() no intro-
realmente sólo lo emplearemos una vez En nuestros ejemplos emplearemos el duce una cadena de texto a no ser que le
y con su método get(). Sirve para invo- método currentSheet() porque nos vale pasemos una. Intenta insertar el dato tal
car la creación de una instancia de con la primera hoja. Una vez que tene- como es, no se interpreta nada.
Kspread: mos nuestra hoja almacenada en una Bueno, ya está bien de teoría. Veamos
variable, es posible acceder a una celda cómo podemos crear nuestros propios
>>> doc = krosskspreadcore.getU en particular con el método cell() del scripts y usarlos desde Kspread.
(“KSpreadDocument”) objeto Sheet. Pero, repito, tener la celda
>>> no es tener el valor que ésta guarda. Para Hola Mundo
ello debemos almacenar en una variable En el Listado 1 aparece el código que
La variable doc contiene ahora un el resultado de la llamada a cell(): escribirá «Hola mundo» tanto en el nom-
objeto que nos permite acceder al docu- bre de la hoja como en la celda (1,1) de
mento dentro de KSpread, que no será >>> hoja = doc.currentSheet() una hoja de cálculo. ¿Pero qué hacemos
otra cosa que una hoja de cálculo. Ésta >>> celda = hoja.cell(1,1) con él? Debemos indicarle a Kspread que
se compone de diferentes páginas (o lo cargue para que podamos ejecutarlo.
sheets) con un nombre. Estas páginas Las celdas están numeradas comen- Para ello debemos ir al gestor de Scripts
contienen a su vez celdas y las celdas zando por 1, pero por alguna decisión en el menú «Herramientas». Cuando lo
contienen valores. realizada por los desarrolladores de ejecutemos aparecerá una ventana muy
Kspread nos ofrece exactamente la Kspread es posible acceder a la celda 0, parecida a la que se ve en la Figura 1. En
misma jerarquía. Para poder llegar a que no es otra que la 1. Esto puede llevar ella podemos distinguir 3 secciones:
modificar el valor de una celda necesi- a algunos equívocos, así que en este artí- Scripts, Cargados e Historial (en mi caso
tamos primero acceder a un docu- culo asumiremos que las celdas, tanto en aparece en inglés). La sección Scripts se
mento, después a una página y por filas como en columnas, comienzan en refiere a una serie de scripts que se
último a la celda en cuestión. Cada 1. encuentran almacenados en un directo-
página está compuesta por una canti- Ya tenemos la celda de la primera rio especial. Además, vienen acompaña-
dad de filas y columnas, y una celda columna y la primera fila almacenada en dos de un fichero «rc» que da a Kspread
está identificada por su fila y su la variable celda, y ahora podemos acce- datos sobre el script. Estos scripts son
columna. der a su valor: cargados cada vez que Kspread se
El objeto Doc posee métodos para arranca.
operar con las páginas que contiene. >>> celda.setText(“Hola”) Pero a veces no queremos andar arran-
Con currentSheet() podemos obtener la >>> print celda.text() cando y apagando Kspread para probar
hoja que se encuentra seleccionada en “Hola” nuestros scripts, simplemente queremos
ese momento (que no es otra que la que >>> cargarlos, probarlos y descargarlos para
vemos), si queremos acceder a otra hoja volver otra vez a cargarlos. Este ciclo de
debemos emplear su nombre. Podemos El objeto Cell, que no es otro que el que trabajo es normal cuando se está traba-
obtener los nombres de las diferentes representan las celdas, puede almacenar jando en un script nuevo.
hojas con el método sheetNames() que dos tipos de datos diferentes. Tenemos el Pues con el gestor de scripts podemos
cargar y descargar scripts sin tener que y esquemáticas. Como cuando encontra- mínimo razonable para poder trabajar.
cerrar Kspread. Para ello, sólo tenemos mos una web sin diseño, sólo con lo Usaré la base de datos Postgresql porque
que pulsar en el botón con la carpeta y básico para poder ser llamada web. es la que me gusta, no quiero entrar a
seleccionar el script a cargar. Una vez Todos los negocios quieren tener facturas discutir si es mejor o peor que otras por-
cargado podemos ejecutarlo pulsando el impresionantes y profesionales con logo- que aquí lo importante es Python ;).
botón de la rueda dentada. Para descar- tipos y buena tipografía. Para poder acceder a Postgresql nece-
garlo debemos pulsar en el botón con la Existe otra posibilidad. Podemos hacer sitamos emplear alguna de las distintas
equis dentro de un círculo. La sección una plantilla de una factura, con logoti- librerías que existen. En mi caso emple-
Historial no es otra cosa que una lista pos y todo lo que el diseñador quiera aré pgdb (ver [2]). Me gusta porque tiene
con los últimos scripts ejecutados. poner. Cuando tengamos que generar pocas funciones y es muy básica:
Podemos copiar el código del Listado 1 una factura cargaremos ese plantilla y
y guardarlo en cualquier sitio (digamos rellenaremos los datos necesarios. >>> con = pgdb.connectU
/tmp) y cargarlo con el gestor de scripts Con Kspread, Postgresql, Python y (“127.0.0.1:facturas”)
de Kspread para probarlo. El resultado Kross podemos hacer esto de forma muy >>> facturas = con.cursor()
será el que aparece en la Figura 2. sencilla y en pocas líneas de código. >>> facturas.executeU
Nuestro programa recopilará los datos de (“select id,nombre,U
Un Generador de Facturas la base de datos Postgresql (podría ser apellidos,fecha from facturas”)
Imaginemos que tenemos algún sistema Mysql o cualquier otra), cargará una >>> foreach factura inU
que registra compras en una base de plantilla en Kspread y la rellenará. Poste- facturas.fetchall():
datos. Puede que sea una tienda online o riormente guardará el fichero en disco >>> print factura[0]
un programa de algún tipo. Una vez que duro y pasará a procesar la siguiente fac- 1
ya están reflejadas las compras en la tura. 2
base de datos debemos generar las factu- ¡Y todo esto con sólo ejecutar un 3
ras. script! >>> con.close()
Existen muchos sistemas para hacer
esto. Normalmente implican el empleo La Base de Datos En este breve ejemplo podemos ver en
de alguna librería de generación de fiche- Este ejemplo únicamente pretende ser funcionamiento todos los métodos de
ros PDF. El problema que surge es que ilustrativo, por lo que no voy a crear pgdb que vamos a emplear. La idea es
las facturas generadas suelen ser básicas todo un sistema de facturación. Pero sí el simple. Nos conectamos con la base de
Listado 2: kfactura.py
01 #!/usr/bin/env krossrunner 19 facturas.id=facturas_productos
02 import pgdb 20 .factura and
03 import krosskspreadcore doc.openUrl(“/tmp/factura.ots” productos.id=facturas_producto
04 ) s.producto and facturas.id=%s”
05 con = 21 % (factura[0]))
pgdb.connect(“127.0.0.1:factur 22 nombre = factura[1]+” 34 fila = 17
as”) “+factura[2] 35 for compra in
06 23 compras.fetchall():
07 facturas = con.cursor() 24 hoja = doc.currentSheet() 36
08 25 escribe(hoja,1,fila,str(compra
09 facturas.execute(“select 26 escribe(hoja,2,8,nombre) [2]))
id,nombre,apellidos,fecha from 27 37
facturas”) escribe(hoja,6,3,str(factura[0 escribe(hoja,2,fila,str(compra
10 ])) [1]))
11 def escribe (hoja, col,fila, 28 38
valor): escribe(hoja,6,4,str(factura[3 escribe(hoja,5,fila,str(compra
12 celda = ])) [3]))
hoja.cell(col,fila) 29 39
13 celda.setText(valor) 30 # Buscamos sus artículos escribe(hoja,6,fila,str(compra
14 31 [2]*compra[3]))
15 doc = 32 compras = con.cursor() 40 fila += 1
krosskspreadcore.get(“KSpreadD 33 compras.execute(“select 41
ocument”) facturas.id,productos.descripc 42
16 ion,facturas_productos.cantida doc.saveUrl(“/tmp/factura-”+st
17 for factura in d,productos.precio from r(factura[0])+”.ods”)
facturas.fetchall() : facturas_productos,productos,f 43
18 # Nuevo KSpread acturas where 44 con.close()
Nuestra Plantilla
La plantilla que emplearemos en nuestro
ejemplo ha sido diseñada sobre Kspread,
aparece en la Figura 3. No tiene nada
especial, es simplemente un fichero
Kspread vacío. Lo creamos, le damos for-
mato y lo guardamos en un directorio
conocido. Es recomendable cambiar el
formato de las celdas que vayamos a
rellenar para que sean de texto y que el
contenido se alinee con el fondo de la
celda. De esta forma el texto saldrá aline-
ado de forma correcta con el texto que
haya al lado. Además, me gusta guardar
este fichero como Template, plantilla, Figura 3: Nuestra plantilla de factura.
usando la terminación ots.
Una breve reseña. A pesar de que se plantilla que se ve en la Figura 3 cargado asignada. Los ficheros resultantes se
supone que tanto Koffice como Open- con OpenOffice muestra diferencias. guardarán con formato ods. Podremos
Office usan el mismo formato para guar- La plantilla incorpora, aunque no abrir estos ficheros con Koffice e
dar los documentos, las pruebas que he pueda verse, unas cuantas fórmulas, de imprimirlos o generar ficheros PDF. Por
realizado me demuestran que no son forma que se calculen ciertos valores, desgracia estas dos acciones aún se
totalmente compatibles. El fichero de por ejemplo el total a pagar. encuentran fuera del alcance de Kross.
Los ficheros tendrán el formato que
Script Final aparece en la Figura 4.
Conectaremos con la
base de datos y nos Conclusión
traeremos las facturas Los desarrolladores de Koffice no han
existentes y querido introducir en Koffice un soporte
pasaremos a conectar completo para Kross debido a que está
Kspread. Para cada planeado para la versión 2.0, no para la
factura cargaremos la actual, la 1.6. Aún así es posible realizar
plantilla de factura, scripts realmente útiles. Kross nos per-
nos traeremos los mitirá en KDE 4.0 programar scripts que
productos adquiridos afectarán a todos los componentes de
y los pondremos en KDE por lo que se abre muchas posibili-
las celdas dades para aquellos que quieren simplifi-
correspondientes. car su trabajo. ■
Cuando todos los
datos estén cargados, RECURSOS
guardaremos el
fichero con un [1] http://kross.dipe.org/old/
kspreadscriptingbook/
nombre que
dependerá del número [2] http://www.pygresql.org/
Figura 4: Una plantilla rellena. de factura que tenga
APUNTEN… ¡FUEGO!
Mientras que cron se mantiene fiel a su agenda, Incron supervisa los Las llamadas a Incrontab siguen la sintaxis de
Crontab: incrontab -e abre la tabla para su edi-
directorios y ejecuta comandos cuando se produce algún cambio. ción, incrontab -l muestra el contenido y
incrontab -r borra la tabla. El formato de
POR CHARLY KÜHNAST incrontab es muy simple. Cada línea contiene
tres entradas:
C
ron es un compañero constante de los Ruta, Evento, Comando ruta evento comando +
administradores de sistemas como yo. Incrond es un servicio y desaparece, quedán- parámetros
Mi crontab y yo hemos crecido juntos dose en segundo plano, tras su ejecución. Por
a lo largo de los años: Crontab se ha hecho supuesto, Incrontab es el elemento central. Cuando se produce un evento en una ruta
grande y yo he engordado. Quizás sea un sen- supervisada, Incron ejecuta el comando
timental, pero decidí que era el momento para correspondiente. La Tabla 1 muestra los even-
dejar a mi viejo amigo que se aventurara por tos que Incron puede supervisar. Cuando se
un territorio inexplorado con ayuda de Incron produce un evento, Incron establece los pará-
[1]. Esta extensión de cron utiliza una solu- metros listados en la Tabla 2 y el comando
ción basada en el disparo de eventos, en vez entonces puede utilizarlos para sus propios
de utilizar la agenda tradicional, supervisando propósitos. Si se modifica Incrontab, no hay
los directorios y ejecutando comandos cuando porqué notificárselo a Incrond, ya que analiza
se produce algún cambio. el fichero periódicamente.
Antes de comenzar a trabajar con Veamos un ejemplo. Cuando un usuario
Incron, hace falta tener un kernel 2.6.13 borre un fichero en el directorio /var/run/dae-
con el soporte Inotify incorporado y su mon, quiero que Incrond borre también el
correspondiente fichero de cabecera Tabla 2: Parámetros para fichero /var/log/daemon.log. La línea para
inotify.h. El fichero normalmente se los Comandos Incrontab es la siguiente:
encuentra en /usr/include/sys/; algunas
Variable Descripción
distribuciones añaden un fichero deno- /var/run/daemon IN_DELETE rm U
$@ Proporciona la ruta
minado inotifysyscalls.h. /var/run/daemon.log
$# Nombre del fichero
Si lo prefiere, puede cambiar la ruta de que ha disparado el
instalación en el fichero Makefile y luego evento Esta simple entrada ilustra la potencia de
ejecutar make && make install. Tras $% Muestra el evento Incron. Por fin cron tiene un amigo con quien
completarse la compilación y la instala- disparado jugar. ■
ción debería tener incrond, incrontab y $$ El propio signo de
dólar RECURSOS
las páginas man correspondientes.
[1] Incron: http://incron.aiken.cz
Tabla 1: Eventos Supervisables
Evento Descripción SYSADMIN
IN_ACCESS Acceso de lectura
IN_MODIFY Acceso de escritura Upstart………………....................58
IN_ATTRIB Metadatos modificados (inodo o atributo) El proyecto Upstart ofrece una solu-
IN_CLOSE_WRITE Fichero abierto para escritura y luego cerrado ción nueva (y supuestamente más
IN_CLOSE_NOWRITE Fichero abierto sin escritura y luego cerrado rápida) para el arranque de Linux.
IN_CLOSE IN_CLOSE_WRITE o IN_CLOSE_NOWRITE Vamos a introducirnos en el proceso
IN_OPEN Fichero abierto de arranque de Upstart.
IN_MOVED_FROM Fichero movido a otro directorio Mondo y Mindi ………………........64
IN_MOVED_TO Fichero movido a este directorio Mondo nos a enseña que las copias de
IN_MOVED IN_MOVED_FROM o IN_MOVED_TO seguridad no tienen por que ser ni difí-
IN_DELETE Fichero borrado ciles ni tediosas. Esta sencilla herra-
IN_DELETE_SELF El directorio supervisado ha sido borrado mienta realiza copias de discs duros
IN_ALL_EVENTS Alguno de los eventos mencionados completos o directorios individuales.
WWW.LINUX-MAGAZINE.ES Número 28 57
ADMINISTRACIÓN • Upstart
ARRANQUE RÁPIDO
El lento arranque de Linux ha sido un problema que han estado pade- el kernel en el fichero
/usr/src/linux/init/main.c de Linux. Init tiene
ciendo los usuarios desde hace unos años. El proyecto Upstart supone la tarea de ejecutar el resto de los procesos del
espacio del usuario e inicializar el sistema. El
una buena solución al problema. proceso y sus scripts cargan los módulos del
kernel, comprueban y montan el sistema de
POR NICO DIETRICH Y DIRK VON SUCHODOLETZ
ficheros, configuran la red, ejecutan los servi-
dores y ejecutan el programa de login en
modo gráfico. Init tiene que ejecutar los servi-
L
a historia de Linux incluye bastan- arranque de Linux. cios en un orden determinado. Por ejemplo,
tes intentos por mejorar el largo El proyecto Upstart [1] presenta un servicio no tiene sentido establecer la hora del sistema
proceso de arranque del sistema. init genérico que es la base de muchos de los consultando a un servidor de tiempo de la red
Esto puede que no sea sorprendente, ya desarrollos de los sistemas Linux modernos. hasta que la máquina no haya activado la red.
que el arranque puede desesperar hasta Upstart, que tiene raíces Unix, inteligente- Para ello, tiene primero que inicializar el hard-
al más paciente de los usuarios. El tradi- mente evita las esperas innecesarias, ejecuta ware de red y establecer al menos una interfaz
cional diseño del sistema de arranque de los scripts de arranque de forma simultánea y de red para el acceso externo.
Unix, System V, fue revolucionario, pero reduce el tiempo de arranque al mínimo. El El número de servicios y agentes en
ha resultado ser un escollo para la mayo- plan a largo plazo es reemplazar los servicios segundo plano ha crecido a lo largo de los
ría de las distribuciones. del sistema que se ejecutan en segundo plano, años y esto ha hecho que el proceso init se
Aunque han aparecido diversos trucos para como el servicio at, cron y otros, por Upstart. haya convertido en una chapuza. Por el con-
acelerar el proceso a lo largo de todos estos Ubuntu 6.10 (Edgy Eft) muestra el primer trario, el uso en PC de escritorios, algo típico
años, la mayoría de las reformas del sistema efecto de este software prometedor. para Ubuntu, demanda una configuración
de arranque han resultado ser inviables en la dinámica del sistema. Sys V Init es también
práctica, y muchos de los turbo cargadores Todo Comienza con Init bastante lento para su uso en los dispositivos
empleados por los gurús no están al alcance La mayoría de los sistemas basados en Unix móviles. Esta clase de dispositivos requieren
de los usuarios normales y corrientes. Una comparten el concepto de init. El proceso una solución ad hoc para configurar la red, así
herramienta nueva, Upstart, adopta una solu- invoca al kernel y asigna al proceso del kernel como una configuración dinámica del hard-
ción diferente para acelerar el proceso de el ID 1. Esta secuencia está implementada en ware.
58 Número 28 WWW.LINUX-MAGAZINE.ES
Upstart • ADMINISTRACIÓN
Para colmo, los programadores de Linux expectativas o estaba disponible bajo una nes más complejas como “configuración de la
han desarrollado diversas herramientas: acpid licencia aceptable. red completada”, “Apache ejecutándose” o
y apmd para la gestión de la energía, el gestor Cuando comenzaron a pensar en el nuevo (en el futuro) “memoria USB conectada”.
de dispositivos HAL para montar dinámica- diseño, tuvieron que escoger entre un objetivo
mente las unidades de disco, y el gestor de o una opción orientada al resultado para la Horizonte de Eventos
recursos para la asignación dinámica de los ejecución del sistema. La orientación al des- Básicamente los eventos son simples cadenas
privilegios de los dispositivos para el usuario tino significaría la definición de los servicios de caracteres. Los desarrolladores de Upstart
que ejecute el escritorio GUI. que deberían ejecutarse al final de la secuen- han dividido los eventos en tres clases:
Cada uno de estos sistemas implementa su cia de arranque (KDM, el servidor SSH, etc). • Eventos Simples, como “el sistema está
propia lógica de configuración y los adminis- En este caso, sería necesario investigar cada arrancando” o “el usuario ha presionado
tradores tienen que familiarizarse con ella servicio y determinar en qué otros servicios se un botón”.
para poder ejecutar las tareas requeridas en el basa. Basándose en estas dependencias, el sis- • Los Eventos de Nivel poseen un paráme-
momento determinado. tema init tendría que deducir una secuencia tro adicional, como el estado del interfaz
No todos los procesos y servicios están liga- de arranque correcta. Esta es precisamente la de red. Los servicios y las tareas se ejecu-
dos al arranque o a la parada de la máquina. solución adoptada por Gentoo con su sistema tan para cualquier Evento de Nivel o sólo
Por ejemplo, hay algunos servicios especiales, de dependencias (véase el cuadro titulado cuando un parámetro alcance un valor
como cron y el servicio at, que ejecutan otros “Gentoo”); Suse también se basa en esta solu- determinado.
procesos en momentos determinados. No ción con una versión modificada de Sys V Init • Los Eventos Temporales suceden tras un
están ligados de ningún modo a los niveles de (véase el cuadro titulado “Suse Linux”). intervalo específico de tiempo o en un
ejecución del sistema, aunque poseen una En la otra esquina del ring estaban los even- momento determinado.
lógica subyacente similar. Este es otro punto tos. En vez de formular las dependencias, que Los desarrolladores se han mantenido fieles al
que Upstart modifica [3]. un script probablemente tendría que gestionar principio del código abierto “publica pronto y
en el tiempo de arranque del sistema, un sis- publica a menudo”. Por ello, el código fue
Cuestiones de Diseño tema basado en eventos no ejecutaría un publicado en una etapa muy temprana y lo
Antes de que los programadores de Ubuntu script hasta que se cumplieran una serie de presentaron en la distribución Edgy Eft, para
decidieran desarrollar un sistema nuevo, precondiciones. Por ejemplo, no tendría sen- demostrar hasta donde habían llegado. Su
investigaron las alternativas existentes al sis- tido llamar a un cliente NFS hasta que haya objetivo es recolectar el mayor número posible
tema Sys V [2]. Ninguno de los diseños que disponible una autorización NFS. El sistema de respuestas de los desarrolladores que estén
estudiaron cumplía completamente sus que adoptó Ubuntu abarca también condicio- trabajando en otras distribuciones de Linux.
Sys V Init
Las primeras versiones de Unix utilizaban mite que los administradores actualicen tema. Hay tres niveles de ejecución que
un simple script de la shell para configu- los scripts de arranque sin poner en peli- tienen una tarea definida de forma clara:
rar la máquina y lanzar los servicios. El gro la configuración local. Parada (0), Modo Monousuario (1) y Rei-
diseño detrás de la familia BSD /etc/rc, nicio (6).
Sys V Init hace uso de una solución más
por ejemplo, era realmente simple, pero El fichero /etc/inittab especifica los niveles
flexible, pero también más compleja que
presentaba un serio inconveniente. La existentes y define el nivel de ejecución
BSD, presentando los niveles de ejecu-
incorporación de programas de terceros, en el que entra el sistema tras el arranque
ción (runlevels) que definen estados
o simplemente la realización de cambios (Figura 1).
específicos de la máquina basados en los
en el sistema, implicaban la modificación
procesos que ejecuta. Es posible tener El diseño de Sys V supone que el sistema
del script. Desafortunadamente, la modi-
hasta ocho niveles de ejecución posibles, utilizará un número pequeño de estados
ficación de este código es bastante peli-
pero no son obligatorios, para cada sis- predefinidos, tales como “sin red”, “con
grosa y un simple error podría
red”, “con X11”, etc. Los admi-
ocasionar que el sistema no
nistradores pueden modificar el
volviera a arrancar.
nivel de ejecución con el
En muchos casos, ejecutar un comando init
servicio implica la ejecución de nivel_de_ejecución.
más de un comando, variando
Otra ventaja de esta solución son
los detalles dependiendo del
los scripts separados para cada
entorno actual. Por ejemplo, el
servicio o tarea de configuración.
servidor ISC DHCP puede ser
Por ejemplo, llamando a
configurado para escuchar en
/etc/init.d/dhcpd restart permite
una interfaz Ethernet especifi-
relanzar el servidor DHCP sin
cada, en vez de en todos los
afectar a los otros servicios. La
puertos. Para eliminar la nece-
idea de utilizar una colección de
sidad de que los administrado-
enlaces simbólicos para determi-
res tengan que modificar el
nar el alcance y el orden de los
script de arranque, los servicios
scripts utilizados por cada nivel
a menudo vienen con ficheros
de ejecución es también una
de configuración que el script
Figura 1: Este inittab típico define los niveles de arranque del 0 al 6. buena idea.
tiene que procesar. Esto per-
WWW.LINUX-MAGAZINE.ES Número 28 59
ADMINISTRACIÓN • Upstart
Sin embargo, esto también significa que las muestra con la barra de progreso y el logotipo medio plazo son permitir a /etc/event.d gestio-
especificaciones podrían cambiar en el trans- del sistema operativo oculta cualquier infor- nar las definiciones de los trabajos, lo que sim-
curso de unos meses. Los ejemplos descritos mación útil. Aunque los usuarios normales no plemente se reduce a ficheros no ejecutables
aquí se refieren a la versión 0.3 de principios se van a quejar por ello, los administradores como el mostrado en el Listado 1. El ejemplo
de diciembre. seguro que estarán interesados en ella. Incluso toma el camino fácil y simplemente llama al
Esta versión reemplaza el proceso init exis- si se elimina dicha pantalla (borrando el ele- antiguo script de arranque para el nivel de
tente. Sin embargo, no debe suponerse que mento splash de la línea de comandos del ker- arranque 2 (línea 20).
todos los scripts de arranque han sido modifi- nel en grub), no se verán muchos mensajes. Si Como puede verse en la línea 5, queremos
cados para usar el mecanismo de eventos. se quieren más, sólo hay que eliminar la que el script se ejecute cuando ocurra el
Upstart no soporta por ahora los eventos tem- entrada quiet. evento runlevel-2. Finaliza si los eventos con-
porales y hay planes para utilizar otros progra- A primera vista, las modificaciones apare- cluyen, o si suceden los eventos del runlevel-3
mas, como Udev y ACPI o los servicios APM, cen ocultas. Si se ejecuta el comando man init a runlevel-5 (de la línea 7 a la 10). En el futuro,
como eventos fuentes. o man telinit, se mostrará información indi- una semántica más compleja soportará condi-
cando que el sistema de niveles de ejecución ciones con operadores lógicos y pasarán pará-
El Estado del Arte tiene un nuevo motor. Otra pista es la ausen- metros a los scripts de eventos, si fueran nece-
La versión actual de Ubuntu arranca de forma cia del fichero /etc/inittab. /etc/init.d, y los sarios. Estos ficheros juegan el mismo papel
bastante rápida, aunque no se vea mucho de scripts de arranque que lo acompañan aún que las entradas del fichero /etc/inittab. Esto
lo que está ocurriendo si se usa la existen, ya que Ubuntu actualmente ejecuta es por lo que Edgy Eft tiene tanto el fichero
configuración por defecto. La pantalla que se Upstart en el modo compatible. Los planes a mostrado en la parte de arriba de la Figura 2
como rc2.
Gentoo
Como una de las más recientes incorpo- nombre. Mientras que las secciones
Los Trabajos Compatibles
raciones a la familia Linux, Gentoo solu- start, stop y restart se mantienen fieles con Upstart
cionó el problema de organización de al diseño tradicional, depend propor- Hay dos formas de definir los trabajos. El
los scripts de los niveles de ejecución de ciona una función más interesante. Un método sencillo hace uso de exec /ruta/al/pro-
una forma especial. Para ello, no utiliza servicio puede depender de otro servi- grama -O —parámetros_opcionales. Funciona
simples scripts bash como scripts para cio o de algunos parámetros previos,
los niveles de ejecución, sino que por el por un lado; pero por otro lado, puede
contrario ejecuta un interprete sepa- proporcionar funciones específicas que
Listado 1: Definición de
rado: /sbin/runscript. Un ejemplo de una otros servicios puedan requerir: Trabajos
estructura típica es el siguiente: • need service: Depende del servicio. 01 # /etc/event.d/rc2
• use service: Utiliza el servicio. 02 # Runlevel 2 script
01 #!/sbin/runscript • provide functionality: Proporciona una compatible
02 opts=”depend start stop funcionalidad específica. 03 con Upstart
restart” • before service: Debería comenzar 04 # Esta tarea ejecuta los
03 depend() { antes que el otro servicio. antiguos
04 # dependencias y condiciones • after service: Debería comenzar des- 05 scripts Sys V.
05 } pués del servicio especificado. 06
06 start() { 07 start on runlevel-2
Gentoo también soporta servicios vir-
07 # comandos para ejecutar los tuales, como net, ya que hay varias cla- 08
servicios ses de redes (Ethernet, Modem, WLAN). 09 stop on shutdown
08 # incluyendo las tareas Esto también se aplica a los servicios de 10 stop on runlevel-3
preparatorias correo (mta). El script de arranque 11 stop on runlevel-4
09 } puede incluso determinar las depen- 12 stop on runlevel-5
10 stop() { dencias dinámicamente, como muestra 13
11 # Comandos para parar los el ejemplo /etc/init.d/syslog-ng:
14 script
servicios 15 set $(runlevel —set 2
12 # demás de las acciones de case $(sed ‘s/#.*//’U 16 || true)
limpieza /etc/syslog-ng/syslog-ng.conf)U 17 if [ “$1” != “unknown”
13 } in *source*tcp*|*source*udp*|U 18 ]; then
14 restart() { *destination*tcp*|*destinationU 19 PREVLEVEL=$1
15 # Reiniciando el servicio *udp*) need net ;; 20 RUNLEVEL=$2
16 } esac 21 export PREVLEVEL
22 RUNLEVEL
La cadena que sigue a opts lista todas Como los cambios no entran en con- 23 fi
las funciones proporcionadas por el flicto con las dependencias existentes, 24
script. Si se necesitan añadir otras fun- los administradores pueden cambiar el 25 exec /etc/init.d/rc 2
ciones, sólo hay que añadirlas a la lista orden en el que los servicios de ejecu- 26 end script
y escribir una función con el mismo tan, utilizando before o after.
60 Número 28 WWW.LINUX-MAGAZINE.ES
Upstart • ADMINISTRACIÓN
Listado 2: Control de
Suse Linux Servicios
Mientras que el tradicional Sys V Init ### BEGIN INIT INFO 01 root@EdgyEft:~# start
sigue un procedimiento estricta- # Provides: nbd-server
02 simple-server
mente lineal, las versiones más # Required-Start: $network
03 simple-server (start)
recientes de Suse Linux (10.0 y poste- # Should-Start: $syslog
running,
riores) soportan la ejecución concu- # Required-Stop:
04 process 6507 active
rrente de los scripts de arranque. Los # Default-Start: 3 5
05 root@EdgyEft:~# stop
administradores pueden activar esta # Default-Stop: 0 1 2 6
06 simple-server
característica en el fichero # Description: U
/etc/sysconfig/boot estableciendo la 07 simple-server (stop) running,
Start Network Blockdevice Daemon
variable RUN_PARALLEL a yes. Esta ### END INIT INFO 08 process 6507 killed
opción cambia la secuencia clásica Con este sistema se oculta la mayor 09 root@EdgyEft:~# status
definida desde S00script1 a la parte de la complejidad al usuario, sin 10 simple-server
S99script25. embargo, esta solución ralentiza el sis- 11 simple-server (stop) waiting
Por el contrario, se aplican las depen- tema. Cuando probamos el arranque al 12 root@EdgyEft:~# start
dencias .depend.boot, .depend.start estilo Suse en el X41 mencionado ante- 13 simple-server
y .depend.stop. Si un administrador riormente (hay que admitir que la 14 simple-server (start)
añade un simple script, digamos, máquina tenía un disco duro antiguo) running,
S12nbd-server, a rc3.d creando un con el arranque concurrente tardó más o
15 process 6517 active
enlace de la forma tradicional, el sis- menos un minuto, bastante próximo a
16 root@EdgyEft:~# status
tema simplemente ignorará el cam- los 70 segundos que tarda el sistema tra-
17 simple-server
bio. El comando insserv gestiona dicional. Se puede incluso ver alguna
esta tarea evaluando la cabecera del evidencia de la ejecución paralela de los 18 simple-server (start)
fichero para asegurarse una resolu- servicios; la salida por pantalla aparece running,
ción correcta de las dependencias: mezclada. 19 process 6517 active
WWW.LINUX-MAGAZINE.ES Número 28 61
ADMINISTRACIÓN • Upstart
01 [...]
02 Dec 3 18:44:59 rc2:
03 * Starting deferred
execution
04 scheduler atd [ ok ]
05 Dec 3 18:44:59 rc2:
06 * Starting periodic command
07 scheduler... [ ok ]
08 Dec 3 18:44:59 rc2:
09 * Enabling additional
10 executable
11 binary formats ...[ ok ]
12 Dec 3 18:44:59 rc2:
13 * Checking battery state...
14 [ ok ]
Figura 4a: Este análisis de Bootchart muestra el arranque de Debian GNU/Linux con el proce-
15 Dec 3 18:44:59 rc2:
dimiento init tradicional.
16 * Running local boot scripts
17 (/etc/rc.local) [ ok ]
62 Número 28 WWW.LINUX-MAGAZINE.ES
Upstart • ADMINISTRACIÓN
WWW.LINUX-MAGAZINE.ES Número 28 63
ADMINISTRACIÓN • Mondo y Mindi
GUERRAS CLON
Mondo nos enseña cómo las copias de seguridad no tienen porqué llevarnos mucho tiempo ni ser difíciles.
Esta simple herramienta realiza sorprendentemente copias de seguridad de discos duros completos o de
I
magínese que lleva días configurando un CD o en un servidor NFS externo. Mondo crea una imagen live en un CD o DVD con
sistema hasta que finalmente lo tiene permite realizar esta copia y restaurarla fácil- la copia de seguridad que haya creado
funcionando perfectamente. Las particio- mente. Uno de sus objetivos es permitir los Mondo.
nes están tal y como se deseaban, el sistema cambios en el sistema subyacente, ya sea de Ambas utilidades pueden utilizarse de
operativo está instalado correctamente y hardware o del sistema de ficheros, y aún manera conjunta para guardar la
todo funciona a la perfección. Antes de preservar la configuración del sistema previo. configuración de Linux en un CD o DVD de
poner el sistema en uso, sería una buena Mondo permite la restauración de siste- arranque. Si una copia de seguridad com-
idea realizar una copia de seguridad de la mas de ficheros sin RAID y con RAID (inclu- pleta es demasiado grande como para
máquina, de modo que pueda restaurarse yendo la partición raíz). También es posible caber en un único disco, puede realizarse
rápidamente en el caso de que suceda algún encoger o agrandar las particiones, cambiar en múltiples imágenes.
desastre. el sistema de ficheros, reasignar los dispositi- La utilidad de copias de seguridad
La utilidad para realizar copias de seguri- vos o añadir nuevas unidades y aún será Mondo permite dividir los ficheros grandes
dad de código abierto Mondo puede llevar a capaz de preservar el sistema previo sin la de modo que quepan en varios discos. Ade-
cabo una copia de seguridad completa de un necesidad de tener que realizar una instala- más, se puede comenzar el sistema básico
sistema operativo Linux o incluso de un ción nueva. desde el disco de arranque y restaurar el
disco duro entero, incluyendo la tabla de par- Mondo está diseñado para trabajar con resto de los datos desde una cinta o desde
ticiones y el gestor de arranque, en un DVD, otra utilidad denominada Mindi. Mindi un servidor NFS.
64 Número 28 WWW.LINUX-MAGAZINE.ES
Mondo y Mindi • ADMINISTRACIÓN
WWW.LINUX-MAGAZINE.ES Número 28 65
ADMINISTRACIÓN • Mondo y Mindi
Figura 3: Tras crear una imagen ISO, Mondo pregunta si se desea Figura 4: Con Mondo se pueden guardar los directorios individuales,
crear un disco de arranque. Sólo hace falta el disco en el caso de que como el directorio home. La opción -D restringe la imagen ISO a los
los datos estén en una unidad de cinta o en un servidor NFS. datos modificados.
66 Número 28 WWW.LINUX-MAGAZINE.ES
ADMINISTRACIÓN • Mondo y Mindi
68 Número 28 WWW.LINUX-MAGAZINE.ES
LINUX USER • Ktools: Emulador de Terminales
CENTRO DE
CONTROL
La consola de Linux puede llegar a ser divertida con YaKuake y QuadKon-
sole, dos programas para KDE que permiten a los usuarios trabajar eficien-
Y
aKuake [1] y QuadKonsole [2] YaKuake
están diseñados para usuarios En el arranque, YaKuake despliega un diá- QuadKonsole
ocasionales de la línea de logo informando de que se ha arrancado Por defecto, QuadKonsole asignará cuatro
comandos que típicamente confían en correctamente y se encuentra esperando casos de emulación
una GUI. YaKuake está ideado para aque- más instrucciones. Puede pulsarse [F12] de ter-
llos usuarios que necesitan introducir un para que aparezca la ventana terminal, que
comando de terminal pero que prefieren se despliega desde la parte superior de la
no tener la ventana de terminal a la vista pantalla (ver Figura 1), ocultando otras
todo el tiempo. Un atajo de teclado abre ventanas en el proceso.
el programa, que se cierra automática- Cuando se cambia el enfoque de
mente después de procesar el comando. YaKuake, desaparece la ventana,
QuadKonsole integra cuatro ventanas ahorrando un espacio de ven-
de terminal en una sola ventana de pro- tana importante. Puede arran-
grama, bien alineando las ventanas lado carse YaKuake en cualquier
con lado, o bien permitiéndoles sola- escritorio.
parse. Esto lo hace muy adecuado para Al igual que el terminal
usuarios que necesitan mantener vigi- Gnome o Konsole, YaKuake
lada la salida de algunos programas. soporta múltiples terminales
dentro de la ventana del
Instalación programa. Las pestañas
El código fuente para ambos programas se de la parte inferior
encuentra disponible desde las páginas de de la ventana
inicio de los desarrolladores. Se sigue el pro- permi-
Configuración
YaKuake dispone de un menú que aparece
cuando se hace clic sobre la flecha
pequeña en la barra de estado del pro-
grama. Ajustes como el fondo de pantalla, Figura 1: YaKuake aparece en la parte superior de la pantalla cuando se pulsa un botón.
la fuente y la página de código se toman
prestados de Konsole. Para personalizar la no tendrá mucho sentido cuando la ven- Default. Las configuraciones se aplican a
configuración, se hace clic derecho sobre tana del programa YaKuake siempre oculta todas las ventanas de consola. No pueden
la ventana terminal y se selecciona del otras ventanas. El menú de configuración salvarse configuraciones para ventanas
menú desplegable. también lleva a diálogos que permiten individuales.
El menú de contexto soporta también configurar el atajo de teclado para arran- Para modificar el comportamiento del
ajustes de tamaño y posición para la ven- car YaKuake, o bien definir otros atajos de enfoque de QuadKonsole, se especifica el
tana del programa. YaKuake siempre apa- teclado. parámetro —clickfocus en la línea de
recerá por defecto en la parte superior de QuadKonsole sólo soporta parametriza- comandos. De este modo se establece el
la pantalla. Los ajustes de altura, anchura ción basada en la línea de comandos. Los enfoque en cualquier ventana terminal a
y posición están subordinados al límite de parámetros —columns y —rows especifi- la que accedas.
la pantalla. can el número de columnas y filas que el
Puede usarse Roll up on enfoque loss programa usará para presentar las venta- Conclusiones
para personalizar el comportamiento del nas de consola. Es preciso evitar configu- YaKuake es práctico para usuarios Linux
programa. Si se cambia el cuadro de con- rar más de 16 ventanas simultáneas; que necesitan introducir un comando en
firmación, YaKuake permanecerá activo aparte de una respuesta más lenta, esto la ventana de consola, y que prefieren no
sin el enfoque. Sin embargo, esta opción atestará la pantalla y hará que la salida sea tener que dejar la ventana de terminal
complicada de abierta permanentemente para ello. El
leer. programa ayuda a llevar la cuenta de
Haciendo un cualquier salida de programa que ocurra.
clic derecho sobre En contraste, QuadKonsole es lo último
una consola de para los aficionados al terminal, permi-
ventana se abre tiendo a sus usuarios seguirle la pista a
un menú de con- la salida de los distintos terminales, algo
texto en el que se muy útil cuando se desarrolla software.
puede establecer Sine embargo, el programa carece de un
el color, la página método conveniente de configuración de
de código, las ventanas de terminal individuales y de
asignaciones de almacenamiento de configuración. ■
teclado y las fuen-
tes. Para guardar RECURSOS
de manera perma-
[1] YaKuake: http://yakuake.uv.ro
nente las configu-
[2] QuadKonsole: http://nomis80.org
raciones preferi-
Figura 2: QuadKonsole alinea múltiples ventanas de terminal en una das, se selecciona [3] Paquetes de Ubuntu para QuadKon-
malla dentro de una ventana. Settings | Save as sole: http://pkg.marisil.org
MÚSICA A TOPE
El servidor de medios Firefly trae streamings de música y radio Internet a la red para clientes iTunes o Ban-
shee… y lo mejor de todo es que es rápido y fácil de montar. POR MRTIN LOSCHWITZ
I
maginemos que tenemos dos ordena-
dores personales estacionarios en
nuestra red personal y se está utili-
zando un portátil como estación de tra-
bajo móvil. Un viejo ordenador actúa
como portal, servidor de impresión y
ficheros. La colección de música se
encuentra dispersa por los discos duros
de las tres estaciones de trabajo, y si se
encuentra trabajando en el portátil.
Únicamente podrá accederse a las can-
ciones del disco local.
Para que podamos tener acceso a la colec-
ción completa, será necesario que los tres
ordenadores estuvieran activos y en funcio-
namiento. Además, el uso de comparticiones
Samba o NFS no es la idea que se tiene de un
método apropiado.
iTunes tiene una estupenda solución para
este problema: cualquier cliente compatible
iTunes en la red puede usar DAAP, un proto-
colo desarrollado por Apple para compartir
música que da acceso a pistas compartidas.
Si se tiene instalado iTunes en el ordenador,
cada usuario de iTunes en la red local verá su
Servidor Multimedia de
Bajo Presupuesto
Si estás interesado en la instalación de
un servidor de medios Firefly, pero no
dispones del hardware adecuado,
prueba el NSLU2 de Linksys. El dispo-
sitivo, que puede usarse para conectar
discos duros externos a tu red, se
encuentra disponible en tiendas de
hardware por unos 55 Euros; también
necesitarás un dispositivo de almace-
namiento de datos externo. Puedes
usar Unslung o OpenSlug para conver-
tir el SLU2 a Linux, e instalar Firefly
como se ha descrito previamente. Esto
te ofrece un ordenador en miniatura
que no hará ruido alguno, y por un pre-
cio de unos 147 Euros. Lo mejor de
todo es que el SLU2 puede hacer más,
aparte de ofrecer estos servicios multi-
media.
MARCADORES
Thunderbird de Mozilla ofrece herramientas que proporcionan una manera alternativa de administrar y per-
sonalizar nuestros marcadores. Mostraremos cómo sirven propósitos nuevos y poco convencionales.
A
la hora de administrar marcas, el mundo. Por ejemplo, con un servicio puede personalizarse y ajustarse a las
tenemos literalmente decenas de basado en web no existe garantía alguna necesidades propias. Y lo que es más
opciones a nuestra disposición. de que si el servicio falla, no se lleve con importante, muestra cómo utilizar una
Además de las características de mar- él todo por delante. Una herramienta de tecnología bien probada en contextos
cado razonablemente flexibles de Fire- sincronización es magnífica para mante- nuevos y poco convencionales.
fox, existen multitud de utilidades de ner las marcas sincronizadas en un orde-
sincronización y servicios basados en nador privado, aunque no es muy útil en Marcado de Páginas con
web que pueden cuidar de nuestars mar- una máquina pública. Incluso si se han Toread
cas: del.icio.us (http://del.icio.us/), conseguido superar estos inconvenien- T-Bookmarks depende de dos componentes
Ma.gnolia (http://ma.gnolia.com/), Mar- tes, existen aún otras molestias que pue- principales: Mozilla Thunderbird, que cuida
kaboo (http://www.markaboo.com/), den habernos llevado a considerar otras del almacenaje y administración de marcas, y
Google Browser Sync (http://www. alternativas, como puede ser la creación Toread [1], un servicio de marcado por correo
google.com/tools/firefox/browsersync/), de una solución de marcado propia electrónico, utilizado para añadir marcas a
Foxmarks (http://www.foxmarks.com/), basada en Mozilla Thunderbird y un par Thunderbird. Aunque de apariencia sim-
y muchos otros, cuyo denominador de ingeniosas herramientas (que llama- plista, es de hecho una herramienta muy
común es ofrecer útiles características remos T-Bookmarks). Aunque no ofrece ingeniosa. Toread le permite a un usuario
para ayudar a seguirle la pista en las todos los pitos y flautas de un servicio de enviarse por correo cualquier página web a sí
marcas. marcado social (aunque sí puede usarse mismo. En cierto modo, funciona como la
Todos son buenos en lo que hacen, para compartir las marcas con otros opción remitir esta página, disponible en
aunque ello no signifique que vengan usuarios), proporciona una manera alter- algunos sitios web, aunque con Toread es
bien para todas las necesidades de todo nativa de administración de marcas, que posible enviar cualquier página que se desee
configuración de una cone- Esto mueve todos los mensajes Toread exis-
xión GPRS Bluetooth en tentes a la carpeta To Read y, a partir de de
Knoppix, entonces debe- ese momento, cualquier correo entrante que
rían usarse etiquetas como coincida con los criterios especificados en el
“gprs”, “bluetooth”, filtro será automáticamente movido a la car-
“knoppix”, “linux”, etc. peta To Read.
El paso siguiente consiste en agrupar las
Thunderbird páginas marcadas por temas, o por cualquier
como otro criterio que se desee. Mientras puede
Administrador crearse una subcarpeta para cada tema y
de Marcas crear un filtro para ello. Este método tiene
Ahora le toca el turno a unos cuantos inconvenientes. Uno de los
Thunderbird. Posible- más serios es que no puede almacenarse una
mente sea algo que se des- página marcada en dos o más carpetas al
Figura 1: Toread es un ingenioso servicio que permite marcar conozca, pero Thunder- mismo tiempo. Por ejemplo, si se poseen
páginas web. bird contiene todas las temas de carpetas como “Thunderbird” y
herramientas necesarias “Encryption”, se debería disponer de una
con un solo clic. para la administración de páginas marcadas , página sobre cómo encriptar correos en
Para habilitar el servicio Toread hay que ir después de todo, estamos trabajando simple- Thunderbird para que aparezca en ambos.
hasta http://toread.cc e introducir la dirección mente con correos normales con páginas Afortunadamente, Thunderbird contiene la
de correo. Se recibirá entonces un mensaje de web incrustadas. En primer lugar es necesa- característica inteligente Folders (también lla-
correo con un enlace a la página web conte- rio crear una carpeta superior para todos los mada “Carpetas Virtuales” y “Búsquedas
niendo dos bookmarklets [toread] y [toread correos entrantes del servicio Toread y un fil- Guardadas”), que permite superar las limita-
+ ]. El último permite añadir comentarios a tro que los envíe a ésta. ciones del método basado en la carpeta.
la página de marcado, y es el que debería Para crear otra carpeta nueva se hace un Usando inteligente Folders, es posible
añadirse al navegador arrastrando el enlace a clic sobre la cuenta en Folders y se elige el especificar un juego de criterios de bús-
la barra de herramientas de Bookmaks. El elemento de menú Nueva carpeta. Se da un queda, luego se salva la búsqueda y se ve
bookmarklet puede añadirse a tantos navega- nombre a la carpeta (por ejemplo, “To Read” como una carpeta convencional. La diferen-
dores como se desee, algo que puede resultar o, lo que es lo mismo , “Para Leer”) y se cia fundamental aquí es que esta carpeta
útil cuando se poseen distintos ordenadores. pulsa OK. A continuación, debemos crear un “inteligente” no es una carpeta real y los
Para la marcación de páginas vistas actual- filtro que guíe las páginas marcadas entran- mensajes no se han movido realmente a ella.
mente, se hace clic sobre el bookmarklet tes a la carpeta To Read. Para ello hay que En otras palabras, una carpeta inteligente es
[toread + ], se escribe el texto deseado en el especificar una regla simple basada en las una carpeta virtual, y cada vez que se selec-
campo Comments, y se pulsa OK. La página direcciones de los remitentes (suponiendo ciona, ejecuta la búsqueda especificada y
será enviada automáticamente a la dirección que se está usando el servicio Toread). Se presenta los resultados. Es además una
de correo. Es preciso recordar que para admi- elige “Herramientas” -> “Filtros de Mensa- potente herramienta que permite compilar
nistrar de forma efectiva las páginas marca- jes”, se pulsa el botón “Nuevo” y se escribe un sofisticado sistema de agrupación de mar-
das en Thunderbird, debería prestarse espe- el nombre del filtro en el campo “Nombre cas.
cial atención a lo que se escribe en el campo Filtro”. De la primera lista desplegable se Existen distintas maneras de crear una car-
Comments. En lugar de comentarios descrip- selecciona “From” y de la segunda lista des- peta inteligente. La más rápida de ellas es
tivos, deberían introducirse palabras clave plegable se escoge “contiene”, y se escribe la escribir los criterios de búsqueda en el
importantes (o etiquetas, en lenguaje Web dirección de correo apropiada (en este caso, campo Quick Search, y seleccionar luego
2.0), que son usada s como criterios de fil- info@toread.cc) en el último campo. En la Save Search como carpeta de la primera lista
trado y agrupación en Thunderbird. Por sección “Ejecutar estas acciones”, se selec- desplegable. Alternativamente, puede ele-
ejemplo, si se marca una página sobre la ciona “Mover Mensaje” de la primera lista girse Fichero -> Nuevo -> Guardar Bús-
desplegable y la carpeta queda y definir una nueva búsqueda. Esta
“Toread” de la segunda. opción permite crear una búsqueda guar-
El filtro finalizado debería ser dada que incluya subcarpetas y ejecutables a
parecido al que se muestra en la través de múltiples cuentas. No importa la
Figura 2. Se pulsa OK y nos
aseguramos de que está
habilitado (el cuadro
“Activo” debería estar mar-
cado). Si ya disponemos de
correos en nuestra bandeja
de entrada de correo prove-
niente del servicio Toread,
se ejecuta el filtro pulsando
Figura 2: Creación de un filtro en Thunderbird. el botón “Ejecutar Ahora”. Figura 3: Creación de una carpeta inteligente.
=cm&fs=1&tf=1&to=&su=’U
+encodeURIComponentU
(‘[‘+promptU
(‘Tags:’)+’] - ‘+’ ‘+U
document.title)+’&bodyU
=’+encodeURIU
Component(document.location)U
+’ ‘+escape(document.U
getSelection());w=U
window.open(m,U
‘addwindow’,U
Figura 4: La solución T-Bookmarks en acción. ‘status=no,toolbar=no,U
width=575,height=U
manera elegida para crear una carpeta inteli- cen seguidamente un par de ejemplos 545,resizableU
gente, siempre es posible modificar los crite- listos para usar. El applet siguiente es =yes’);setTimeout(function()U
rios de búsqueda haciendo clic en ella y simple. Abre el correo por defecto y crea {w.focus();},%20250U
seleccionando la opción “Propiedades de un nuevo correo con el título de una );})();
Carpeta”. página web y enlace.
Para crear una carpeta inteligente que con- Para crear un nuevo bookmarklet, se
tenga todas las páginas marcadas importan- javascript: hace clic en la barra de herramientas
tes, deberán definirse criterios basados en las void(document.location= U Bookmark en Firefox y se selecciona
etiquetas que se introdujeron en los campos ‘mailto:mi@direccion.com? U “Nueva Marca”. Se introducen un nom-
“Comentarios” y que el servicio Toread subject=’ +document.title U bre en el campo “Nombre” y el código
inserta en la línea del asunto. Para crear, por ‘ &body=’ + U JavaScript en el campo “Localización”.
ejemplo, una carpeta inteligente con todas document.location)
las marcas relacionadas con Ubuntu, se elige Conclusión
Fichero -> Nuevo -> Guardar Búsqueda y El segundo applet permite especificar eti- Evidentemente, T-Bookmark no es el
se especifica el criterio, tal y como se muestra quetas e incluir una selección de texto en administrador de marcas más sofisticado
en la Figura 3. Con una cuenta IMAP, hay el cuerpo del correo: que existe, pero cuenta con una infinita
que asegurarse de que el cuadro “Búqueda flexibilidad. Permite trastearlo para
en línea” está seleccionado. El uso de T- javascript:void(document.U adaptarlo a las necesidades propias. Lo
Bookmarks con cuentas IMAP tiene otra ven- location=’mailto:miU que es mejor, la versión 2.0 de Thunder-
taja: pueden sincronizarse las páginas marca- @direccion.com?U bird, que se encuentra a la vuelta de la
das en distintas máquinas con Thunderbird. subject=’+’[‘+promptU esquina, ofrece sus propias característi-
(‘Tags:’)+’] - ‘+’ ‘+documentU cas de etiquetado para administrar las
Plan B .title+’&body=’+U marcas incluso de manera mucho más
Un punto débil de una solución de mar- document.location+’ ‘+escapeU eficiente. Claro que, no se está limitado a
cado es que depende del servicio Toread. (document.getSelection())) usar Thunderbird. Gmail también pro-
Si el servicio se cae, T-Bookmarks será porciona herramientas que pueden ser
inútil (hasta que se tenga un Plan B). Es Finalmente, si se prefiere usar Gmail usadas para filtrar y agrupar las páginas
posible crear un boormarklet propio para como “agente de marcado”, entonces se marcadas, además, evita estar vinculado
enlaces de correo propios. Como se haría con el applet siguiente: a una aplicación de escritorio. ■
sabrá, un bookmarklet es una marca,
donde la URL actual contiene un applet javascript:(function() {m=’U RECURSOS
JavaScript. En el caso de que no desee http://mail.google.com/U
[1] Toread: http://toread.cc/
escribirse un applet desde cero, se ofre- mail/?viewU
SCRATCH
El famoso Laboratorio Multimedia del Instituto de Tecnología de Massachussets y la Universidad de Califor-
nia, los Ángeles, han venido desarrollando, durante los tres últimos años, un interesante proyecto educativo
enero de este año tuvo lugar el lanzamiento oficial de Scratch [1] para Windows y Mac, y se prevé que a
finales de este mismo año esté disponible la versión para Linux. POR MÁXIMO PRUDENCIO
N
o obstante, por tratarse de una ¿Qué es Scratch? Utilizar herramientas de programa-
evolución de Squeak, podremos Scratch es, para sus creadores, un ción como medio para alcanzar una
ejecutar la imagen de Scratch en medio de expresión mediante el cual mejor comprensión de las nuevas tec-
una plataforma Linux siempre que ten- los jóvenes y menos jóvenes pueden nologías no es nada nuevo, como tam-
gamos instalada la máquina virtual de expresar sus ideas y responde a la poco lo es la valoración educativa de
Squeak. Scratch es un entorno Squeak pretensión de proporcionar una los algoritmos de programación. Lo
que funciona, con algunas limitaciones, herramienta que facilite el uso de los novedoso es la sencillez del entorno
sobre cualquier máquina virtual Small- ordenadores de forma creativa, lúdico desarrollado por este equipo de
talk/Squeak. Por tanto, lo único que superando el modelo de formación investigación del MIT liderado por el
necesitamos es hacernos con la imagen tradicional, que viene utilizando las profesor Mitchel Resnick.
de Scratch y enchufarla a nuestra nuevas tecnologías para reproducir En cuanto herramienta de trabajo,
máquina virtual [2]. prácticas educativas obsoletas. Scratch es un proyecto de desarrollo
cerrado y código abierto. Es decir, al tarse con extensiones y modificaciones modo de trabajo consiste en arrastrar y
contrario de los proyectos convencio- del programa. No obstante, la versión soltar bloques en lugar de escribirlos.
nales de código abierto, el equipo de final para Linux diferirá visualmente y Y, por último, como LogoBlocks, Cri-
desarrollo no persigue la contribución será incompatible con la versión están- cketBlocks o PicoBlocks, utiliza blo-
de la comunidad de usuarios, sino que dard para evitar la confusión entre ques autoencajables que sólo ajustan si
se reserva la elaboración de la versión ambas versiones. son sintácticamente correctos, permi-
estándard. Por otra parte, es un pro- tiendo al usuario centrar su atención en
yecto de código abierto porque el Los Orígenes los algoritmos lógicos de programación,
equipo de desarrollo espera liberar el Scratch reconoce la aportación del en lugar de perder tiempo intentando
código fuente para mediados de este micromundo de Logo, los e-toys de desentrañar el esotérico código lingüís-
año, de modo que pueda experimen- Squeak y LogoBlocks como sus prece- tico de los tradicionales lenguajes de
dentes o fuentes en las que se ha inspi- programación.
rado. El lenguaje de programación de
Scratch, por un lado, se basa en Logo, Introducción a la
en especial en sus primitivas, y pre- Programación
senta un entorno en el que múltiples A pesar de haber sido ideado como una
objetos pueden evolucionar e interac- sencilla herramienta para jóvenes,
Figura 2: Metáfora de los bloques de cons- tuar. Por otro lado, como en Squeak Scratch ya ha demostrado ser un instru-
trucción. -lenguaje en el que está desarrollado- el mento valioso de introducción a la pro-
Sonidos en Scratch
Figura 7: Bloque cabecera. Los sprites pueden ejecutar sonidos
seleccionados de la librería de sonidos
abrirlos en la plataforma Scratch. De pregrabados de Scratch, importarlos o
este modo se favorece el intercambio y realizar grabaciones mediante la grabadora
el aprendizaje compartido de rutinas de de sonidos de Scratch. Una vez realizadas
programación, estudiando, modifi- las grabaciones, los nuevos sonidos se
cando y mejorando otros programas. incorporarán a la lista de los disponibles
para el proyecto en el que estemos
Sprites y Guiones trabajando. Para ver los sonidos asociados
Los proyectos de Scratch están hechos a un determinado sprite haremos clic sobre
de objetos llamados sprites que la pestaña Sounds.
resultan fáciles de manipular. Los Scratch reconoce archivos MP3, archivos
sprites son los gráficos con los que WAV, AIF y AU descomprimidos (codifica-
trabaja Scratch reconociendo los tipos dos con 8-bits o 16-bits, pero no con 24-
de formatos más habituales (jpg, gif, bits).
bmp y png). Podemos cambiar el
aspecto de un sprite dándole una forma Programar con Scratch lla, bien arrojándolos sobre el escenario,
o disfraz diferente, hacer que se Lo que hace verdaderamente atractivo a bien creándolos mediante la aplicación
parezca a una persona, un tren, una Scratch es la gran simplicidad con la que, Paint Editor, y dándoles vida arrastrando
mariposa o cualquier cosa. Se puede en muy poco tiempo, un usuario sin cono- al área de Scripts bloques de programa-
usar cualquier imagen como disfraz, cimientos de programación puede comen- ción.
dibujar una imagen con el Pintor, zar a elaborar y ejecutar sus propios pro- La programación de los sprites se
importar una imagen de nuestro disco yectos. resume en proporcionarles instrucciones
duro o, simplemente, arrastrarla desde El procedimiento consiste básicamente diciéndoles que se muevan, interpreten
una página web hasta el Escenario. en incorporar sprites y fondos a la panta- música o reaccionen a otros objetos. Para
LINUX USER • Squeak: Scratch
ción de opciones pulsando sobre la punta que comiencen con el encabezado al presio-
de flecha que oculta el menú. nar la bandera. Alternativamente, mediante
En la paleta de bloques encontramos, la tecla intro se obtiene el mismo resultado.
clasificados en ocho categorías en función
Figura 8: Informes. de su utilidad (movimiento, control, apa- Compartir con Scratch
riencia, sensores, sonidos, números, lápiz y Uno de los aspectos más interesantes de
variables), tres clases bloques: Scratch es la posibilidad de compartir ideas y
Bloques apilables: Estos bloques tienen proyectos con la comunidad de usuarios del
salientes en la parte inferior y huecos en la programa, permitiéndonos estudiar los
superior que permiten ajustar unos sobre guiones de otros proyectos y modificarlos
otros formando pilas. Algunos de ellos tienen libremente. El botón Share presente en el
Figura 9: Tipos de monitores de variables. una zona de entrada en su interior, donde se menú principal del programa nos permitirá,
puede escribir un número o elegir una opción mediante un golpe de tecla, subir nuestros
indicarle a un sprite lo que tiene que de una ventana emergente Un tipo especial proyectos a nuestro espacio personal en la
hacer, debemos unir bloques gráficos for- de bloques tiene forma de C abierta en cuyo página web del proyecto. Desde aquí podrán
mando pilas, denominadas guiones . Los interior se pueden insertar otras pilas de blo- ser ejecutados on-line mediante un player de
guiones se construyen seleccionando, en ques. java o descargados para poder ser estudiados
primer lugar, un objeto o fondo de escena- Cabeceras: Las cabeceras se distinguen por y modificados.
rio en la lista de sprites y deslizando blo- tener la parte superior redondeada, están des-
ques desde la paleta de bloques y arroján- tinadas a lanzar la ejecución de los guiones y Proyectos en Desarrollo
dolos sobre el área de scripts. Crear guio- se colocan en la parte superior de las pilas. En la actualidad, el equipo Lifelong Kinder-
nes (programas) consiste, pues, en ir Estos bloques esperan a que suceda un garten del MIT, desarrollador del proyecto,
uniendo bloques gráficos formando una evento, como que se presione una tecla, se continúa mejorando el programa y está re-
pila de instrucciones que se ejecutarán pulse la tecla intro o se haga clic sobre un elaborando la página web de Scratch, que
secuencialmente. Cuando se arrastra un sprite, para comenzar la ejecución de la pila pretende ser una plataforma multilingüe
bloque al Área de guiones, una marca de bloques que está debajo de ellos. que incluirá una biblioteca de sprites para
blanca indica dónde se puede soltar el blo- Informes: Estos bloques se han diseñado que puedan ser utilizados libremente por
que y formar una conexión válida con otro para que encajen en las zonas de entrada de sus usuarios.
bloque. otros bloques. Los informes se presentan con Además de la plataforma Scratch que per-
Para ejecutar un bloque y comprobar su dos siluetas y encajan sólo en los huecos con mita la compartición de proyectos, se está
funcionalidad bastará con hacer doble clic la misma forma. Los informes con bordes trabajando en un player para teléfonos
sobre cualquier parte de la pila, y se ejecu- redondeados representan números y encajan móviles en J2ME que permita ejecutar los
tará todo desde el comienzo al final del en bloques con huecos redondeados. Los proyectos de Scratch en este soporte y en
guión. Además, existe la posibilidad de informes con extremos terminados en punta una versión completamente en línea del
que Scratch nos muestre -en cada informan valores booleanos (verdadero y programa.
momento- el bloque que se está ejecu- falso) y encajan dentro de bloques con hue- Por otra parte, se estudia la posibilidad de
tando, destacando cada bloque a medida cos con extremos en punta. incluir en Scratch shariables, es decir, varia-
que se ejecuta. Esta característica puede Los informes con monitorización en el bles compartidas vía web.
resultar muy útil para encontrar errores en escenario presentan un marcador junto a Paralelamente, están trabajando en un
los programas y para ayudar a los nuevos ellos. Al señalizar el marcador se mostrará el tablero que incluye sensores de luz, sonido,
programadores a comprender el flujo de contenido de la variable en el escenario. La deslizador y botones, además de cuatro
ejecución de un programa. Para habilitar forma de presentación de los informes moni- resistencias de entradas para interruptores,
la ejecución controlada de los guiones torizados cambia al hacer doble clic sobre el sensores ligeros, de temperatura, etc. que
paso a paso seleccionaremos la opción propio marcador mostrando el nombre de la permitirán actuar con el mundo exterior a
start single stepping en el menú Extras del variable, con un marcador grande sin nombre través de Scratch. ■
menú principal de Scratch. o con un deslizador que permite manipular el
valor de la variable. Este último formato (des- RECURSOS
Tipos de Bloques lizador) únicamente está disponible para
[1] Página web de Scratch: http://scratch.
Algunos bloques tienen campos de texto variables creadas por el usuario. Para ajustar
mit.edu
editables, de forma redondeada, que per- los valores máximos y mínimos deberemos
miten modificar sus valores escribiendo hacer clic derecho sobre el marcador de la [2] Zona de descarga de Scratch: http://
llk.media.mit.edu/projects/scratch/
en su interior o arrojar sobre ellos bloques variable con deslizador, seleccionar la opción
download/
con esta misma forma. Otros tienen set sliden min and max y establecer los valo-
menús desplegables que facilitan la selec- res sus valores extremos. [3] Scratch para informáticos en ciernes:
http://www.eecs.harvard.edu/~malan/
Ejecución de Programas publications/fp079-malan.pdf
La banderola verde situada sobre la esquina [4] Entrevista a John Maloney: http://
weeklysqueak.wordpress.com/2007/
superior derecha del escenario permite
01/23/scratching-the-surface/
Figura 10: Ejecución de programas y guiones. comenzar la ejecución de todos los guiones
FTP y NcFTP
REMOVIENDO DATOS
CON LA SHELL
FTP y NcFTP son ambos clientes FTP para la línea de comandos.
Alternativamente, puede arrancarse pri-
Mientras FTP sólo dispone de funcionalidad para la transferencia de mero el cliente introduciendo ftp, y luego,
para conectarse, se introduce el siguiente
ficheros básica, NcFTP posee un completo grupo de características comando en la línea de comandos ftp:
F
TP (File Transfer Protocol) es una serie cir el nombre de usuario y la contraseña para apuntarnos para registrarnos. Como se ha
de protocolos de Internet que ayuda a el propósito de identificación. mencionado anteriormente, puede escri-
los usuarios a transferir datos entre Es preciso notar que, en contraste con los birse anonymous, ftp o un nombre de usua-
dos ordenadores. Una de ellas sirve de cliente protocolos de seguros (tales como Secure rio suministrado por el proveedor del espa-
FTP, mientras que la otra máquina es el servi- Shell SSH), un protocolo del tipo FTP trans- cio web, junto con la contraseña a juego
dor. mite nombres de usuario, contraseñas y otros (Listado 1). La introducción de la contra-
La mayoría de los servidores FTP ofrecen datos a través de la red en texto claro, por lo seña puede ser bastante dificultosa, ya que
servicios anónimos, en los que pueden intro- que FTP no resulta adecuado para el inter- a diferencia de NcFTP, FTP no presenta un
ducirse anonymous o ftp como nombre de cambio de información confidencial. asterisco para cada carácter que se intro-
registro y no suministrar una contraseña, Si se prefiere la simplicidad de la línea de duce.
aunque se considera un gesto amigable intro- comandos y se prefiere no usar el propio
ducir la propia dirección de correo. Otros ser- navegador web o el cliente FTP interno del
vidores, ejecutados mediante suministradores administrador de ficheros, entonces es buena
Listado 1: Conectando con
de espacios web, por ejemplo, exigen introdu- idea echarle un vistazo a las dos alternativas a FTP
ftp> open ftp.debian.org
la línea de comandos, FTP y NcFTP.
Connected to ftp.debian.org.
CONSEJO FTP: Toma de Contacto 220 saens.debian.org FTP server
Para cambiar de directorio en tu FTP es un simple cliente de la línea de (vsftpd)
máquina local, usa el comando lcd. Para comandos que cualquier distribución Linux Name (ftp.debian.org:huhn): ftp
otros comandos locales, comienza el debería incluir predeterminadamente. Para
331 Please specify the password.
comando con un signo de exclamación. abrir una conexión se hace lo siguiente:
Por ejemplo, !ls presenta el listado del Password:
directorio local. ftp ftp.servidor.com
Figura 1: Listado de comandos: acceso a la ayuda online de FTP con Figura 2: NcFTP muestra la ETA (“Estimated Time of Arrival” o
los comandos ? o help. Tiempo estimado de llegada) para un fichero concreto.
encaje con el modelo. Se introduce y o n para funcionan igual que en FTP y, evidentemente,
Prompt FTP empezar la transferencia o bien para saltar un para listar directorios se usará ls. Sin
Una vez registrados, FTP presenta el prompt fichero, respectivamente. embargo, NcFTP presenta aquí una caracte-
ftp, pudiéndose comenzar a introducir El comando prompt ayudará a evitar cues- rística adicional; suponiendo que el servidor
comandos. La salida de los comandos help o ? tiones de este tipo: soporta esto, ls -l ofrecerá un listado exten-
muestra los comandos disponibles (Figura 1). dido, similar a ls -la, que presentará ficheros
Muchos de los comandos presentan una ftp> prompt ocultos y directorios.
sintaxis similar a los comandos Bash (por Interactive mode off. NcFTP tiene más que ofrecer, ya que el
ejemplo, cd, ls, exit, etc). Algunos de éstos cliente soporta completado con tabulador,
son auto-explicativos, mientras que otros son Esto también es aplicable al comando mput, con el que se estará familiarizado desde Bash.
bastante enigmáticos. Puede pedirse al pro- el cual sirve para subir datos al servidor, y Pueden introducirse un par de letras de un
grama que muestre más información sobre mdelete, que elimina datos del lado del servi- comando o el nombre de un fichero/directo-
cada comando mediante lo siguiente: dor; ambos suponen que se dispone de rio, y pulsar [Tab]. NcFTP completará el nom-
acceso privilegiado de escritura (write) al ser- bre si es único. Escribiendo las dos primeras
ftp> help <comando> vidor FTP. letras de un comando y pulsando la tecla
El comando close cierra la conexión y quit tabulador se le dice que presente todos los
donde <comando> es el nombre de la ins- cierra la sesión y abandona el programa. comandos que comienzan con esa letra.
trucción sobre la que se recaba información.
Para descubrir en el lado del servidor el NcFTP: ¿Hay Alguien Ahí? NcFTP: Nuevos Amigos
directorio actual se introduce pwd (print wor- Aunque la mayoría de las distribuciones no Como probablemente era de suponer, el
king directory), como en Bash, y con el fami- incluyen el cliente de la línea de comandos comando para la descarga de ficheros a la
liar comando ls se presentará un listado de NcFTP por defecto, este cliente se encuentra máquina local es get. NcFTP añade una
directorios y ficheros. Con cd directory podrá habitualmente en los medios de instalación, o característica muy conveniente que muestra
cambiarse a otro directorio, cd .. sube un nivel bien puede encontrarse descargando la herra- el progreso de descarga y el rango de transfe-
en el árbol de directorios y cd lleva hasta el mienta desde la página de inicio de NcFTP rencia en la parte inferior de la pantalla
directorio raíz en el servidor FTP. [1], el cual dispone de distintas versiones para (Figura 2).
get y mget ayudan a descargar datos del varias plataformas. Otra práctica característica es la habilidad
servidor FTP al directorio actual en la Las operaciones básicas no difieren mucho
máquina local. Mientras que get espera que de FTP. Para abrir una conexión puede espe-
se introduzca el nombre de fichero completo, cificarse un destino sobre el que se arranca el Listado 2: Abriendo una
mget también soporta comodines. Para programa, o bien introducir el comando open conexión
mover todos los ficheros a un directorio espe- en el prompt (Listado 2). huhn@asteroid:~$ ncftp
cífico en la máquina local, se escribe mget * NcFTP maneja automáticamente el registro Ncftp 3.1.8 (Jul 27. 2004) by
en el prompt. en servidores anónimos. Si se necesitan intro- Mike Gleason
Evidentemente, se puede ser más preciso si ducir nombres de usuario o contraseñas, se (http://www.Ncftp.com/contact/).
así se desea: proporcionan los detalles cuando se ejecuta el
ncftp> open ftp.debian.org
comando:
Connecting to 128.101.240.212...
ftp> mget *.tar.gz
ncftp> open -u nombreusuarioU saens.debian.org FTP server
se descargarán ficheros con la extensión -p contraseña ftp.servidor.com (vsftpd)
.tar.gz. Por defecto, FTP avisará para confir- Logging in...
mar la descarga de cada fichero único que Los comandos help, pwd, cd, lcd, close y quit
Adelanto: Ballistics
VELOCIDAD PURA
Hay juegos de coches, de conducción, de carreras y también podemos encontrar un pequeño reducto de
juegos de velocidad. El título que nos ocupa este mes podría ser el buque insignia de los de este tipo,
donde lo único importante es la velocidad y que nuestros reflejos estén a la altura de las circunstancias.
S
eguramente si comentásemos que (en forma de parche, ya que el original máxima velocidad en lugar de tener una
el creador de este juego es el sigue en inglés) e incluso se está traba- buena técnica derrapando, tomando cur-
estudio Grin[1], muy pocos jando para que en la fecha de lanza- vas, aprovechando rebufo y ese tipo de
sabrían de quienes estamos hablando. miento esté disponible un segundo par- cosas a las que nos tienen acostumbra-
En cambio, la mayoría de los lectores los che que nos permita oír las voces del dos los juegos de carreras/conducción
reconocerán tan pronto como sepan que juego en nuestro idioma. Si bien se ha habituales. En Ballistics una carrera nor-
son los programadores de juegos tan insistido en que el juego físico no mal consiste en pisar el acelerador,
emblemáticos (lamentablemente no dis- incluirá la localización al español, y que esquivar los obstáculos letales y coger
ponibles en GNU/Linux) como Tom ésta tendrá que instalarse después con tantos aceleradores como sea posible, así
Clancy’s Ghost Recon: Advanced War- los parches antes comentados que se de simple.
fighter y Tom Clancy’s Ghost Recon: podrán descargar desde la página de
Advanced Warfighter 2 para Windows. Guadagames[3]. Velocidad Terminal
Sobra comentar que desde sus primeros Cuando comencemos a jugar a Ballistics
tiempos sus maneras eran igual de bue- Otro juego de Carreras… nos encontraremos con unos circuitos no
nas que las actuales e incluso puede que Ballistics podría resumirse como un muy complicados, donde más o menos
más refrescantes. juego en el que varios corredores de podemos reaccionar a tiempo al ver los
motos flotantes corren por llegar los pri- obstáculos. Pero a medida que avance-
Prueba de Éxito meros en unos circuitos muy particulares mos en el juego se hará técnicamente
Y es que, hasta el lanzamiento de Ballis- aunque simples. Con este panorama, el imposible reaccionar a dichos obstácu-
tics en 2001, pocos habían sido los jue- lector podría pensar que ya ha jugado a los, dado que la velocidad de nuestro
gos que apostaban única y exclusiva- multitud de juegos similares y que no se vehículo aumentará drásticamente. Si
mente por una jugabilidad basada en la le plantea nada nuevo. Es más, podría además aumentamos el nivel de dificul-
velocidad pura, y menos aún los que con ver las capturas de pantalla que acompa- tad del juego, la velocidad de la nave
tan arriesgada apuesta han pasado a la ñan a este artículo y pensar acertada- seguirá aumentando. Con este pano-
historia. Ballistics[2] lo hizo, triunfó y mente que Ballistics no está al nivel grá- rama, la única manera viable de jugar es
ahora llega a nuestros ordenadores en fico de las producciones de hoy en día. Y memorizando los circuitos para poder
versión GNU/Linux, y además localizado finalmente podría concluir que es sólo colocarnos con suficiente antelación en
al español. otro juego más de carreras… pero se posiciones seguras antes de que sea
equivocaría. Ballistics no es un juego de demasiado tarde. Y es que la velocidad
Localización carreras al uso, es un juego de velocidad, que alcanzaremos en los niveles superio-
En el momento de escribir estas líneas de velocidad terminal. res no es cualquier cosa, superando con
Ballistics todavía no está a la venta y ni creces los 1000 Km/h y llegando en oca-
siquiera se puede encontrar la demo para ¿De Velocidad? siones a ir tan rápido que el sonido
GNU/Linux. Sin embargo, hemos tenido La principal diferencia de un juego de dejará de escucharse y nuestra visión
acceso a la última beta disponible gra- velocidad y uno de carreras es que, si nos mostrará una luz blanquecina en el
cias a la distribuidora Guadagames. Ade- bien en ambos se plantea una carrera o centro de la imagen, una luz que podría-
más, hemos podido comprobar la prome- competición como telón de fondo, en el mos entender como la entrada al cielo de
tida traducción de los textos al castellano de velocidad lo que prima es mantener la los locos por la velocidad. En ese
*+*+*-,/.10/2!346587:9!;'9<0=2>?,@>BA !#"%$'&)(
87
COMUNIDAD · Konsultorio
EL
KONSULTORIO
DE KLAUS
Si usamos una distro reciente, ¿Cómo puedo fijar el tamaño de página
/proc/sys/kernel/hotplug está vacío de mi navegador Web? Cuando cambio a
debido a que ya no se usa. La mayoría de las otro escritorio y pulso sobre “konque-
distros usan ahora udev(d) para autodetectar ror”, la página Web me vuelve a apare-
cambios en la configuración del hardware, cer en el tamaño original.
cargar los módulos e iniciar servicios tan
pronto como se conecta algo en caliente. En el Existe una configuración en el
Número 24 de la revista Linux Magazine edi- perfil del navegador al arrancar.
ción en castellano se habla de este tema. Tras redimensionar Konqueror a la geo-
Klaus Knopper es el creador de
udev, junto con HAL (hardware abstraction metría deseada, nos dirigimos al menú
Knoppix y co-fundador de la layer), notifica al escritorio cualquier conexión Settings y elegimos Configure View Profi-
de dispositivo a través del bus del sistema les.... En el cuadro (véase la Figura 1),
LinuxTag Expo. En la actuali- dbus, y el escritorio (si está configurado para marcamos Save window size in profile y
ello) nos presentará varias opciones sobre qué guardamos este perfil como webbrow-
dad trabaja como profesor, hacer con el dispositivo: montarlo como disco sing, que es el perfil por defecto si Kon-
duro o acceder a él con algún programa ade- queror arranca en modo navegador Web.
programador y consultor. Si cuado (para discos de vídeo o cámaras digita- Nótese que también existe un bug en
les). Konqueror (al menos yo pienso que es
tiene algún problema de En cualquier caso, si tenemos /proc/sys/ker- un bug). Al arrancar con un tamaño defi-
nel/hotplug, el kernel ya está compilado con el nido, por ejemplo con:
configuración, o simplemente
soporte para conexión en caliente, soporte que
quiere conocer mejor cómo udev también necesita, no sólo a través del konqueror —geometry U
sencillo script ubicado en /proc/sys/kernel/hot- 850x600+85+70 U
funciona Linux, no dude en plug. http://www.debian.org/
Las configuraciones específicas de la cone-
escribir sus preguntas a: xión en caliente y los script se guardan en como se realiza con algunos scripts, Kon-
/etc/udev/*. El archivo de configuración res- queror parece “recordar” esta geometría
klaus@linux-magazine.com ponsable de mostrar o retirar los iconos del inicial e intenta fijarla automáticamente
disco en el escritorio, o de iniciar los progra- en cada página que se carga, lo cual
mas asociados es /etc/udev/hal.rules, que rea- puede resultar bastante molesto.
Conexión en Caliente en liza las llamadas para las acciones específicas
Dapper Drake a través de un socket al que escucha nuestro Pendrive USB de Arranque
Acabo de leer el artículo acerca de la escritorio. Knoppix también hace uso de esta Soy nuevo en Linux y quiero crear una
conexión en caliente del número 24 funcionalidad para añadir entradas en unidad de arranque USB. ¿Alguna
de Linux Magazine y me gustaría realizar /etc/fstab, y para crear sus propios iconos para página que me pueda guiar paso a paso en
algunos experimentos. El archivo el escritorio KDE, pero este tipo de adaptación este propósito?
/proc/sys/kernel/hotplug lo tengo vacío es específica de cada distribución. Crear una unidad de arranque USB es (téc-
tanto en mi sistema Drake como en FC5. nicamente) sencillo. Yo empezaría con una
¿Tengo que compilar el kernel para conse- Fijar el Tamaño de Página breve introducción al tema de arrancar desde
guir ambas funcionalidades? En ese caso, Correcto USB.
¿cómo consigue Ubuntu montar automáti- Soy novato en Linux y estoy No todas las placas base son capaces
camente las memorias USB? usando PClinusOS en mi equipo. de arrancar desde USB. Más aún, algu-
88 Número 28 WWW.LINUX-MAGAZINE.ES
Konsultorio • COMUNIDAD
WWW.LINUX-MAGAZINE.ES Número 28 89
COMUNIDAD · Konsultorio
falla), nos saltamos el paso de particio- cp /cdrom/boot/isolinux/* U la correcta, pero en realidad depende de
nado y tecleamos el comando mkdosfs /media/usbkey lo que hayamos hecho en el paso 1.
sobre el pendrive USB entero.
Esa ha sido la parte más difícil, dado Mientras que isolinux busca todos los Solución de Problemas
que aún no se ha comenzado la instala- archivos de arranque en /boot/isolinux, Si nuestro pendrive USB no funciona a la pri-
ción. El resto es realmente fácil. syslinux los busca en el directorio / del sis- mera, el problema podría ser:
Paso 2: Instalar syslinux como cargador tema de archivos FAT. • Que el pendrive USB no se reconozca como
del kernel Pero…un momento… ¡syslinux da un arrancable en la secuencia de arranque.
Lo que isolinux hace para un CD o DVD, nombre diferente a su archivo de Debemos comprobar que la configuración
syslinux lo hace para particiones o discos for- configuración! de la BIOS se ajusta a la manera en la que
mateados en DOS. hemos preparado la unidad, podemos inten-
Para unidades particionadas: mv /media/usbkey/isolinux.cfg U tar conectarla a otro puerto USB y, como
/media/usbkey/syslinux.cfg último recurso, probar a preparar el pendrive
syslinux /dev/sda1 con otro método de los descritos anterior-
Podemos borrar con seguridad los archi- mente.
Para unidades no particionadas: vos específicos de iso/eltorito, ya que no • Que el pendrive USB arranque, pero que la
los vamos a necesitar. carga del kernel falle tras cierto tiempo, o
syslinux /dev/sda tras un “error de checksum”. En este caso,
probablemente el pendrive USB no funcione
(Debemos asegurarnos de que estamos rm -f U con esa placa base. Tenemos un buen índice
usando un nombre correcto de dispositivo /media/usbkey/isolinux.bin U de éxito usando pendrives “Trekstor”. Si el
para nuestro sistema). /media/usbkey/boot.cat presupuesto nos lo permite, podemos pro-
Si usamos un pendrive USB particionado, bar varias marcas en busca de alguno com-
podemos también configurar (o resetear) el En este punto, el pendrive ya es arranca- patible. Existe la posibilidad de que el pen-
sector de arranque adecuadamente. No obs- ble, y contiene tanto el kernel como el drive funcione en el otro modo (particio-
tante, no siempre es necesario hacer esto. initrd, y podemos comenzar a copiar los nado o sin particionar).
Puede que primero queramos ver si el arran- archivos de cloop, que residen en el direc- • Que el kernel y el initrd arranquen, pero que
que funciona sin cambiar el MBR. torio de Knoppix del CD. Knoppix se queje de que “no encuentra el
Instalamos un sector de arranque syslinux sistema de archivos de KNOPPIX” y nos
para unidades particionadas: rsync -Hav —progress U derive a un shell de rescate. El pendrive no
/cdrom/KNOPPIX U se detectó en el arranque. Esto puede ser
ms-sys -s devicename /media/usbkey/KNOPPIX debido a una respuesta lenta (las particiones
del pendrive no disponibles en el momento
Usamos /dev/sda si /dev/sda1 es la partición Una vez hecho esto, tenemos que des- en el que linuxrc trata de montarlas) o el
FAT16/FAT32 del pendrive USB. Debemos montar el dispositivo para poder sincroni- controlador no está soportado. Aparente-
vigilar que el nombre del dispositivo sea zar el búfer de datos pendientes a disco y mente la BIOS tuvo conocimiento del pen-
correcto. cerrar la sesión. No se sorprenda si este drive USB en un primer momento, aunque
Paso 3: Copiamos los archivos de arran- comando se toma un buen tiempo en eje- Linux no lo encuentra más tarde. Ha de
que y la información cutarse. Puede haber muchos datos sin recordarse que la BIOS usa un conjunto de
En este paso, tenemos que montar el pen- escribir en memoria debido la fabulosa drivers completamente diferentes para el
drive USB (o partición, si usamos el modo par- caché del búfer dinámico de bloques de pendrive de los que incluye Linux. Este
ticionado) en modo sensible a mayúsculas: Linux, que hace parecer que las escrituras inconveniente puede ser un problema de
en disco son más rápidas de lo que real- interrupciones con el controlador. En este
mkdir -p /media/usbkey mente son. caso, los cheatcodes candidatos de Knoppix
mount -t vfat -o rw,umask=U pueden ser de utilidad:
000,shortname=winnt U umount /media/usbkey
/dev/sda1 /media/usbkey knoppix acpi=off U
Paso 4: Configurar la BIOS del ordena- noapic pnpbios=off U
A continuación, deberíamos cambiar dor pci=bios irqpoll...
/dev/sda1 a la partición en cuestión, y Una placa capaz de arrancar desde USB
entonces saltarnos el número de la parti- normalmente tiene al menos dos modos de Knoppix 5.1.0 incluye un script llamado
ción en caso de usar todo el pendrive. arranque por USB: mkbootdev, escrito por Martin Öhler y yo
Copiamos ahora los archivos de arran- • Arranque desde disco duro USB mismo, que realiza todos los pasos comenta-
que desde el CD o DVD de Knoppix. Vamos • Arranque desde unidad ZIP USB dos con unos pocos golpes de ratón. Si ejecu-
a suponer que el CD se monta en /cdrom en lo que debería en realidad llamarse “arranque tamos mkbootdev desde un terminal en un
una sesión live de Knoppix, aunque en rea- desde una unidad USB particionada” y “arran- sistema Knoppix CD o DVD mientras está
lidad podemos realizar estos pasos perfec- que desde una unidad USB sin particionar”. conectado nuestro pendrive USB sin particio-
tamente con cualquier distribución de Para nuestro nuevo pendrive USB “por nes montadas, nos guiará a través de los pasos
Linux. defecto”, la opción disco duro USB sería 1 al 3. ■
90 Número 28 WWW.LINUX-MAGAZINE.ES
EDITORIAL
AGNESIA
▲
Viene de la página 3 biendo programas de código abierto. incapaz de casar esta aparente con-
Precisamente uno de los beneficios tradicción interna, obligándose a
Se buscaba disipar así las dudas y del software libre es que es un igua- situarse en un extremo (el mercan-
temores que expresaban las corpora- lador en ambos sentidos, evitando tilista) u otro (el fundamentalista)
ciones a la hora de su adopción y los obscenamente excesivos benefi- del espectro del movimiento. Esta
desmentir a aquellos que la acusa- cios del software propietario, la falta de comunicación entre los dos
ban de comunista. Pero esa insisten- venta del cual es, en palabras de Jeff lóbulos del software libre es extre-
cia, como señaló el señor del párrafo Atwood [2], “lo más parecido a madamente grave y está en la raíz
anterior, se ha cobrado un precio. imprimir tu propio dinero”. (Por de la creciente apatía y riñas inter-
Los entusiasmados estudiantes de supuesto que el efecto igualador no nas que se producen últimamente
antaño han crecido y, por haber sólo afecta a los que desarrollan en la comunidad, hasta el punto de
donado su tiempo y esfuerzo antes, software libre, sino también a los que podría llevar a una escisión en
creen tener derecho a un trozo de fabricantes del software propietario, el movimiento, dejando a ambas
pastel ahora. obligando a una racionalización del partes resultantes cojas, cojo de
Desgraciadamente, las cosas no mercado. Por eso es tan odiado). ideología y altruismo un lado, y
son tan sencillas. Por un lado, si hay Por otro lado, el fundamenta- cojo de pragmatismo y financiación
algo intrínseco a la filosofía del soft- lismo, entendido como el funda- el otro.
ware libre es que es un gran iguala- mento ideológico del movimiento, Puede que la crisis pase, pero se
dor. Es decir, si tienes la pericia y el es necesario, ya que es el baremo necesitará que la comunidad eche
conocimiento técnico para utilizar- contra el cual todo lo demás se ha mano de sus recursos y fuerza para
las, te da las herramientas a las cua- de medir. Representa la vara que evitarlo. Aún estamos a tiempo
les, en otras circunstancias, nunca nos ayuda a decidir lo que entra y lo para aplicar parches.
podrías aspirar por su coste. Con que no en el software libre y en qué Sólo espero que no tenga que ser
estas herramientas podrás crear medida. Es un ideal hacia el cual yo el que de el aviso de la próxima
todos los aplicativos que te vengan hay que trabajar, aún teniendo la muerte anunciada. ■
en gana, sin límites, sin cuotas, sin certeza que no se va a alcanzar
tener que gastarte una fortuna en jamás. PERO no se puede exigir que
licencias. Sin embargo, no se debe todos los miembros de la comunidad
esperar alcanzar los ingresos de actúen de manera perfectamente
Gates o Ellison solamente escri- ortodoxa y siguiendo al dedillo las
vidas ejemplares de San
Stallman y similares. Hay
que admitir dentro del seno
del movimiento al aprove-
chado, al mercachifle y al
oportunista potencial o
confirmado y no entrete-
nerse demasiado en juzgar
su catadura moral, sino que Paul C. Brown
hay que aplicar las licen- Director
cias y los otros mecanismos
de protección del software
libre, transformando lo que
en otro medio sería un
parasitismo, en una simbio- RECURSOS
sis. [1] Artículo de Paul Graham donde
El miembro de la comu- anuncia la muerte de Microsoft:
http://www.paulgraham.com/
nidad se percata, en cada
microsoft.html
evento, en cada artículo,
www.sxc.hu
en cada entrada de cada [2] Coding Horror, Where Are All the
blog, al menos inconscien- Open Source Billionaires?: http://
temente, de esta dicoto- www.codinghorror.com/blog/
archives/000842.html
mía. En muchos casos es
PRÓXIMO NÚMERO
Intrusos
Jugar al ratón y al gato con tus preciados datos no
es lo más agradable del mundo, pero pensar que
tus cosas no le pueden interesar a nadie y que, por
tanto, no tienes que ser especialmente cuidadoso
con la seguridad, es todavía peor.
¿Están tus puertas cerradas y atrancadas? ¿Están
tus datos a salvo? En los inicios de la red los prime-
ros intrusos eran inocentes estudiantes con ganas
de experimentar, pero de un tiempo a esta parte las
cosas se han vuelto mucho más feas. El robo de
identidad y el tráfico de información confidencial
es un enorme negocio ilegítimo que mueve millo-
nes de dólares al año, sin que el usuario medio sea
consciente de lo expuesto que está.
En el próximo número de Linux Magazine estu-
diamos dos de las técnicas más utilizadas por los
ladrones de datos, descubriendo cómo se abren
puertas traseras en nuestros sistemas y cómo se
intercepta el tráfico entre varias máquinas, para, a
continuación, mostrar otras sencillas técnicas para
monitorizar y asegurar nuestro entorno.
Si pretendes mantener la confidencialidad y
seguridad de tus datos a buen recaudo, no te pue-
des perder el número 29 de Linux Magazine.