Linux Magazine - Edición en Castellano, Nº 16

Page 1

OpenOffice 2.0 LINUX MAGAZINE

Evaluamos la nueva versión de esta Suite

Edición en Castellano

CentOS 4.2 completo

NÚMERO 16

Linux empresarial a bajo coste Versiones de 32 y 64 bits

NÚMERO 16 • P.V.P 6,95 €

Voz sobre IP

Herramientas de telefonía en Internet SSL-Explorer

Linphone

Kphone

Asterisk

Skype

VOZ SOBRE IP

Redes Privadas Virtuales sencillas p39

Anubis

Encriptación Global para tu correo p62

Gimp

Consigue fotos perfectas p72

Marabunta La nueva tecnología para redes *realmente* anónimas p48

Live Distros

Crea una centralita doméstica con Asterisk p14 Llama desde Linux con Linphone y Kphone p19 Configura Skype para tus llamadas p24

Quake 4

Marabunta

Distros Live Encuentra la herramienta perfecta en nuestra selección p40

SSL-Explorer

Anubis

Juegos Quake IV: Stroggs hasta en la sopa p84

Pstoedit Convierte gráficos vectoriales p45

WWW.LINUX- MAGAZINE.ES



EDITORIAL

ME LO ESCRIBA CIEN VECES Nos sentimos orgullosos de nuestros orígenes como publicación, que se remonta a los primero días de la revolución Linux. Nuestra revista hermana, la publicación alemana Linux Magazin, fundada en 1994, fue la primera revista dedicada a Linux en Europa. Desde aquellas tempranas fechas hasta hoy, nuestra red y experiencia han crecido y se han expandido a la par que la comunidad Linux a lo ancho y largo del mundo. Como lector de Linux Magazine, te unes a una red de información dedicada a la distribución del conocimiento y experiencia técnica. No nos limitamos a informar sobre el movimiento Linux y de Software Libre, sino que somos parte integral de él.

Estimado Lector de Linux Magazine o creo que es porque no sabemos explicarnos. La cantidad de dudas que despierta el software libre en la mente del ejecutivo corporativo medio es asombrosa. Y parece que no haya ninguna cantidad de conferencias, ponencias y congresos, capaces de levantar el velo de misterio y confusión. La viabilidad del software libre en la empresa se puede demostrar de manera empírica. Basta con un “mire usted el mercado”. Ahí tenemos IBM, Red Hat, HP, Mercadona, Gas Natural y miles de empresas más que implementan soluciones libres. Estúdiese sus modelos de negocio (o el de sus proveedores, según el caso) y tendremos uno o varios modelos viables. Pero, ni por esas. Quizás pueda venirle bien al lector con ganas y tiempo de evangelizar la siguiente lista de dudas que se me ha planteado a lo largo de los años, y que sirve como excusa antiprocesal para demorar la adopción del software libre: El problema es el control Si todo el mundo puede meterle mano al código ¿cómo se puede controlar eso? ¿No acabarán como los programas de la mula, llenos de spyware, troyanos y viruses? Esta objeción es fruto del desconocimiento de la manera de trabajar de la comunidad del software libre. Las jerarquías, controles de versiones, filtros humanos y tecnológicos, y sofisticados mecanismos de depuración y auditoría garantizan la calidad del código libre de manera mucho más efectiva que cualquier control de una empresa dedicada al software propietario. Bdale Garbee describió el proceso de coordinación de un grupo de desarrolladores como “pastorear gatos” y si hay algo en lo que los líderes de proyectos destacan es en crear protocolos que les permitan ser excelentes pastores de gatos. ¡Ah! ¿Y no hemos mencionado lo de la transparencia del código al ser abierto? El problema son las ideas Pero ¿y mi idea? ¿Mi maravillo$a idea con la que voy a ganar un millón de pavos?

Y

Si la gente puede copiar y distribuir mi maravillo$a idea, ¿dónde quedo yo con mi gallina de los huevos de oro? El empresario del ramo que confíe el éxito de su empresa en que no le copien la idea, va dado. Es más: va muy dado. Estamos hablando de software, no de un artefacto físico que consume recursos para su replicación. Si los chinos pueden copiar y, de hecho, copian relojes, vaqueros, juguetes, colonias, motos, bicicletas, cámaras, televisores, coches e, incluso, maquinaria pesada para el procesamiento de cartón, que lo he visto yo, ¿no podrán con unos pocos miles de líneas de código? Aún si el largo brazo de la ley pudiera llegar tan lejos como el lejano oriente y se pudiera obligar a esos seres inescrutables de ojos rasgados a seguir las reglas del juego occidental que impidiera el pirateo directo, no hay ninguna ley que impida el pirateo de ideas y que su competidor saque una versión mejorada, más rápida y con más funcionalidades de tu “killer app” a un cuarto de su precio. Bienvenido al libre mercado, donde dormirse en los laureles significa claudicar ante el sueño eterno. El Problema es el dinero Pero si tengo que regalar mi producto… Me gustaría coger al idiota que dijo que el software libre es gratuito y hacerle copiar “Libre no es igual a gratis” hasta que sólo le quedasen muñones sangrantes. Nadie ha dicho que haya que regalar nada, pero claro, según UNA licencia de software libre, ha de proveer usted a sus clientes de copias del código fuente y permitirle que lo modifique y redistribuya a su vez. Vaya puñeta. Pero, vamos a ver, yo sé cambiarle el émbolo del depósito de un retrete, ¿quito por ello el trabajo al fontanero del barrio? Probablemente por una cosa tan pequeña, ni siquiera se dignaría a moverse de delante del televisor. Ahora bien, si he de

WWW.LINUX- MAGAZINE.ES

levantar el suelo del baño en busca de una fuga en una tubería, puede que me lo piense. No hay nada ni físico ni legal que me lo impida: puedo comprar las herramientas y el material necesario a un precio razonable, puedo blandir un pico… Pero sería mejor llamar al especialista. Lo mismo ocurre con el software. Ahí fuera están las herramientas para el desarrollo de cualquier cosa, pero hay empresas que desarrollan software, y hay empresas que lo utilizan. Para éstas, para sus clientes, de poco les sirve el código fuente. Si lo que teme es al intrusismo por parte de terceros y no encuentra dentro de usted la seguridad de poder ofrecer el mejor servicio para su propio producto, puede que no sea el especialista que declara ser y, en tal caso, ¿qué hace usted aquí? Que yo sepa a los buenos fontaneros nunca les falta trabajo. Sea usted el mejor “fontanero” de su producto, el que tiene todas las respuestas, el que mejor mantenimiento da, y verá como no le faltan clientes. Y a esos cóbreles, cóbreles todo y sin pudor. No se corte. Lo dicho: Libre no es igual a gratis. Me lo escriba cien veces.

Paul C. Brown Director

Número 16

3


CONTENIDOS • Linux Magazine nº 16

PORTADA 13 Voz sobre IP Este mes os mostramos algunas de las herramientas más populares para la telefonía por Internet bajo Linux.

EVALUACIÓN 27 Livedistros Un buen número de distribuciones live de Linux te están esperando en Internet. La elección correcta depende de tus necesidades.

14 Asterisk Un viejo ordenador es todo lo que se necesita para construirse uno mismo un servidor telefónico personal.

DESARROLLO 52 Perl Este mes veremos cómo evitar la tragedia de la pérdida de archivos con un sistema de control transparente basado en Perl.

32 OpenOffice 2.0 Después de muchas versiones pre-release y de informes preliminares, al fin ha llegado el nuevo OpenOffice.

19 Linphone Si deseas llamar a amigos que se encuentran en países lejanos, no descuelgues el teléfono: enchufa los auriculares y arranca Linphone.

22 Kphone Se puede hablar con el mundo con una tarjeta de sonido normal y corriente, con una cuenta de un proveedor de telefonía de Internet y con Kphone.

36 CentOS La estabilidad y longevidad de las distribuciones empresariales de Linux cuestan su buen dinero…¿o no tanto?

38 Libros Analizamos los títulos “Programación con Smalltalk” y “Guadalinex v3” de la editorial Editlin.

PRÁCTICO

57 Python Después de tanto framework, librerías y plataformas web enormes ya era hora de que alguien nos diese algo divertido.

PRÁCTICO

24 Skype El famoso Skype es una opción VoIP gratuita pero no libre. Aprende a configurarlo adecuadamente bajo Linux.

39 SSL Explorer SSL-Explorer proporciona una interfaz basada en web para configurar una red privada virtual.

42 Menu System

LINUX MAGAZINE 3 6 8 10 12 94 94 95 97 98

4

Editorial DVD Linux Magazine Inseguridades Noticias Kernel Correo Eventos Información de Contacto Subscripciones Linux Local Próximo Número

Número 16

Uno se olvida de que está trabajando con un ordenador cuando navega por los ficheros de audio, imágenes y videos favoritos con Mpeg Menu System.

45 Pstoedit pstoedit nos permite convertir archivos Postscript y PDF a formatos de imagen vectorial.

48 Marabunta La privacidad y anonimato en Internet es un mito... hasta ahora. David Gascón nos revela su último invento para mantener la identidad en secreto: Marabunta.

WWW.LINUX- MAGAZINE.ES

61 La Columna de Charly HTTPing podría ser la herramienta perfecta para comprobar la salud de su servidor web.

62 Anubis El servicio de manipulación de correo Anubis permite la encriptación centralizada del correo saliente.


LINUX USER 70 Kpowersave KPowersave ofrece a los usuarios de KDE una interfaz sencilla y fácil para configurar los opciones de administración de energía.

84 Juegos: Quake IV Llega a Linux todo un clásico de los first-person-shooters: Quake 4 trae más armas, más efectos, más sonidos y más malos a quienes masacrar.

Distribución completa CentOS 4.2

Estabilidad empresarial a bajo coste

Compilado a partir de las fuentes de distribuciones comerciales líderes del mercado

Versiones de 32 y 64 bits

Soporta sistemas de fichero ACL, herramientas de migración SAMBA, clustering, etc.

72 Gimp Gimp te ayudará a mejorar la calidad de tus menos-que-perfectas imágenes digitales.

74 Fortune El programa Fortune presenta un refrán o una broma cuando arrancas una sesión en tu terminal. También puedes adjuntarlo a tu firma de correo para alegrar tus mensajes.

76 Educación Squeak puede ser el entorno educativo definitivo. Comenzamos su análisis para su aplicación en las aulas en este artículo de Juan Rafael Fernández.

81 Linea de Comandos: Ispell Nadie está a salvo de gazapos y de los enredos con palabras. Correctores de ortografía como Ispell y Aspell se encargan de mantener las letras en su lugar correcto.

COMUNIDAD 86 Konsultorio Si tienes algún problema de configuración, o simplemente quieres conocer mejor cómo funciona Linux, Klaus Knopper, el creador de Knoppix, te ayuda.

MÁS DETALLES EN LA Pág 6

89 Opinion Pia Waugh, vice-presidenta de Linux Australia, nos da su parecer sobre las mujeres en el software libre, el lugar que ocupan y las dificultades a las que se enfrentan.

90 OSWC2006 La recta final de la segunda edición de la OSWC se celebró en Málaga en febrero. Linux Magazine estuvo allí.

WWW.LINUX- MAGAZINE.ES

Número 16

5


DVD LINUX MAGAZINE

CENTOS 4.2 E

n los últimos años hemos asistido a la aparición de un nueva especie en el ecosistema Linux: las distribuciones empresariales. Las distros empresariales se han creado para cubrir la demanda del mundo de la empresa y se han diseñado para conseguir un rendimiento estable y una larga vida útil. Estas cualidades son altamente apreciadas en el entorno corporativo y por esta razón, las distros empresariales tienen un precio elevado.

Si está buscando una distribución orientada a la empresa, pero no está dispuesto a pagar un precio elevado, puede ser usted el perfecto candidato para probar CentOS. CentOS es una distro empresarial plenamente funcional, estable y lista para usar sin el elevado coste económico. Estamos orgullosos de ofrecer CentOS 4.2 como el DVD de este mes en Linux Magazine. CentOS se basa en el código fuente de Red Hat Enterprise Linux. El DVD de este mes es el equivalente a Red Hat Enterprise Linux 4 update 2, un sistema Linux puntero que podemos encontrar con precios que varían desde 179 a 1499 dólares. Esta distribución Linux, con toda la potencia empresarial, es ahora suya de

Cómo puedes ayudar El CentOS Project lo compone un equipo de 11 desarrolladores. Estos desarrolladores donan su tiempo y recursos al proyecto, y no se les compensa de ninguna manera. La descarga de CentOS es totalmente gratuita. Sin embargo, si tienes la posibilidad de donar algo de dinero al proyecto, será apreciado enormemente. EL CentOS Project desea poder mandar desarrolladores la los principales encuentros de Software Libre del mundo para que representen a CentOS en estos eventos. Así mismo hay 14 servidores controlados en estos momentos por el proyecto CentOS que han sido donados por proveedores de servicios de todo el

mundo. Usamos estos servidores para distribuir CentOS a más de 70 mirrors públicos por todo el mundo, proporcionar semillas de Bittorrent, hospedar nuestra página Web, proporcionar nuestra DNS y servicios de lista de correo y dar soporte a cualquier otra cosa que se haga desde el proyecto CentOS. Si usted usa CentOS y puede donar un servidor (y ancho de banda) a nuestro proyecto, o donar servicios de mirror para el proyecto de CentOS, estas donaciones serán verdaderamente apreciadas. Si esta usted interesado en donar tiempo, dinero o espacio en servidores, por favor diríjase a: http://www.centos.org/donate/

Figura 1: Una interfaz gráfica de usuario nos guía en la instalación y primer arranque.

6

Número 16

manera totalmente gratuita. Simplemente tiene que introducir el DVD de Linux Magazine y comenzar la instalación. Además, el DVD de este mes viene con las versiones de 32 y 64 bits de CentOS.

¿Por qué CentOS? El selecto pedigrí de CentOS hace de CentOS 4.2 la herramienta perfecta para las aplicaciones de servidor. Podemos usar CentOS como servidor Web, servidor de correo, servidor de bases de datos o servidor de aplicaciones. CentOS incorpora todas las sofisticadas funcionalidades de compatibilidad con Windows incluidas en Red Hat Enterprise Linux. Podemos usar CentOS como controlador de dominios primarios o secundarios, o como servidor de clientes Windows basado en Samba y SMB. CentOS es también un sistema de escritorio Linux plenamente funcional. Encontraremos la mayoría de las herramientas de escritorio más populares, como OpenOffice.org 1.1.2, Mozilla 1.7.12, Firefox 1.0.7, Evolution 2.0.2, Gaim 1.3.1-0.el4.3, X-chat 2.4.0, Konqueror 3.3.1, Gimp 2.0.5-5, Gnome 2.8 y KDE 3.3. Ya sea trabajando en un servidor empresarial, en un servidor para la oficina o incluso en un sistema común de escritorio, encontraremos en CentOS una distribución estable, de alto rendimiento, fácil de administrar y de utilizar. Abra su DVD de este mes y dispóngase a explorar el fascinante mundo de CentOS, el Linux empresarial de la comunidad.

Figura 2: CentOS es una plataforma realmente completa para desarrolladores de software.

WWW.LINUX- MAGAZINE.ES


DVD LINUX MAGAZINE

DESTACAMOS CentOS puede funcionar como sustituto de dominios Server Message Block (SMB) utilizando Samba 3.0.10. CentOS y Samba pueden usarse como un controlador de dominios primarios o secundarios SMB seguro, servidor de ficherso SMB o servidor de impresión SMB. CentOS incluye también OpenLDAP 2.2.13 y las smbldap-tools de IDEALX S.A.S (http://www.idealx.org/). Podemos usar CentOS como servidor de correo de Internet con Sendmail 8.13.1, Postfix 2.1.5, o Exim 4.43.1. También se incluye el sistema de webmail Squirrelmail 1.4.3, junto con Dovecot 0.99.11 y Cyrus-Imapd 2.2.12 para el soporte POP3 e IMAP. En cuanto a servidor Web, incluye Apache 2.0.52 y php 4.3.9. CentOS nos ofrece las bases de datos MySQL 4.1.12 y PostgreSQL 7.4.8. Otros servidores de bases de datos de terceros como Oracle 8i, 9i y 10g, e IBM DB2, funcionan en CentOS, aunque no están soportados oficialmente por los proveedores.

¿DVD DEFECTUOSO? Si tu DVD está defectuoso será reemplazado por uno nuevo. Por favor envía un email a dvd@linux-magazine.es

CentOS incluye también el servidor FTP vsftpd 2.0.1, el servidor RADIUS freeradius 1.0.1 y NFS 1.0.6.

AYUDA Y SOPORTE CentOS es un proyecto basado en la comunidad y la ayuda se proporciona por parte de voluntarios. Para ayuda y soporte, podemos acudir a los foros de la página Web en: http://www.centos.org/modules/newbb/. Podemos también acudir a las listas de correo: http://lists.centos.org/mailman/listinfo Podemos además pasarnos por los canales del IRC de CentOS en irc.freenode.net (#centos, #centos-devel, #centos-mirror, #centos-ppc, #centos-sparc), y la base de datos de bugs de CentOS en http://bugs.centos.org/.

Figura 3: El SO CentOS es un sistema de escritorio completamente funcional.

En cuanto a aplicaciones de escritorio, tenemos OpenOffice.org 1.1.2, Mozilla 1.7.12 , Firefox 1.0.7, Evolution 2.0.2, Gaim 1.3.1, X-chat 2.4.0, Konqueror 3.3.1 y Gimp 2.0.5, así como los escritorios Gnome 2.8 y KDE 3.3.

Figura 4: CentOS incorpora un cortafuegos integrado.

WWW.LINUX- MAGAZINE.ES

Número 16

7


LINUX USER INSEGURIDADES Schlagwort sollte hier stehen

INSEGURIDADES ■ scponly El paquete scponly es una shell restringida que permite unos pocos comandos predefinidos. A menudo se usa como un complemento a OpenSSH para proporcionar el acceso a usuarios remotos sin la necesidad de cesión de privilegios remotos. Max Vozeler descubrió que el comando scponly permite a los usuarios crear un entorno chroot en directorios arbitrarios. Además, Pekka

Pessi informó acerca de otro problema de seguridad: scponly validaba insuficientemente los parámetros de la línea de comandos a scp o al comando rsync. Un atacante local podría obtener privilegios de superusuario mediante un chroot a directorios arbitrarios que contengan enlaces duros a programas setuid. Un usuario remoto de scponly también podría enviar parámetros maliciosos a scp o al comando rsync que

POLITICAS DE SEGURIDAD DE LAS DISTRIBUCIONES MAYORITARIAS Distribuidor

Fuente Seguridad

Debian

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

Gentoo

Mandrake

Red Hat

Slackware

Suse

Comentario

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

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

8

Número 16

WWW.LINUX- MAGAZINE.ES

le permitirían eludir las restricciones de la shell y ejecutar programas arbitrarios. ■ Referencia Gentoo: GLSA-200512-17

■ Apache El Servidor HTTP Apache es un servidor de web popular y libremente disponible. Una fuga de memoria en de la versión worker MPM permitiría que atacantes remotos causaran una denegación de servicio (consumo de memoria) mediante conexiones abortadas. El Proyecto de Vulnerabilidades y Exposiciones Comunes (Common Vulnerabilities and Exposures o CVE – http://cve.mitre.org) ha asignado a este problema el nombre CVE-2005-2970. Esta vulnerabilidad sólo afecta a los usuarios que están usando la versión worker MPM no predeterminado. Se descubrió un fallo en el módulo mod_imap en el uso de la directiva Referer con mapas de imágenes. Con determinadas configuraciones del sitio, un atacante remoto podría realizar un ataque de scripting multisitio si la víctima es forzada a realizar una visita a una URL maliciosa usando determinados buscadores de web. (CVE-2005-3352) Se descubrió un fallo de puntero NULL en mod_ssl que afectaba a las configuraciones de servidores donde un host virtual SSL es configurado con un acceso de control y un documento cliente de error 400. Este fallo se traduciría sólo en una denegación de servicio si se usa la versión worker MPM no predeterminado. (CVE-20053357) ■ Referencia Mandriva: MDKSA-2006:007 Referencia Red Hat: RHSA-2006:0159

■ xpdf,gpdf,kpdf xpdf,gpdf y kpdf son visores para ficheros PDF (Portable Document Format).


INSEGURIDADES

Se han descubierto algunos fallos en estos visores de PDFs. Un atacante podría construir un fichero PDF cuidadosamente manipulado que haría posible que el visor se colgara o que posiblemente ejecutara código arbitrario cuando se abriera. El Proyecto de Vulnerabilidades y Exposiciones Comunes (Common Vulnerabilities and Exposures o CVE – http://cve.mitre.org) ha asignado a estos problemas los nombres CVE-2005-3191, CVE-20053192 y CVE-2005-3191. ■ Referencia Gentoo: GLSA-200512-08 Referencia Red Hat: RHSA-2005:867

■ CUPS El Common UNIX Printing System (CUPS) proporciona una capa de impresión portable para sistemas UNIX y Linux. Se descubrieron algunos errores en la manera en la que CUPS procesa los PDFs. Un atacante podría construir un PDF haciendo que CUPS se colgara o

que posiblemente ejecutara código arbitrario. El Proyecto de Vulnerabilidades y Exposiciones Comunes (Common Vulnerabilities and Exposures o CVE – http://cve.mitre.org) ha asignado a estos problemas los nombres CVE-2005-3191, CVE-20053192 y CVE-2005-3191. ■ Referencia Red Hat: RHSA-2005:878

■ cURL cURL es una herramienta para la obtención de ficheros de servidores FTP, HTTP, Gopher, Telnet y Dict usando cualquiera de los protocolos soportados. Stefan Esser descubrió un error offby-one en un bucle. Es posible ejecutar código arbitrario sobre la máquina de un usuario si éste consigue que se ejecute un bucle con una URL cuidadosamente manipulada. El Proyecto de Vulnerabilidades y Exposiciones Comunes (Common Vulnerabilities and Exposures o CVE –

http://cve.mitre.org) ha asignado a este problema el nombre CVE-2005-4077. ■ Referencia Debian: DSA-919-1 curl Referencia Gentoo: GLSA-200512-09 Referencia Mandriva: MDKSA-2005:224 Referencia Red Hat: RHSA-2005:875

■ VMware Workstation VMware Workstation es una potente máquina virtual para desarrolladores y administradores de sistemas. Tim Shelton descubrió que vmnetnatd, el módulo host que proporciona la red estilo BAT para sistemas operativos huéspedes de VMware es incapaz de procesar peticiones EPRT y PORT FTP incorrectas. Usuarios de sistemas operativos huéspedes maliciosos que usan la red NAT o Workstation VMware locales podrían explotar esta vulnerabilidad para ejecutar código arbitrario en el sistema host con privilegios elevados. ■ Referencia Gentoo: GLSA-200601-04


LINUX USER NOTICIAS DEL KERNEL Schlagwort sollte hier stehen

NOTICIAS DESDE EL KERNEL Estabilidad y Desarollo Adrian Bunk ha propuesto una sencilla reforma al método actual del desarrollo del kernel. En estos momentos, el árbol oficial del kernel dispone de unas semanas de aceptación de código nuevo, seguido de unas semanas de esfuerzos de modificación y estabilización. Se prosigue la estabilización en el árbol w.x.y.z después del lanzamiento oficial, que implementa estrictas restricciones a la hora de la aceptación de parches. Según las propuestas de Adrian, esto seguiría siendo igual, pero después de cada lanzamiento oficial, el árbol w.x.y.z anterior relajaría las restricciones de parches para que el proceso se pareciese más al de la época en que las versiones pares buscaban la estabilidad y las impares buscaban el desarrollo. Una vez se liberase la versión 2.6.17, por ejemplo, Adrian sugiere que el árbol 2.6.16.z continue su desarrollo de la misma manera en que se desarrollan los árboles 2.4 y 2.2, buscando la estabilidad global a la vez que se aceptan cautelosamente retroportes y actualizaciones adicionales. La idea actual de Linus Torvalds y André Morton, así como la de otros mantenedores primarios, es que las distribuciones Linux son las que tienen que responsabilizarse de la estabilización del kernel para sus propios lanzamientos. Se reconocen oficialmente las distribuciones como parte integral del

proceso de desarrollo que cuida de la estabilidad. Esta decisión no se basa en una consulta a los fabricantes de distribuciones. Simplemente reconoce que las distribuciones liberan kernels fuertemente parcheados, que la mayoría de la gente utiliza kernels de distribuciones y que las pruebas de estabilidad se incluyen en las modificaciones de cada distribución. El árbol w.x.y.z se creó para tratar los problemas de estabilidad más recalcitrantes del árbol principal. Se impusieron estrictas limitaciones a este árbol, precisamente porque Linus no deseaba que se convirtiera en otra rama de desarrollo. A la luz de lo cual, la propuesta de Adrian parece sugerir que la actual indiferencia hacia la inestabilidad del modelo de desarrollo no ha funcionado, y que se debe volver a un modelo más similar al que había antes. No es sorprendente que éste haya sido un tema polémico pero que sin duda, volverá a surgir. Una de las mayores objeciones a la idea de Adrian es que sería una labor más tediosa y aburrida de lo que cualquiera pudiera soportar. Linus lo ha dicho de las propuestas iniciales para el árbol w.x.y.z y la gente se lo está diciendo ahora a Adrian. El problema con ese argumento es que hemos tenido muchas series estables que han funcionado. Y la objeción de Linus de que las estabilización es “aburrida” es más un reflejo de sus gustos personales que el interés del desarrollo del kernel. En todo

La lista de correo del kernel de Linux comprende lo principal de las actividades de desarrollo de Linux. El volumen del tráfico es inmenso, alcanzándose a menudo los diez mil mensajes semanales. Mantenerse al día de todo lo que sucede en el desarrollo del kernel es casi imposible para una sola persona. Sin embargo Zack Brown es uno de los pocos valientes que lo intentan y a partir de ahora, podrá leerse lo último de las discusiones y decisiones con respecto del kernel de Linux llevados de la mano de este experto. Zack ha publicado un resumen online semanal llamado “The Kernel Traffic Newsletter” durante cinco años. Linux Magazine te trae ahora la quintaesencia de las actividades del kernel de Linux del mayor especialista en el tema.

10

Número 16

WWW.LINUX- MAGAZINE.ES

caso, sí han habido numerosos intentos de crear un árbol estable al viejo estilo. Sin embargo, incluso los mantenedores del árbol w.x.y.z , un proyecto mucho más restringido, afirman que los problemas de un esfuerzo de estabilización más activa son casi insuperables. Por otra parte, la sugerencia de Adrian indica que hay algunos desarrolladores del árbol w.x.y.z que encuentran que el depositar las tareas de estabilización en las distribuciones es insuficiente.

Licencia Incorrecta Se ha admitido código de Silicon Graphics que inadvertidamente contenía notificaciones muy restrictivas en materia de copyright que, a efectos prácticos, ha puesto al kernel en posición de violación de copyright durante varios meses. Resulta que el ingeniero de SGI que donó el código simplemente se olvidó de cambiar los términos de la licencia a los de la GPL en el fichero de cabecera. . Este descuido fue un error sin mala intención que se corrigió facilmente, pero el hecho es que este tipo de error ocurre como media un par de veces al año. Linus Torvalds ha implementado una especie de sistema de seguimiento, donde cada revisor “firma” la calidad y legalidad de cada parche. Este sistema de revisión se creó especificamente para evitar futuros inconvenientes de ataques tipo SCO y para que Linus pudiera encontrar fácilmente los verdaderos orígenes de cualquier tipo de código en el kernel y evitar así violaciones de la legalidad. A pesar de que el sistema de seguimiento no es perfecto, tal vez no tiene por qué serlo. El ataque de SCO tenía como intención dañar a Linux, y tuvo éxito en el sentido en que los desarrolladores del kernel tuvieron que adoptar un poquito más de burocracia para su protección. Un sistema perfecto entrañaría incluso más burocracia y haría que fuese incluso más difícil que desarrolladores, (sobre todo nuevos desarrolladores), contribuyeran al desarrollo del kernel.


NOTICIAS DEL KERNEL

Miniconfig La nueva característica miniconfig, que apareció en el kernel 2.6.15, está llamando mucho la atención a los desarrolladores. Miniconfig permite a los usuarios especificar sólo las características del kernel que desean. El proceso de compilación se encarga a posteriori de resolver todas las dependencias. Debido al hecho de que los ficheros miniconfig son mucho más sencillos que los ficheros config tradicionales, tienden a ser portables de una versión del kernel a otra, se pueden editar a mano sin romper nada, y al leerlos, se ven de un vistazo todas las características principales que soportará el kernel. Rob Landley está invoulcrado en mucho del trabajo que se esté llevando a cabo para extender miniconfig. Ha implementado un nuevo objetivo de compilación make miniconfig con el cual, en vez de utilizar un fichero miniconfig para generar un fichero config antes de la compilación, se genera un nuevo kernel directamente del propio miniconfig, lo que es mucho más conveniente que el mecanismo incluido por defecto en la versión 2.6.15.

Rob también ha escrito un script que genera ficheros miniconfig a partir de un fichero config completo. Lo que hace en esencia es eliminar todas las dependencias de un fichero config hasta que sola quedan las características primarias. En estos momentos, el script es muy lento, al utilizar el método iterativo de reconstruir el fichero config completo después de cada eliminación para ver cómo afecta al conjunto. A pesar de su lentitud, funciona, y existe la posibilidad de encontrar métodos más veloces para la generación de ficheros miniconfig.

Suspensión de Software en Espacio de Usuario Pavel Machek recientemente ha implementado una versión prototipo de suspensión de software que coloca mucha de su funcionalidad fuera del kernel, y sólo una mínima parte tiene una interfaz con el núcleo. La parte de la interfaz de hecho se sigue discutiendo, al ser muy dificultoso elegir entre las numerosas, pero imperfectas, opciones disponibles. Dave Jones ha dicho que si los planes de Pavel tienen éxito, Red Hat podría modificar su propia versión de

suspensión de software, ya que su kernel dispone de un rootkit para la prevención de parches que podría interferir con la escritura a regiones de memoria arbitrarias. También hay que destacar que Dave considera la suspensión de software en espacio de usuario una mala idea, se mire como se mire. Sin embargo, la gente de Red Hat se lo puede tomar con calma, ya que la aceptación de los parches de Pavel no necesitarán de la eliminación de cualquier característica existente. Ambos métodos de suspensión podrían coexistir pacíficamente durante una buena temporada antes de la toma de cualquier decisión. Nigel Cunningham también está trabajando en una versión de suspensión que plantea a su vez nuevos problemas. Por un lado, se incluye mucho código en el kernel. Por otro, de tener razón Pavel, mucho de lo que hace el código de Nigel podría realizarse en espacio de usuario. La gente involucrada en el desarrollo de la suspensión de software no parece llevarse muy bien y muchas de la discusiones tienden a acabar en enfrentamientos directos. ■ Una lástima.


LINUX USER CORREO

Schlagwort sollte hier stehen

Correo del Lector

ACCESO DE ESCRITURA Estimado Linux Magazine, Sigo la revista desde hace ya algunos meses y, si bien me gusta bastante, no acabo de entender vuestra política con respecto al DVD, que ha variado, y mucho, desde que empezásteis a publicar. De cuatro DVDs al año habéis pasado a DVD por número, con la consiguiente subida del precio de la revista y la suscripción ¿Qué pasó con vuestra declaración de intenciones en el primer número sobre “vender por el contenido, NO por el DVD”? La otra cosa es que, si insistís en salir todos los meses con DVDs, al menos podríais de vez en cuando incluir una distro de 64 bits, que cada vez somos más los que utilizamos este tipo de sistemas. Un saludo Javier

LM Querido Javier, Hemos oído de todo: que incluyamos, que no incluyamos, que si los DVDs acaban de posavasos, que eso para qué si tengo Internet, que si podéis incluir lo de más allá que no tengo Internet, que para qué le seguís el juego a la competencia, etcétera, etcétera. Pues bien, allá por los albores de la civilización tal y como lo conocemos (es decir, hace un año y medio) las dis-

12

Número 16

tros que se podían considerar punteras y populares eran, a saber: SuSE, Red Hat/Fedora, Mandrake (antes de ser Mandriva) y Debian. Cuenta: cuatro. Era lógico pensar que esto era lo que demandaría el lector y por tanto, lógico también pensar en sacar cuatro DVDs al año y santas pascuas. Por otro lado nos imaginábamos ahorrándonos el quebradero de cabeza de tener que pensar en cómo llenar con software de calidad y útil un DVD todos los meses. Pero las cosas han cambiado. Ahora tenemos Ubuntu, ahora tenemos JuegaLinEx, ahora tenemos CentOS, ahora tenemos un montón de distros que o bien ya existían, y han conseguido en este tiempo una madurez y complejidad como para reclamar su hueco en el mercado, o han nacido y han alcanzado una popularidad inusitada en pocos meses. Ahora, cuando nos planteamos qué incluir en el DVD hemos de preguntarnos: De entre todo lo que hay ¿qué ponemos? Por otro lado, el mercado manda y, sí, nuestra intención era vender en base a la calidad de nuestros contenidos, pero, si bien podemos decir que eso creemos haberlo conseguido, hemos de complementar nuestras ventas con la del comprador eventual, aquel que pasa por el quiosco y se dice “¡Hombre! ¡Tal distro por 6 euros! Me lo compro”. El hecho de que todas las revistas de Linux salgan con algo, debería ser indicativo de que, por sí sola, una revista de estas características nunca se vende lo suficiente. En cuanto a lo de los 64 bits. Pues ya hemos publicado DVDs de portada para estos sistemas, y el de este mes no es una excepción. El DVD de CentOS que incluimos en este número, aparte de aportar un sistema de corte empresarial de bajo precio al ecosistema Linux, viene con versiones de 32 y 64 bits.

WWW.LINUX- MAGAZINE.ES

Resumiendo: Los que hacemos Linux Magazine creemos que nuestra publicación es como el cerdo de las revistas de Linux: todo se aprovecha. Los contenidos bien valen el precio de portada, y los DVDs están estupendos para los que necesitan software bueno y rápido (nosotros mismos los utilizamos para nuestra máquinas). Lo único que no tenemos claro es la utilidad de nuestro director.

Distros Nacionales Buenos días, Ante todo felicitaros por vuestra revista que, en mi modesta opinión, la considero la mejor de las existentes para nuestro SO favorito. Lo que os quiero pedir es que publiquéis algo sobre la distribución que se está creando en Castilla – La Mancha, “Molinux”, y si es posible que la incluyáis en el DVD. Saludos y gracias, Julio

LM El problema es que nosotros publicamos nuestros DVDs conjuntamente con la versión internacional de la revista, Linux Magazine International y por ello las distros que escogemos han de tener relevancia internacional. Y no es que dudemos de la calidad de la distro manchega. De hecho lo hemos probado en la redacción y nos ha parecido muy interesante. Además, recientemente hemos publicado el JuegaLinEx de la Junta de Extremadura a nivel mundial, como DVD de portada en más de 50.000 copias de revistas tanto en inglés como en castellano y volveremos a incluir nuevas distros nacionales a medida que vayan alcanzando su madurez.

Puedes enviar tus comentarios y sugerencias a: correo@linux-magazine.es

www.almogon.de

DVD o no DVD, esa es la cuestión


Voz sobre IP • PORTADA

Herramientas VoIP para Linux

UNA LLAMADA AL MUNDO Este mes os mostramos algunas de las herramientas más populares para la telefonía por Internet bajo Linux. POR JOE CASAD

oz sobre IP (VoIP) hace referencia al conjunto de tecnologías que proporcionan comunicaciones de voz sobre redes TCP/IP. Por supuesto, la mayor red TCP/IP es la propia Internet, y el objetivo último de la industria VoIP ha sido siempre encontrar una manera de utilizar Internet para las llamadas habituales. Con los primeros esfuerzos en VoIP hubo que enfrentarse a numerosos retos, incluidos problemas con la calidad de servicio, con el hardware y una habitual escasez de ancho de banda. Pero si estamos más o menos atentos a Internet, deberíamos saber que este tipo de problemas ya han sido superados. Los servicios telefónicos por Internet se popularizan con rapidez por todo el mundo. Es muy fácil conseguir que dos ordenadores se comuniquen. El problema es hacer que un ordenador habilitado con VoIP realice una llamada a un número de teléfono tradicional. Para acceder a la red telefónica convencional, tendremos que suscribirnos a algún servicio telefónico por Internet. Las tarifas varían en función de nuestra ubicación y de los servicios que necesitemos. Pero, en cualquier caso, venga la llamada desde una cabina en

V

Alaska, venga desde un ordenador de la habitación de al lado, esa llamada llegará hasta nuestro ordenador como Voz sobre IP. Linux siempre ha sido rápido a la hora de integrar nuevas tecnologías, y la revolución VoIP no ha sido la excepción. Hoy día se encuentran disponibles diferentes herramientas para acceder a la era de la telefonía por Internet. Vamos a tratar algunas de estas herramientas en nuestro tema de portada de este mes: Voz sobre IP. Empezaremos echando un vistazo al servidor de telefonía Asterisk. Asterisk nos permite configurar un servidor de telefonía en casa, de manera que todos los teléfonos de nuestro hogar puedan compartir una única conexión a Internet. El servidor de aplicaciones Asterisk nos proporciona un punto de configuración único e incorpora muchas

características avanzadas que podemos encontrar en los sistemas de telefonía propietarios. Os mostramos también Linphone y Kphone, un par de sencillas y versátiles aplicaciones VoIP. Y terminamos viendo cómo configurar el extremadamente famoso cliente Skype, en este caso en su versión para Linux. Si estás preparado para pedir línea hacia el mundo de la VoIP, o incluso si sólo deseas experimentar un poco, no te pierdas el tema de portada de este mes acerca de telefonía bajo Linux. ■

TEMA DE PORTADA Asterisk................................................ 14 Linphone..............................................19 Kphone................................................ 22 Skype................................................... 24

WWW.LINUX- MAGAZINE.ES

Número 16

13


PORTADA • Asterisk

Telefonía con el Sistema Asterisk

HABLANDO Un viejo ordenador es todo lo que se necesita para construirse uno mismo un servidor telefónico personal. POR MARTIN LOSCHWITZ

L

a tecnología que soporta el intercambio sencillo de datos de audio a través de Internet ofrece muchos beneficios. La calidad de la voz en las conexiones por Internet a menudo es mejor que la calidad ofrecida por las líneas convencionales, a pesar de los rumores que hay en contra. Además, la Voz sobre IP (o VoIP para abreviar) hace que las llamadas telefónicas transatlánticas, que solían costar una pequeña fortuna, sean

gratis. Razón suficiente para mirar atentamente la tecnología implicada.

Primero, el Registro

Si decide comenzar a usar Internet como un servicio telefónico, pronto descubrirá que no se puede simplemente descolgar el teléfono y empezar a hablar. Por el contrario, primero hay que registrarse con un proveedor de servicios VoIP que proporcione las credenciales necesarias para acceder al sistema y así conectarse al servidor SIP del proveedor. SIP es el nombre del protocolo que utiliza la telefonía VoIP. Tras concluir este paso, se necesita un teléfono VoIP (un softphone. es decir, un teléfono software, puede ser una buena opción). Una vez que se haya comenzado a utilizar la tecnología VoIP, puede que nos Figura 1: Los teléfonos VoIP actuales disponen de característi- preguntemos si tiene sentido cas interesantes al igual que los teléfonos tradicionales: diver- instalar VoIP en toda la casa. sas líneas en el visor y teclas con funciones programables son Aunque es probable que, una bastantes comunes. única máquina con acceso a

14

Número 16

WWW.LINUX- MAGAZINE.ES

VoIP no cubra todas nuestras necesidades. Sin embargo, es bueno saber que el sistema de telefonía VoIP utilizado por la mayoría de los profesionales está disponible en Internet. Su nombre es Asterisk [1], el cual ha llegado a ser sinónimo de telefonía software. Asterisk ofrece diversas opciones útiles, incluyendo la posibilidad de actuar como un sistema telefónico completo para toda la casa. Imaginemos que se desea que los niños puedan usar el teléfono, pero aún se está anclado al sistema de telefonía tradicional y no pretende pasarse a un sistema más moderno como la RDSI. VoIP es una buena elección en este caso: permite realizar llamadas a redes PST, y dependiendo de la elección del proveedor de VoIP, puede obtenerse un número de teléfono con prefijo, y todo en la misma ganga.

Saltando Obstáculos Después de realizar la configuración para convertir el PC en un servidor telefónico, se deseará sacarle partido. Cuanto más compleja es una aplicación, más empinada es su curva de aprendizaje, y Asterisk no


Asterisk • PORTADA

es la excepción que confirma la regla. Hay que instalar y configurar Asterisk; y a pesar de ser un servidor de telefonía, habrá que pedirle al programa que actúe como un contestador automático virtual. El objetivo de este artículo no es mostrar cómo hay que configurar Asterisk como servidor VoIP, así que el lector no debe esperar que tras leerlo pueda ser capaz de competir con Freenet o Sipgate. Para configurar Asterisk de la forma descrita aquí se necesita una cuenta VoIP en un proveedor. La ventaja de la configuración de este artículo comparada con un escenario “normal” de VoIP es que se estará usando Asterisk como un sistema de telefonía central para los usuarios de una casa, y además, varios PC podrán tener acceso a VoIP a través del servidor Asterisk.

Preparación La configuración de Asterisk es importante para una red local con varios equipos. En esta clase de situaciones, el acceso a Internet normalmente hace uso de NAT y de un cortafuegos. La presencia del cortafuegos complica la configuración de Asterisk. SIP no es compatible con NAT, así que habrá que abrir unos cuantos agujeros al cortafuegos para permitir el uso de SIP. Los puertos que se necesitan abrir dependerán del proveedor que se haya escogido y la mayoría de ellos disponen de FAQs que resuelven las dudas respecto a los cortafuegos. Como regla básica, se puede suponer que hay que abrir el puerto 5060/tcp, ya que éste es el puerto principal del protocolo SIP. Asterisk manejará NAT por nosotros. Hay que revisar la documentación del proveedor de servicio VoIP para obtener instrucciones más

detalladas sobre la configuración de los cortafuegos.

Instalando Asterisk La instalación de Asterisk no tiene ninguna ciencia, ya que la configuración se hará posteriormente. La mayoría de las distribuciones incluyen actualmente el paquete Asterisk que se puede obtener utilizando la herramienta de instalación de paquetes del distribuidor. Debian simplemente llama al paquete asterisk y se puede ejecutar apt-get o aptitude para comenzar la instalación. Asterisk se integra bien en Debian, en el resto del artículo supondré que se tiene instalado Debian, pero la configuración de Asterisk para sip.conf y extensions.conf es idéntica, independientemente de la distribución que se tenga. Aquéllos que prefieran compilar Asterisk desde el código fuente pueden consultar el cuadro “Compilando Asterisk” para un HOWTO. Después de instalar Asterisk en Debian, debería disponer de varios ficheros .conf en el directorio /etc/asterisk. Asterisk es una aplicación minimalista: comprende unos doce pequeños módulos, que se cargan al vuelo conforme se necesiten. El núcleo de Asterisk, un programa compacto, contiene las funciones principales de los diversos módulos. Hay un fichero de configuración dedicado a cada módulo y sólo a ese módulo. Esto evita la necesidad de tener un fichero de configuración gigantesco, aunque tiende a llenar el directorio /etc/asterisk. La mayoría de los ficheros no tienen interés, ya que pertenecen a partes de Asterisk que un usuario normal no tendrá que modificar. Los dos ficheros que habrá que modificar son sip.conf y extensions.conf.

Compilando Asterisk Si se decide compilar Asterisk a partir de los ficheros con el código fuente, los comandos para instalar el sistema de telefonía del PC son los mismos sin importar la distribución que se esté usando. Primero hay que bajar el archivo con el código fuente, y con el comando tar cvfz se descomprimen. A continuación, con el comando cd se entra al directorio que contiene los ficheros con el código fuente de la aplicación y se empieza el proceso de compilación con make. Por último, tecleando make install se instala Asterisk en el sistema de ficheros. Cuidado: Los ficheros no se colocan en el directorio /usr como cabría esperar, sino en el directorio raíz, /. Para modificar este comportamiento hay que abrir el fichero Makefile con un editor y modificar la línea que comienza con INSTALL_PREFIX= poniendo /usr/local después del signo igual. Esto evita que se pueda dañar inadvertidamente el sistema de ficheros y permite que posteriormente se pueda eliminar Asterisk del sistema sin demasiado esfuerzo.

¿Quién, Dónde, Qué? La mayoría de los proveedores VoIP, como GMX y Freenet, utilizan el protocolo SIP. Pero hay otros protocolos, como IAX2 y SCCP. Este ejemplo se centrará en SIP; el módulo que se necesita es chan_sip y el fichero de configuración correspondiente es sip.conf. Por un lado, la configuración en sip.conf permite a Asterisk conectarse con el proveedor de servicios VoIP como un teléfono; y por otro lado, la configuración permite a los usuarios de la red local


PORTADA • Asterisk

para las dos líneas siguientes, que comienzan con language y hay que añadir una línea con allow=alaw. Si la máquina que ejecuta Asterisk utiliza NAT para acceder a Internet, además habrá que descomentar la línea nat=no y cambiar no por yes: esto le indica a Asterisk cómo tiene que tratar las conexiones entrantes y salientes. Asterisk se conecta al servidor SIP del proveedor de servicios VoIP como un teléfono simple. La configuración para esto está también almacenada en el fichero sip.conf. Cada línea que contiene una configuración para el servidor VoIP empieza por la palabra reservada register y sigue esta sintaxis general:

Figura 2: Si no se desea disponer de un aparato convencional, se pueden utilizar teléfonos software como alternativas siempre que se posea de tarjeta de sonido en el ordenador y de unos auriculares con micrófono.

conectarse al servidor Asterisk como “teléfonos”. Asterisk funciona como un servidor proxy de sitios webs. Envía las conexiones locales a Internet y las conexiones entrantes a los teléfonos correspondientes (se puede disponer de múltiples teléfonos). Antes de considerar el uso de Asterisk, hay que configurar primero sip.conf. Es preciso asegurarse de que los datos del proveedor VoIP estén a mano para no tener que perder el tiempo buscándolos.

General Los ficheros de configuración de Asterisk están organizados en varias secciones que controlan distintas propiedades del módulo en cuestión. La primera sección en el fichero sip.conf se titula [general], al igual que en el resto de los ficheros de configuración del resto de los módulos, y está rellena por defecto. Aquí es necesario realizar varios cambios. Con un editor hay que abrir el fichero /etc/asterisk/sip.conf y buscar una línea que contiene disallow=all. Tendremos que borrar el punto y coma (“;”) del comienzo de la línea. (El punto y coma etiqueta a la línea como un comentario). Esto mismo hay que repetirlo

16

Número 16

register => U username:passwordU @SIP server/extension

Es preciso añadir una línea para el proveedor SIP contratado. Si se dispone de cuentas con múltiples proveedores, se necesitará una línea register para cada uno de ellos. Dejemos por el momento la línea Extension; más adelante, le indicará a Asterisk qué proveedor usar para realizar las llamadas de los distintos servidores SIP. Habrá que configurarlos en ficheros independientes; así que hay que teclear el nombre de la cuenta de usuario como Extension.

El Proveedor tiene que Acceder El siguiente paso es modificar sip.conf para permitir al proveedor VoIP enviar comandos a Asterisk. Asterisk utiliza también entradas peer para organizar las llamadas salientes. Una entrada para manejar esto podría ser como la línea siguiente: [VoIP Provider] type=peer secret=secret_password username=username host=VoIP server fromuser=username fromdomain=VoIP server insecure=very

Se necesita una entrada como ésta pero con nombres diferentes (el que aparece entre corchetes) para cada línea register al final del fichero de configuración sip.conf. Hay que asegurarse de que las entradas en los campos coinciden con las entradas en las líneas register.

Añadiendo Teléfonos El siguiente y último paso es añadir líneas en sip.conf para permitir a los teléfonos SIP de la red local conectarse. Pueden ser teléfonos VoIP hardware (Figura 1) o softphones (Figura 2). Al final del fichero se añade primero un título al contexto nuevo como: [Nombre]. Se puede escoger, más o

Listado 1: Ejemplo sip.conf (Sipgate) 01 nonumber

16 type=peer

02 [general]

17 secret=PASSWORT

03 port = 5060

18 username=5552XXX

04 bindaddr = 0.0.0.0

19 host=sipgate.de

05 disallow=all

20 fromuser=5552XXX

06 allow=ulaw

21 fromdomain=sipgate.de

07 allow=alaw

22 insecure=very

08 maxexpirey=3600

23

09 defaultexpirey=120

24 [2000]

10 context=default

25 type=friend

11 language=de

26 secret=Password

12

27 mailbox=100

13 register => 5552XXX:

28 canreinvite=yes

PASSWORD@sipgate.de/5552XXX

29 context=default

14

30 insecure=very

15 [sipgate]

31 host=dynamic

WWW.LINUX- MAGAZINE.ES


menos, cualquier nombre; los nombres de usuario pueden contener letras y números. Una entrada completa podría ser como la siguiente: [2000] type=friend secret=password mailbox=100 canreinvite=yes context=default insecure=very host=dynamic

La solución para configurar teléfonos adicionales es similar. Hay que especificar un nombre de usuario y una contraseña para cada entrada y cambiar el número para el mailbox. Si se quiere se pueden utilizar nombres de usuarios numéricos e incrementarlos junto con los nombres de los mailbox (2001, 2002, … y 101, 102, …). Después de configurar la directiva [general] y crear las cuentas para el servidor VoIP y para al menos un teléfono cliente, se guarda el fichero sip.conf. El Listado 1 proporciona un ejemplo de fichero sip.conf.

Creando un Dialplan El dialplan de Asterisk es el tablero de control para las conexiones de la aplicación que establece por dónde dirigir las llamadas entrantes y salientes. Un dialplan es complejo por naturaleza, pero manejable para la mayoría de los usuarios. Se almacena en el fichero /etc/asterisk/extensions.conf. Como el fichero por defecto en Debian contiene una multitud de ejemplos de poca utilidad, probablemente se prefiera renombrarlo a extensions.conf.old y crear uno nuevo con un editor. Nuevamente, este fichero de configuración tiene que tener una sección [general] que siempre comenzará como sigue: [general] static=yes writeprotect=no

El comando estándar en extensions.conf es exten. El comando es invocado por las llamadas entrantes y salientes y redirige la llamada a un teléfono de la red local o hacia Internet. La sintaxis del comando es la siguiente:

exten => U called_ number,priority,action

El campo priority no se utiliza para establecer la importancia de la llamada, aquí, sino para definir el orden en el que los comandos en action son ejecutados.

Por Defecto Lo primero que hay que hacer es crear una sección por defecto [default] en el fichero extensions.conf: Asterisk utilizará esta sección para manejar las llamadas no definidas. Teóricamente, el fichero extensions.conf puede dividirse en cualquier número de secciones, pero se va a restringir a lo esencial para mantenerlo simple. La primera parte de la configuración de [default] es genérica y necesaria. Contiene el denominado test echo, que será preciso más adelante para comprobar la conexión entre Asterisk y el teléfono: [default] exten => U 600,1,Playback(demo-echotest) exten => 600,2,Echo exten => U 600,3,Playback(demo-echodone) exten => 600,4,Goto(s,6)

[default] es también el lugar donde especificar lo que hay que hacer con las llamadas salientes. Es conveniente usar un número para obtener una línea externa, y de este modo permite usar Asterisk para llamadas internas. La siguiente línea le indica al programa que dirija las llamadas salientes que empiecen por 0 al proveedor VoIP VoIP Provider: exten => U _0.,1,Dial(SIP/${EXTEN:1}U @VoIP Provider)

El comando parece más críptico de lo que realmente es: _0. indica que este comando controla todas las llamadas que empiecen por 0. 1 indica la prioridad (1 en este caso, porque realmente hay poco que hacer con una llamada saliente, aparte de redirigirla). Dial(SIP/${EXTEN:1}@VoIP Provider) dice que marque para llamar el comando de marcado interno de Asterisk. SIP le dice a Asterisk que use SIP para conectarse con el servidor. La cadena que sigue a / es el número a marcar. Añadiéndole :1 al número se elimina el primer dígito (el 0

WWW.LINUX- MAGAZINE.ES


PORTADA • Asterisk

que se pulsa para obtener una línea externa) antes de marcar. La cadena que sigue a @ especifica el proveedor VoIP. Esto se puede repetir para cualquier número de proveedores de VoIP. Use diferentes números para obtener líneas externas en cada caso, e inserte el nombre del proveedor de VoIP como se especifica en la entrada de cada proveedor en el fichero sip.conf.

Llamadas Entrantes Si se ejecutara Asterisk en este momento, se podrían realizar llamadas externas (Figura 3), pero nadie podría llamarnos. Para permitir las llamadas, tenemos que saltar el último obstáculo. En las líneas register del fichero sip.conf, el último valor que se añadió en cada línea era el nombre que Asterisk utiliza para referenciar las llamadas entrantes del servidor. Si se sigue el ejemplo, el nombre será el nombre de la cuenta de usuario del proveedor VoIP. Si además se añade “2000” como el nombre del usuario del primer teléfono, se pueden utilizar estas líneas tal como están en el fichero, reemplazando Name con el nombre del proveedor de VoIP (es decir, el último trozo de la línea register): exten => U Name,1,Dial(SIP/2000,15,tTr) exten => U Name,2,VoiceMail,u2000 exten => U Name,102,VoiceMail,b2000 exten => Name,103,Hangup

La primera línea dirige las llamadas entrantes al usuario y teléfono con el nombre de usuario 2000. Las líneas 2 y 3 ejecutan los buzones de voz (es decir, el contestador automático de Asterisk) si la extensión 2000 está ocupada o desactivada. Por último, la línea cuatro cuelga cuando Asterisk haya completado los tres pasos anteriores. Hay que repetir los pasos anteriores para cada línea register en el fichero sip.conf. Si se necesita redirigir las llamadas a otra extensión aparte de la “2000”, tan sólo hay que cambiar los números que siguen a SIP/. Cuando se haya completado la configuración del fichero extensions.conf, no hay que olvidarse de guardar el fichero. El Listado 2 proporciona un ejemplo de extensions.conf configurado de esta forma.

Ejecutando Asterisk Ya habríamos acabado si los desarrolladores de Debian no hubiesen añadido un obstáculo extra. No se puede ejecutar Asterisk directamente después de haber terminado de instalarlo. Para cambiar este comportamiento hay que abrir /etc/default/asterisk con un editor, y modificar la entrada no de RUNASTERISK por yes. Después de habilitar este parámetro, puede ejecutarse Asterisk mediante el comando /etc/init.d/asterisk start.

RECURSOS [1] Asterisk: http://www.asterisk.org

Listado 2: Fichero de ejemplo extensions.conf 01 nonumber

13 exten => 2999,2,VoicemailMain, s2000

02 [general] 03 static=yes

14

04 writeprotect=no

15 exten => _0.,1,Dial(SIP/ ${EXTEN:1}<\@>sipgate)

05 06 [default]

16

07 exten =>

17 exten => 5552XXX,1,Dial(SIP/

600,1,Playback(demo-echotest) 08 exten => 600,2,Echo 09 exten => 600,3,Playback(demo-echodone) 10 exten => 600,4,Goto(s,6)

2000,15,tTr) 18 exten => 5552XXX,2,VoiceMail,u 2000 19 exten => 5552XXX,102,VoiceMail ,b2000 20 exten => 5552XXX,103,Hangup

11 12 exten => 2999,1,Ringing

18

Número 16

WWW.LINUX- MAGAZINE.ES

Conveniencia Asterisk posee un contestador automático virtual que hay que habilitar. El programa addmailbox ayudará a realizar esta tarea. Para ello hay que anotar el nombre de usuario al que se le quiera asignar un buzón (2000 en el ejemplo). En el fichero sip.conf, se asignó el buzón 100 a este usuario (mailbox=100). Trabajando como root, hay que ejecutar addmailbox en la línea de comandos. Si el programa solicita el contexto, tan sólo hay que poner default. Cuando solicite el número del buzón, hay que teclear 100. El script configurará todos los ficheros necesarios. Se puede utilizar apt-get install para instalar un fichero asterisk-prompt-xx para grabar los mensajes en el idioma de su elección. Los mensajes en inglés se reproducen por defecto. Tras este paso se obtiene un sistema de buzón de voz basado en Asterisk.

Accediendo al Buzón de Voz Por último, se necesita una forma para decirle a Asterisk que reproduzca los mensajes que se tengan en el buzón de voz. Para permitir la reproducción de los mensajes del buzón de voz hay que realizar los cambios necesarios al fichero extensions.conf. Añádase las siguientes líneas: exten => 2999,1,Ringing exten => U 2999,2,VoicemailMain,s2000

Ahora, cuando se marque 2999 desde un teléfono interno, se conectará automáticamente al buzón de voz del usuario 2000. La primera vez que se conecte, habrá que especificar una contraseña de acceso, en las siguientes veces se obtendrá el acceso directamente. Si se dispone de una VPN para acceder remotamente a su red, es posible utilizar un softphone y el túnel VPN para acceder ■ al servidor Asterisk.


Linphone • PORTADA

Telefonía por Internet con Linphone

BIEN CONECTADO Si deseas llamar a amigos que se encuentran en países lejanos, no levantes el teléfono: enchufa los auriculares y arranca Linphone. POR SIMONE SCHÄFER

U

no de los métodos más populares para acceder a la tecnología VoIP es a través de los llamados softphones. Un softphone es simplemente un programa de ordenador que controla el establecimiento y la comunicación. Linphone [1] es uno de los programas softphone más populares para Linux. Está optimizado para el escritorio Gnome, aunque esto no significa que no podamos ejecutarlo bajo KDE. En este artículo veremos cómo instalar, configurar y arreglar problemas con Linphone. Por supuesto, aunque Linphone es una herramienta software, a la hora de usarlo, necesitamos algún hardware básico, como unos auriculares y un micrófono. Y si queremos usar Linphone

como un sistema telefónico completo, necesitaremos una cuenta con algún proveedor VoIP. Para los ejemplos de este artículo, nos referiremos a dos cuentas ficticias con dos proveedores: Sipsnip y Purtel. Nuestro usuario ficticio llama a través de la cuenta en Sissnip pero quiere recibirlas a través de Purtel. El procedimiento es similar con otros proveedores.

Instalación El código fuente de la versión 1.1.0 y las librerías están disponibles en [2]. Mandriva Linux 2006 tiene la versión 1.1.0. Los usuarios de Gentoo pueden instalar la 1.1.0 simplemente con ejecutar el comando emerge. Suse 9.3 y 10.0 nos ofrecen la versión 1.0.0, que es

WWW.LINUX- MAGAZINE.ES

suficiente para nuestro uso diario. Podemos buscar el programa en el apartado Telephone del menú KDE. Si usamos Debian Testing (Etch) o Ubuntu

Números de Teléfono e ID’s SIP En el caso más sencillo, el número de teléfono será un simple número de teléfono seguido del dominio SIP, tal que 123456789@sipsnip.com. Si necesitamos llamar a un usuario con otro proveedor, la manera más sencilla es, generalmente, introducir la ID SIP (como en penguinsfriend@sipgate.de) o simplemente el número de teléfono con Sipgate (123456789@sipgate.de). Desafortunadamente, no todos los proveedores soportan este tipo de marcado. Los clientes de Purtel pueden llamar gratuitamente a los de Sipsnip, pero no marcando el SIP ID. En su lugar, tienen que introducir un código especial, seguido del número Sipsnip. El código para Sipsnip es el 000555.

Número 16

19


PORTADA • Linphone

Linux 5.10 (“Breezy Badger”), en el repositorio encontraremos la versión 1.0.1, ligeramente más reciente. Puede que prefiramos compilar e instalar el programa de manera manual. En este caso, debemos asegurarnos de que seguimos el orden correcto en la compilación. Linphone hace uso de la librería Libosip2 para comunicarse con el proveedor de VoIP, por lo que tendremos que instalar la librería previamente. Para ello, abrimos un terminal, pasamos a root tecleando su e introducimos la contraseña adecuada. Descomprimimos el archivo con tar xzf libosip2-2.2.0.tar.gz y nos ubicamos en el nuevo directorio (cd libosip2-2.2.0). Los siguientes comandos compilan e instalan la librería: ./configure --prefix=/usr make make install ldconfig

Salimos del directorio Linosip2 y pasamos a descomprimir el archivo de Linphone. Para ello tecleamos tar xzf linphone-1.1.0.tar.gz. Pasamos al directorio requerido con cd linphone-1.1.0, y para compilar e instalar usamos los mismos comandos vistos con la librería. Puede que nos falten algunos paquetes de desarrollo, como los codecs Speex. Cada distribución tiene su método de instalación. La mejor opción es usar el gestor de instalación de nuestra distribución para buscar un paquete con un nombre similar.

Configurar una Cuenta Cuando lo ejecutamos, Linphone aparece con una interfaz de usuario bastante minimalista. Necesitamos nuestras credenciales VoIP para conectarnos al servidor. Además de nombre de usuario y contraseña, necesitamos también un dominio. Al igual que con las direcciones de correo electrónico, el SIP ID, es decir, nuestro número de teléfono VoIP, comprende un nombre de usuario y el domino. En nuestro ejemplo, el SIP ID es penguin@sipsnip.de para la cuenta de Sipsnip. El dominio es algo distinto para la cuenta de Purtel: penguin@deu1.purtel.com. La página Web del proveedor VoIP nos permite

20

Número 16

acceder a esta información, y no información de la será necesario volver cuenta y permite a introducirla de modificarlas en caso nuevo. necesario. (Muchos Línea Directa proveedores VoIP con el Mundo distinguen entre el número de teléfono y Después de haber el nombre de usuario, introducido nuestros pero Purtel es una datos, y suponiendo excepción: el nombre que el servidor acepta de usuario es siempre nuestro nombre de el mismo que el Figura 1: Linphone ofrece al usuario usuario y contraseña, número de teléfono un acceso rápido a la VoIP a través ya nada nos impide de Purtel). de Internet. realizar nuestra Una vez que primera llamada. hayamos introducido la información de Introducimos el SIP ID en SIP address en nuestra cuenta, ya casi hemos la ventana principal. (Véase el cuadro finalizado. El menú Go tiene un “Números de Teléfono e ID’s SIP” para apartado Preferences. Pulsamos en la tener varios números). La versión 1.1.0 pestaña SIP en primer lugar, también nos permite seleccionar qué introducimos nuestro identificador o cuenta VoIP usar, si tenemos más de dirección SIP. En nuestro ejemplo, era una. penguin seguido de una arroba (“@”) y Seleccionamos un servidor proxy en seguido de sipsnip.com para el campo Proxy to use. Pulsamos a continuación Your sip address:. No debemos olvidar sobre Call or answer para indicarle al quitar la marca en Automatically guess a programa que efectúe la llamada. valid hostname, ya que no lo Hangup or Refuse le indica a éste que necesitamos. rechace o cuelgue la llamada. El siguiente paso es indicarle a Para facilitar las cosas, deberíamos Linphone a qué servidor de Internet añadir un nombre para cada contacto de vamos a querer conectarnos cuando nuestra libreta de direcciones, introducir realicemos una llamada. En el panel la dirección SIP, y si tenemos múltiples Remote services, pulsamos sobre Add cuentas SIP, especificar qué cuenta proxy/registrar. En la ventana que vamos a usar con ese contacto. Tras aparece, tecleamos la dirección SIP completar la información del contacto, completa en SIP Identity y el nombre del podemos pulsar sobre Select para cargar servidor SIP en SIP Proxy. En el caso de la configuración. los proveedores de nuestra prueba, es el Si comprobamos Show more en la mismo que el dominio. ventana de Linphone, el programa nos Ahora pulsamos en OK para mostrará las opciones para la confirmar, y el programa nos pedirá reproducción y la grabación. La pestaña nuestro nombre de usuario y My online friends nos muestra una vista contraseña. El programa guarda la general del estado de los contactos de nuestra libreta de direcciones. Sin embargo, esta opción no funcionó en nuestras pruebas, aunque el problema pudo ser debido al proveedor VoIP que usamos. Es una buena idea hacer una llamada de prueba a un número que conozcamos en Figura 2: Podemos usar una herramienta como Gnome-volume este momento, para cambiar la configuración del sonido. simplemente para

WWW.LINUX- MAGAZINE.ES


Linphone • PORTADA

Resolución de Problemas Muchos usuarios se hallan detrás de algún tipo de cortafuegos que los separan de Internet. Los protocolos que usa Linphone pueden, ocasionalmente, causar problemas cuando se usan con estos dispositivos de protección. El Protocolo de Inicio de Sesión (SIP), es un protocolo de red que administra las llamadas de uno o varios usuarios. Simplemente controla el lado que coordina, es decir, la señalización de la llamada. El transporte de la información se controla con el Realtime Transport Protocol (RTP). Las direcciones de los usuarios siguen un patrón similar al de las direcciones de correo electrónico: sip:user@domain. Muchos de los dispositivos VoIP actuales usan SIP, que ha desbancado en cierta medida al protocolo H.323 como estándar en la industria VoIP. Tanto SIP como RTP utilizan el protocolo sin conexión UDP. Este hecho, y el que la VoIP se basa en ambos componentes, SIP y RTP, pueden causar problemas con las conexiones a través de cortafuegos. SIP le indica al proveedor de VoIP tanto la dirección IP como el puerto por el que el llamante quiere conectarse. Si encontramos problemas con la conexión y no tenemos router, pero sí cortafuegos, debemos habilitar en primer

lugar los puertos 7078/udp y 5060/udp. Si los problemas continúan, la culpa probablemente sea de los codecs o de la tarjeta de sonido. Si tenemos router, debemos reconducir estos puertos a nuestra dirección IP interna para UDP. Si aún así no funciona, el contratiempo puede deberse a la configuración de la tarjeta de sonido. Para probar esto, podemos hacer uso de un programa de grabación para grabar una muestra a través de nuestro micrófono. Gnome ofrece el Audio Recorder y KDE dispone de la herramienta Krecord en el menú Multimedia | Recording. Si no se graba nada, debemos mirar el control de volumen en primer lugar. Para ajustar el volumen, abrimos bien Kmix o bien Gnome-volume (véase Figura 2), en función de nuestro escritorio. Esto nos lleva a una lista de opciones que dependen de nuestra tarjeta de sonido. La pestaña Output nos permite silenciar el micrófono, lo que es una gran idea, para evitar escucharnos a nosotros mismos. La pestaña Input nos permite incrementar gradualmente el volumen del micrófono, y posiblemente el nivel Capture. El símbolo del micrófono bajo ambos controles debe estar activado. Si tenemos una pestaña Switches con la tarjeta de sonido, podemos usar la opción Microphone Boost para incrementar la ganancia de la señal del micrófono. Usamos la pestaña Options para seleccionar un dispositivo de grabación, esto es, nuestro micrófono. Los usuarios de KDE deberían asegurarse de que los LEDs verdes de Input y Capture (caso de estar presentes) estén ambos apagados, pero los LEDs rojos estén encendidos.

Ambos tienen que configurarse con un alto nivel de grabación. De nuevo, deberíamos configurar la fuente y habilitar el “Microphone Boost” en la pestaña Switches. Los métodos de compresión (codecs) raramente causan problemas con la VoIP. Existen gran cantidad de codecs, y cabe la posibilidad de que la persona a la que estemos llamando no disponga en su sistema de los mismos codecs. Sin embargo, Linphone tiene una buena selección, y este problema no apareció en nuestro laboratorio. Si encontramos otros inconvenientes, podemos probar a cambiar el codec en la pestaña Codecs dentro del menú Preferences. Muchos programas prefieren los métodos PCMU y PCMA. Podemos mover estos métodos arriba del todo si persisten los problemas. El códec Speex con una frecuencia de muestreo de 16 kHz nos permitirá disponer, por lo general, de la mejor calidad de voz.

Conclusiones Linphone ha alcanzado un nivel de funcionalidad muy alto y el ritmo de desarrollo está decreciendo en estos momentos. A muchos usuarios les gustaría ver un soporte para cortafuegos mejorado, en forma de protocolo STUN (véase “Detalles SIP”), y parece ser que los desarrolladores implementarán STUN dentro de poco. Con esto y con todo, Linphone es un ■ útil y práctico softphone.

LA AUTORA

asegurarnos de que la configuración funciona. Si las llamadas a fijos y móviles también funcionan, ya tenemos un sistema de telefonía alternativa de bajo coste. Desafortunadamente, podemos encontrarnos con unos cuantos problemas que nos lo impida.

Simone Schäfer estudia en la actualidad Diseño por Ordenador y pasa la mayor parte del tiempo reparando su sistema Arch Linux. Cuando no está haciendo esto, también disfruta probando otras distribuciones.

RECURSOS [1] Linphone homepage: http://www. linphone.org/?lang=us [2] Página de descarga de las fuentes de Linphone: http://simon.morlat.free.fr/ download/1.1.x/source/ [3] Página de descarga de X-Lite: http:// www.xten.com/index. php?menu=download

Figura 3: Cuadro de diálogo donde se puede escoger el codec de audio.

WWW.LINUX- MAGAZINE.ES

[4] Versión de desarrollo de Gnome Meeting: http://snapshots.seconix. com

Número 16

21


PORTADA • Kphone

Telefonía en Internet con KPhone

LLAMADAS DESDE EL ESCRITORIO

La telefonía en Internet no tiene por qué ser complicada. Se puede hablar con el mundo con una tarjeta de sonido normal y corriente, con una cuenta de un proveedor de telefonía de Internet y con Kphone. POR MIRKO DÖLLE

E

l programa KDE Kphone, que recientemente lo han empezado a incluir Suse Linux y otras distribuciones, es una aplicación sencilla de telefonía para Linux. Kphone proporciona una herramienta manejable de Voz IP sobre conexiones IP. Kphone es muy fácil de configurar. Como se puede ver en la Figura 1, la primera vez que se ejecuta solicita al usuario unos cuantos parámetros: de hecho, tan sólo hay que especificar la User Part of SIP URL y la Host Part of SIP URL. El Outbound Proxy sólo se requiere cuando nos topamos con un cortafuegos muy restrictivo para permitir las conexiones salientes. Para cubrirnos las espaldas, en nuestro primer experimento

22

Número 16

puede especificarse el servidor proxy, pero después se puede intentar probar sin este parámetro. El q-value especifica la calidad de la conexión. Kphone establece la calidad dinámicamente si se deja vacío este campo. Reduciendo la calidad manualmente también se reducirá el ancho de banda que Kphone utiliza, pero la mayoría de los usuarios se conforman con los valores por defecto.

Contraseñas Inseguras Tras introducir los datos, se pulsará el botón Register para indicarle a Kphone que establezca una conexión con nuestro proveedor. El registro automático es suficiente: después de todo, la gente

WWW.LINUX- MAGAZINE.ES

solamente podrá llamarlo por el teléfono de Internet mientras la conexión esté activa. Kphone siempre pide al usuario la contraseña cuando se registra: ésta es la contraseña que el proveedor SIP proporciona. Desde luego, se puede guardar, pero hay que ser consciente de los peligros, ya que la contraseña se almacena sin encriptar en el fichero de configuración de Kphone, y dicho fichero tiene permisos de lectura para todo el mundo. No hay forma de modificar esto, ya que Kphone reescribe el fichero de configuración cada vez que se cierra el programa y establece el permiso de lectura para todo el mundo. Una posible solución es usar el comando chmod 700 ~/.qt para restringir el acceso al directorio de configuración de QT. Esto protege al fichero de configuración con la

GLOSARIO STUN: Simple Traversal of UDP over NATs. Un protocolo que permite a los dispositivos que están tras un cortafuegos recibir datos desde Internet sin tener que cambiar las reglas del cortafuegos o del router.


Kphone • PORTADA

Figura 1: KPhone no necesita mucha información cuando se ejecuta por primera vez, pero hay que especificar el usuario y el host de la URL SIP.

contraseña de Kphone, pero permite al administrador del sistema verlo. Dependiendo de la configuración del router DSL, puede que se necesite un servidor STUN para ser capaz de realizar y recibir llamadas con Kphone. Es probable que el ordenador no sea capaz de identificar la dirección IP pública y el puerto que el router usa para las conexiones VoIP. En este caso, el cliente solicita el servidor STUN, que es el que le proporciona la dirección IP y el puerto, permitiéndole pasar los datos al destino para poder efectuar la llamada. Para configurarlo se pulsa la solapa Socket en Preferences > SIP Preferences (Figura 2). En la línea STUN Server hay que introducir el nombre y el puerto del servidor STUN del proveedor. Hay que cambiar la opción Use STUN server a Yes en la misma solapa. La misma regla es aplicable aquí para utilizar el proxy. Será mejor que la primera vez que se utilice el programa se tenga activada la opción del servidor STUN, se puede probar a desactivarlo más adelante. Habrá que modificar la configuración del cortafuegos para permitir a Kphone comunicarse con el mundo exterior y recibir llamadas. Por ejemplo, Kphone necesitará siempre los puertos 5004, 5060 y 10000 para los paquetes UDP. Además habrá que habilitar los puertos UDP del 61000 al 61099 para el servidor STUN.

destino o bien marcar un número real de teléfono junto con sus prefijos correspondientes en el cuadro de texto junto al icono del teléfono en la ventana principal de Kphone. Si se prefiere, se puede pulsar primero el icono del teléfono. Indicándole así a Kphone que abra la ventana de marcado, donde se le solicitará al usuario que introduzca un número de teléfono o una SIP URL. Para establecer una videoconferencia tan sólo hay que pulsar en el icono de la cámara. El poder o no realizar llamadas a teléfonos de líneas convencionales vía VoIP sólo depende del servicio que se tenga contratado con el proveedor. Algunos proveedores requieren que se realice un prepago, y hasta que no se haga, sólo se podrán realizar llamadas dentro de la red VoIP o a una red de teléfonos VoIP conectada a ella. Por otro lado, las llamadas desde las redes PST a los teléfonos VoIP pueden efectuarse sin realizar ningún prepago y gratis. Es decir, al menos, no hay que pagarlas: se le cobrará al que realice la llamada a la tarifa normal de la zona donde viva, sin importar el lugar al que se realice la llamada. Se aplican reglas estrictas a la forma en la que los proveedores de servicios telefónicos basados en Internet asignan los números telefónicos. No se puede tener un número con prefijo de Londres si se vive en Munich. La mayoría de los proveedores proporcionarán un número que contenga el prefijo de la dirección donde se realice la facturación. Así mismo, el reenvío de las llamadas efectuadas a los números de emergencia se realizan a los servicios más próximos a la dirección donde se lleve a cabo la facturación o bien donde se viva. Como la

telefonía por Internet es posible desde cualquier parte del mundo, puede ser que al servicio de rescate le lleve algún tiempo llegar al lugar donde se esté produciendo la emergencia. El procedimiento que se realiza con la telefonía móvil y telefonía fija tiene más sentido y enviarán la llamada de emergencia al servicio de rescate responsable de la zona en la que esté localizado el teléfono fijo o el teléfono móvil.

Guía de Teléfono Propietaria Kphone dispone de su propio listín telefónico, que no es compatible con ningún formato de agenda electrónica y se almacena en el fichero de configuración central ~/.qt/kphonerc. El listín telefónico es fácil de utilizar. Hay que seleccionar Preferences | Phone book para abrir el editor, donde pueden asignarse uno o varios números de teléfono a cada contacto. Kphone muestra un pequeño formulario de las entradas del listín en la ventana principal bajo el cuadro de texto donde se introduce el número de teléfono. De hecho, solamente es necesario acceder a la ventana del listín telefónico para añadir un contacto nuevo, con tan sólo hacer doble clic sobre la entrada de la ventana principal. Si se quiere ejecutar Kphone para recibir llamadas, es buena idea tenerlo minimizado. Kphone se abrirá cuando se reciba una llamada y hará sonar una melodía por la tarjeta de sonido o por el altavoz interno. Una pequeña crítica es que no se puede ejecutar Kphone automáticamente como un servicio en el panel de KDE. Esto haría más sencillo la ejecución del programa en segundo plano ■ cada vez que se reinicie el sistema.

RECURSOS

La Primera Llamada Kphone es fácil de usar. En el caso más sencillo, basta con teclear la SIP URL del

Figura 3: Creando una entrada en el listín telefónico de KPhone.

Figura 2: Configurando el servidor STUN y otros parámetros del socket.

WWW.LINUX- MAGAZINE.ES

[1] Kphone: http://www.wirlab.net/ kphone/

Número 16

23


PORTADA • Skype

De paseo con el cliente VoIP Skype

ATRACO A LAS OPERADORAS

El famoso Skype es una opción VoIP gratuita pero no libre. POR KRISTIAN KISSLING

S

i somos usuarios de Voz sobre IP (VoIP) seguramente nos será familiar la sensación de que las distancias no paran de acortarse. Llamar a un amigo en Japón costaba una fortuna hace sólo unos años, pero gracias a la VoIP ahora podemos hablar gratis con cualquier rincón del planeta y sin sacrificar la calidad de voz, siempre que tengamos una conexión a Internet de banda ancha. La tecnología VoIP está poniendo contra las cuerdas a un buen número de operadoras de telecomunicaciones. Niklas Zennström, el inventor del cliente VoIP Skype [1], declaró recientemente en SpiegelOnline que Vodafone está tratando de evitar que Skype acceda a Internet a través de su red de alta velocidad inalámbrica. Es poco probable que esto extrañe a Niklas Zennström: su cliente gratuito está sacudiendo con fuerza al

24

Número 16

sector desde los escritorios. Es fácil de instalar y usar, y ofrece una calidad de voz muy buena. Por supuesto, algunos críticos han puesto su punto de mira sobre Skype: es un programa de fuente cerrada, por lo que tenemos que creernos las promesas de la compañía en lo concerniente a la seguridad. El cliente usa un protocolo cerrado y propietario, en lugar de optar por un estándar VoIP, al menos de momento. ¿Hace esto malo a Skype? Uno de los logros del programa es que los paquetes están disponibles para varias distribuciones. Skype suele funcionar a la primera, y normalmente no se atasca con el NAT y los cortafuegos. No hay alternativa si queremos hablar con la enorme cantidad de usuarios de Skype. Existen algunos otros clientes gratuitos VoIP, pero con ellos no podremos comunicarnos con los usuarios de Skype.

WWW.LINUX- MAGAZINE.ES

Puede que nos preguntemos entonces cómo consiguen beneficios los creadores de Skype si el cliente es gratuito. La respuesta es que Skype consigue la mayor parte de sus ingresos a través de los servicios de valor añadido (véase el cuadro “Servicios Skype”). Skype cobra por las llamadas a teléfonos convencionales a través de SkypeOut, o si queremos nuestro propio número de teléfono de los planes de numeración nacionales con Skype.

Instalación y Búsqueda de Amigos El proceso de instalación de la versión 1.2 es poco espectacular. La versión 1.2 es la última que se ofrece a los usuarios de Linux. La zona de descargas de la página Web tiene paquetes binarios para Debian, Ubuntu, Suse, Red Hat y Mandriva. Descargamos el paquete de


Skype • PORTADA

Figura 1: Podemos descargar Skype desde Internet de manera gratuita.

Servicios Skype SkypeOut nos permite llamar a la Red Telefónica Conmutada o a las redes de móviles. Antes de poder llamar, sin embargo, tendremos que comprar crédito a través de PayPal. Podremos realizar llamadas siempre que dispongamos de crédito. Obviamente existen distintas tarifas en función del país de destino [3]. Aunque sólo estamos pagando llamadas nacionales, ya que las llamadas usan Internet hasta llegar a la red telefónica del país de destino, existen apreciables diferencias en el precio. Una llamada a las Islas Salomón cuesta 1.08 Euros por minuto. Mientras que a Japón sólo cuesta 0.02 Euros el minuto. SkipeIn es otro servicio en el que disponemos nuestro propio número de la red telefónica de manera que nos puedan llamar desde teléfonos convencionales. Las tarifas son del mismo nivel que en las operadoras tradicionales. Si tenemos un número de Berlín, pero resulta que estamos en Sydney, nuestros amigos de Berlín sólo pagarán a precio de llamada local. Podemos comprar un bloque de diez números, que nos

costarán 30 Euros al año, o 10 Euros por tres meses. Lamentablemente, de momento no están disponibles números españoles. Skype Voicemail es una especie de contestador virtual. Si somos clientes de SkypeIn, podemos optar a tener este buzón de llamadas que garantiza que no perdamos el rastro mientras no estamos online. Festoon es una herramienta que proporciona soporte para vídeo a Skype, aunque sólo en la versión para Windows. En la actualidad, la versión 2.0 de Skype para Windows ya incorpora video de serie, aunque aún está en versión Beta. Skype Zones es un servicio para gente que viaja y usuarios de portátiles. La herramienta Boingo nos permite usar Skype a través de hotspots públicos en Internet, cafés e incluso aviones. El servicio cuesta 6,50 Euros al mes, pero de nuevo, éste está restringido a los usuarios de Windows.

WWW.LINUX- MAGAZINE.ES

nuestra distribución y usamos el gestor de paquetes para instalarlo. No será necesario resolver requerimientos del software, ni tendremos que habilitar ningún puerto del router. Skype usa los puertos 80 y 443, que se emplean para HTTP y/o SSL, y es raro que un administrador tenga estos puertos cerrados para otros protocolos. Tras completar la instalación, pulsamos [ALt-F2] y tecleamos skype. Este comando habilita una ventana con dos pestañas. Si somos usuarios nuevos, seleccionamos New Users Create a Skype Account. Introducimos nuestro nombre, contraseña y correo electrónico en los apartados adecuados, aceptamos las condiciones de uso (véase la Figura 2), y ya estamos conectados. Cuando ya tenemos cuenta, podemos conectarnos a través de la pestaña Existing Users - Log in to Skype. Si queremos llamar a otro usuario de Skype, tenemos que averiguar si está en línea en ese momento. Pulsamos en el icono de la lupa para abrir la herramienta de búsqueda, e introducimos el nombre del usuario al que queremos llamar. Si no sabemos su cuenta de usuario, pero sabemos su fecha de nacimiento, domicilio o número de teléfono móvil, podemos probar suerte en el campo Advanced. Si nuestro amigo introdujo esta información en su perfil, la búsqueda debería tener éxito. En ese caso, su nombre aparecerá en la parte inferior de la ventana. Hacemos doble clic sobre el nombre para arrastrarlo hasta el menú, y usamos el apartado Add to Contacts para añadir el nombre a nuestra lista de contactos. El nombre aparecerá en la lista bajo la pestaña Contacts. A continuación se abre un cuadro de diálogo para la autorización. A nuestro amigo se le pregunta si quiere hablar, y podemos especificar si queremos que nos vea cuando estamos conectados. El icono junto al nombre en la pestaña Contacts muestra el estado actual. Si el icono está verde, nuestro contacto está conectado. Podemos fijar nuestro propio estado a través del pequeño icono en la parte inferior izquierda de la ventana. Esto permite indicar a los potenciales llamantes que no queremos ser molestados o que no estamos en casa.

Número 16

25


PORTADA • Skype

Figura 2: ¿Nuevo con Skype? Tendremos que registrarnos en primer lugar. Para ello, introducimos nuestro nombre, dirección de email y contraseña.

Hablar… Para empezar, conectamos nuestros auriculares a la tarjeta de sonido, seleccionamos el nombre de la persona a la que queremos llamar y pulsamos el botón verde de llamada. El ordenador llamado empezará a sonar, y el contacto podrá aceptar la llamada. Si aparecen problemas en la comunicación, podemos empezar chateando. Para ello, pulsamos con el botón derecho sobre nuestro contacto y seleccionamos Start a Chat en el menú (véase la Figura 3). A través de este mismo menú podemos enviar a nuestro amigo fotos o cualquier otro archivo. Simplemente pulsamos con el botón derecho, seleccionamos Send a file y examinamos el PC en busca del archivo a enviar. Sin embargo, este tipo de transferencia de archivos es muy lenta. Skype no está diseñado para la transferencia de grandes volúmenes de información. Si tenemos problemas con la comunicación porque el volumen es muy bajo, oímos eco o no podemos escuchar a la otra persona, esto puede ser debido a un buen número de causas. En primer lugar debemos verificar si los auriculares están correctamente conectados. ¿Tenemos los controles de volumen configurados adecuadamente? La página Web de Skype [2] nos ofrece más ayuda, aunque debemos señalar que la conexión funciona generalmente sin tocar ninguna configuración. Puede que oigamos eco durante nuestra conversación, pero podemos reducirlo bajando el volumen del micrófono.

26

Número 16

Para usar el servicio En General podemos comercial SkypeOut, indicarle a Skype que (véase el cuadro busque actualizaciones “Servicios Skype”), automáticas del pulsamos sobre la programa. Aquí pestaña Dial. A también podemos continuación usamos especificar cuánto las teclas numéricas tiempo debe pasar el para marcar el número ordenador inactivo para de un teléfono fijo que el estado pase a convencional o un ausente. Si dejamos el móvil. La pestaña Call ordenador funcionando List nos muestra un mientras nos vamos, administrador de podemos molestar a los llamadas. Desde aquí contactos que tratan de podremos acceder Figura 3: El menú de Skype nos comunicarse con también el servicio de ofrece las funciones de chateo y nosotros en vano. buzón de llamadas: llamada, además de la de transfeLa pestaña podemos escuchar rencia de archivos. Hand/Headset nos mensajes de llamadas permite especificar el que se produjeron durante nuestra dispositivo que usa nuestra tarjeta de ausencia. También podemos acceder a un sonido, que suele ser /dev/dsp. Si esto no resumen de llamadas que hemos funciona, tendremos que probar otra efectuado. Skype permite también interfaz. Las pestañas Call Alerts y Chat conferencias de hasta cinco participantes. Alerts nos permiten especificar qué pasa Los usuarios de Linux pueden participar cuando recibimos una llamada o una en estas conferencias, pero no pueden ventana de chat. ¿Queremos un timbre o iniciarlas. preferimos un mensaje? La pestaña Advanced nos autoriza a indicar los Alguien a la Escucha puertos que debe usar Skype. Si Si necesitamos mantener una conferencia preferimos no usar los puertos estándar, para discutir algún negocio importante, la 80 y 443, podemos introducir otro puerto seguridad de la comunicación puede ser a partir del 1024. Puede que tengamos que un asunto importante. Definitivamente no habilitar este puerto en nuestro router. vamos a querer fisgones a la escucha. El Cuidar las Amistades asunto de la seguridad es siempre un problema con el software propietario. Skype es una solución VoIP práctica y Según Skype, la comunicación está altamente funcional, para el uso protegida por un algoritmo AES doméstico. Pero si preferimos el asimétrico, con una clave de 256 bits. La software libre y los estándares abiertos, compañía usa una clave RSA de 1024 bits o si nos preocupan los aspectos en para controlar el intercambio de claves, cuanto a seguridad, puede que optemos aunque claro, esto no podemos por alguna otra alternativa entre las que comprobarlo nosotros. Skype no parece se discuten en este número. Y antes de dispuesto, de momento, a publicar su empezar a llamar a los amigos al otro código fuente. Y aunque se habilite la lado del mundo, ¡comprueba las zonas ■ encriptación, ésta desaparece al llegar a la horarias! Red Telefónica Conmutada.

Tunear Skype Podemos cambiar algunas preferencias en cuanto a seguridad. Pulsamos sobre la pesaña Privacy en el menú Tools, donde podemos especificar quién puede escribirnos en una ventana de chat o llamarnos. Si preferimos que no todo el mundo pueda acceder a nosotros, podemos restringir nuestra disponibilidad a los miembros de la lista de contactos.

WWW.LINUX- MAGAZINE.ES

RECURSOS [1] Página de Skype: http://www.skype. com [2] Solución de problemas en Skype: http://support.skype.com/ ?_a=troubleshooter [3] Lista de tarifas para llamadas a la Red Telefónica Conmutada: http:// www.skype.com/products/skypeout/ rates/all_rates.html


Live Distros • EVALUACIÓN

Analizamos el panorama de las distros Live en Linux

LINUX LIVE Un buen número de distribuciones live de Linux te están esperando en Internet. La elección correcta depende de tus necesidades. POR FABRIZIO CIACCHI

U

na distribución live de Linux es un sistema operativo completo que arranca y funciona exclusivamente desde un CD o DVD. Podemos arrancar el sistema live Linux en cualquier PC siempre que el sistema soporte el hardware. Debido a que el sistema live se ejecuta desde el CD o DVD, estas distros no modifican el contenido del disco duro. Los usuarios de Windows que tengan en mente cambiar a Linux pueden probarlo sin tocar su configuración. Podemos usar también una distro live para comprobar si un ordenador concreto soporta Linux o para recuperar un sistema dañado. Para arrancar un sistema live, sólo tenemos que poner el CD o DVD en la unidad y reiniciar. (Si esto no funciona, acuda al cuadro titulado “Arranque desde la unidad CD o DVD”). Las mejores distribuciones live no sólo se usan como demostración o con objeto de recuperar sistemas. Muchos sistemas live incorporan entornos gráficos, suite ofimática, programas para Internet (como navegadores, clientes de correo y de mensajería instantánea), y todas las herramientas que podamos necesitar para trabajar en Linux. Aunque los sistemas live se diseñan para funcionar sin tocar la configuración permanente, muchos de

ellos pueden también instalarse en el disco duro como cualquier otra distribución Linux. Como los sistemas live suelen ser menores y más simples que los sistemas Linux normales, a menudo resultan una solución ideal para ordenadores viejos con discos duros pequeños y recursos limitados. Hemos localizado algunas de las distribuciones live más populares y las hemos puesto a prueba. Empezamos con la más popular e influyente de todas ellas, la famosa Knoppix. Puede acudir también a la página de Linux Magazine [1] para más información relativa a la instalación permanente de las distros comentadas en este artículo.

Knoppix Knoppix está considerada como LA distribución live Linux. Fue la primera distro en soportar una interfaz gráfica con escritorio. Su creador, Klaus Knopper, basó Knoppix en Debian [2]. Desde su primer lanzamiento, Knoppix ha crecido en tamaño y en funcionalidades. Por ejemplo, es posible cargarlo entero en la RAM (si se dispone de suficiente) y usar la unidad de CD-Rom para leer otro CD. Knoppix también permite pasarle un buen número de comandos en el arranque, por ejemplo, para configurar el idioma o activar el framebuffer. Existe incluso un comando para usar hardware braille.

WWW.LINUX-MAGAZINE.ES

Si pulsamos simplemente ENTER en la pantalla de arranque, tras unos instantes, nos encontramos ante KDE 3.4, con OpenOffice.org 2 beta, Mozilla Firefox, The Gimp y otras aplicaciones familiares para los fieles de Linux. La nueva versión en DVD tiene una increible cantidad de software, incluyendo programas típicos en KDE como Kopete, Kaffeine, K3B, KOffice y Konqueror, así como los que incorpora Gnome, como Evolution y Rhythmbox. También encontraremos herramientas para gráficos como Blender, Inkscape y Sodipodi, programas multimedia como Xmms y Xine, y un conjunto de programas educativos. Se ha logrado un sistema de escritorio de ensueño, basado en CD y completamente funcional gracias a un enorme trabajo en los scripts que cargan los módulos y programas, y que dan como resultado un sistema que funciona con la precisión de un reloj suizo. Muchas otras distros live se basan en Knoppix. Algunos de estos proyectos son sólo optimizaciones, pero otros, como Kanotix, incorporan valiosas características. Klaus Knopper adopta a menudo estas innovaciones de vuelta a posteriores versiones de Knoppix.

Slax La principal idea tras el proyecto Slax es proporcionar distintas pequeñas

Número 16

27


EVALUACIÓN • Live Distros

Figura 1: Knoppix 4 es una madura distribución live con una ingente cantidad de aplicaciones.

versiones especializadas de Linux a partir de un mismo sistema base. De momento se encuentran disponibles cuatro versiones. (Aunque están planeadas un total de siete). Todas ellas tienen un tamaño menor a 185 MB, lo que significa que Slax puede incluirse en un Mini CD. Las versiones de Slax disponibles de momento son: • Standard edition- Un live CD Linux rápido y fácil de usar. El proceso de arranque no lleva más de un minuto, y el sistema está listo para usar y es fácil de configurar. Todo el software está basado en KDE: Konqueror, Juk como reproductor de música, KPlayer como reproductor multimedia, Kopete en mensajería instantánea y KOffice en lugar del más conocido OpenOffice.org. • KillBill edition- Es muy similar a la edición estándar, pero incorpora algunos programas de emulación, como QEMU, dosbox y WINE, para ejecutar programas para Windows o emular arquitecturas hardware. Podemos instalar Internet Explorer usando WINE o podemos probar una CD ISO usando QEMU. (Hay un excelente artículo referente a QEMU en los archivos de Linux Magazine [3]). • Popcorn edition- La edición Popcorn de Slax es similar a sus predecesoras: muy fácil, muy rápida y muy limpia. La característica fundamental de la edición Popcorn es que KDE se ha sustituido por XFCE, y esta sustitución causa otros cambios en la lista de aplicaciones. Encontraremos

28

Número 16

Figura 2: Slax es una pulcro y veloz sistema Linux que ocupa muy poco espacio.

BMP en lugar de Juk, Mplayer en lugar de Kplayer y Abiword en lugar de KOffice. • Frodo edition- Frodo, orientada al modo texto, es la edición “light” de Slax, ha sido creada con la intención de ser un sistema de recuperación portátil que pueda alojarse en un CD “tarjeta de visita”. (Existen otras distribuciones, como DammSmallLinux, que proporcionan un entorno de trabajo completo en el mismo espacio). Las restantes versiones de Slax que están aún en desarrollo son: • Server edition- La edición Server de Slax contiene programas usuales para servidores como DNS, DHCP, SMB, HTTP, FTP, MySQL, SMTP, POP3, IMAP y SSH. Su lanzamiento está próximo. Esta edición pretende

ser la navaja suiza de los hackers de Linux. Contendrá las herramientas más conocidas en el campo de la seguridad informática, como sniffers de red, sistemas de detección de intrusos, etc. • Professional edition- Esta última edición será la unión de todas las demás, la cual se pretende que tenga cabida en un Mini DVD de 1.4 GB. Esta versión incorporará también gcc, make y las fuentes del kernel, lo que permitirá al usuario compilar cualquier software, incluyendo el kernel de Linux. Slax tiene algunas características interesantes, como su sistema modular, que facilita a los desarrolladores la tarea de personalizar las diferentes versiones a partir de una base común. Dicho sistema modular también permite instalar

Arrancar desde la Unidad CD o DVD Para poder utilizar un live CD tendremos que configurar nuestro ordenador para que arranque desde la unidad de CD. Muchos PC’s modernos arrancan desde la unidad CD/DVD por defecto. Si nuestro sistema no arranca con el CD o el DVD dentro de la unidad, debemos consultar la documentación del fabricante o fijarnos en la pantalla de arranque para averiguar cómo entrar en el menú de configuración de la BIOS. (Las instrucciones pueden variar en función del fabricante de la placa madre). Seleccionamos como primer dispositivo de arranque nuestra unidad CD/DVD. Si podemos elegir entre un lector CD y una

WWW.LINUX-MAGAZINE.ES

grabadora de CD/DVD, elegiremos la primera, ya que, por regla general, esta opción tiene mejor soporte para el arranque. Guardamos los cambios en la BIOS, introducimos el live CD y reiniciamos. Recordemos que arrancar desde una distribución Linux live no toca en absoluto nuestro sistema instalado. La única manera de borrar datos del disco duro es que manipulemos las particiones, por lo que, si nos preocupa proteger nuestra información, será mejor que no probemos con las opciones que afectan al disco duro, a menos que sepamos con seguridad lo que estamos haciendo


Live Distros • EVALUACIÓN

Figura 3: La sencilla y práctica distribución Mepis está basada en KDE.

software de manera fácil y rápida desde la página Web de Slax. Si queremos crear nuestro propio CD Slax, sólo tenemos que añadir los módulos necesarios al directorio /module. O, si queremos usar un módulo “al vuelo”, podemos abrir un terminal y teclear uselivemod modulename.mo. A menos que nos guste trabajar con vi, puede que encontremos algunos problemas al arrancar Slax en entornos gráficos. En las ediciones Standard y KillBill, es probable que tengamos que recurrir a vi para editar el archivo xorg.conf. vi ni siquiera se incluye en la edición Popcorn, lo que puede causar incluso más problemas. A pesar de estas complicaciones, Slax es una de las distribuciones live más potentes: es rápida y fácil de instalar, y las diferentes versiones cubren una amplia gama de necesidades para distintos tipos de usuario, si acaso con pequeños problemas achacables a la juventud de esta distro.

Figura 4: Elive incluye el rapidísimo y atractivo gestor de ventanas Enlightenment 17.

Mepis Mepis debe ser la única distribución live basada en Debian que toma todo su software del repositorio original de Debian. El hecho de centrarse en Debian es una gran ventaja para Mepis, porque, en cierto sentido, Mepis ES Debian. La desventaja es que el software puede no estar tan actualizado como en otras distribuciones. Al contrario que Knoppix, que ofrece la gama más amplia de software y posibilidades, Mepis se concentra en simplificar las opciones. Encontraremos menos opciones para el arranque y la detección del hardware, y, en general, la filosofía de Mepis es ofrecer “lo mejor de su categoría” en cuanto a aplicaciones, en lugar de proporcionar una variedad de programas que hacen lo mismo. En consecuencia, se ha ganado una merecida fama como sistema simple y sencillo para los principiantes a la hora de la instalación y uso.

Mepis se ha convertido en uno de las distribuciones Linux más populares y ya tiene vida propia. La instalación es muy sencilla, y el software incluido está bien compensado. Es una solución recomendable debido a su sólida base (Debian), su vistosidad (KDE) y su facilidad de configuración (con el Mepis OS Center). Mepis viene en tres versiones: • SimplyMepisEs la edición estándar, con el mejor software para el usuario Linux. SimplyMepis es rápido, fácil de usar y fácil de configurar. Incluye las aplicaciones de escritorio básicas como OpenOffice, The Gimp y demás. La próxima versión (que se planea lanzar pronto) vendrá con Xorg en lugar de Xfree y con actualizaciones de las aplicaciones de escritorio (como OpenOffice.org 2.0 beta). • MepisLite- Es la edición light de Mepis, orientada a los ordenadores más viejos y menos potentes. El

Arrancar desde la Unidad CD o DVD Distribution Knoppix

Página Web http://www.knoppix.net

Última Versión 4

Kernel 2.6.12

Escritorio KDE 3.4.1

Suite Ofimática OpenOffice 2 beta

2.6.12

KDE 3.4.1

KOffice 1.4

3.3.1 5.0

Tamaño ISO 700MB(CD) 3.2GB(DVD) 47MB(Business Card CD) 185MB(Mini CD) 700MB(CD) 420MB(CD)

Slax

http://slax.linux-live.org

5.0.6

Mepis Kurumin Elive

http://www.mepis.org http://www.guiadohardware.net/kurumin http://www.elivecd.org

2.6.12 2.6.11

KDE 3.3.2 KDE 3.3.2

OpenOffice.org 1.1.4 OpenOffice.org 1.1.2

0.3

660MB(CD)

2.6.11

OpenOffice.org 1.9.125

1.2.3 1.0 2005-03

1.1GB(Mini DVD) 650MB(CD) 700MB(CD)

2.6.11 2.6.10 2.6.11

Enlightenment 16 and 17 Fluxbox 0.9.12 Gnome 2.10 KDE 3.4.1

Zen Gnoppix Kanotix

http://www.zenlinux.org http://www.gnoppix.org http://kanotix.com

WWW.LINUX-MAGAZINE.ES

OpenOffice.org 1.1.4 OpenOffice.org 1.1.3 OpenOffice 2 beta

Número 16

29


EVALUACIÓN • Live Distros

Figura 5: Zen Linux incluye el gestor de ventanas Fluxbox y el administrador de archivos ROX.

usuario ideal de esta versión es un usuario de Windows 98 que quiere un sistema operativo moderno y rápido. Esta edición es una buena opción si tenemos un Pentium II con 128 MB de Ram. • SoHoServer- La edición SoHo de Mephis reduce en buena parte el software multimedia, ofimático y de gráficos, pero incluye programas para servidor como Apache2, PHP4, Perl, MySQL, ProFTPd, Bind, DHCPd, Postfix, Dovecot, Shorewall, Squid, DansGuardian, Webmin y Usermin. Mepis es, en definitiva, una buena opción para los usuarios que valoren la simplicidad.

Kurumin Kurumin es una de las distribuciones más apasionantes basadas en Knoppix. Para empezar, Kurumin es muy rápida e incluye una interfaz basada en KDE con iconos Crystal enormemente atractiva. En sólo 420 MB, Kurumin tiene todos los programas que podamos necesitar, como OpenOffice.org (llamado en este caso KuruminOffice) 1.1.2, GIMP 2.2.6, Mozilla Firefox, Thunderbird, Gaim, Skype, aMSN, K3B, Kaffeine y Xmms. Kurumin dispone de numerosas herramientas para configurar adecuadamente el hardware o algún programa en concreto. Encontraremos también un intuitivo panel que nos permite configurar el hardware. Un problema que encontramos en esta distribución fue que el arranque live aparentemente sólo se podía realizar en portugués, por lo que es probable que necesitemos saber algo en esta lengua

30

Número 16

Figura 6: La distribución Gnoppix, basada en Gnome, incluye herramientas como AbiWord.

para salir del paso. Si instalamos Kurumin en el disco duro, podemos configurar el idioma que deseemos.

Elive Enlightenment es un entorno gráfico experimental que se centra en la velocidad y la flexibilidad. Desde el primer

Quemar una imágen ISO La manera más habitual de obtener un live CD es descargar la imagen ISO y quemarla en un CD. Algunas de las herramientas más conocidas para quemar imágenes ISO son Easy CD Creator (para Windows), Nero (para Windows/Linux) o K3B (para Linux). Linux incluye también herramientas para grabar imágenes ISO desde consola. Los comandos exactos pueden depender de la configuración hardware y de nuestro sistema Linux. Para grabar una imagen de un CD, por ejemplo, podemos teclear algo tal que: $ cdrecord dev=/dev/hdc U /path/image.iso Donde hdc (o hdd) es nuestra grabadora CD, e image.iso es el nombre del archivo ISO (con la ruta, en su caso). Para grabar un DVD, podemos probar: $ growisofs -Z U /dev/scd0=/path/image.iso El proceso de grabación puede durar desde 15 hasta 40 minutos, en función del hardware y el rendimiento de nuestro sistema.

WWW.LINUX-MAGAZINE.ES

lanzamiento hasta el número 16, Enlightenment ha conseguido un entorno gráfico realmente espectacular, sacrificando en algunos casos la usabilidad del sistema. La última versión, la E17, mantiene los sensacionales gráficos, con algo más de usabilidad y una apariencia más limpia. Cuando arrancamos la distro live Elive, podemos elegir entre la E16 o la E17. La vieja Enlightenment E16 puede parecer algo extraña al usuario habitual de KDE o GNOME. Enlightenment 17 es definitivamente una opción con interfaz gráfica más avanzada. Encontraremos una barra de herramientas muy similar a la de Mac OS X con lanzadores de programas, y que destaca los iconos conforme pasamos el ratón. Tenemos también disponible un conjunto de applets, llamados módulos, que verifican parámetros como la temperatura y frecuencia de la CPU. Elive es una de nuestras distros favoritas del conjunto que hemos probado, aunque sea sólo por el hecho de que es un entorno gráfico realmente innovador. Un consejo: si decide instalarla, deberá actualizar inmediatamente después de la instalación, ya que algunos de los componentes que funcionan desde el live CD no lo hacen correctamente desde el disco duro.

Zen Linux El objetivo de Zen es proporcionar un buen Linux live CD, que sea muy rápido y con gran cantidad de software. Desafortunadamente, no termina de conseguir este objetivo. Es cierto que incluye una buena cantidad de software


Live Distros • EVALUACIÓN

Una de sus características más interesantes (que ha sido copiada por otras muchas distros) es la configuración del kernel. De hecho, muchas distribuciones basadas en Knoppix usan el kernel de Kanotix porque permite una mejor detección del hardware. Uno de los proyectos basados en Kanotix más prometedores es SymphonyOS [4], una distribución live de Linux que incluye un nuevo y revolucionario entorno de escritorio basado en FVWM.

Conclusiones

(por ejemplo The Gimp, OpenOffice y otras aplicaciones estándar). Sin embargo, la interfaz de usuario no es demasiado intuitiva. El sistema por defecto incluye el gestor de ventanas Fluxbox y el administrador de archivos ROX, con gráficos azul metálico (y cursor azul metálico). Esta elección no es mala, pero cuando probamos una alternativa como Xfce (que también se incluye), no estaba en absoluto configurada, y esto parecía ser síntoma de problemas subyacentes. Zen, sin embargo, es la única distribución que viene en formato Mini DVD y con un conjunto de software comparable a Knoppix. Si queremos instalar Zen en nuestro disco duro, debemos tener cuidado. Por defecto, el instalador trata de instalarse automáticamente borrando las particiones. Si seleccionamos la instalación personalizada, debemos asegurarnos de lo que estamos haciendo.

Gnoppix Gnoppix comenzó como un clon de Knoppix que incluía Gnome en lugar de KDE. El sistema Gnoppix ha crecido desde entonces hasta convertirse en una buena alternativa a Knoppix, aunque con la explosión de cambios de la distro Knoppix, Gnoppix ha quedado un poco rezagada.

La llegada al estrellato de Ubuntu le ha dado a Gnoppix una nueva oportunidad. La distribución Gnoppix forma parte ahora del proyecto Ubuntu. Este nuevo papel supone también una cierta limitación: Gnoppix está muy relacionado con Ubuntu y no parece que añada nada nuevo (en el sentido en el que Knoppix añade características a Debian). Gnoppix es principalmente una versión live de Ubuntu Linux, pero al menos es una buena herramienta para comprobar si un sistema soporta Ubuntu.

Kanotix Kanotix es un derivado de Knoppix que se creó para proporcionar algunas características que no ofrecía Knoppix. Por ejemplo, Kanotix se lanzó con un kernel 2.6, cuando en ese momento Knoppix todavía usaba un kernel 2.4. Con el último lanzamiento de Knoppix, las diferencias entre estas distros se han acortado, pero Kanotix sigue ofreciendo algunas ventajas.

EL AUTOR

Figura 7: Al igual que Knoppix, Kanotix incluye muchos juegos “clásicos”.

Las distros live Linux proporcionan al usuario una herramienta para situaciones de emergencia y permiten a los no usuarios de Linux probarlo antes de instalarlo. La elección del perfecto sistema live Linux depende de nuestras necesidades. Si estamos buscando un sistema ligero y simple que sea fácil de instalar y tenga una buena selección de lo “mejor de su categoría” en cuanto a aplicaciones, el ganador es Mepis. Knoppix, por otra parte, es el padre de todas las distribuciones live y es una buena alternativa si queremos gran cantidad de software y muchas opciones de configuración. Para algunos usuarios principiantes de Linux, Knoppix puede que tenga demasiadas opciones. Slax es otra prometedora distro con la filosofía “menos es más”, pero aún presenta algunos pequeños problemas ■ de juventud.

Fabrizio Ciacchi (http://fabrizio. ciacchi.it) es un estudiante italiano de Ciencias de la Computación en la Universidad de Pisa. Trabaja también como consultor y escribe artículos sobre Linux. En su tiempo libre, colabora con el proyecto Abiword (www.abiword.org).

RECURSOS [1] Consejos para instalación permanente: http://www.linuxmagazine.com/Magazine/ Downloads/63/LiveDistros [2] Página oficial Debian: http://www.debian.org [3] Emulación de sistemas con QEMU http://www.linux-magazine.com/issue/52/ QEMU_System_Emulation.pdf [4] SymphonyOS: http://www.symphonyos.com

WWW.LINUX-MAGAZINE.ES

Número 16

31


EVALUACIÓN • OpenOffice 2.0

Por fin: OpenOffice 2.0

LA LLEGADA DE OFFICE

Después de muchas versiones prerelease y de informes preliminares, al fin ha llegado el nuevo OpenOffice. POR MICHAEL BONA

O

penOffice proporciona dos productos: StarOffice, que es un producto comercial de Sun [1] y OpenOffice, que es un paquete gratuito de software disponible en [2]. No existen diferencias entre los paquetes ofimáticos; pero Sun aporta una colección de coloridos añadidos como fuentes, plantillas y cliparts con StarOffice. OpenOffice dispone de la mayoría de las funcionalidades principales que los usuarios esperan de una suite ofimática. La suite OpenOffice viene con casi todas las distribuciones Linux y es una razón importante para su reciente crecimiento. Cuando OpenOffice 2.0 apareció, después de muchos meses de preliminares, echamos un vistazo para comprobar si realmente ha merecido la pena la espera.

Formatos de Ficheros El cambio más significativo en OpenOffice 2.0 podrían ser los nuevos formatos

32

Número 16

de ficheros basados en OASIS OpenDocument [3]. Estos formatos están estandarizados y documentados detalladamente, y lo que es más, los vendedores de software han permitido su implementación sin ninguna restricción. La idea que persigue OpenDocument, un conjunto de formatos de ficheros estandarizados soportados por todos los programas del mercado, es proporcionar un soporte genuino para el intercambio global de datos. La UE ya ha decidido adoptar formatos de documentos abiertos y el estado norteamericano de Massachusetts lo ha hecho obligatorio para todas las oficinas públicas a partir de 2007. Tanto KOffice como AbiWord soportan OpenDocument y las versiones anteriores de OpenOffice 1.1.5 pueden leerlo. El vendedor de software Softmaker se unirá a finales de año. IBM/Lotus y WordPerfect han anunciado que harán con OpenDocument en versiones futuras.

WWW.LINUX-MAGAZINE.ES

Microsoft, desafortunadamente, ha anunciado que no va a soportar OpenDocument en sus productos. En una entrevista disponible en [4] con uno de los arquitectos de OpenDocument, se discuten las diferencias entre OpenDocument y el formato WordML de Microsoft. Desde un punto de vista técnico, el nuevo formato de fichero es muy similar al formato de fichero OpenOffice anterior; comprende un grupo de ficheros XML almacenados en un archivo comprimido.

Confeccionado Los usuarios de KDE, en particular, se beneficiarán del retraso de la aparición de OpenOffice. Aunque el plan original era modificar su apariencia (en el cuadro de diálogo de ficheros, por ejemplo) para coincidir con Windows y Gnome, sin embargo también se beneficiarán de la solución orientada a la plataforma. Esto es una gran ventaja


OpenOffice 2.0 • EVALUACIÓN

tener subtablas y los saltos de páginas Office no puede pueden aparecer dentro de una línea. importar o exporLos textos de las tablas pueden ser tar son una verticales, es decir, se pueden leer de excepción. arriba a abajo. La orientación de abajo Actualmente han a arriba, típica de las tablas, aún no desaparecido los está soportada. problemas con No todo el mundo verá el nuevo las listas enumeMail Merge Wizard como una mejora radas y las tablas. (Figura 3). El asistente guiará a los Las listas enuusuarios paso a paso por el proceso de meradas pueden combinación de correspondencia, pero importarse satispor otro lado, dicho proceso requiere factoriamente y más clics de ratón de los requeridos en Writer incluso la versión anterior 1.1. Como nota puede manejar positiva, OpenOffice 2.0 ya puede especialidades Figura 1: La versión 2 proporciona un soporte mejor para KDE. La crear correos electrónicos en serie, Word, como las figura muestra a OpenOffice usando el cuadro de diálogo de ficheros como su antecesor StarOffice 5.1 (La líneas que cubren de KDE. característica de correos electrónicos más de una en serie no aparecía en la versión antepágina. en comparación con la vetusta aparior). Había que instalar la biblioteca Los desarrolladores han perfecriencia del cuadro de diálogo de aperJavaMail para obtener esta caracteríscionado la característica de tura y cierre de la versión 1.1 (Figura tica. exportación como PDF. Esta función, 1). Probablemente sea necesario ser un que está solamente disponible para los En los demás aspectos, OpenOffice abogado para entender por qué el dicusuarios de MS Office en forma de 2.0 se parece mucho más al paquete cionario del corrector ortográfico no añadido software de terceros, es capaz Office de Microsoft que su predecesor. esté incluido por defecto, pero se de producir documentos PDF de alta Es probable que esto moleste a puede descargar desde los servidores calidad en versiones previas. En este algunos seguidores entusiastas, ya que de OpenOffice por medio de una momento la versión 2.0 añade soporte el cambio de versión implica adaptarse macro cuando se desee. El corrector para los thumnails de las páginas, foral nuevo programa. Pero los cambios ortográfico es sencillo y versátil, ofremularios PDF, hiperenlaces a pasajes no son tan malos como podrían pareciendo una selección de idiomas desde del texto en la tabla de contenidos y cer cuando se les echa un vistazo Afrikaans a Zulu. enlaces en el texto. El nivel de compredetallado. Además de lo nuevo, sión para los gráficos es también conCalc todavía funcionarán los controles al figurable por el usuario. estilo MS Office, así como la mayoría El cambio más obvio realizado sobre la Desde luego, las mejoras van más de los viejos trucos y operaciones. allá de las características de nueva versión de Calc es su parecido con A pesar de todas las dudas, la mayor importación y exportación. La utilidad MS Excel. Los menús y las cajas de parte de los usuarios acomodados para contar palabras ya no se encuenherramientas son más o menos idénticos probablemente apreciarán uno de los tra escondida en las propiedades de la a sus equivalentes de Excel. No hay cambios: OpenOffice 2.0 dispone página, sino ahora de una herramienta brocha de que sigue la formato. Aunque la brocha es algo que solución los expertos en el procesamiento de adoptada por textos odian, es de lo más popular Word con una entre los usuarios casuales. Y las planentrada en tillas de formatos aún están Tools | Word disponibles para todos aquellos usuacount. La funrios que prefieran mantenerse en sus ción puede viejos hábitos. ahora contar las palabras Writer dentro de una Con cada versión nueva, OpenOffice selección, en se vuelve más compatible con vez de todas Microsoft Office, y la versión 2.0 no es las palabras una excepción (Figura 2). De hecho, del docu2.0 ha realizado un gran salto con mento. Las Figura 2: La última versión de OpenOffice Writer se parece aún más a respecto a la compatibilidad con MS tablas ahora Microsoft Word. Office. Los Documentos que Openpueden con-

WWW.LINUX-MAGAZINE.ES

Número 16

33


EVALUACIÓN • OpenOffice 2.0

Figura 3: El Mail Merge Wizard requiere más pulsaciones de ratón, pero los pasos adicionales hacen que la herramienta sea más sencilla para los usuarios noveles.

muchos más cambios. El nuevo formato puede manejar 65.536 líneas, como Excel. Una de las mayores debilidades se aprecia mejor en Calc que en cualquier otra aplicación. OpenOffice 2.0 es aún incapaz de manejar macros VBA. El DataPilot [X] añade muchas habilidades analíticas en comparación con su versión predecesora (Figura 4). Pero aún hay mucho que hacer: MS Excel PivotTables pueden hacer más y son más fáciles de usar. Los expertos del teclado pueden realizar más tareas sin el ratón. En las versiones previas, se podría utilizar el teclado para seleccionar celdas en una tabla, pero hacía falta el ratón para deseleccionarlas. Esto ya no será necesario. El mismo atajo de teclado [Ctrl]+[Shift][Pageup] elimina una selección en la versión nueva. Ha sido eliminada otra debilidad: la abismal función de impresión. A diez años de sus competidores, Calc finalmente permite a los usuarios especificar cuántas páginas debe tener de ancho y largo una copia impresa de la hoja de cálculo.

y las plantillas de disposición, exhiben la presentación y facilitan la navegación, así como la edición. Las versiones anteriores de Impress tenían botones realmente pequeños para la mayoría de las funciones principales, pero puede dejar la lupa en el escritorio con Impress 2.0. Todas las funciones principales son claramente visibles y fáciles de acceder. Esto es particularmente cierto con la función Start slideshow, que ahora se encuentra en la parte superior derecha en un gran botón, en vez de ocultarse detrás de un bosque de iconos en miniatura en el lado derecho. El último Impress también proporciona grandes mejoras para intercambiar

datos con MS Office. Impress soporta ahora Microsoft AutoShapes, a las que se refiere como CustomShapes en OpenOffice, y puede importar formas sin causar ningún daño. Las versiones previas convertían las formas a gráficos, pero la versión actual mantiene la habilidad de escalar y editar las formas. Esto es aplicable a las fuentes rotadas y modificadas. Impress también soporta más efectos de transición y animaciones, así que un fichero importado de PowerPoint se parece bastante más al original. Como su predecesor, Impress 2.0 puede exportar a HTML y Flash. La nueva GUI también tiene sus inconvenientes: su aspecto es completamente diferente al resto de los programas del paquete. Esperemos que los desarrolladores encuentren la forma de añadir barras de desplazamiento laterales a las otras aplicaciones de OpenOffice.

Base En las versiones anteriores del paquete OpenOffice no había un equivalente a la base de datos MS Access. Aunque el software poseía alguna funcionalidad de bases de datos, estaba bien oculta. Para cambiar esto, los desarrolladores han agrupado la funcionalidad de bases de datos en un programa nuevo, Base, junto con una nueva GUI (Figura 6). Base puede usarse como una interfaz para acceder a bases de datos como MySQL o PostgreSQL, pero también dispone de su propia base de datos de fácil uso. Almacena registros, formularios y consultas

Impress El programa de presentaciones Impress ha sido rehecho completamente. Actualmente el GUI se parece tanto a PowerPoint que los usuarios podrían tener dificultades para distinguirlos de un primer vistazo. Sin embargo, esto no es un punto negativo de Impress, y la nueva GUI es un paso de gigante en la dirección adecuada (Figura 5). Los thumbnails a la izquierda

34

Número 16

Figura 4: El nuevo Calc DataPilot dispone ahora de más opciones para el análisis de datos.

WWW.LINUX-MAGAZINE.ES


OpenOffice 2.0 • EVALUACIÓN

Los desarrolladores también están empezando a reincidir en temas de seguridad: La primera versión de desarrollo de 2.0 establecía por defecto el nivel de seguridad en “Muy alto”; ahora el programa pregunta al usuario antes de ejecutar una macro. Aunque esto sea un paso más hacia la compatibilidad con MS, puede ser que se pregunte si OpenOffice realmente tiene que emular todas las características de MS.

Conclusiones

Figura 5: Impress es capaz ahora de importar ficheros más complejos de PowerPoint sin ningún problema. La figura muestra una presentación original de Microsoft sobre .NET.

en un único fichero; no necesita un servidor de bases de datos y permite un intercambio fácil de datos con otros usuarios. Base viene con un asistente que ayuda a los usuarios a crear bases de datos con sus correspondientes formularios y consultas. Es una aplicación bastante joven. La GUI no es muy intuitiva y se “cuelga” bastante a menudo. La versión actual de Base es más una herramienta para usuarios casuales que no tienen que tratar con grandes problemas. Por otro lado, el GUI es bastante complejo para este tipo de usuarios.

mulas. Ambas aplicaciones han sufrido un gran cambio si se comparan con las de las versiones previas, viéndose beneficiadas por las mejoras genéricas de OpenOffice. Por ejemplo, Draw puede en este momento manejar CustomShapes, como Impress. En todas las aplicaciones de OpenOffice se encuentran actualmente disponibles muchas funciones importantes. Por ejemplo, la función de exportación en PDF disponible en Writer también proporcionará ficheros PDF perfectos en todas las otras aplicaciones de la suite. Todas las aplicaciones soportan firmas digitales para permitir a los receptores Genéricas comprobar el origen de un documento OpenOffice 2.0 también incluye dos aplicon un cierto grado de confianza. La ejecaciones menores: Draw, un sencillo procución de macros también puede firgrama de dibujo y Math, un editor de fórmarse para probar su origen. Desafortunadamente, la documentación para esta característica es bastante escueta y será mejor experimentar para aprender su funcionamiento. No hay soporte para GPG, un método de firma con bastantes seguidores Figura 6: La nueva herramienta de base de datos Base al fin proporentre los usuarios ciona una base de datos para OpenOffice. Linux.

WWW.LINUX-MAGAZINE.ES

La nueva versión de OpenOffice se centra obviamente en mejorar la interoperatividad con el paquete Microsoft Office, y dando un gran salto en esta dirección. OpenOffice 2.0 también incluye modificaciones en el diseño de la GUI para que les resulte más sencilla a los usuarios su migración desde MS Office. Al mismo tiempo, los cambios podrían molestar a algunos de los usuarios de OpenOffice. El nuevo programa de bases de datos, Base, aún necesita mejorar, pero parece que promete. Esperamos con gran expectación las próximas versiones. La característica PDF de OpenOffice es una buena baza que hace que OpenOffice 2.0 sea una herramienta potente para la creación de documentos y formularios PDF. El nuevo formato de ficheros es el cambio más significativo de OpenOffice 2.0. El formato OpenDocument promete gran compatibilidad, intercambio de datos sin problemas y libertad de elección. Todo en uno, los desarrolladores han realizado un gran trabajo con OpenOffice 2.0. Este paquete ofimático puede realizarlo todo mejor que sus predecesores, tal como habría que esperar de cualquier jovencito saludable de cinco años de ■ edad.

RECURSOS [1] Staroffice: http:// www.sun.com/ software/star/staroffice/index.jsp [2] OpenOffice: http://www.openoffice. org/ [3] OpenDocument: http://en.wikipedia. org/wiki/OpenDocument [4] Comparativa entre OpenDocument y WordML: http://madpenguin.org/cms/ ?m=show&id=5304

Número 16

35


EVALUACIÓN • CentOS

CentOS GNU/Linux y la diferencia empresarial

EMPRESA LIBRE La estabilidad y longevidad de las distribuciones empresariales de Linux cuestan su buen dinero…¿o no tanto? POR JOHNNY HUGHES

E

l Community ENTerprise Operating System, también conocido como CentOS [1], es una alternativa libre a los caros sistemas empresariales proporcionados por empresas como Red Hat, SUSE y Mandriva. Hemos entrevistado a su jefe de desarrollo para que nos cuente qué hace a CentOS diferente.

¿Qué es un Sistema Operativo Empresarial? Un sistema operativo para la empresa no está diseñado para el usuario que busca “lo último de lo último” en software, con gráficos espectaculares, los últimos kernels, montones de juegos y otras ñoñerías superfluas. Muchas distribuciones GNU/Linux cubren la demanda de “lo último de lo último”. Estas distribuciones se lanzan cada 6 meses más o menos, y normalmente requieren un trabajo constante de actualización debido a que el soporte va desapareciendo gradualmente con cada versión nueva que aparece. Estas distros con “lo último de lo último” tienen generalmente un ciclo de lanzamiento de 6 meses y un ciclo de soporte de entre 12 y 18 meses. Una distribución empresarial, por contra, tiene ciclos de lanzamiento y soporte mucho mayores. Los sistemas operativos empresariales se diseñan con criterios de longevidad y estabilidad. Muchos de estos sistemas operativos tienen ciclos de lanzamiento de entre 12 y 18 meses y ciclos de soporte en el rango entre 5 y 7 años.

36

Número 16

Anteriormente a los sistemas operativos empresariales, los usuarios de GNU/Linux tenían que actualizar sus sistemas cada año o arriesgarse a perder la posibilidad de incorporar actualizaciones de seguridad. Los scripts hechos a medida o los programas, a menudo dejaban de funcionar o compilar tras las actualizaciones con las nuevas versiones de Bash, GCC o python. Diversos proveedores de GNU/Linux respondieron con los sistemas operativos empresariales para poner fin a este problema. Un SO empresarial no cambia las versiones de los componentes principales de su software durante su ciclo de vida, creando por tanto un producto estable para usuarios que quieran crear sus procesos empresariales y mantenerlos estables durante varios años. Los sistemas operativos empresariales siguen necesitando actualizaciones de seguridad cuando se encuentran problemas, pero no estropean cosas como los módulos API de Apache o intercambian los compiladores de C. Ambas, longevidad y estabilidad permiten a los usuarios invertir en software a medida y desarrollar prácticas empresariales sin preocuparse de que queden obsoletas. Los SO empresariales normalmente tienen un precio elevado, y su coste económico puede ser importante. Muchos de ellos, con un año de actualizaciones y soporte telefónico, pueden costar entre 300 y 2.500 dólares por año y servidor. Los

WWW.LINUX-MAGAZINE.ES

planes más caros tienen sus ventajas, como tiempos de respuesta menores y más horas de soporte telefónico. La aparición de los SO empresariales dio al usuario otra opción. Éstos podían ahora elegir entre: 1. Una distribución GNU/Linux convencional, gratuita (o de bajo coste), con ciclos de lanzamiento y soporte cortos. 2. Un SO empresarial de elevado precio, con ciclos de lanzamiento y soporte largos.

Recompilar Proyectos Muchos usuarios en la comunidad GNU/ Linux comenzaron a preguntarse si sería posible tener lo mejor de ambos mundos: un sistema estable con un ciclo de soporte largo, pero sin coste. Sorprendentemente, GNU/Linux ya proporcionaba esa posibilidad. La mayoría de las distribuciones se licencian bajo la GPLv2

Derivados de CentOS Muchos proyectos se basan actualmente en CentOS, incluyendo: • OpenFiler http://www.openfiler.org/ • SME Server http://smeserver. sourceforge.net/HomePage • RocksClusters http://www. rocksclusters.org/ • Asterisk@Home http://asteriskathome. sourceforge.net/ • BU Linux 4.5 Server Edition (Zodiac) de la Universidad de Boston http://linux. bu.edu/content/view/64/36/ • NewOnce Networks CentOS / Blue Quartz Installation CD http://www. nuonce.net/bq-cd.php


CentOS • EVALUACIÓN

[2], que especifica que el código fuente debe ponerse a disposición de quien lo solicite. No dice que el software compilado deba darse gratuitamente, sino que la disponibilidad del código fuente es un principio fundamental de la GPL. Por tanto, es posible coger el código fuente proporcionado por la empresa y convertirlo en un sistema operativo plenamente funcional. Esta perspicacia ha propiciado el surgimiento de un nuevo tipo de distribución GNU/Linux: el proyecto recompilado. Un proyecto recompilado es una distro que recompila el código proporcionado por una empresa que desarrolla un SO empresarial, y lo distribuye libremente. CentOS es un proyecto recompilado basado en la prominente distribución North American Linux. Algunos otros proyectos recompilados muy conocidos son: Scientific Linux [3], Tao Linux [4] y White Box Enterprise Linux [5].

Ambición Empresarial CentOS es un proyecto de mayor envergadura y más elaborado que la mayoría de los demás proyectos recompilados. El equipo de CentOS tiene 11 desarrolladores y su trabajo está disponible desde más de 70 mirrors por todo el mundo [6].CentOS se encuentra disponible en tres distribuciones principales: CentOS-2, CentOS-3 y CentOS-4. Soporta las arquitecturas x86, x86_64, S390, S390x, IA64, sparc, ppc, ppc64 y alpha. (La mayoría de sus rivales soporta sólo x86 y x86_64).

Derivados de CentOS CentOS proporciona el siguiente calendario de ciclos de soporte: • Centos-2: Actualizaciones completas (incluyendo actualizaciones de hardware): Este periodo finalizó el 31 de Mayo de 2005. Actualizaciones de mantenimiento: 1 de Junio de 2005 hasta 31 de Mayo de 2009. • CentOS-3: Actualizaciones completas (incluyendo actualizaciones de hardware): Hasta 31 de Octubre de 2006. Actualizaciones de mantenimiento: 1 de Noviembre de 2006 hasta 31 de Octubre 31 de 2010. • CentOS-4: Actualizaciones completas (incluyendo actualizaciones de hardware): Hasta 29 de Febrero de 2008. Actualizaciones de mantenimiento: 1 de Marzo de 2008 hasta 29 de Febrero de 2012.

Este enorme trabajo de los desarrolladores de todo el mundo ha hecho de CentOS un sistema operativo completamente funcional que ocupa un hueco muy importante en el panorama Linux. En la última encuesta de netcraft.com se estima que CentOS se ejecuta en cerca de 100.000 servidores Web. Esto lo sitúa dentro de las 8 distribuciones GNU/ Linux con más servidores Web desplegados [7]. Además, es la única Figura 1: Administración de actualizaciones de CentOS con up2date. distribución empresarial gratuita de la encuesta. CentOS está dentro del top 20 en el Las actualizaciones de CentOS pueden ranking de distribuciones GNU/Linux y surgir de dos maneras. El método más senBSD de DistroWatch.com, la posición cillo es con una nueva versión de un más alta de un proyecto recompilado paquete, tal y como se lanza por el manempresarial. tenedor de paquetes. Una segunda vía de actualización aparece cuando ocurre un ¿Y qué podemos hacer con concepto denominado backporting. Un CentOS? Backporting [13] es un proceso por el cual Podemos usar CentOS para cualquiera una actualización de seguridad se aplica a de las tareas que, de otra manera, tenun paquete existente en lugar de pasar a un dríamos que asignar a soluciones paquete más nuevo. El Backporting puede empresariales comerciales. CentOS usarse para corregir un problema de seguripuede reemplazar a los dominios Server dad cuando el paquete nuevo pueda poner Message Block (SMB) usando Samba en peligro la estabilidad del sistema ya ■ (samba-3.0.10-1.4E.2). Al no existir ya instalado. soporte para Microsoft Windows NT [8], CentOS y Samba pueden usarse como RECURSOS un SMB Domain Controller primario o [1] CentOS.org: http://www.centos.org/ secundario seguro, servidor de archivos [2] GPLv2: http://www.gnu.org/copyleft/ SMB o servidor de impresoras SMB. Esta gpl.html solución es especialmente prometedora [3] Scientific Linux: https://www. como sustituto de un SMB si se usa scientificlinux.org OpenLDAP (openldap- 2.2.13-4) y las [4] Tao Linux: http://www.taolinux.org smbldap-tools de IDEALX S.A.S [9]. [5] White Box Linux: http://www. El usuario puede hacer de CentOS un whiteboxlinux.org/ servidor de correo listo para funcionar [6] Mirrors de CentOS:http://www.centos. en una empresa, servidor de dominios, org/mirrors/ servidor Web, servidor de archivos y sis[7] Rankings de distribuciones: http:// tema de base de datos, además de news.netcraft.com/archives/2005/12/ cliente de escritorio. CentOS se usa tam05/strong_growth_for_debian. html bién frecuentemente como servidor de [8] Retirada de NT: http://www.microsoft. ISP, usando software ISP de terceros com/ntserver/productinfo/availability/ como cPanel, Ensim, Plesk and Virretiring.asp tuozzo.

Actualizaciones CentOS Los usuarios pueden obtener actualizaciones de la CentOS Network bien con Up2date (véase la Figura 1), bien con Yum. Para más detalles, véase el documento “Managing Software with Yum” [10]. Véase también el cuadro titulado “Ciclos de Soporte” para más información relativa al calendario de soporte de CentOS.

WWW.LINUX-MAGAZINE.ES

[9] IDEALX: http://www.idealx.org/prj/ index.en.html [10] “Managing Software with Yum”: http://mirror.centos.org/centos/4/docs/ html/yum/ [11] Documentación de CentOS : http:// mirror.centos.org/centos/4/docs/ [12] Repositorios de CentOS : http://mirror. centos.org/centos/4/Readme.txt [13] Backporting: http://www.redhat.com/ advice/speaks_backport.html

Número 16

37


EVALUACIÓN • Libros

LIBROS Programando con Smalltalk Si es admirable el esfuerzo que hacen las instituciones por llevar el software libre a todos los ámbitos, no es menos cierto que es igualmente encomiable el trabajo que hacen los desarrolladores individuales y las empresas vinculadas al sector, muchas de ellas de reciente creación, para la difusión de las tecnologías libres. A este respecto, especial atención merece la editorial Editlin, que ha asumido el reto de publicar títulos que versan sobre tecnologías libres reclutando sus autores de la cantera nacional. Ello le ha llevado a convertirse en el vehículo para dar a conocer el trabajo de los individuos que alimentan el motor del software libre en España. Sin embargo, las buenas intenciones no siempre derivan en buenos resultados, y el título que nos ocupa es un ejemplo de ello. Programando con Smalltalk no alcanza las expectativas que me había hecho con respecto a este título y creo que a Diego Gómez Deck le juega una

Guadalinex v3. Iniciación al Software Libre De nada serviría lanzar una distribución Linux avalada por toda una junta autonómica y esperar que lo adopte el grueso de la población, si no se está dispuesto a invertir en la formación de los potenciales usuarios. Y la piedra angular de la formación es la documentación. Todo esto viene a cuento de la obra que nos ocupa, escrita por Quim Gil, y destinada a convertirse en el manual oficial de la nueva versión de Guadalinex. El libro, estructurado siguiendo un contenido práctico en cuanto a aplicaciones, resulta de gran utilidad si se desea buscar algo en concreto. Asimismo, hace un repaso explicativo de los contenidos libres así como de la conexión mantenida con distintas comunidades de desarrollo y grupos de usuarios con los que entrar en contacto si nos llama el deseo de colaborar con la comunidad del Software Libre,

38

Número 16

POR PAUL C. BROWN mala pasada su inexperiencia como autor. Smalltalk es un lenguaje lo bastante alejado de los lenguajes mainstream como para resultar confuso incluso al desarrollador experimentado, y algunos de los ejemplos que pretenden ilustrar el lenguaje están desafortunadamente elegidos. A pesar de que Deck advierte que la curva de aprendizaje de Smalltalk es empinada, las tareas que escoge no siempre facilitan su subida y personalmente las encuentro a menudo insuficientemente explicadas. La otra cosa que me chocó negativamente del libro fue el exceso de ilustraciones y cuadros en una maquetación recargada, que hace casi imposible seguir el texto explicativo. Es común a lo largo del volumen encontrarse con dobles páginas con no menos de cuatro ilustraciones y/o cuadros ¡en un libro con un formato de A5! En estos casos, el cuerpo del texto

propiamente dicho a menudo se reduce a ocho líneas, una cantidad insuficiente para el seguimiento de las explicaciones. Entiendo que la filosofía de Smalltalk se halla asociada a su IDE gráfico, pero una imagen no siempre es mejor que mil palabras. Un formato mayor y más contención a los deseos de explicar con capturas todos y cada uno de los pasos a dar hubieran beneficiado a este título. Deck es un gran programador, Editlin es una editorial comprometida y coherente y un libro más técnico sobre Smalltalk/Squeak se echaba en falta. Pero ésta es una idea buena malograda por una ejecución a mi parecer deficiente. Autor: Diego Gómez Deck Formato: 222 páginas, A5 Editorial: Editlin ISBN: 84934371-3-1 Precio: 25,00 euros

sus usuarios y desarrolladores, ya que Gil no se limita a explicar el funcionamiento del sistema, sino que se explaya en cierta medida y de manera asequible sobre la filosofía tras el movimiento Linux, dando al lector un contexto que le permite ver no sólo las ventajas técnicas de Guadalinex, sino sus implicaciones sociales, morales y de la comunidad. Además, el manual ofrece una amplia lista de recomendaciones que incluyen una selección bibliográfica útil para neófitos, así como una extensa webografía para quienes desean profundizar más en este proyecto, que se traduce en un completo listado de enlaces, que van desde la enciclopedia online Wikipedia hasta los repositorios de software en SourceForge, y que permite al lector trascender el manual ayudándole a buscar información más allá. Sin embargo, falta un apéndice con un glosario alfabético que ayudara a encontrar rápidamente los temas que le interesan buscan-

do por el término clave, aunque es cierto que el detallado índice ayuda en la localización de las materias que nos interese consultar. Otro aspecto negativo es el afán de evitar a toda costa el uso de la terminal para no intimidar al lector. Echo en falta una breve introducción a la línea de comandos que dote de los conocimientos básicos necesarios para iniciarse en la explotación de las poderosas herramientas que proporciona este interfaz. Es un libro de fácil lectura y asequible, teniendo en cuenta al lector al que se dirige, resultando ameno y didáctico gracias a la abundancia de gráficos y de referencias a fuentes de Internet. En suma, un libro muy recomendable que, junto con la distro que describe, compone un kit ideal para dar los primeros pasos en un entorno Linux. Autor: Quim Gil Formato: 302 páginas, A5 Editorial: Editlin ISBN: 84-934371-4-X Precio: Por determinar

WWW.LINUX-MAGAZINE.ES


SSL-Explorer • PRÁCTICO

Test: Una VPN con SSL-Explorer

CARRETERAS PRIVADAS SSL-Explorer proporciona una interfaz basada en web para configurar una red privada virtual. POR HOLGER REIBOLD

L

os viajantes y el personal en oficinas remotas a menudo necesitan acceder a las redes de sus empresas desde lugares arbitrarios. Las redes privadas virtuales (VPNs) soportan acceso remoto privado a través de Internet. Las soluciones VPN utilizan criptografía para proteger el tráfico de Internet de los curiosos y de la manipulación. Sin embargo, la mayoría de las herramientas VPN son difíciles de configurar y requieren cambios en el cortafuegos. SSL-Explorer [1] supone una alternativa fácil. Configura una VPN basada en web y sólo requiere un navegador que soporte Java como cliente (Figura 1). Es una herramienta Web práctica que proporciona una interfaz de configuración. Los túneles SSL-Explorer se basan en protocolos TCP de red tales como SMTP, POP y HTTP a través de una conexión SSL protegida. SSL-Explorer basado en Java se ejecuta en sistemas Linux y Windows. Los administradores pueden usar herramientas remotas tales como SSH, SFTP, VNC, Citrix y otros servicios de terminal para controlar el sistema de forma remota. El perfil de mantenimiento integrado añade la habilidad de definir diferentes configuraciones para múltiples puntos de

acceso. La extensión comercial Xtra de 3sp [2] aporta mecanismos de autenticación (LDAP, PIN, SMS, Clave Pública), así como soporte técnico y otras mejoras.

Base de Datos de Usuario SSL-Explorer le proporciona su propia base de datos de usuario para propósitos

de autenticación y adicionalmente soporta autenticación central basada en Active Directory. Posee características de interoperabilidad, incluyendo soporte para políticas y carpetas Web de Windows. El soporte para servidores LDAP está disponible con el paquete comercial Xtra.

Figura 1: Configuración de un túnel con SSL-Explorer. Los usuarios pueden proteger protocolos inseguros de los mirones.

WWW.LINUX-MAGAZINE.ES

Número 16

39


PRÁCTICO • SSL-Explorer

Figura 2: El formulario de configuración de la cuenta permite al administrador manejar las configuraciones de la cuenta.

Necesita como mínimo una plataforma Pentium III (1 GHz) y 512 MBytes de RAM. El programa ocupa sobre 140 MBytes de espacio en disco. El archivo Zip en [1] suministra un paquete RPM que deja el fichero del programa en el directorio /opt/sslexplorer. Para ejecutar la herramienta de configuración basada en Web simplemente se introduce /opt/ sslexplorer/setup-sslexplorer. La rutina de instalación lanza una URL que le proporciona la interfaz Web del SSL-Explorer, que normalmente escucha en el puerto 28080. Hay que configurar un número de parámetros críticos en el modo de configuración. La primera página se titula Web Security. Le permite crear o importar certificados SSL. Si sólo quiere testear el software, puede crear su propio certificado, pero deberá ser una clave CA (Autoridad Certificadora) que todos los navegadores reconozcan en entornos de producción. Tras completar la configuración, los usuarios tienen tres opciones para ejecutar el SSL-Explorer. El comando en Red Hat Linux (que es oficialmente el único soportado por la distribución) es service sslexplorer start. Introduzca /etc/init.d/ sslexplorer console o posiblemente /opt/ sslexplorer/sslexplorer_console para otras distribuciones.

40

Número 16

Empezando

Configuration le proporciona un formulario con las configuraciones de usuario (Figura 2). Los administradores pueden configurar sus propias cuentas y crear perfiles de usuario dedicados. El menú Admin capacita para crear nuevos usuarios. La configuración por defecto ofrece dos perfiles, pero pueden añadirse más si es necesario. Los perfiles le permiten almacenar propiedades para varios escenarios. SSL-Explorer utiliza un acceso basado en reglas de control del sistema que posibilita a los administradores asignar permisos de control con precisión. En vez de asignar derechos individuales a un único usuario, un administrador puede asignar derecho a una regla y luego asociar esa regla con un usuario. Por ejemplo, puede configurar derechos para usuarios en el departamento de Marketing que serán distintos de los derechos asignados a los usuarios en Ventas. Definir manualmente una regla no es complicado. Sólo teclee el nombre en el cuadro Create Role y haga clic en Create. Esto añade una nueva regla a la lista. La regla está resaltada en rojo para indicar su estado de Revoked (anulada), así que necesitará habilitarla antes de usarla. La

Utilice HTTPS en su equipo local (https://localhost/) para acceder a la GUI. La contraseña por defecto para el usuario admin es admin. Tras registrarse, debería ver cuatro menús: Home, Networking, Services y Admin. La primera vez que ejecute el programa, la página de inicio le proporcionará adicionalmente el estado del cliente VPN. La funcionalidad del cliente se requiere para algunas funciones SSLExplorer. El botón Launch ejecuta el applet. El menú Home le permite configurar parámetros como el manejo de las configuraciones de los usuarios. Home | Figura 3: SSL-Explorer soporta un gran rango de configuraciones de My Account | seguridad.

WWW.LINUX-MAGAZINE.ES


SSL-Explorer • PRÁCTICO

herramienta de configuración Granular le ayuda a editar las propiedades de las reglas. Si está en una red con Active Directory, puede importar configuraciones de grupos de usuario desde Active Directory.

Cuentas de Usuarios La opción en el menú Admin | Access Control | Accounts le proporciona el manejo de las características de la cuenta. Aquí es donde los administradores asignan a los usuarios las reglas. A pesar de todo, si está creando una nueva cuenta o modificando una existente, acabará en el mismo diálogo, que espera un ID de usuario, el nombre completo y posiblemente una dirección de correo. SSL-Explorer le permite restringir el acceso a una dirección IP específica. La forma de especificar la dirección IP está disponible en Admin | Access Control | IPRestrictions. El administrador puede permitir o denegar el acceso a una dirección. Para hacerlo, teclee una dirección IP en IP Address. Para aplicar la configuración a una subred completa, utilice una entrada como 192.168.1.*. Tras añadir la dirección, el formulario mostrará un nuevo panel Current Rules, que listará las restricciones y los permisos de las direcciones IP.

En las Reglas Admin | Access Control le lleva a la página Security Options (Figura 3). El formu-

lario le permite crear y modificar clientes VPN y configuraciones generales de seguridad. Las configuraciones generales de seguridad incluyen la opción de escoger la base de datos, que tampoco tiene el formato interno del SSL-Explorer o del Active Directory. Puede especificar el número de intentos fallidos antes de deshabilitar la cuenta, configurar la complejidad de la contraseña, asignar privilegios administrativos a los usuarios y al grupo y permitir o denegar conexiones multisesión. La opción Strict checking del cliente VPN también es una característica interesante. Esta opción controla el acceso al ordenador cliente bajo Java y configuraciones del sistema operativo. SSL-Explorer ofrece una funcionalidad simple de túnel. Puede utilizarlo para proteger cualquier servicio TCP o configurar el acceso del correo basado en POP3. Para utilizar la característica de seguridad, el cliente basado en Web debe ejecutarse en el lado del cliente. Los usuarios apuntan sus navegadores al sitio web del SSL-Explorer para sus puntos de acceso VPN, y dependiendo de su navegador, asigna privilegios adicionales al applet de Java.

figuración del túnel mediante Networking | SSL Tunnels y luego entrar el puerto del servidor de correo (normalmente el 110), el nombre del host y el puerto destino (otra vez, normalmente el 110) en el formulario Create Tunnel. Haciendo clic en Add se configura el primer túnel. Ahora los usuarios sólo necesitan modificar su configuración del servidor de correo del lado del cliente para probar la configuración de la VPN. Esto significa reemplazar la configuración POP3 con localhost. El cliente VPN instalado localmente y el servidor VPN aseguran la conexión. El procedimiento para la configuración SMTP y otros servicios siguen el mismo patrón. El menú Network | Network Places permite a los usuarios acceder al entorno de red de Windows. Este menú le autoriza a mapear la red compartida por los viajantes, los cuales acceden a la red de la compañía mediante Internet. Otra característica interesante incluye el acceso a los repositorios basados en WebDAV y a las extensiones basadas en XML.

Otras Características

SSL-Explorer proporciona control basado en Web para conectividad VPN. Los administradores profesionales pueden perder las opciones de configuración ofertadas por Openswan y otras herramientas, pero para tareas más simples, SSL-Explorer es más que ■ el trabajo.

Para asegurar el tráfico POP3 entre el cliente y el servidor, los administradores necesitan acceso a la con-

Conclusiones

RECURSOS [1] SSL-Explorer: http://sourceforge.net/ projects/sslexplorer

Figura 4: SSl-Explorer muestra un simple cuadro de diálogo para crear un túnel desde el cliente al puerto de otro equipo.

WWW.LINUX-MAGAZINE.ES

[2] Extensiones Comerciales: http:// www.sshtools.com/ showSslExplorerXtra.do

Número 16

41


PRÁCTICO • MPEG Menu System V2

Creando un Centro Multimedia con Mpeg Menu System V2

MENÚS Y OPCIONES Uno se olvida de que está trabajando con un ordenador cuando navega por los ficheros de audio, imágenes y videos favoritos con Mpeg Menu System. POR HAGEN HÖPFNER

S

i tiene un ordenador antiguo sin usar en el sótano o en el trastero, lo puede convertir en un centro multimedia con el programa Mpeg Menu System V2 [1] (MMSV2). MMSV2 permite sintonizar su emisora favorita de radio por Internet, escuchar MP3s y CDs

de audio, reproducir películas desde el disco duro y ver imágenes, todo sin tener un reproductor especial en el escritorio. MMSV2 tiene su propio sistema de menús que proporcionan el acceso a las funciones multimedia. El sistema Linux puede utilizar la red para comunicarse y acceder a servidores, o actuar él mismo como un servidor. Todo lo que se necesita para controlar el sistema es un simple mando a distancia. Y si su máquina multimedia es lo suficientemente potente, puede incluso sustituir el reproductor de DVDs, la radio y el reproductor MP3 de su Figura 1: El menú principal de MMSV2 muestra un resumen de todas las salón. funciones del programa.

42

Número 16

WWW.LINUX-MAGAZINE.ES

Compilando el Reproductor Antes de que pueda disfrutar del espectáculo multimedia, tendrá que compilar MMSV2 desde los ficheros fuentes [1]. Para la compilación se necesitan las bibliotecas de desarrollo imlib2, libalsaplayer, lirc y X11, junto con las herramientas gcc, autoconf y libtool. Si uno de estos componentes no se encuentra disponible tras ejecutar ./configure en el directorio del código fuente, el sistema nos lo indicará. El siguiente paso es pasarle los parámetros apropiados al script de configuración. El programa tiene la opción --help que proporciona una lista de opciones. Hemos usado el comando ./configure --disable-dxr3 --enable-eject-tray --enable-mpeg --enable-fancy-audio --enable-fancy-movie --enable-sdl en nuestro laboratorio. --disable-dxr3 deshabilita el soporte hardware DXR3. Si dispone de una tarjeta decodificadora MPEG, primero tendrá que configurarla. El HOWTO en [2] detalla la configuración de dicha tarjeta.


MPEG Menu System V2 • PRÁCTICO

Aunque el script de configuración se ejecutó sin producir errores, nos fue imposible compilar el paquete. La opción de configuración --enable-fancy-audio habilita las funciones de audio adicionales que requieren otro grupo de bibliotecas: pcre-devel, sqlite-devel y taglib-devel. Si se establece --enable-sdl, se necesitará además el paquete de desarrollo SDL sdl-devel. Se puede usar MMSV2 sin X11. En este caso, el programa utiliza SVGAlib y habrá que instalar los paquetes de desarrollo SVGAlib. El parámetro del script de configuración para esto es --enable-vgagl. Las distribuciones actuales normalmente tienen reproductores multimedia limitados. Como MMSV2 utiliza Xine o MPlayer para reproducir los videos, el reproductor soportará tantos formatos de ficheros y medios como le sea posible. Algunos expertos mantienen que los derechos de copyright prohiben el uso de herramientas que se salten los esquemas de protección de los DVDs, CSS. Esta es la razón por la que la mayoría de las distribuciones no incluyen la biblioteca Libdvdcss necesaria para la reproducción de los DVDs.

Arriba el Telón Cuando se ejecuta mms aparecerá un aviso indicando que el programa no tiene soporte para DXR3 y por ello habrá que establecer un dispositivo de salida alternativo. La opción -o sdl permite seleccionar la salida SDL y -o mpeg genera un fichero MPEG. Otra opción de comienzo es el parámetro -d, para ejecutar MMSV2 en segundo plano. El parámetro -i especifica los dispositivos de entrada posibles como lirc para el control remoto y keyboard para el teclado. Como el acceso para escritura al directorio /etc/mms está restringido al usuario root, habrá que seleccionar otro directorio para guardar las configuraciones personales o bien modificar los permisos. Sería bueno empezar copiando la configuración por defecto con cp -R /etc/mms ~/.mms. El programa encuentra el directorio ~/.mms sin ningún parámetro adicional. Cuando se está copiando, también se deberían copiar los temas y la fuente Vera a su localización correcta. Esto se consigue tecleando cp -R /usr/local/share/mms/* ~/.mms. A

continuación, tecleando mms -o sdl se ejecuta el programa y se debería ver el menú principal mostrado en la Figura 1. Se puede utilizar el teclado para navegar por el menú. Los cursores arriba y abajo sirven para moverse por él y con Enter se seleccionan los elementos. Si un menú tiene elementos subordinados, se pueden pulsar los cursores derecho e izquierdo para acceder a ellos. Por ejemplo, la opción Reproducir audio desde el disco duro tiene dos elementos más: Reproducir audio desde el CD/DVD y Reproducir audio desde la radio/red.

Asignando Teclas

Figura 2: Presionando [I] se muestra la información de las pistas.

Tabla 1: Atajos de Teclado Generales Tecla UP DOWN LEFT RIGHT PGDOWN PGUP END ENTER

Acción Elemento de menú anterior Elemento de menú siguiente Elemento de submenú anterior Elemento de submenú siguiente Subir rápidamente Bajar rápidamente Salir del menú actual Selecciona el elemento actual o subelemento Ayuda Opciones Búsqueda

Las asignaciones de las teclas están en el fichero ~/.mms/input-keyboard, H pero si se usa el mando a O S distancia para navegar, el fichero que se necesita es ~/.mms/input-lirc. Este Tabla 2: Atajos de Teclado para la fichero de configuración Reproducción de Audio tiene una estructura simple. La mayoría de las Tecla Acción entradas en el fichero HOME Conmuta entre el modo actual y el modo input-keyboard tienen el lista de reproducción formato genérico INS Cambia al visor de la lista de reproducción modo,comando,tecla. 3 Play MMSV2 tiene varios 2 Pausa 1 Stop modos. (General) los ata6 Avance rápido jos de teclado son válidos 5 Retroceso rápido en todos los modos; por 8 Pista anterior ejemplo, se usan las mis9 Pista siguiente mas teclas para navegar en f Graves la lista de reproducción y g Agudos en el menú principal. Y la m Silencio ayuda está siempre p Muestra el menú con los comandos de la disponible si se pulsa la lista de reproducción tecla [H]. Las tablas 1, 2 y 3 proporcionan un resumen de las asignatema y se pueden usar los cursores para ciones de teclado más importantes. navegar por él. Sin embargo, para ello, el Cuesta un poco acostumbrase al manejo directorio con los ficheros de audio tiene de los ficheros de audio. MMSV2 tan sólo que listarse bajo audio_dir en el fichero de reproduce los ficheros de la lista de reproconfiguración ~/.mms/config. Si se desea ducción. Si se opta por reproducir audio permitir que MMSV2 muestre el disco desde el disco duro en el menú principal, duro completo, tan sólo hay que añadir el se muestra el árbol de directorios del sisdirectorio raíz, /, a la lista.

WWW.LINUX-MAGAZINE.ES

Número 16

43


PRÁCTICO • MPEG Menu System V2

Internet basándose en el título del fichero. Pulsando [Enter] comienza la reproducción de la película. Pulsando [I] se le indica a MMSV2 que muestre la información adicional (Figura 3).

Imágenes y Sonidos de Fondo Los temas permiten modificar la apariencia de MMSV2. Pueden encontrase tres alternativas de diseño en el sitio web de Figura 3: ¿De qué es la película? Presione [I] MMSV2 en [1]. Después de descargar el para obtener una breve descripción. archivo hay que descomprimirlo en ~/.mms/themes. En Options se selecciona Themes/Skins para escoger un esquema. Tabla 3: Atajos de Teclado Ahora que MMSV2 sabe para Playlist dónde mirar para enconTecla Acción trar los archivos en el 7 Mueve la entrada actual arriba disco duro, necesitará 4 Mueve la entrada actual abajo conocer la ruta de la DEL Elimina la entrada actual de la lista unidad de CD o DVD. q Añade la pista actual a la cola de Tuvimos que modificar las reproducción entradas de cdrom y BACKSPACE Borra la lista de reproducción actual cdrom_name de la unidad t Almacena la lista de reproducción actual combo de la máquina de Las variables mov_dir = /stuff/ para nuestro laboratorio. El fichero /etc/fstab las películas y picture_dir = /stuff/picproporciona los valores, que fueron tures/ para las imágenes, funcionan de cdrom = /dev/cdrecorder, manera similar. Si se poseen varios direc/media/cdrecorder y cdrom_name = torios con ficheros multimedia en el /dev/cdrecorder, dvd device para nuestra disco duro, se pueden utilizar varias máquina. Para permitir a los usuarios sin líneas. privilegios acceder a la unidad, hay que Pulsando el cursor de la derecha en la añadir user en el punto de montaje del lista de medios se abre un subdirectorio. fichero /etc/fstab. Y para permitir a El cursor de la izquierda navega al próxiMMSV2 abrir y cerrar la unidad en Suse, mo directorio superior (regresa al direchay que cambiar la ruta de la herramientorio más alto). Pulsando la tecla Enter ta eject en ~/mms/config a eject_path = añade el contenido del directorio, o un /bin/eject. único fichero, a la lista de reproducción Si se quiere que MMSV2 utilice (Figura 2). Mplayer, es preciso colocar movie_player Se puede utilizar la misma solución = mplayer en el fichero de configupara incluir las pistas de un CD de audio ración. La línea mplayeropts es para el a la lista de reproducción. Pulsando 3 se ajuste fino del reproductor. Para no tener reproduce la pista. Los atajos de teclado que especificar el dispositivo de salida de la Tabla 2 permiten el control del cada vez que se ejecuta MMSV2, se reproductor. puede añadir outdev = sdl en el fichero Se pueden reproducir DVDs selecciode configuración. La zona de docunando Play movie (DVD/(S)VCD). mentación del sitio web en [1] proporDesafortunadamente el programa no ciona una lista completa de parámetros. soporta los menús de DVD y esto signifiSin Gestor de Ventanas ca que la localización de la pista de la película es una cuestión de ensayo y Tan sólo se requieren unos pasos para error. Para ello, hay que ir a ejecutar MMSV2 sin un gestor de venOptions|Movie Options|DVD track. Si se tanas. Para ejecutar MMSV2 cuando desea reproducir ficheros de películas arranque la máquina en vez de KDE, hay desde el disco duro, MMSV2 intenta que crear un script en recabar más información acerca de ella /opt/kde3/share/apps/kdm/sessions/MM en la base de datos de películas de SV2.desktop (véase el cuadro “Entrada

44

Número 16

WWW.LINUX-MAGAZINE.ES

para el Escritorio”). Los usuarios con Suse pueden realizarlo con Yast seleccionando System|Editor for /etc/sysconfig-Dateien|Desktop|DISPLAYMANAGER_AUTOLOGIN. En la máquina de nuestro laboratorio no funcionó el modo a pantalla completa MMSV2 SDL. Para solucionar este problema, es necesario establecer el tamaño de la imagen manualmente y no ejecutar MMVS2 en modo de pantalla completa (fullscreen = false en ~/.mms/config). Es posible cambiar la resolución de 800x600 píxeles a 1024x768 píxeles en el fichero de configuración cambiando las líneas v_res = 1024 y h_res = 768. Esto tiene el mismo efecto que seleccionar el modo de pantalla completa. La combinación con mplayer-opts = -cache 8192 -framedrop -fs le indica a Mplayer que se ejecute en lo alto de la ventana MMSV2 y que muestre la película. El parámetro -fs de Mplayer ejecuta el software en modo de pantalla completa.

Créditos MMSV2 convierte cualquier máquina Linux en un reproductor multimedia multifuncional. Además del audio, el vídeo y las imágenes, esta herramienta puede controlar tarjetas de TV analógicas y digitales, proporcionando a los usuarios la comodidad de una guía de programación electrónica (EPG). Como contrapartida, no todas las características de MMSV2 funcionan la primera vez que se utilizan, siempre es necesario realizar unos cuantos ajustes manuales para conseguir que el sistema de menú de MMSV2 se ejecute y fun■ cione.

Entrada para el Escritorio 01 02 03 04 05 06 07

[Desktop Entry] Encoding=UTF-8 Type=XSession Exec=/usr/local/bin/mms TryExec=/usr/local/bin/mms Name=MMSV2 Comment[de]=Mpeg Menu System V2

RECURSOS [1] MPEG Menu System V2:http://mms. sunsite.dk/ [2] DXR3 & Hollywood Plus LogoLinux DXR3 y Hollywood+ Driver Project Howto: http:// dxr3.sourceforge.net/ howto.html


Pstoedit • PRÁCTICO

Convertir archivos PS y PDF con pstoedit

EL CAMALEÓN

pstoedit nos permite convertir archivos Postscript y PDF a formatos de imagen vectorial. POR HAGEN HÖPFNER

L

os formatos Postscript y PDF son excelentes para visualizar e imprimir documentos, pero si alguna vez hemos intentado editarlos, pronto habremos comprobado que nuestras opciones son limitadas. Los expertos dirán que el código Postscript es editable como tal, pero si en alguna

ocasión hemos intentado editar un archivo Postscript directamente, seguro que hemos encontrado que no es la manera más adecuada. pstoedit es una herramienta en línea de comandos que ofrece una solución sencilla al problema de la edición de Postscript y PDF.

Instalar Ming y Graphicsmagick Los usuarios de Suse pueden empezar ejecutando Yast para instalar cvs, y luego conectarse al CVS de Ming teclenado: cvs -d:pserver:anonymous@U cvs.sourceforge.net:U /cvsroot/ming login

Pulsamos [Enter] cuando se nos pida la contraseña. Si es la primera vez que usamos cvs, repetimos este paso tras el mensaje de error. A continuación tecleamos: cvs -z3 -d:pserver:anonymousU @cvs.sourceforge.net:U /cvsroot/ming co ming

Esto crea un subdirectorio con los últimos archivos de Ming en nuestro directorio de trabajo. Para compilar Ming en Suse 9.3, necesitamos gcc y

gcc-c++, giflib-devel, libpng-devel, bison, libjpeg-devel y flex. Para una compilación sin errores, los usuarios de Debian necesitan los paquetes giflib-bin, libungif4-dev, giflib3g, bison, flex, swig y libpng2-dev. Tecleamos ./configure && make && make install para compilar e instalar. Debemos asegurarnos de que tenemos la versión 1.1.6 de Graphicsmagick. Los usuarios de Debian van a necesitar además el paquete libperl-dev del repositorio Etch para poder compilar. Ahora repetimos los mismos tres pasos que hemos usado para compilar e instalar Ming. No debemos olvidar instalar plotutils cuando acabemos. Esto nos permitirá usar sus formatos de salida [9].

WWW.LINUX-MAGAZINE.ES

Instalación Suse 9.3 tiene el binario de pstoedit versión 3.33, pero si queremos instalar la versión 3.42, tendremos que compilarla a partir de su código fuente. Como la nueva versión introduce muchos cambios, lo mejor será optar por compilar. Podemos descargar el código fuente desde [3]. Además de gcc, necesitaremos unos cuantos programas más para controlar los formatos de salida. Para convertir de Postscript a EMF se requiere la librería LibEMF [4]. Los usuarios de Suse 9.3 también necesitarán el paquete de desarrollo libEMF-devel. Para localizar la librería podemos usar bien Yast o una herramienta de búsqueda de RPM como Pbone [5]. Los usuarios de Debian Sarge pueden compilar LibEMF ellos mismos. Si tenemos problemas compilando la librería, nos ubicamos en el subdirectorio /libemf que contiene los archivos libemf.cpp y libemf.h. Tecleamos el comando patch < libEMF-1.0.fixes-2002-09-30.diff para instalar el parche desde la página de descarga de LibEMF en [6]. En caso necesario, podemos indicarle a pstoedit cómo usar Graphicsmagick

Número 16

45


PRÁCTICO • Pstoedit

Figura 1: Haremos uso de este tigre Postscript para experimentar con algunas características de pstoedit.

1.1.6 [7], una extensión del popular paquete Imagemagick, y Ming [8] (véase el cuadro “Instalar Ming y Graphicmagicks”). El primero permite a pstoedit convertir de Postscript a cualquier formato gráfico soportado por Graphicsmagick. Y Ming nos ayuda a generar imágenes en formato SFW Flash desde los archivos Postscript, aunque esto requiere la versión CVS de la librería de Ming. Antes de iniciar la instalación de pstoedit, descargamos primero las fuentes desde [4]. Tras descomprimirlo, editamos el archivo configure, cambiando la siguiente línea: SPECIAL_CXXFLAGS=U "-DBUGGYGPP U -pedantic -Wall -Wwrite-strings U -Wcast-qual U -Wpointer-arith "

a: SPECIAL_CXXFLAGS= U "-DBUGGYGPP -Wall U -Wwrite-strings -Wcast-qual v -Wpointer-arith "

Si la opción pedantic está habilitada, el compilador rechaza compilar pstoedit con la extensión de Graphicsmagick.

46

Número 16

Figura 2: Xfig es el clásico editor de gráficos vectoriales en Unix y Linux. pstoedit convierte archivos PS, EPS o PDF a formato FIG.

Salvamos este problema con una variante del bien conocido truco de los tres pasos: ./configure --with-libemf-include=/usr/include/lib EMF && make && su -c "make install". Los usuarios de Debian tendrán que comprobar que el directorio libEMF está realmente ubicado bajo /usr/include. Si pstoedit no es capaz de encontrar las librerías al arrancar, tecleamos ldconfig en modo root para actualizar los enlaces. El propio pstoedit debería estar ubicado bajo /usr/local/bin en nuestro disco duro.

¡Atrape a ese Tigre! El tigre mostrado en la Figura 1 es habitual en los artículos que discuten sobre Postscript. Podemos encontrar este archivo en el directorio /usr/share/ghostscript/8.15/examples/. Suse 9.3 no tiene un auténtico archivo Postscript con el tigre, pero encontraremos una imagen EPS en su lugar. Los usuarios de otras distros puede que tengan que seleccionar otro archivo de ejemplo, pero las instrucciones son similares. pstoedit, que se basa en Ghostscript, admite como formatos de entrada PS, EPS e incluso PDF. El número de formatos de salida disponibles depende de los módulos disponibles para pstoedit. Básicamente, el programa usa la siguiente sintaxis:

WWW.LINUX-MAGAZINE.ES

pstoedit INPUTFILE OUTPUTFILE

Por ejemplo, pstoedit tiger.eps tiger.emf en Suse 9.3 crea una versión EMF del tigre. Una vez que hemos convertido el archivo a EMF, podemos importarlo a OpenOffice y editarlo con Draw. Bajo circunstancias normales, pstoedit evalúa el nombre de archivo de salida para decidir qué módulo usar. Si tecleamos pstoedit tiger.eps tiger.fig, estamos condenados al fallo, ya que le damos al conversor demasiadas alternativas. En lugar de un tigre en formato Xfig, obtendremos una lista de módulos disponibles y formatos que puede generar. El tigre con formato Xfig mostrado en la figura 2 se genera tecleando pstoedit -f plot-fig U tiger.eps tiger.fig

El parámetro -f ayuda a pstoedit a seleccionar el módulo correcto. pstoedit no es sólo un conversor. Existen diferentes parámetros de salida que nos permiten modificar la imagen resultante en la conversión. pstoedit --help nos ofrece una lista exhaustiva de opciones. La opción -xscale .5 genera una imagen con la mitad del ancho que la original, y -yscale 2 una imagen el doble de alto que la original. Los archivos Postscript a menudo


Pstoedit • PRÁCTICO

podemos ejecutar sh tiger.tk para iniciar el applet. Si preferimos evitar los lenguajes de script, podemos usar los módulos java1 y java2, que nos permiten generar código Java. Como alternativa, podemos especificar tiger.swf como archivo de salida para generar una imágen en Flash. Desafortunadamente, el soporte para la extensión de Graphicsmagick no está libre de errores en el momento de escribir estas líneas. Por ejemplo, el módulo interpreta que el archivo del tigre se compone de dos páginas. Para indicarle al módulo que genere una imagen no vectorial (en formato JPG, por ejemplo), tecleamos pstoedit -f magick tiger.eps tiger%d.jpg. Podemos simplemente cerrar la ventana que se abre en este punto. El resultado son dos archivos tiger1.jpg y tiger2.jpg, con el felino en el primer archivo y nada en el segundo. Figura 3: El tigre como programa Tk. pstoedit no sólo convierte Postscript en otros formatos de imagen, también nos permite generar applets

comprenden varias páginas. El parámetro -split separa las páginas de un archivo. Algunos módulos tienen también opciones. Si usamos el módulo fig para crear imágenes Xfig, en lugar del módulo plot-fig, el parámetro -metric cambia las unidades a centímetros, en

lugar de pulgadas, que es la medida por defecto. Curiosamente, pstoedit nos permite crear programas a partir de archivos Postscript. pstoedit tiger.eps tiger.tk genera el applet Tk mostrado en la Figura 3 a partir de la imagen del tigre, y

Conclusiones pstoedit es una poderosa herramienta para convertir archivos a partir de Postscript. Felicitaciones a Wolfgang Glunz, que no sólo ha desarrollado pstoedit, sino que ha proporcionado el necesario soporte para la instalación. ■

RECURSOS [1] Página de pstoedit: http://www. pstoedit.net/ [2] Información de Postscript: http://en. wikipedia.org/wiki/Postscript [3] Descarga de pstoedit: http:// prdownloads.sourceforge.net/ pstoedit/pstoedit-3.42.tar. gz?download [4] Página de LibEMF: http://libemf. sourceforge.net/ [5] Motor de búsqueda de RPM: http:// rpm.pbone.net [6] Parche de LibEMF: http:// sourceforge.net/tracker/download. php?group_id=31968&atid=403913 &file_id=32104&aid=616742 [7] Página de Graphicsmagick: http:// www.graphicsmagick.org/ [8] Página de Ming: http://ming. sourceforge.net/ [9] Página de Plotutils: http://www.gnu. org/software/plotutils/

Figura 4: Pstoedit es capaz de exportar a formatos propietarios como puede ser el formato Adobe Illustrator (AI).

WWW.LINUX-MAGAZINE.ES

[10] Información de EPS: http://en. wikipedia.org/wiki/ Encapsulated_Postscript

Número 16

47


PRÁCTICO • Marabunta

Plataforma P2P anónima y totalmente distribuida

MARABUNTA

Internet es una red mayoritariamente estructurada en sistemas centralizados, lo que da lugar a la estructura “1 servidor para N clientes”, sin embargo Marabunta usa el potencial de cada uno de los nodos para crear una red anónima totalmente descentralizada, haciendo que el modelo clásico P2P pueda extenderse de N a N nodos (N2N). POR DAVID GASCÓN

I

nternet se está convirtiendo cada día más en un campo de batalla al hablar de privacidad y censura en las comunicaciones, debido a que los usuarios empiezan a ser conscientes de que Internet no es la “panacea” que se creía en tér-

minos de anonimato y privacidad. En Internet todas las comunicaciones se registran (se “tracean”), por lo que cada vez que conectamos a un servidor para visitar una página web o para descargar nuestro correo queda grabada información esencial como nuestra IP, lo que al fin y al cabo es de forma unívoca nuestra identidad en la red. Esta información es almacenada en los ficheros del registro de las comunicaciones de la empresa que nos brinda el servicio de acceso a Internet (ISP, Internet Server Figura 1: Podemos ver cómo los nodos se conectan entre ellos usando Provider) y del conexiones directas (P2P), de la misma manera que lo hacen los grupos servidor final de éstos mediante la conexion de algunos de sus elementos con algunos accedido. de otros grupos.

48

Número 16

WWW.LINUX-MAGAZINE.ES

Lo que está claro es que la privacidad de los usuarios en la red es algo efímero, y lo que es peor, el acceso a la información puede ser fácilmente censurado debido a su almacenamiento en unos pocos servidores centralizados. Marabunta intenta usar todos los nodos de la red como máquinas enrutadoras de paquetes (“routers”) de forma que cada uno se comporta como un cliente y como un servidor al mismo tiempo.

Objetivo El primer servicio implementado en la red es una Lista de Mensajería Anónima. Hay 4 categorías principales: Filosofía, Tecnología, Política, General. La idea es que cada nodo sea capaz de mandar mensajes dentro de alguna de estas 4 temáticas al resto de forma anónima. Esta tarea es desarrollada por todos los elementos de la red que se encargan de distribuir el mensaje a los nodos a los que están conectados de forma directa mediante conexiones P2P, eliminando la identidad del inicial que mandó el mensaje a distribuir. Además de comunicación anónima, la plataforma creada por Marabunta usando


Marabunta • PRÁCTICO

conexiones P2P entre los nodos proporciona una red la cual es NO sensible a la censura debido a que no existen servidores centrales para gestionar el intercambio de mensajes entre los nodos. De esta forma, para “tirar” la plataforma abajo tendrían que parar por completo el funcionamiento de los Servidores de Acceso a Internet (ISPs).

¿Cómo funciona? Primero tenemos que diferenciar los 2 algoritmos principales que hacen que Marabunta se comporte como un cliente y como un servidor. Ambos algoritmos son procedimientos que se ejecutan simultáneamente usando una estructura en hilo (“thread execution”) y una zona de memoria compartida. Como un Servidor: • Escucha a todos los nodos que quieren acceder a la red: Petición de Conexión • Escucha a todos los nodos conocidos (hermanos), los cuales necesitan que se les distribuyan mensajes por la red: Petición de Difusión de Mensaje • Escucha a todos los nodos que necesitan más conectividad para asegurar su integridad en la red: Petición de nuevos Hermanos Como un cliente: • Busca nuevos nodos para incrementar la conectividad y la estabilidad en la red: Búsqueda de Hermanos • Mandar mensajes propios a la red: Difusión de Mensaje • Difusión de los mensajes en espera de difusión provenientes de otros nodos de la red: Retransmisión de Mensajes • Envío de peticiones de búsqueda de nuevos hermanos enviadas por otros nodos: Retransmisión de Peticiones de Búsqueda de Hermanos

Principio Fundamental Cada nodo es tanto cliente como servidor y realiza tareas de enrutado de la información. La idea es establecer conexiones directas (estructura P2P) entre grupos de nodos para conseguir que todos los nodos en la red sean accesibles a través de diferentes rutas. Una de las principales características de Marabunta es que la comunicación entre los nodos se realiza usando conexiones UDP/IP. Este tipo de comunica-

ciones son no orientadas a conexión, lo que es realmente interesante en términos de anonimato debido a que el origen de un datagrama UDP/IP no puede ser demostrado, pues no necesita confirmación al punto Figura 2: Cuando un nodo necesita una mayor conexión en la red manda de conexión una petición de “busca hermanos” a los nodos ya conocidos para que lo que envió el ayuden a conseguir una mayor conectividad. paquete, haciendo de Marabunta una de las plataformas de comunicación que mejor conservan el anonimato de sus usuarios. El proceso de descubrimiento de nuevos nodos en la red es un elaborado algoritmo, el cual tiene en cuenta diferentes aspectos para asegurar el anonimato de Figura 3: Cada nodo decide entonces si darse a conocer al nuevo nodo los nodos ya para ayudarle a tener una mayor conectividad o seguir siendo anónimo presentes en la para él. red. Por ejemplo, en las figuras 2 y 3 podemos ver cómo funciona alguno de los repositorios oficiales el proceso de búsqueda y conexión de (actualmente está en proceso de promonuevos nodos. Cada nodo decide si dar a ción). conocer su identidad a un nuevo nodo o Compilación no. Ahora que ya sabemos qué es Si decidimos compilarlo hemos de aseMarabunta y cuál es su propósito, vamos gurarnos de tener instalado en la carpeta a ver cómo se maneja para poder conde “includes” del sistema los ficheros de seguir conectarnos a la red o incluso desarrollo de las librerías QT4. crear nuestra propia “subred” anónima. Normalmente, las distintas distribuciones GNU/Linux incluyen en el gestor Primeros Pasos de paquetes predeterminado la posibiliSe puede descargar el código fuente y los dad de instalar el entorno necesario para binarios para la arquitectura i386 en [3] . la compilación : “qt4-development”. El paquete debian está en [4], aunque Para compilar, seguiremos los pasos se puede intentar descargarlo desde habituales:

WWW.LINUX-MAGAZINE.ES

Número 16

49


PRÁCTICO • Marabunta

Figure 4: Panel General de Opciones: podemos configurar todas las opciones relacionadas con los directorios donde salvamos la información que genera la aplicación.

cación está ejecutándose, o la ruta habitual para los ficheros de configuración si hemos instalado el paquete Debian: /etc/ marabunta/ marabunta.cfg. Veamos cómo configurar todos los parámetros desde el interfaz gráfico. En la Figura 4, vemos el panel de Opciones Generales donde podemos elegir el directorio de trabajo (home) para Marabunta, y donde se almacenará toda la información que genera la aplicación, como los mensajes recibidos en cada una de los canales temáticos, los fichero de log, etc.

Conexión a la Red Lo primero de todo es que hemos de conocer nuestra IP pública y un puerto UDP disponible. Normalmente el elegir un puerto con un número alto como 6666 suele ser una buena elección para evitar problemas con los privilegios del sistema. Si no sabemos nuestra IP podemos presionar sobre el botón de ¿Cuál es mi IP? de forma que sea la propia aplicación la que se encargue de descubrirla por nosotros, la podremos ver en el panel de eventos Figura 5,: Panel de Configuración de Red: todas las opciones situado en la parte supepara permitir la conexión de nuestro nodo a la red. rior de la aplicación. Antes de continuar tenemos que ver si el sistema está usando también la IP pública o una privada. ./configure Mediante el comando ifconfig obtenemos ./make la IP usada por el interfaz de red. Si esta IP es la pública, coincidirá con la Una vez que hayamos compilado el obtenida por la aplicación y no es nececódigo o instalado los binarios o el sario que hagamos ningún paso extra. paquete Debian, el primer paso es confiSin embargo si no coinciden, significará gurar las opciones de la aplicación. que estamos usando una IP privada, por Todas ellas pueden ser cambiadas desde lo que nos estamos conectando a través el interfaz gráfico o directamente desde el de un NAT (Network Address Translator). fichero de configuración “marabunta.cfg”, En caso de que esto ocurra es bastante el cual se crea con las opciones por probable que la IP devuelta por ifconfig defecto la primera vez que arranca la aplisea de la forma 192.168.xxx.xxx, aunque cación. El directorio donde se almacena no siempre es así. este fichero es el mismo en el que la apli-

50

Número 16

WWW.LINUX-MAGAZINE.ES

Lo que tenemos que hacer para poder conectarnos a la red es crear una ruta de reenvío de paquetes UDP desde el router hasta nuestra máquina (“Port Forwarding”). Para ello hemos de acceder al panel de Administración de nuestro router, normalmente es posible hacerlo vía web. Por ejemplo, si nuestra IP privada es de la forma 192.168.0.xxx es probable que el gateway tenga la dirección 192.168.0.254 o 192.168.0.1, de todas formas podemos asegurarnos mediante la información mostrada en el campo gateway por el comando route. Probamos entonces a acceder vía web a la IP del gateway, si no podemos tal vez sea porque haya que acceder a un puerto distinto al estándar de conexiones HTTP (80), o configurarlo mediante conexión vía serie, por lo que lo mejor es buscar información del modelo de router que tenemos en la red. Una vez llegamos al panel de Administración tenemos que establecer una nueva ruta PORT FORWARDING, con la finalidad de que todos los paquetes que vayan dirigidos a un puerto UDP concreto de la IP pública que está asignada a nuestro router puedan sean redirigidos al mismo puerto de nuestra IP privada. Por ejemplo, si tenemos la IP privada 192.168.0.10 y queremos usar el puerto 6666 para las conexiones entrantes a Marabunta tenemos que crear una regla que diga: todos los paquetes con destino el puerto 6666/UDP tienen que ser redirigidos al puerto 6666/UDP de la IP privada: 192.168.0.10 Una vez tengamos este problema resuelto podemos pasar a la configuración propia de la aplicación. Ponemos nuestra IP pública y puerto en las cajas de texto del panel de Conexión, como se muestra en la Figura 5. Ahora ya podemos conectar a la red. En este momento estamos escuchando a todas las conexiones entrantes, y podríamos empezar a


Marabunta • PORTADA

Como ya hemos visto anteriormente, el primer servicio de Marabunta es ser una plataforma que dé servicio a una Lista de Mensajes, la cual puede ser configurarada desde el panel de “Mensajería”, ver Figura 6. • La temática de los mensajes, nos permite seleccionar qué tipo de mensajes nos interesa recibir • El filtrado de contenido Figura 6: Panel de Mensajes: Toda la información relacionada nos permite elegir dencon la temática y filtrado de los mensajes. tro de las categorías seleccionadas los mencomunicarnos en el momento que se sajes que contengan un conectara algún nodo a nosotros, sin determinado patrón. embargo si queremos además conectar a Supongamos por ejemplo que queremos la red ya existente tenemos varias altervisualizar los mensajes sobre la maninativas: festación de hubo en nuestra ciudad ayer • Si sabemos la IP y puerto de un nodo en contra de la política de algunos gobierque ya forma parte de la red, simplenos por el uso de programas como Echelon mente lo añadimos en los campos de o Carnivore, (los cuales, por cierto, atentan información sobre hermanos ya directamente contra la privacidad perconocidos sonal). Seleccionaríamos el canal de • Si tenemos un fichero con informaPolítica con la palabra clave manifestación. ción (pares: IP-puerto) sobre nodos Es importante tener claro que este “filque pudieran estar en la red, salvatrado” de la información está relacionado dos por ejemplo de una anterior únicamente con la información mostrada al sesión de Marabunta, podemos carusuario, no con la información que trata la garlo mediante el botón Cargar aplicación, pues recordemos que continuaFichero. mente está enrutando mensajes de otros • Podemos presionar nodos para que se incluyan entre los elegisobre el botón Descardos para ser visualizados o no. gar Nodos para conUna buena forma de uso suele ser selecseguir información cionar la política de filtrado que queramos sobre algunos y dejar la aplicación funcionando durante nodos con alta horas, seleccionando además la opción de probabilidad de almacenar los mensajes en un fichero de estar conectados a forma que al final tengamos todos los menla red sajes en un fichero de texto y podamos leerUna vez la aplicación los tranquilamente. Para especificar el nomtiene una lista de bre del fichero donde volcar los mensajes “nodos posibles” comenpodemos ir al panel de Configuración zará a intentar conec(Figura 4). tar con ellos. Creando nuestra propia Podemos ver en Red Anónima todo momento la calidad de conexión que tenemos en la red En la Figura 5 vimos que una de las mirando la barra de porposibilidades para conseguir conectar centaje de conexión en la con la red es descargar una lista de cabecera de la aplicación. nodos que han accedido a la red en un

WWW.LINUX-MAGAZINE.ES

intervalo de tiempo no muy grande, por lo que hay altas probabilidades de que sigan dentro. Lo que ejecuta esta acción es una consulta a un script escrito en PHP, el cual ejecuta un algoritmo de anonimato y privacidad sobre la información disponible y genera la lista más acertada de nodos disponibles. Se puede descargar el script desde [5]. Buscamos el fichero con extensión .php.txt, lo cambiamos a .php y le damos permiso de ejecución una vez lo hayamos colocado en nuestro servidor. El otro fichero marabunta.nodes es donde se almacena la información relacionada con los nodos a los que va accediendo al script, por lo que ha de tener permiso de escritura en el servidor. Ahora hemos de cambiar el fichero de acceso al script PHP (nodos.txt), el cual se encuentra en el mismo directorio que el fichero de configuración de la aplicación. Para conseguir que la aplicación trabaje sólo con vuestro servidor, será preciso borrar las URLs existentes e insertar la que habéis generado al subir el script PHP con el fichero para almacenar la información ■ a vuestro servidor.

EL AUTOR

Mandando y Filtrando Mensajes

David Gascón es estudiante de Ingeniería Informática en el Centro Politécnico Superior de la Universidad de Zaragoza. Actualmente se encuentra desarrollando el proyecto final, el cual versa sobre los sistemas de Anonimato en Redes Wireless Ad-hoc. Contacta con él en david@laotracara.com o visita su web en http://www. laotracara.com.

RECURSOS [1] Marabunta http://marabunta. laotracara.com [2] Apeiron (Redes Libres) http://apeiron. laotracara.com [3] Descargas de Marabunta: http:// marabunta.laotracara.com/descargas/ [4] Paquete Debian: http://marabunta. laotracara.com/descargas/debian/ [5] Script para la generación de listas de nodos: http://marabunta.laotracara. com/descargas/phpNodos/

Número 16

51


DESARROLLO • Perl

Detectar cambios en el sistema con Dnotify

RESCATE DE ARCHIVOS

Este mes veremos cómo evitar la tragedia de la pérdida de archivos con un sistema de control transparente basado en Perl. POR MICHAEL SCHILLI

D

urante las fases tempranas de un proyecto, los desarrolladores suelen experimentar con varias opciones, por lo que a veces resulta demasiado precipitado guardar prototipos en el sistema de control de versiones. Si aún no hemos configurado un repositorio, o si no estamos de acuerdo con su estructura, puede que acabemos trabajando sin ningún tipo de seguridad. En este caso, nuestro código puede caer víctima de un fervoroso rm * o del comando de borrado de nuestro editor. El script Perl de este mes, noworries, nos ofrece un control automático de versiones. Cada vez que guardemos un archivo con nuestro editor, y cada vez que usemos el shell para manipular archivos usando comandos como rm o mv, un demonio escondido en segundo plano recibirá un mensaje. Al recibirlo, coge el archivo nuevo o modificado y usa RCS para darle una

52

Número 16

versión. Todo esto se hace de manera transparente para el usuario. La Figura 1 muestra un usuario creando, y a continuación, borrando un archivo desde el intérprete de comandos. Sin la magia de Perl, el archivo, myfile habría pasado a mejor vida, pero ahora podemos teclear noworries -l myfile que nos indica que se creó una copia de seguridad justo 17 segundos antes. noworries -r 1.1 myfile rescata el archivo y escribe su contenido en la salida estándar. El script no usa funciones manipuladas de shell ni otros sucios trucos. Por supuesto, una instancia del script tiene que ejecutarse en segundo plano (la opción -w ,de “watch”, se encarga de esto) para iniciar la utilidad File Alteration Monitor (FAM), que en respuesta se suscribe a la interfaz del kernel del sistema operativo Dnotify. Cada vez que el sistema de archivos crea, mueve o borra un directorio o

WWW.LINUX- MAGAZINE.ES

archivo, o se modifica el contenido de un archivo, se notifica al kernel del evento. El File Alteration Monitor (FAM) le indica a Dnotify que está interesado en lo que está pasando en diversos directorios y recibe notificaciones como respuesta. CPAN tiene un módulo Perl (SGI::FAM) que traduce la interfaz C de FAM a Perl. Está basada en eventos y no requiere de sondeo intensivo por parte de la CPU. Al llamar al método next_event() se bloquea al demonio hasta que ocurra el siguiente evento. La Figura 2 muestra otro ejemplo. En este caso se crea un archivo, y se modifica dos veces en la misma línea. El demonio recibe un mensaje para cada evento y crea tres versiones de los archivos en RCS (1.1, 1.2 y 1.3). Tecleando noworries -l myfile se mostrarán las tres versiones, aunque el archivo se haya borrado mientras tanto. Si solicitamos la versión 1.2 con la opción -r 1.2 y el nombre de archivo file, noworries nos la recupera e imprime su contenido por la salida estándar. El comando de shell mostrado en la Figura 2 redirecciona la salida hacia un archivo llamado file, que de nuevo se versiona con el demonio. La


Perl • DESARROLLO

pasamos al script de esta manera, debemos asegurarnos que están ubicados en nuestro PATH para permitir a noworries que pueda llamarlos. En caso necesario, podemos codificar las rutas completas. noworries usa las funFigura 1: El demonio en Perl trabaja “tras bastidores” para ciones mkd (crear directoofrecer un seguro de vida a los archivos por si son borrados rio), cp (copiar archivo), por el usuario. cd (cambiar de directoFigura 3 muestra la actividad del rio), cdback (vuelve al directorio origidemonio: para estar más seguros, el nal), y tap (ejecuta un programa y demonio registra su actividad en el recupera el resultado) que exporta archivo /tmp/noworries.log. Sysadm::Install. Los lectores habiEl script noworries cuida de los tuales de mi columna de Perl puede archivos y directorios, sin importar lo que recuerden esto de [4]. escondido que estén, bajo ~/noworNoworries Te Vigila ries en el directorio de inicio del usuario. Allí es donde normalmente Antes de que SGI::FAM pueda recibir vamos a ubicar nuevos directorios o mensajes acerca de archivos modificaextraer tarballs si deseamos proteger dos en un directorio, FAM tiene que nuestro sistema. El demonio crea una avisar al kernel de que quiere hacer estructura bajo ~/.noworries.rcs para esto. Los sucesos se desencadenan tras registrar los cambios tras las bambalila llamada $fam->monitor(...) con nas. Cada subdirectorio contiene un ~/noworries como argumento, cada directorio RCS con las versiones de los vez que se crea un directorio o archivos, cuyos nombre terminarán en archivo nuevo directamente en v. RCS fue una herramienta de UNIX ~/noworries. Sin embargo, esto desde sus comienzos y aún se usa para no se aplica en los subdirectorios. los sistemas de control de versión Por esta razón, SGI::FAM como CVS o Perforce. La siguiente arranca inmediatasecuencia de comandos registra una mente otro monitor versión de file: para los subdirectorios cada vez que detecta que echo "Data!" >file se ha creado un mkdir RCS nuevo subdirecci file torio. Un truco co -l file similar se aplica si noworries El programa ci del conjunto de comanarranca cuando dos de RCS crea RCS/file,v en el formaya existe una to delta que usa RCS. El comando co estructura de del final, en combinación con la directorios muy opción -l (de “look”), restablece la veranidada bajo sión actual al directorio actual. Si ~/noworries. modificamos ahora file, y a conti(Volveremos a esto nuación ejecutamos otra secuencia de dentro de un comandos ci/co, acabaremos con dos momento). versiones en RCS/file,v, que pueden Si especificamos la ser recuperadas por separado con co. opción -w arrancamos El programa rlog, otro miembro de la noworries en modo familia RCS, nos permite visualizar los demonio y se ejecuta el metadatos de las versiones de los bucle infinito definido en la archivos que hemos registrado. función watcher en la línea El listado noworries (Listado 1) 88 del Listado 1. La llamadefine los nombres de estas heda al método next_event() rramientas en las líneas 25 a 27. Si los

WWW.LINUX- MAGAZINE.ES

en la línea 98 impide el flujo de ejecución hasta que ocurra uno de los cuatro eventos monitorizados por FAM. Para averiguar cuál de los potencialmente muchos directorios activos ha sido, el método which() de SGI::FAM, que es llamado en la línea 101, devuelve el directorio que ha causado el evento. El método del evento filename() devuelve el nombre del objeto nuevo, existente, modificado o borrado, que puede ser un directorio o un archivo. El método type() nos devuelve el tipo de evento. Los tipos en los que noworries está interesado son crate y change. El método monitor() añade nuevos directorios a la lista de cosas a vigilar, mientras que la función check_in() definida en la línea 170 controla los archivos nuevos o modificados. Un método similar se usa para añadir directorios. El demonio utiliza find para localizar directorios cuando se inician, suponiendo que ~/noworries ya existe. La función de apoyo subdirs() de la línea 153 excava hondo por el árbol de directorios y devuelve cualquier directorio que encuentre sin importar lo anidado que pueda estar. La función watch_subdirs() itera sobre todos ellos y pasa las rutas relativas a FAM para su seguimiento. La sección de documentación de la línea 266 no está sólo para que el usuario obtenga una página de manual adecuadamente formateada cada vez que la llame con perldoc noworries. También es la salida de la función pod2usage(), si el usuario no es capaz de proporcionar las opciones necesarias en línea de comandos. No tiene mucho sentido versionar temporalmente los archivos de vi o emacs, por lo que se filtran en las líneas 107 a 112. Cuando un archivo tiene que registrarse en el sistema de control de versiones, check_in en la

Número 16

53


DESARROLLO • Perl

línea 170 verifica primero que es un archivo de texto. check_in descarta los archivos binarios en la línea 174. Se llama a la función con una ruta relativa a ~/noworries, ya que es donde salta watcher() en la línea 90. La línea 189 copia la fila original al árbol RCS, y la línea 195 llama al programa ci con

las opciones -t y -m. La pasa el valor a ambos, ya que el primero y subsiguientes comentarios de registro no tienen sentido. Pero tenemos que darle a ci algo para procesar, para evitar un prompt interactivo. La línea 204 comprueba la salida del archivo, como se describió anteriormente. La siguiente

vez que ocurra un cambio, la copia verificada se sobrescribe, y se registra la nueva versión con ci. ¿Qué Día es Hoy?

noworries llama a la función de RCS rlog para averiguar qué versiones de

Listado 1: noworries 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047

54

#!/usr/bin/perl -w ############################# # noworries # m@perlmeister.com ############################# use strict; use Sysadm::Install qw(:all); use File::Find; use SGI::FAM; use Log::Log4perl qw(:easy); use File::Basename; use Getopt::Std; use File::Spec::Functions qw(rel2abs abs2rel); use DateTime; use DateTime::Format::Strptime; use Pod::Usage; my $RCS_DIR = "$ENV{HOME}/.noworries.rcs"; my $SAFE_DIR = "$ENV{HOME}/noworries"; my $CI = "ci"; my $CO = "co"; my $RLOG = "rlog"; getopts( "dr:wl", \my %opts ); mkd $RCS_DIR unless -d $RCS_DIR; Log::Log4perl->easy_init({ category => 'main', level => $opts{d} ? $DEBUG : $INFO, file => $opts{w} && !$opts{d} ? "/tmp/noworries.log" : "stdout", layout => "%d %p %m%n" } );

Número 16

048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094

if ( $opts{w} ) { INFO "$0 starting up"; watcher(); } elsif( $opts{r} or $opts{l} ) { my ($file) = @ARGV; pod2usage("No file given") unless defined $file; my $filename = basename $file; my $absfile = rel2abs($file); my $relfile = abs2rel( $absfile, $SAFE_DIR ); my $reldir = dirname($relfile); cd "$RCS_DIR/$reldir"; if ( $opts{l} ) { rlog($filename); } else { sysrun( $CO, "-r$opts{r}", "-p", $filename ); } cdback; } else { pod2usage( "No valid option given"); } ############################# sub watcher { ############################# cd $SAFE_DIR; my $fam = SGI::FAM->new(); watch_subdirs( ".", $fam );

WWW.LINUX- MAGAZINE.ES

095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141

while (1) { # Block until next event my $event = $fam->next_event(); my $dir = $fam->which($event); my $fullpath = $dir . "/" . $event->filename(); # Emacs temp files next if $fullpath =~ /~$/; # Vi temp files next if $fullpath =~ /\.sw[px]x?$/; DEBUG "Event: ", $event->type, "(", $event->filename, ")"; if ( $event->type eq "create" and -d $fullpath ) { DEBUG "Adding monitor", " for directory ", $fullpath, "\n"; $fam->monitor( $fullpath); } elsif ( $event->type =~ /create|change/ and -f $fullpath ) { check_in($fullpath); } } } ############################# sub watch_subdirs { ############################# my ($start_dir, $fam) = @_; $fam->monitor($start_dir);


Perl • DESARROLLO

un archivo están disponibles. rlog devuelve los números de versión con la fecha (en formato yyyy/mm/dd hh:mm:ss) y también revela el número de líneas que han cambiado en comparación con la versión anterior. Obviamente, no puede dar esta información de la versión inicial, pero sí se

nos indica que la versión 1.2 tiene lines: +10 -0, esto significa que hay 10 nuevas líneas en comparación a la 1.1, y que no se ha borrado ninguna. El módulo DateTime de CPAN nos ayuda tremendamente con los cálculos de fechas. El módulo DateTime::Format::Strptime analiza la

información de fechas de RCS, y convierte el valor a segundos transcurridos desde el 1 de enero de 1970. Para hacer esto, el constructor espera recibir un cadena con el siguiente formato: “%Y/%m/%d %H:%M:%S”, y la llamada a parse_datetime() devuelve un objeto DateTime comple-

Listado 1: noworries 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

for my $dir ( subdirs($start_dir) ) { DEBUG "Adding monitor ", "for $dir"; $fam->monitor($dir); } return $fam; } ############################# sub subdirs { ############################# my ($dir) = @_; my @dirs = (); find sub { return unless -d; return if /^\.\.?$/; push @dirs, $File::Find::name; }, $dir; return @dirs; } ############################# sub check_in { ############################# my ($file) = @_; if ( !-T $file ) { DEBUG "Skipping non-", "text file $file"; return; } my $rel_dir = dirname($file); my $rcs_dir = "$RCS_DIR/$rel_dir/RCS"; mkd $rcs_dir unless -d $rcs_dir; cd "$RCS_DIR/$rel_dir";

189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235

cp "$SAFE_DIR/$file", "."; my $filename = basename($file); INFO "Checking $filename", " into RCS"; my ($stdout, $stderr, $exit_code) = tap( $CI, "-t-", "-m-", $filename ); INFO "Check-in result: ", "rc=$exit_code ", "$stdout $stderr"; ($stdout, $stderr, $exit_code) = tap( $CO, "-l", $filename); cdback; } ############################# sub time_diff { ############################# my ($dt) = @_; my $dur = DateTime->now() - $dt; for ( qw(weeks days hours minutes seconds)) { my $u = $dur->in_units($_); return "$u $_" if $u; } } ############################# sub rlog { ############################# my ($file) = @_; my ( $stdout, $stderr, $exit_code ) = tap( $RLOG, $file );

WWW.LINUX- MAGAZINE.ES

236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279

my $p = DateTime::Format::Strptime ->new( pattern => '%Y/%m/%d %H:%M:%S' ); while ($stdout =~ /^revision\s(\S+).*? date:\s(.*?); (.*?)$/gmxs) { my ($rev, $date, $rest) = ($1, $2, $3); my ($lines) = ($rest =~ /lines:\s+(.*)/); $lines ||= "first version"; my $dt = $p->parse_datetime( $date); print "$rev ", time_diff($dt), " ago ($lines)\n"; } } __END__ =head1 NAME noworries - Dev Safety Net =head1 SYNOPSIS # Print previous version noworries -r revision file # List all revisions noworries -l file # Start the watcher noworries -w

Número 16

55


DESARROLLO • Perl

facilidad. FAM está también algo obsoleta, y se ha designado a Gamin [3] como su sucesor. El mecanismo Dnotify del kernel no usa inodos del sistema de archivos, sino nombres de fichero, por lo que mv file1 file2 activa dos eventos: un evento de tipo borrar Figura 2: Se añaden dos líneas a un archivo de nueva creación en y otro de tipo crear. dos sesiones consecutivas. Noworries recupera la versión 2 cuando Esto no le preocupa se le requiere. a noworries, ya que tamente inicializado si no hubo proel script ignora los eventos tipo borrar, y blemas. El bucle while, que comienza si aparece el mismo archivo tiempo en la línea 241, navega por el complidespués, simplemente se registra como cado resultado con la ayuda de la última versión. rlog, y para ello El script sólo debería usarse hace en nuestro disco duro local, y no con NFS, ya que FAM sólo podría ser eficiente si el NFS

uso de una expresión regular de varias líneas. La función time_diff() de la línea 211 aguarda un objeto DateTime y calcula su edad en segundos, minutos, horas, días o semanas. Así será más sencillo de leer para el usuario de noworries. Desafortunadamente, Dnotify, el mecanismo que usa FAM, no escala bien y sucumbe al llegar a unos doscientos subdirectorios. Para solventar este problema dnotify se ha remplazado por inotify en los kernels más recientes. inotify hace Figura 3: Tras las bambalinas, el demonio monitoriza el sistema mejor uso de los recurde archivos y crea una copia de seguridad con las versiones sos y escala con mayor cada vez que ocurre un cambio en los directorios vigilados.

56

Número 16

WWW.LINUX- MAGAZINE.ES

objetivo también está ejecutando FAM. En caso contrario, sondea el destino a intervalos regulares y esto provoca que el sistema completo sea ineficiente.

Instalación Debemos instalar los módulos SGI::FAM, Sysadm::Install, DateTime, DateTime::Format::Strptime, y Pod::Usage de CPAN. Un CPAN Shell nos ayudará a resolver las dependencias con rapidez. Si observamos un error tal que FAM.c:813: error: storage size of 'RETVAL' isn't known al compilar SGI::FAM, debemos cambiar la línea 813 de FAM.c de enum FAMCodes RETVAL a FAMCodes RETVAL. Ejecutamos de nuevo make y debería funcionar. Para asegurarnos que el demonio está siempre ejecutándose, añadimos una línea similar a x777:3:respawn:su mschilli -c "/home/mschilli/bin/noworries -w" a /etc/inittab, y a continuación se lo hacemos saber al demonio Init ejecutando init q. El proceso tiene que ejecutarse con la ID del usuario en uso, (mschilli en este caso), para asegurar que $ENV{HOME} en el script apunta al directorio de usuario correcto. También en este caso, el proceso init arranca el demonio noworries cuando encendemos el ordenador, y la opción respawn asegura que el proceso se reinicia inmediatamente si por alguna razón termina inadvertidamente. Pero antes de hacer todo esto, debemos probar el demonio desde línea de comandos para ver si todo funciona adecuadamente. La opción -d de depuración puede servir de ayuda si encontramos problemas. Muestra el estado detallado en la salida estándar en lugar de volcarlo a /tmp/nowo■ rries.log.

RECURSOS [1] Listados de este articulo: http://www. linux-magazine.es/Magazine/ Downloads/16 [2] Página de FAM: http://oss.sgi.com/ projects/fam/ [3] Página de Gamin: http://www.gnome. org/~veillard/gamin/ [4] “Comandos Shell desde Perl”, Michael Schilli: http://www. linux-magazine.es/issue/05/PerlShell. pdf


Python • DESARROLLO

Web.py, un framework muy ligero.

WEBS EN 10 SEGUNDOS Después de tanto framework, librerías y plataformas web enormes ya era hora de que alguien nos diese algo divertido. POR JOSÉ MARÍA RUIZ

C

onocí a Aaron Swartz en la Startup School 2005, en Cambridge, EEUU. Es muy joven, no tendrá más de 20 años, y uno de los protegidos de Paul Graham en YCombinator. Hablé con él durante una media hora y me pareció muy inteligente. En ciertos ámbitos es considerado un genio. Aaron ha crecido con la Web, fue uno de los creadores del estándar RSS, para más detalles ver Recursos [1].

Recuperando la web

EL AUTOR

Web.py es su apuesta para revitalizar la web, para volverla simple, como parte del movimiento Web2.0. Si Ruby on Rails simplificó las monstruosidades de J2EE y compañía, Web.py convierte el desarrollo web en una cosa de niños. En menos de 10 segundos se puede tener funcionando una página web dinámica. Y es que mucha gente de la llamada Web2.0 quiere volver a los tiempos en los que usar la web era divertido, así que Aaron ha hecho de Web.py una herramienta muy potente y sencilla.

José María Ruiz actualmente está realizando el Proyecto Fin de Carrera de Ingeniería Técnica en Informática de Sistemas. Lleva 8 años usando y desarrollando software libre y, desde hace dos, se está especializando en FreeBSD.

Web.py Cuando se escribe este artículo, Web.py no pasa de la versión 0.13 y tiene un tamaño de poco más de 55KBytes, pero no hay que dejarse engañar por su tamaño. En su programación, Aaron ha hecho uso de las más sofisticadas técnicas de Python, la MetaProgramación entre ellas. Web.py genera métodos y clases bajo demanda, convirtiendo toda la interacción con bases de datos y la web en un juego de niños. Todo se realiza a través de clases y métodos. Los nombres de ambos han sido escogidos con cuidado para que sean cortos y fáciles de recordar. ¡Adiós a las montañas de documentación! En su propia página se auto define de «anti-framework».

Ingredientes Necesitaremos de Web.py, que se puede descargar de la URL que aparece en el Recurso [2]. Además necesitaremos las librerías de Python: • Cheetah (Recurso [3]), que sirve para crear templates. • Psycopg (Recurso [4]), para el acceso a la base de datos Postgresql. Y por supuesto de Postgresql (Recurso [5]), la base de datos relacional. Haremos uso del sistema de paquetes que nuestra distribución emplee para instalar estas librerías y arrancaremos Postgresql si fuese necesario. Tanto Cheetah como Psycopg son opcionales, Web.py ha sido diseñado con

WWW.LINUX- MAGAZINE.ES

una idea en mente: que sea completamente modular. Así podríamos usar otro sistema de templates u otro conector con bases de datos, por ejemplo con MySQL. Si tenemos todo instalado podemos crear un directorio, donde trabajaremos y copiaremos en el mismo el fichero Web.py.

Primera web… en 10 segundos. Comencemos con un ejemplo muy simple usando el código que aparece en el Listado 1. Para arrancar el servidor sólo tenemos que ejecutar: # python holamundo.py

Desgranemos el código. Lo primero que hacemos es importar web, Web.py. De esta manera tendremos acceso a todas sus funciones. Posteriormente definimos una lista que hemos llamado rutas. En ella definimos pares de ruta/objeto asociado. Cada vez que accedamos a Web.py éste buscará la ruta que encaje con la que hemos pedido y hará uso del objeto asociado. Definimos una clase llamada hola. En Web.py las clases son quienes «responden» a las peticiones. Para ello debemos definir un método GET o POST, dependiendo de qué tipo de petición queramos responder. Usando la función estándar print podemos crear la respuesta. En nuestro ejemplo, es tan simple, que ni siquiera creamos una página web, solo devolvemos «¡Hola mundo!» (Figura 1).

Número 16

57


DESARROLLO • Python

Listado 2: hola.html

Figura 1: Nuestra primera Web creada con Web.py.

Listado 1 holamundo.py 01 02 03 04 05 06 07 08 09 10

#!/usr/local/bin/python import web rutas = ( '/', 'hola' )

class hola: def GET(self): print "<html><head>" print "<title>hola<title><head>" 11 print "<body><h1>Hola mundo</h1>" 12 print "</body></html>" 13 14 web.internalerror = web.debugerror 15 16 if __name__ == '__main__': 17 web.run(rutas, web.reloader)

Y por último debemos indicar a Web.py qué rutas usar, para ello empleamos: if __name__ == '__main__': web.run(rutas, web.reloader)

Con esta sencilla llamada nuestro servidor estará listo para ejecutarse. Como ya dijimos antes, el servidor de Web.py se arranca por defecto en el puerto 8080, de manera que no necesitamos permisos de root para hacerlo (son necesarios para abrir cualquier puerto por debajo del 1024). Al acceder veremos «hola mundo». Podemos modificar el puerto en el que se arranca el servidor especificándolo en la linea de comando, así: # python holamundo.py 8003

arrancará el servidor en el puerto 8003. Este es el modo más simple de mostrar información usando HTML: se imprime

58

Número 16

01 <html> 02 <head><title>Hola</title></hea d> 03 <body><h1> 04 #if $nombre 05 Hola $nombre 06 #else 07 Hola mundo 08 #end if 09 </h1><body></html>

directamente desde la clase vista mediante la función print. El problema aparece cuando los ficheros HTML se vuelven más complejos y comenzamos a mezclar presentación (HTML) y control (el fichero Python). Y por ello Web.py dispone de los templates. Si queremos parar el servidor sólo tenemos que pulsar «Control C» dos veces.

Una web más dinámica Ahora que hemos visto cómo hacer el famoso «hola mundo», pasemos a algo más potente. Y lo haremos con la introducción de los templates. Vamos a crear un directorio llamado templates dentro del directorio donde tengamos holamundo.py. En su interior crearemos un fichero llamado hola.html con el contenido del Listado 2. En lugar de holamundo.py usaremos holamundo2.py, cuyo código aparece en el Listado 3. El contenido del método GET de hola ha cambiado a: nombre = 'Isaac Newton' web.render('hola.html')

Cuando ejecutamos holamundo2.py aparecerá en el navegador una página donde podremos leer «Hola Isaac Newton». web.render() es un método que carga el template que le hemos indicado, hola.html, y lo interpreta en el contexto del objeto, y en este contexto nombre está asignado a la cadena «Isaac Newton». Debemos observar con más detenimiento el Listado 2. Este lenguaje tan extraño, con lineas que comienzan con # es el que emplea Cheetah, un sistema de templates para Python. Su objetivo principal es la simplicidad, así que en lugar de emplear las ya famosas etiquetas <% y %> de PHP o Java, usa # para las lineas con código Cheetah y $ para las variables. Web.py lo usa debido a que genera templates que

WWW.LINUX- MAGAZINE.ES

son fáciles de leer y modificar. La ventaja de emplear templates radica en que podremos modificarlas sin tener que volver a arrancar el servidor. Además podremos separar el diseño de la web respecto de la programación. Programadores y diseñadores son como el agua y el aceite, nunca se mezclan, así que hay que tenerles separados. Filosofía Web.py

Si el lector ha cometido algún fallo al escribir parte del template o del fichero holamundo.py, cosa que el autor ha hecho y en repetidas ocasiones, se habrá percatado de lo dicharachero que es Web.py en cuanto al informe sobre errores. Es parte de la filosofía de desarrollo de Web.py, ser muy ruidoso cuando algo va mal para que el desarrollador detecte los problemas pronto. El desarrollo rápido de programas requiere al menos de dos factores: • Que se escriba poco. • Que se corrijan los errores muy rápido. Y Web.py ha sido diseñado con ambos en mente, el código escrito es muy compacto y fácil de leer, los nombres de las funciones son cortos y existen numerosos convenios en lugar de excesiva flexibilidad. Algunos de estos principios también rigen el diseño de Ruby on Rails, pero Ruby on Rails tiene un tamaño monstruoso comparado con Web.py. Hace unas semanas Guido van Rossum, creador de Python, publicó un artículo donde decía que su nuevo trabajo en Google incluía la creación de una página web para la Intranet interna de Google. Estuvo echando un vistazo a los distintos frameworks y le parecían todos demasiado

Listado 3: holamundo2.py 01 02 03 04 05 06 07 08 09 10 11 12

#!/usr/local/bin/python import web rutas = ( '/(.*)', 'hola' ) class hola: def GET(self,nombre): web.render ('hola.html') web.internalerror = web.debugerror

13 14 if __name__ == '__main__': 15 web.run(rutas, web.reloader)


Python • DESARROLLO

Figura 2: Personalizamos el saludo gracias a expresiones regulares.

pesados y complejos. Guido no es desarrollador web, sino de lenguajes de programación, así que prefiere las cosas sencillas. Web.py ha sido uno de los pocos frameworks que según él recogen el espíritu de Python.

Rutas inteligentes Ahora vamos a presenciar una de las habilidades de Web.py. Cambiemos de nuevo el fichero holamundo.py para que quede como en la Figura 2. Lo paramos y volvemos a arrancar e introduzcamos en el navegador la ruta: http://localhost:8080/juan

El resultado será una página donde se saluda a juan. ¿Cómo es esto posible? Se ha añadido la expresión (.*) a la ruta, una expresión regular. De hecho la ruta en sí misma es una E.R. (expresión regular). En una E.R. los paréntesis indican la existencia de subexpresiones que pueden ser separadas. En la ruta «/(.*)» tenemos dos expresiones: «/» y «.*». Web.py asocia la segunda a una variable y se la pasa a GET, por eso le hemos añadido el parámetro nombre en la definición. ¿y si

Listado 4: holamundo2b.py 01 02 03 04 05 06 07 08 09

#!/usr/local/bin/python import web rutas = ( '/(.*)/(.*)', 'hola' )

class hola: def GET(self,nombre,apellido): 10 web.render ('hola2.html') 11 12 web.internalerror = web.debugerror 13 14 if __name__ == '__main__': 15 web.run(rutas, web.reloader)

añadimos otra subexpresión? Vamos a verlo en el Listado 4. Necesitaremos también de hola2.html que aparece en el Listado 5. Al añadir otro «/(.*)» en la ruta automáticamente Web.py asocia otra variable a la segunda subexpresión. Podríamos crear cualquier esquema con las rutas, por ejemplo «http://localhost:8080/fecha/id-mensaje». ¿Qué ocurre si dejamos la ruta básica «http://localhost:8080»? Pues que aparecerá el mensaje «Hola mundo», porque en el template se comprueba la existencia de las variables nombre y apellidos y al no encontrarlas ejecuta el else del if.

MVC Estamos dando vueltas a un esquema de desarrollo bastante popular estos días, hablamos de MVC, el Modelo-VistaControlador. Este esquema divide el desarrollo de un sistema en tres componentes: • La Vista sería el template, que genera código de presentación de algún tipo, como HTML o XML. • El Controlador sería la clase hola, que recoge la información y prepara el entorno para la Vista. • El Modelo es la información pura y dura, generalmente almacenada en una base de datos, y que se encarga de comprobar la integridad de la misma. MVC separa el trabajo en tres partes, de manera que sean independientes unas de otras. Una modificación en cualquiera de ellas no implica cambiar el resto. También se aumenta la reutilización, puesto que un mismo controlador puede servir para distintas vistas. A la mente me viene un ejemplo muy recurrido: un controlador que genere un listado de artículos para dos vistas, la primera genera HTML y la segunda RSS. Por el momento hemos tratado con la Vista y el Controlador ¿dónde está escondido el Modelo en Web.py?

El Modelo Uno de los requisitos para nuestro ejemplo de uso de Web.py es la librería Psycopg. Es un interfaz para la base de datos Postgresql muy pequeño y eficiente, pensado para un uso intensivo de hebras (la eficiencia y la simplicidad serán la tónica general con Web.py). No vamos a interactuar en ningún momento con Psycopg, será Web.py quien lo haga.

WWW.LINUX- MAGAZINE.ES

Listado 5: hola2.html 01 <html> 02 <head><title>Hola</title></hea d> 03 <body><h1> 04 #if $nombre and $apellido 05 Hola $nombre $apellido 06 #else 07 Hola mundo 08 #end if 09 </h1><body></html>

Comencemos creando una tabla que nos permita almacenar información (Listado 6). En el Listado 7 podemos ver el código de anotaciones.py. En él podemos observar cómo se establecen los parámetros de configuración de la base de datos. No conectamos explícitamente con ella, será Web.py quien lo haga: web.db_parameters = dictU (dbn='postgres',U user='nombre_usuario',U pw='clave',U db='nombre-base-datos')

Como queremos recoger el contenido de la tabla anotaciones para poder mostrarlo tenemos que ejecutar un SELECT, pero en Web.py es tan sencillo como invocar dentro de GET: anotaciones = web.select(U "anotaciones")

Con esta simple función recogemos en la variable anotaciones el resultado de hacer un select contra la tabla del mismo nombre. A partir de ese momento anotaciones estará disponible en el template anota.html. El código de anota.html aparece en el Listado 8. En él usamos una lista html, UL, y el lenguaje de templates de Cheetah para iterar sobre anotaciones. #for anota in $anotaciones <li id="t$anota.id">U

Listado 6: anotaciones.sql 01 CREATE TABLE anotaciones ( 02 id serial primary key, 03 titulo text, 04 created timestamp default now() 05 );

Número 16

59


DESARROLLO • Python

Listado 7: Anotaciones.py 01 02 03 04 05 06 07 08 09 10

#!/usr/local/bin/python import web rutas = ( '/', 'index', '/nueva', 'nuevaAnotacion' )

class index: def GET(self): anotaciones = web.select("anotaciones") 11 web.render ('anota.html') 12 13 class nuevaAnotacion: 14 def POST(self): 15 params = web.input() 16 n = web.insert('anotaciones',titul o = params.titulo) 17 web.seeother('./#t'+str(n)) 18 19 web.internalerror = web.debugerror 20 21 if __name__ == '__main__': 22 web.db_parameters = dict(dbn='postgres', user='josemaria', pw='', db='prueba') 23 web.run(rutas, web.reloader)

$anota.titulo</li> #end for

Entrada de datos Para volver interactiva nuestra página debemos añadir un formulario, de manera que el usuario pueda añadir nuevas anotaciones: <form method="post"U action="/nueva"> <p><input type="text"U name="titulo" /> <input type="submit"U value="Añadir" /></p> </form>

rutas es una lista y las entradas impares se corresponden con rutas, mientras que las pares lo hacen con clases asociadas. De esta manera relacionamos la ruta /nueva con la clase nuevaAnotacion. Este sistema es muy cómodo porque desvincula el nombre de las rutas respecto del nombre de las clases. La clase nuevaAnotacion tendrá la forma: class nuevaAnotacion: def POST(self): params = web.input() n = web.insert(U 'anotaciones',U titulo = params.titulo) web.seeother('./#t'+str(n))

Analicemos esta clase. Al igual que la clase index, aquí definimos un método, pero en esta ocasión es POST en lugar de GET. Es costumbre enviar los datos de los formularios como POST, así que eso haremos. ¿Pero cómo recogemos los datos enviados desde el navegador? Aquí entran en juego las funciones de Web.py. Con web.input() se recoge la información recibida en una variable. Esta variable será un objeto, y tendrá un atributo por cada parámetro transmitido por POST. Así podremos obtener el titulo de la anotación simplemente accediendo a params.titulo. Para guardar esta información en la base de datos hemos de usar web.insert(). Es el equivalente a la orden INSERT de SQL, pero mucho más simple. Le indicamos el nombre de la tabla y un conjunto de valores asignados que corresponden a las columnas de la tabla. De esta manera podemos pasar valores a las columnas por nombre y no importa el orden en que se pongan los parámetros. web.insert() devuelve como resultado el ID, que en la base de datos se asigne a esa nueva fila. Así podremos hacer referencia a ella. Ahora podemos añadir entradas, como en la Figura 3, a nuestra web de anota-

60

Número 16

Conclusión Con Web.py podemos comenzar a crear webs de manera muy sencilla y rápida. Es un herramienta muy buena para crear prototipos o explorar nuevos conceptos. Y eso que, cuando se escribe este artículo, sólo está disponible la versión 0.13. El sitio web www.reddit.com emplea Web.py y su uso se está extendiendo a la vez que más personas se unen a su desarrollo. Desde luego, es un proyecto interesante y debemos estar atentos a su futuro desarrollo. ■

Listado 8: Anota.html 01 <html> 02 <head> 03 <title>Mis anotaciones</title> 04 </head> 05 <body> 06 <ul> 07 #for anota in $anotaciones 08 <li id="t$anota.id">$anota.titulo< /li> 09 #end for 10 </ul> 11 <form method="post" action="/nueva"> 12 <p> 13 <input type="text" name="titulo" /> 14 <input type="submit" value="Nueva anotacion" /> 15 </p> 16 </form> 17 </body> 18 </html>

RECURSOS [1] Sitio de Aaron Swartz: http://www. aaronsw.com/ [2] Descargas de web.py: http://webpy. org/web.py

Enviamos el contenido del campo título a la ruta /nueva, pero este último aún no existe, así que creamos en el fichero Python una nueva entrada en rutas: rutas = ( '/', 'index', '/nueva', 'nuevaAnotacion')

ciones, y el número de lineas de código que hemos escrito es muy pequeño. No sólo eso, sino que son muy sencillas de entender.

[3] Plantillas Chetah: http:// cheetahtemplate.org/ [4] Psycopgl, el adaptador Python para PostgreSQL: http://initd.org/projects/ psycopg1 Figura 3: La implementación de funciones con Web.py exige muy poco código.

WWW.LINUX- MAGAZINE.ES

[5] Sitio web de PostgreSQL: http://www. postgresql.org


La Columna de Charly • ADMINISTRACIÓN

El Día a Día del Administrador de Sistemas: HTTPing

CHEQUEO WEB HTTPing podría ser la herramienta perfecta para comprobar la salud de su servidor web. POR CHARLY KÜHNAST

E

ntre visitas al dentista, mi trabajo depende de las impresiones subjetivas de mis usuarios. Si un servidor web va lento, la reacción típica es algo parecida a “Eeeh, ¿porqué va lento el servidor hoy?” Pero, ¿cuánto de “lento” es lento? Si una sola máquina tiene un mal día, es tan simple como hacerle un chequeo individual. Las cosas se complican si se posee un equipo remoto al que sólo se tiene acceso mediante HTTP. Las aplicaciones de monitoreo de software, como Smokeping no son el tipo de solución rápida que se necesita, y no es preciso hacer Wget, Netstat y Time. HTTPing [1] es la herramienta más ele-

Listado 1: httping -g 01 PING kuehnast.com:80 (http://kuehnast.com): 02 connected to kuehnast.com:80, seq=0 time=8.57 ms 03 connected to kuehnast.com:80, seq=1 time=3.56 ms 04 connected to kuehnast.com:80, seq=2 time=4.24 ms 05 --- http://kuehnast.com ping statistics --06 3 connects, 3 ok, 0.00% failed 07 round-trip min/avg/max = 3.6/5.5/8.6 ms

SYSADMIN Anubis ....…......................................62 El servicio Anubis hace trucos con los mensajes de correo electrónico antes de pasárselo al servidor de correo. Puede usar Anubis para centralizar la encriptación del correo de salida.

gante para este trabajo. Hay que enviar peticiones GET o HEAD al desolado servidor web y registrar ambas respuestas y el tiempo de viaje. El nombre de HTTPing proviene de la similitud sintáctica entre las opciones de la línea de comandos y del ping ICMP. En el caso más simple, se le pasa la URL al HTTPing y se le envia de esta forma: httping -g http://kuehnast.com. En este caso, HTTPing enviará una petición HEAD por segundo al servidor especificado, hasta que se presione [Ctrl]+[C] para que se detenga. La salida se verá como en el Listado 1.

¿Es Culpable la Encriptación? Esta pregunta trivial indica si el servidor contesta y con qué rapidez. El parámetro -G proporciona respuestas específicas tanto para GET, como para HEADs. Puede especificarse la opción -l para ver el efecto en los tiempos de acceso de un servidor HTTPS. El Listado 2 muestra el efecto que tiene la encriptación SSL en el tiempo de

Listado 2: httping -G -l -g 01 # httping -G -l -g https://kuehnast.com 02 [...] 03 connected to kuehnast.com:443, seq=0 time=96.33 ms 04 connected to kuehnast.com:443, seq=1 time=95.38 ms 05 connected to kuehnast.com:443, seq=2 time=95.14 ms 06 [...]

WWW.LINUX-MAGAZINE.ES

respuesta. También estoy interesado en el estado del código devuelto por el servidor. Tras el típico 200 OK, quiero que HTTPing evalúe el Código 304 Not modified como una Conexión correcta: httping -s -o 200,304 -G -l -g U https://kuehnast.com

Como se dijo anteriormente, alguna opción de HTTPing tiene el mismo efecto que una respuesta ICMP: el parámetro -i agrupa los intervalos entre los intentos de conexiones individuales en segundos, 0.5 por ejemplo, es interpretado por HTTPing como “tan pronto como sea posible”. El parámetro -f tiene el mismo efecto. O sea que una inundación del servidor web no tiene mucho sentido y puede complicar su relación con el administrador del servidor web. El -c 10 me permite restringir el texto completo a 10 peticiones y se necesita presionar [Ctrl] + [C] para salir de HTTPing. Es importante controlar la salida si utiliza un script para lanzar HTTPing. Por defecto HTTPing corta la conexión tras 30 segundos. Tiendo a poner este valor a diez segundos (-t 10). Después de todo, un servidor web que no responde tras diez segundos seguro que ■ tiene un problema.

RECURSOS [1] HTTPing: http://www.vanheusden. com/httping/

Número 16

61


ADMINISTRACIÓN • Anubis

Encriptación Centralizada de Correo Electrónico con Anubis

ENCRIPTACIÓN EGIPCIA El servicio de manipulación de correo Anubis permite la encriptación centralizada del correo saliente. POR DANIEL S. HAISCHT

L

os expertos conocen los peligros de transmitir planos, datos personales y acuerdos confidenciales por Internet sin encriptar, aunque los usuarios finales raras veces se percatan de ello. Estos usuarios normalmente no utilizan herramientas como PGP, GnuPG [2] y S/Mime. Los CTOs pueden lamentar su destino o tomar acciones: Los denominados servidores PGP proporcionan una gestión centralizada de las claves de usuarios y se encargan de los procesos de encriptación y desencriptación. Estos servicios eliminan la necesidad de tener que instalar y configurar los clientes

62

Número 16

PGP en cada estación de trabajo, ahorrando bastante tiempo. Los administradores de Linux tienen la posibilidad de usar programas de encriptación gratuitos como GPG-Relay [3] o Kurvert [4], y hay una serie de aplicaciones comerciales (como [5] y [6]) disponibles para Windows. Pero si se prefiere evitar el uso de aplicaciones especializadas, la mejor opción es elegir el programa de gestión de correo universal, GNU Anubis [1]. Anubis, que recibe el nombre de un antiguo dios egipcio, es un servicio de preprocesamiento SMTP. El servicio Anubis recibe los mensajes de un MUA o Mail

WWW.LINUX- MAGAZINE.ES


Anubis • ADMINISTRACIÓN

Figura 1: En una infraestructura normal de correo, cada cliente (MUA, Mail User Agent) pasa los mensajes al servidor SMTP (MTA, Mail Transfer Agent) que gestiona la entrega.

User Agent, (como el cliente Mutt mostrado en la Figura 2), y lo modifica antes de enviarlo al MTA o Mail Transfer Agent, (como el servidor Postfix también mostrado en la figura 2). Anubis puede procesar los mensajes de diversas formas, pero en este caso, una de sus características más útiles es la posibilidad de encriptar el correo usando GnuPG. Posee una herramienta de manipulación de correo experimentada, es una solución de Código Abierto que permite a los administradores instalar una infraestructura PGP centralizada. La desencriptación automática de correo entrante o el uso del estándar PGP/Mime para procesar los ficheros adjuntos requieren el uso de programas como GPG-Relay o Kuvert, pero Anubis es la elección perfecta para encriptar y firmar el correo saliente.

La Funcionalidad Relay

SMTP

Una de las técnicas más comunes para la encriptación o la firma de los mensajes de correo electrónico es usar en cada cliente un plugin PGP como Enigmail [9]. Una

herramienta como Anubis, por el contrario, proporciona una solución alternativa. Ofrece un procesamiento centralizado que a menudo es más fácil de gestionar si se tiene un gran número de usuarios. Con esta solución el cliente ya no tiene que enviar más el correo al servidor de correo, sino que lo dirige al software Anubis, el cual actúa como un proxy, modificando el contenido del mensaje, firmándolo o encriptándolo y por último enviándolo al servidor de correo. Puede ejecutarse en un servidor independiente o en la misma máquina que el cliente o el MTA. Los usuarios tan sólo tienen que configurar sus clientes de correo electrónico de modo que Anubis sea su servidor de correo (véase el cuadro “Trucos SMTP”).

La Instalación

• Guile (para los scripts) • OpenSSL o GnuTLS (soporte SSL) • GPG (GNU Privacy Guard) y GPGme • MySQL (base de datos) • PostgreSQL (base de datos) • GDBM y ficheros de textos (estas variantes de bases de datos se incluyen siempre) Otros componentes son opcionales y sólo tienen sentido en escenarios específicos: • PAM (autenticación) • Libwrap (TCP Wrapper) • SOCKS (soporte SOCKS) • NLS (Internacionalización) • PCRE (expresiones regulares con la sintaxis de Perl).

Gracias a autoconf, el proceso de instalación y configuración de Anubis es realmente sencillo. Pero hay que asegurarse de especificar qué base de datos va a contener la información de los usuarios. En el modo Pixie, se puede además autenticar a los usuarios por medio de un servicio Ident ejecutándose localmente en las estaciones de trabajo. Esta variante no necesita de una base de datos relacional. Además, es posible compilar todos los módulos y decidir una instalación posteDesafortunadamente, Anubis no tiene rior: soporte para el servicio de directorio • Regex (soporte para expresiones reguLDAP. Esta sería una característica útil, ya lares) • GSASL (autentiListado 1: Modo Pixie cación de usuarios) 01 #> Reading system file /usr/local/ • El módulo para el etc/anubis/anubisrc... servicio Ident se 02 #> UID:0 (root), GID:0, EUID:0, EGID:0 incluye siempre

Tabla 1: Abreviaciones utilizadas en el artículo BLOB GPG Guile Mime MTA MUA NLS PAM PGP SASL S/Mime SMTP SSL TLS

Figura 2: Anubis de GNU se sitúa entre el MUA y el MTA. Desde el punto de vista del cliente, Anubis es el servidor de correo. En esta posición, puede manipular el tráfico arbitrariamente.

Binary Large Object GNU Privacy Guard GNUs Ubiquitous Intelligent Language for Extensions Multipurpose Internet Mail Extensions Mail Transfer Agent (Mailserver) Mail User Agent (Mailclient) Native Language System Pluggable Authentication Modules Pretty Good Privacy Simple Authentication and Security Layer Secure Mime Simple Mail Transfer Protocol Secure Sockets Layer Transport Layer Security

03 04 05 06 07

08 09 10 11 12 13 14

#> GNU Anubis bound to<192.168.1.6:24 #> [68239] GNU Anubis is running... #> [68239] Connection from 192.168.120.239:1310 #> [68244] IDENT: connected to 192.168.120.239:113 #SERVER >>> 1310, 24 : USERID : UNIX : haischt(36) #> [68244] IDENT: resolved remote user to haischt. #> [68244] UID:65534 (nobody), GID:65534, EUID:65534, EGID:65534 #> [68244] Getting remote host information... #> [68244] Connected to 192.168.1.6:25 #> [68244] Transferring message(s)... #SERVER >>> 220 smtp. abyssworld.de ESMTP Postfix (2.2.3)(46) #CLIENT <<< 220 smtp. abyssworld.de (GNU Anubis v4.0) ESMTP Postfix (2.2.3)(64)

WWW.LINUX- MAGAZINE.ES

Número 16

63


ADMINISTRACIÓN • Anubis

Listado 2: Configuración Dixie 01 02 03 04 05 06 07 08 09 10 11 12 13

#---BEGIN CONTROL--## ... #mode auth ## ... #---END--# #---BEGIN AUTH--#smtp-greeting-message ESMTP Anubis (4.0.0) #smtp-help-message help message ### Simple text database: ## sasl-password-db file:/usr/local/etc/anubisdb.txt ### Relational MySQL Database #sasl-password-db

que normalmente tanto la información de los usuarios como las claves PGP están disponibles por medio de OpenLDAP o del servidor Active Directory. Durante mucho tiempo, la aplicación Anubis solamente hacía uso de bases de datos en formato texto o basadas en GDBM; el soporte para los sistemas relacionales es aún bastante nuevo para este programa. Así que esperemos que el soporte para LDAP esté disponible próximamente. Se puede comprobar el fichero config.log después de completar la fase ./configure para ver si los módulos se han configurado como se esperaba. Después de completar la instalación, tecleando anubis- show-config-options se puede consultar si los módulos requeridos están realmente disponibles. Anubis espera encontrar sus datos de configuración en /etc/anubisrc. Esta ruta está codificada en src/header.h, pero se puede modificar la localización al vuelo usando --altrc fichero. La fase make install no crea realmente un fichero de

Figura 3: En el modo Pixie, Anubis solicita primero al servicio Ident de la estación de trabajo del emisor que identifique al usuario que ha abierto la conexión antes de aceptar y procesar el mensaje.

64

Número 16

14 15 16 17 18 19

20

mysql://mail:access4anubis@mysql .abyssworld.de/mail;table=anubis _user #sasl-allowed-mech NTLM GSSAPI DIGEST-MD5 CRAM-MD5 #---END--# #---BEGIN TRANSLATION--##translate [USER@]ADDRESS into USERNAME #translate me@daniel.stefan.haischt.name into haischt #---END---

configuración; sin embargo, hay una plantilla en examples/2anubisrc en el paquete del código fuente de la aplicación.

Configuración Personal Adicionalmente, los usuarios que necesiten enviar los correos por medio del servicio Anubis pueden crear un fichero ~/.anubisrc en sus directorios home. El fichero examples/1anubisrc proporciona un ejemplo. Para una prueba inicial, el servicio Anubis también dispone de un modo de depuración: anubis --altrc U /usr/local/etc/anubis/anubisrc U --mode=transparent -v -D -f

Esto le indica a Anubis que se ejecute de forma transparente sin autenticación, proporcionando información detallada de salida (-v), produciendo datos de depuración (-D) y ejecután-

Figura 4: En el modo Dixie el servidor Anubis usa el método SMTP-AUTH para proporcionar una autenticación segura del usuario. El servidor necesita almacenar las credenciales del usuario en una base de datos.

WWW.LINUX- MAGAZINE.ES

dose en segundo plano (-f), en vez de evitar los canales estándar de entrada y salida, como normalmente hacen los servicios.

Autenticación Pixie Anubis posee varias soluciones para identificar a los usuarios. El modo Pixie es una de las soluciones más simples para realizar la autenticación. Este modo se habilita con la entrada mode transparent en el bloque de control del fichero de configuración global. En esta configuración, un servicio Ident (protocolo AUTH) se ejecuta en la estación de trabajo del usuario. Anubis requiere que el usuario se autentique antes de manejar el correo (véase la Figura 3). Sin embargo, esta técnica sólo tiene sentido en un escenario muy específico. El servidor tiene que confiar en el servicio Ident, además, esta clase de comprobación de seguridad del lado cliente sólo funciona si la estación de trabajo es manejada por un administrador responsable que conoce a sus usuarios y que puede estar seguro de que nadie manipulará la configuración de la red. Las buenas prácticas sugieren evitar el uso de este modo de operación.

Práctico pero Inseguro Aunque el nombre del protocolo, AUTH, podría suponer otra cosa, Identd no realiza realmente una autenticación. El servicio está diseñado para seguir la pista de los ataques: el administrador del sistema atacado puede utilizar Ident para comprobar la ID de los usuarios de las máquinas de origen de las conexiones TCP. Basándose en estos datos, el administrador puede entonces contactar con el administrador responsable de la máquina origen. Muchas de las implementaciones de Ident simplemente hacen uso de una ID por defecto ([7], [8]). El Listado 1 muestra una sesión de Anubis en el modo Pixie. Las líneas 6 (intento de autenticación Ident) y 8, donde el usuario de correo se corresponde con la cuenta Unix local haischt, son de interés. Después de la fase de autenticación, el servicio GNU Anubis pasa los mensajes al servidor de correo (Líneas de la 11 a la 14). Los sistemas clientes basados en Windows XP a menudo poseen un corta-


Anubis • ADMINISTRACIÓN

SMTP-AUTH. Anubis lee el nombre del usuario, la contraseña y otras credenciales de una base de datos (un simple fichero de texto o un sistema de base de datos relacional). La variante del fichero de texto incluye el ID del usuario (SMTPAUTH-ID), la contraseña y, opcionalFigura 5a: La tabla MySQL contiene las credenciales del usuario mente, la cuenta Unix haischt, que utiliza Dixie para autenticarse. La cuenta Unix para este y la ruta a la configuusuario tiene el mismo nombre, y el fichero de configuración está ración específica del localizado en /home/haischt/.anubisrc. usuario (Tabla 2). El fichero de texto fuegos integrado que puede ocasionar dispone de una línea para cada problemas durante la fase de comprousuario; los campos están separados bación. En la configuración por defecto, por blancos. De acuerdo con la docuel cortafuegos incomprensiblemente mentación oficial, los campos restringe todas las peticiones Ident al deberían separarse por el carácter “dos puerto 113. Esto tiene que modificarse (o puntos”, pero esta sintaxis ya ni bien desbloqueando el puerto 113 o siquiera funciona en Anubis 4.0. deshabilitando el cortafuegos). Además, La variante del fichero de texto está bien el programa de correo no puede hacer al principio para realizar pruebas y para uso de los nombres de usuarios SMTPentornos pequeños. Si se necesita manejar AUTH en el modo Pixie. un gran número de usuarios, probablemente se prefiera trabajar con una base de Dixie, la Alternativa datos en vez de con un fichero de texto. La Preferida Figura 5a muestra una tabla con el esqueEl modo Dixie (Figura 4) es más nuevo ma apropiado para esta base de datos. y mejor que el modo Pixie. La alternaEl authid está definido como la clave tiva Dixie está basada en el estándar primaria; los campos son todos de

Figura 5b: PHPMyAdmin muestra la estructura de la tabla MySQL utilizada como el almacén de datos del modo Dixie de Anubis.

WWW.LINUX- MAGAZINE.ES

texto. Como se puede ver en la Figura 5b, el contenido de la tabla refleja el del fichero de texto. El siguiente comando importa el fichero de texto a la base de datos MySQL: anubisadm --create U 'mysql://mail:access4anubisU @mysql.abyssworld.de/mail; U table=anubis_test' U < /usr/local/etc/U anubis/anubisdb.txt

El comando especifica la tabla destino como un parámetro URL, la notación es confusa, ya que los parámetros no están separados por el carácter &, como lo estaría en una dirección HTTP, sino por puntos y comas. La URL y los parámetros deben ir entrecomillados para impedir que los interprete la shell.

Integrando la Base de Datos Para indicarle a Anubis que utilice la tabla nueva, el administrador tiene que cambiar el modo de autenticación de mode transparent a mode auth en la sección de control de la configuración global en anubisrc (véase el Listado 2, de la línea 1 a la 5). También es necesario añadir la ruta a las credenciales del usuario en la sección AUTH (líneas 7 a 15). El Listado 2 muestra cómo realizar esto para la base de datos MySQL. Además, los usuarios tienen que decirles a sus programas que utilicen la autenticación SMTP-AUTH cuando envíen un correo electrónico. El Listado 3 muestra una sesión Dixie en funcionamiento. La línea 7 y siguientes muestran a un programa de correo dialogando con el servicio Anubis. El cliente puede usar el mecanismo SASL DIGEST-MD5 y CRAM-MD5 para la autenticación. Ambas soluciones transmiten un hash de la contraseña por la red en vez de una contraseña en texto en claro. En la línea 9, se puede observar al programa de correo tratando con el comando STARTTLS para establecer una conexión SSL segura con el servicio Anubis. Se produce un fallo porque Anubis aún no está configurado para SSL seguro. En la línea 16, el programa de correo y Anubis acuerdan usar el mecanismo SASL CRAM-MD5. El ser-

Número 16

65


ADMINISTRACIÓN • Anubis

vicio busca entonces en la base de datos MySQL un registro que corresponda con las credenciales del usuario haischt y encuentra dicho registro (desde la línea 18 a la 20). La línea 20 tiene un detalle interesante. En esta línea es donde Anubis realiza la correspondencia entre el usuario y la dirección de correo electrónico me@daniel.stefan.haischt.name con el usuario local haischt. La sección TRANSLATION se encarga de realizar la correspondencia entre la dirección de correo y los nombres locales (véanse las cuatro últimas líneas del Listado 2). La sección TRANSLATION del fichero de configuración también puede efectuar la correspondencia entre todas las direcciones de un dominio con un nombre compartido (traducción del Dominio al Usuario). El modo Dixie es útil, ya que hace uso de estándares actuales como SMTP-

Trucos SMTP Algunos programas de correo, por ejemplo Mutt, llaman al programa sendmail directamente para enviar el correo. En este caso, es imposible cambiar el servidor SMTP y el puerto en la configuración del cliente de correo, ya que el comportamiento de sendmail está configurado por el administrador. Además, algunos clientes de correo no soportan la autenticación basada en el mecanismo SMTPAUTH. Programas como MSMTP [10] o ESMTP [11] pueden ayudar actuando como proxies de correo. Los usuarios pueden configurar estas herramientas de línea de comandos individualmente, con el fichero de configuración ~/.esmtprc para el caso de ESMTP: hostname = U anubis.abyssworld.de:24 username = "haischt" password = "access4anubis" starttls = disabled U El servicio envía el correo al servidor Anubis (anubis.abyssworld.de, puerto 24) y autentica usando las credenciales del usuario. La encriptación STARTTLS está deshabilitada. Mutts necesita saber que debería llamar a ESMTP en vez de llamar a sendmail: set sendmail=U "/usr/local/bin/esmtp" U Esta línea en el fichero de configuración de Mutt le indica al cliente de correo qué servicio usar.

66

Número 16

AUTH y proTabla 2: Campos de la base de datos Dixie porciona a los Campo Descripción usuarios de Authid Corresponde con el nombre establecido por el usuario correo elecen las preferencias del programa de correo. Este campo trónico sin se requiere para la autenticación SMTP. cuentas UNIX Passwd El usuario, además, establece una contraseña en el pro acceso al servigrama de correo cliente, que de nuevo es necesario cio. También para la autenticación SMTP. es cierto que la Account Corresponde con la cuenta Unix. Este campo relaciona el nombre del usuario de correo con la cuenta Unix coimplerrespondiente, con el objeto de encontrar un fichero de mentación configuración de Anubis en el directorio home del actual del usuario, por ejemplo. modo Dixie de Config Este campo contiene la ruta (absoluta o relativa) del Anubis tiene fichero de configuración de Anubis de este usuario. Las unos cuantos rutas relativas empiezan en el directorio home del usuario. inconvenientes molestos: Las contraseñas se almacenan en para que firme o encripte el correo. Para claro en la base de datos. El campo de la permitir esta posibilidad, los usuarios base de datos para el fichero de configuhan de añadir sus entradas en la sección ración de los usuarios de Anubis apunta RULE de sus ficheros ~/.anubisrc. Es a un fichero existente. Sería más práctibastante sencillo añadir atributos a la co almacenar los parámetros en un cabecera del correo electrónico utilizancampo BLOB o en una tabla separada. do la notación add header [nombre] Como Anubis posee las credenciales valor: del usuario, ahora es posible el proceadd header[X-Processed-By] U samiento de los mensajes con destino; "GNU Anubis" por ejemplo, se puede configurar Anubis

Listado 3: Sesión Dixie 01 #> Reading system configuration file /usr/local/etc/anubis/anubisrc.. . 02 #> UID:0 (root), GID:0,EUID:0, EGID:0 03 #> GNU Anubis bound to 192.168.1.6:24 04 #> [68643] GNU Anubis is running... 05 #> [68643] Connection from 192.168.120.10:40501 06 #CLIENT <<< 220 abyssone.abyssworld.de GNU Anubis ESMTP; Identify yourself(64) 07 #CLIENT >>> EHLO [192.168.121.2](22) 08 #CLIENT <<< 250-Anubis is pleased to meet you.(36) 09 #CLIENT <<< 250-STARTTLS(14) 10 #CLIENT <<< 250-AUTH DIGEST-MD5 CRAM-MD5 (31) 11 #CLIENT <<< 250 HELP(10) 12 #CLIENT >>> STARTTLS(10) 13 #[68647] anubis.pem: No such file or directory 14 #CLIENT <<< 454 TLS not available due to temporary reason(47)

WWW.LINUX- MAGAZINE.ES

15 #CLIENT >>> AUTH CRAM-MD5(15) 16 #SASL mech=CRAM-MD5, inp=NULL 17 #CLIENT <<< 334 PDE0MTU0NTMyOTUzMDA2MzI0MTIzLjBA bG9jYWxob3N0Pg==(54) 18 #CLIENT >>> aGFpc2NodCA5ZmQ1MDhkYTYzYzQ3ODRi OGUwMzMzZTNhMmUyM2VjZQ==(58) 19 #> [68647] Found record for `haischt'. 20 #> [68647] Authentication passed. User name haischt, Local user haischt. Welcome! 21 #CLIENT <<< 235 Authentication successful.(32) 22 #> [68647] UID:1001 (haischt), GID:20, EUID:1001, EGID:20 23 #> [68647] Reading user configuration file /home/haischt/.anubisrc... 24 #> [68647] Getting remote host information... 25 #> [68647] Connected to 192.168.1.6:25 26 #> [68647] Starting SMTP session... 27 #SERVER >>> 220 smtp.abyssworld.de ESMTP Postfix (2.2.3)(46)



ADMINISTRACIÓN • Anubis

Anubis también posee ejecución condicional. Si un correo tiene una cabecera with-signature que contiene un valor arbitrario (expresión regular.*, véase el cuadro “Formatos de Expresiones Regulares”), las siguientes líneas son todo lo que se necesita para eliminar la cabecera y añadir una firma basada en texto al final del mensaje: if header [with-signature] U :re ".*" remove [with-signature] signature-file-append yes

signature-file-append yes añade un separador –, seguido por el contenido del fichero ~/.signature, body-append añade el contenido de un fichero arbitrario al final del mensaje mientras que body-clear-append elimina el texto del mensaje original antes de realizarlo.

Comandos en la Línea Asunto Algunos clientes de correo hacen que le resulte complicado a los usuarios

Formatos de Expresiones Regulares Anubis entiende unas cuantas variantes de expresiones regulares. La configuración utiliza las siguientes etiquetas para identificar las expresiones regulares: • :regex o :re: Expresiones regulares simples (Posix Extendido por defecto) • :basic: Conmuta a Posix básico • :extended: Conmuta a Posix extendido (por defecto) • :perl o :perlre: Expresiones regulares compatibles con Perl (sólo si el soporte PCRE está compilado en Anubis) • :exact o :ex: Sin expresiones regulares, el patrón debe ser una coincidencia exacta • :scase: Distingue entre mayúsculas y minúsculas • :icase: No distingue entre mayúsculas y minúsculas Una sentencia puede contener una secuencia de etiquetas: :perl:scase significa expresiones PCRE y con distinción entre mayúsculas y minúsculas. La sentencia regex :perl:scase establece esta variante como opción por defecto.

68

Número 16

añadir cabeceras. Anubis simplifica este proceso para los usuarios ya que analiza la línea asunto: if header [Subject] U "^ *\\[sig\\](.*)" remove [Subject] add [Subject] "\1" signature-file-append yes

La instrucción if comprueba si la línea asunto empieza con [sig] (Sintaxis Posix extendida, si no, no está precisamente especificada). Entonces elimina la línea asunto entera y añade una línea nueva que refleja parte de la línea original del asunto que sigue a [sig]. Para ello, \1 referencia a la cadena entre corchetes pasada por la expresión regular. La línea asunto es tan útil para comandos que Anubis posee su propia sintaxis para manipularla: Disparadores. Los usuarios pueden disparar eventos a través del correo añadiendo el comando al final de la línea de asunto seguido por dos caracteres “@”, como cualquier cadena@@sign. El siguiente disparador se encargará de todo: trigger "sign" gpg-sign meU @daniel.stefan.haischt.name done

El comando gpg-sign firma el cuerpo del correo electrónico con la clave ID especificada. Para ello las claves GPG del usuario deben estar disponibles en el directorio ~/.gnupg, y los ficheros de configuración de los usuarios ~/.anubisrc deben contener la contraseña GPG (gpg-passphrase “micontraseña”). GPG necesita las ID de las claves de los usuarios para realizar la encriptación. Un disparador extendido que analiza datos de la línea de asunto adicionales puede realizarlo mediante: trigger : U extended "^encrypt:(.*)" gpg-encrypt "\1" add [X-GPG-Comment] U "Encrypted for \1" done

La línea de asunto contiene el disparador encrypt seguido por la ID de la clave del receptor:Hola Juan!@@encrypt:ReceiverKey.

WWW.LINUX- MAGAZINE.ES

Anubis Astuto y Sutil Tareas más complejas requieren de un lenguaje de programación más potente y Anubis proporciona esto por medio del lenguaje de script Guile (un dialecto de Scheme). Incluso se pueden utilizar programas externos para la manipulación del correo. En combinación con los comandos integrados, GNU Anubis soporta además técnicas extremadamente flexibles para procesar cabeceras de correo y contenidos. La fuerza real de este programa reside en la habilidad para realizar cualquier clase de manipulación sobre el correo que se pueda imaginar. Al mismo tiempo, el soporte integrado PGP/GnuPG ahorra bastante trabajo de configuración. La autenticación de usuarios aún tiene bastantes cosas que mejorar. (El modo Pixie aplica la solución poco segura Ident y el modo Dixie almacena las contraseñas en la base de datos en claro). Las claves PGP y las configuraciones específicas de los usuarios se almacenan en el sistema de ficheros en vez de en la base de datos. Y además de esto, hay que añadir la carencia de soporte LDAP y PGP/Mime, junto con el hecho de que Anubis aún no es capaz de desencriptar los mensajes entrantes. Esperamos que en las próximas versiones del programa se mejoren todas estas características. ■

RECURSOS [1] GNU Anubis: http://www.gnu.org/ software/anubis/ [2] GNU Privacy Guard: http://www. gnupg.org [3] GPG Relay: http://sites.inka.de/tesla/ gpgrelay.html [4] Kuvert: http://www.snafu.priv.at/ mystuff/kuvert/ [5] PGP Universal: http://www.pgp.com/ products/universal/ [6] GPG Shell (Windows): http://www. jumaros.de/rsoft/ [7] Python Ident Daemon: http://www. alcyone.com/software/fauxident/ [8] Windows Identd: http://identd.dyndns. org/identd/ [9] Enigmail plugin: http://enigmail. mozdev.org [10] MSMTP: http://msmtp.sourceforge. net [11] ESMTP: http://esmtp.sourceforge.net


Bienvenidos a Linux User Ésta es la sección dedicada a la presentación de software interesante y útil que nos ayuda en nuestro quehacer diario con el escritorio Linux. Aquí aprenderemos a utilizar software estándar de una manera más eficiente, adquiriremos valiosos conocimientos y descubriremos nuevas y apasionantes aplicaciones.

Ktools: Kpowersave

70

KPowersave ofrece a los usuarios de KDE una interfaz sencilla y fácil para configurar los opciones de administración de energía.

Gimp

72

Gimp te ayudará a mejorar la calidad de tus menosque-perfectas imágenes digitales.

Fortune

74

El programa Fortune presenta un refrán o una broma cuando arrancas una sesión en tu terminal. También puedes adjuntarlo a tu firma de correo para alegrar tus mensajes.

Educación: Squeak

76

Squeak puede ser el entorno educativo definitivo. Comenzamos su análisis para su aplicación en las aulas en este artículo de Juan Rafael Fernández.

Línea de comandos: Ispell

81

Nadie está a salvo de gazapos y de los enredos con palabras. Correctores de ortografía como Ispell y Aspell se encargan de mantener las letras en su lugar correcto.

Juegos: Quake IV

84

Llega a Linux todo un clásico de los first-personshooters: Quake 4 trae más armas, más efectos, más sonidos y más malos a quienes masacrar.

WWW.LINUX- MAGAZINE.COM

ISSUE 52 MARCH 2005

73


LINUX USER • KPowersave

Un corte de energía cuesta con KPowersave

AHORRO DE ENERGIA

KPowersave ofrece a los usuarios de KDE una interfaz sencilla y fácil para configurar los opciones de administración

de

energía.

POR FRANK WIEDUWILT

E

l hardware moderno viene con un buen número de opciones para economizar energía. KPowersave [1] suministra una interfaz simple para la administración de esas opciones de energía en Linux.

Ayudas Útiles KPowersave requiere una versión actualizada de KDE. También serán necesarias unas cuantas aplicaciones asistentes. El Hardware Abstraction Layer (HAL) [2] facilita el acceso a los periféricos. La versión en la máquina deberá ser la 0.5.4 o posterior. D-Bus, una tecnología que usan los programas para comunicarse en el Sistema X Window [3], debería ser la versión 0.33 o superior, y también se necesitará la versión 0.10.15 de Powersave [4] o superior. Si no se posee la versión actual de OpenSuse o la distribución Linux ALT, será necesario compilar KPowersave así como las aplicaciones asistentes a partir de sus fuente. Se comienza cargando D-Bus en el disco duro. Si una visita a [3] no ofrece

70

Número 16

un paquete para la distribución que se posee, puede compilarse el código fuente que se puede obtener en el mismo sitio. Para ello, hay que descargar el archivo dbus-0-50.tar.gz, y para desempaquetar dar al comando tar -xzvf dbus-0.50.tar.gz. Tras haber desempaquetado los ficheros fuente de D-Bus, se cambia al nuevo directorio dbus-0.50, se escribe ./ configure para crear un Makefile, y se compila el programa introduciendo make. El proceso se completa corriendo su -c “make install” e introduciendo la contraseña de superusuario. Este paso instala D-Bus donde se necesita dentro del árbol del sistema de ficheros. Los pasos requeridos para la instalación de HAL son similares. Para Powersave se introduce autoreconf -fi para crear un Makefile, luego se continúa con el procedimiento estándar para compilar e instalar. Finalmente se instala KPowersave . El archivo de código fuente está disponible desde la página de inicio en [1]. Se desempaqueta el código fuente y se cambia al nuevo directorio kpowersave-0.5.

WWW.LINUX- MAGAZINE.ES

Una vez en él, se escribe make -f admin/ Makefile.common cvs para crear plantillas para los makefiles. El script de configuración crea luego los makefiles. Por último, se introduce make y make install para compilar e instalar el programa.

Trampas Tanto KPowersave como Powersave (el cual viene con la distribución KPowersave) resultaron ser completamente intratables durante la instalación y en nuestro laboratorio. Fuimos incapaces de compilar Powersave en Mandriva 10.2 y Kubuntu 5.04. Sobre Suse 9.3 la máquina no quiso despertarse de nuevo después de desconectarlo con el modo sleep. De hecho, no tuvimos más alternativa que resetearla, lo cual es algo que habitualmente se desea evitar. En contraposición con esto, no hubo ningún problema en OpenSuse 10.0, donde todo funcionó tal y como se esperaba. Para arrancar KPowersave, se escribe kpowersave en una ventana de consola o se selecciona el programa desde el menú K. Después de arrancar, KPowersave se


KPowersave • LINUX USER

Figura 1: Configuración de los esquemas de KPowersave.

mete en la bandeja del sistema, mostrando una pila como icono, si el ordenador portátil está funcionando con energía proveniente de su batería, o un enchufe si estamos conectados a una fuente de energía externa. Puede hacerse un clic sobre el icono para que aparezca un menú con los controles del programa. Si se hace clic sobre Set CPU Frecuency Policy se nos permitirá elegir entre ejecutar, respuesta dinámica a la carga actual o ahorrar energía. Si se activa Set active scheme, se permitirá preconfigurar políticas para escenarios específicos en los que se usará el ordenador. La opción Performance reduce al mínimo las opciones de ahorro de energía. Acoustic reduce el nivel de ruido del ordenador mediante la introducción, tan pronto como sea posible, del modo de ahorro de energía. Presentation detiene la desconexión de la pantalla a pesar de la

ausencia de salida de teclado y ratón. Por último, Powersave reduce la velocidad de la CPU y acorta los intervalos antes de que las entradas al ordenador pasen a modo suspendido. Para enviar al ordenador la orden de que pase al modo suspensión a RAM o suspensión a disco, es preciso hacer clic sobre el elemento del menú de KPowersave que indique la acción.

Figura 3: La opción Autostart arranca KPowersave automáticamente.

Ajustes

Además de todas estas prácticas configuraciones, el programa también permite definir un número determinado de parámetros para una configuración de usuario específica. Nuevamente, puede accederse al diálogo a través del menú contextual. Es preciso destacar que los ajustes que se aplican a KPowersave pasarán a afectar a otros programas, por lo que habrá que andarse con cuidado. La primera página del diálogo (Figura 1) permite modificar la configuración de los esquemas que presenta KPowersave cuando se hace clic sobre el icono (Figura 2). Puede establecerse el comportamiento del salvapantalla, DPMS, y auto suspenderlo individualmente para cada ajuste. También se dispone de la opción de desconexión del salvapantalla e introducción del modo sleep, standby (espera) y acortar los intervalos para KPowersave. Es necesario usar Autosuspend para especificar el intervalo de inactividad antes de que el programa disponga al ordenador en modo suspendido. La segunda etiqueta en el diálogo de configuración presenta las opciones para los tiempos de arranque del programa y para el bloqueo de la pantalla. Puede especificarse si el sistema debe bloquear la pantalla cuando se cierra la tapa. En este caso es necesario introducir una contraseña para poder continuar cuando abramos la tapa. Lock screen with: permite especificar qué programas usará KPowersave para cerrar la pantalla. Figura 2: Elige el esquema y configura otros requeEl elemento Edit general blackrimientos tales como la Política de Frecuencia de la list ofrece un diálogo en el que se CPU a través de un menú de contexto de fácil manejo.

WWW.LINUX- MAGAZINE.ES

pueden especificar programas que impidan que la máquina pase a modo suspendido. La herramienta ofrece una lista de programas, incluyendo programas de TV, ripeadores de CD y herramientas de presentación. Es posible añadir a la lista aplicaciones no-interrumpibles propias. El botón Sound settings nos lleva hasta un diálogo en el que se pueden asignarse sonidos a eventos, tales como energía de la batería baja.

Conclusiones El programa me deja con algunas dudas. Sobre OpenSuse, KPowersave cumple su promesa de hacer más fácil a sus usuarios el establecimiento de las opciones del ahorro de energía mediante su asignación a un simple botón. Sin embargo, sobre distribuciones un poco más antiguas, la compilación de la aplicación y de sus asistentes, así como el hecho de correr el programa, presentan dificultades. A pesar de todo, el software está bien encaminado, pero Linux ofrece a sus usuarios otras muchas opciones para la administración del ahorro de energía. Aparte de KPowersave, existe un módulo Yast, una aplicación WindowMaker y un applet Gkrellm. La buena noticia es que, sea cual sea la distribución que se use, seguro que encontraremos una herramienta de ahorro de energía en alguna ■ parte.

RECURSOS [1] KPowersave: http://freshmeat.net/ projects/kpowersave. [2] HAL: htp//freedesktop.org/~david/dist/ [3] Dbus: http://hal.freedesktop.org/wiki/ Software_2fdbus [4] Powersave: http://sourceforge.net/ projects/powersave/

Número 16

71


LINUX USER • Gimp

Rescata tus instantáneas veraniegas con Gimp

FOTOS PERFECTAS Gimp te ayudará a mejorar la calidad de tus menos-que-perfectas imágenes digitales. POR PETER KREUSSEL

L

a imagen central de tu foto se encuentra un poco descentrada y la exposición no es exactamente la que se esperaba. El flash originó algunos reflejos indeseados y los colores revelan un tiempo meteorológico no demasiado apropiado (Figura 1). Pero lo cierto es que pasaste unas inolvidables vacaciones y por eso desearías que tus fotos fueran tan perfectas como lo siguen siendo en tu memoria aquéllos días. Gimp puede ayudarte a conseguir sacarle lo mejor de esas imperfectas fotos.

La Perspectiva Correcta Uno de los errores más obvios se debe a que el fotógrafo no sujeta la cámara correctamente. Gimp puede corregirlo usando la herramienta rotación (Rotate the layer or selection). Se mantiene como predeterminado Transform layer para Affect:, y se selecciona Cubic (mejor) para Interpolation para conservar todos los datos posibles de la imagen. Seguidamente es preciso arrastrar el ratón para rotar la imagen hasta que los márgenes estén derechos. Después puede usarse la herramienta de corte para eliminar los espacios en blanco en los bordes de la ima-

72

Número 16

superior izquierda y a la inferior derecha de la selección hasta que la imagen quede cubierta. En nuestro ejemplo, no solamente eliminamos el borde vacío sino que también cortamos estos bordes para crear una sección dorada (Figura 3). La sección dorada es un concepto artístico que ha estado en boga durante algún tiempo, pero simplemente alude a que una imagen parece más armoniosa cuando el motivo principal ocupa el centro geométrico en vez del el centro óptico. Para encontrar esta sección dorada divide cada lado de la imagen en dos secciones, de modo que la relación entre las secciones mayor y más pequeña sea aproximadamente la misma que la relación entre la suma de las dos secciones con respecto a la sección más grande. Ésta es una porción de aproximadamente 1.618:1. El punto de intersección constituye la posición perfecta para situar el motivo central de la imagen.

Corrección del Color con un solo clic Nuestra foto de muestra se encuentra ligeramente infraexpuesta y su escaneo ha hecho que los colores sean verdosos y azulados. Ésta no es una representación Figura 2: Después de procesada, la calidad de apropiada de los la imagen se encuentra visiblemente mejocolores que existen gen causados rada. en la vida real. por la La herramienta Layer | Colors | Levels rotación. Para ello, en primer lugar se elimina este tipo de imperfecciones. En el hace clic sobre la imagen y luego se arrasgráfico, los valores a la izquierda son tran las manijas a la parte para tonos oscuros mientras que los de la derecha lo son para los claros. Los vacíos indican un defecto de color que podría ser causado Figura 1: Luz tenebrosa, pérdida de color y algunos balanceos de la cámara… Gimp aún puede rescatar el momento.

WWW.LINUX- MAGAZINE.ES


Gimp • LINUX USER

¡Que brille el Sol!

Figura 3: La sección dorada es un importante principio de diseño.

Figura 4: Herramienta de corrección de color automática.

por el escáner, pero que igualmente podría estar originado por el sensor de la cámara digital o también por una iluminación pobre (Figura 4). En el Channel inferior se seleccionan uno a continuación del otro los colores rojo, verde y azul haciendo clic en el botón Auto cada vez para completar los huecos. El control de la distribución de la luminosidad ayuda a compensar la infraexposición. Para permitir que el control modifique los tres canales al mismo tiempo, es preciso eliminar la selección del último canal de color que se tenía seleccionado estableciendo Channel to Value. Posteriormente, para iluminar la imagen, se usa el ratón para arrastrar el control de la luminosidad a la izquierda o se escribe un valor positivo mayor que 1 en el cuadro central y se hace clic en OK. Un valor inferior a 1 oscurecerá la imagen. Nótese que esta herramienta también eliminará tonos naturales, tales como el rojo de una puesta de sol. También afectarán a los resultados las áreas monocromas y la ausencia de sombreado. En este caso, es preferible la herramienta Layer | Colors | Color balance.

Con los cambios que se han realizado hasta el momento se ha conseguido que la foto sea más realista que la menos-que-perfecta original. ¿Pero se desea realmente guardar una grabación auténtica de un día de lluvia? La herramienta Layer | Colors| HueSaturation permite incrementar los valores de saturación, dando como resultado colores más intensos. Empujando los matices hasta un rango negativo, puede incrementarse el espectro del rojo para conseguir colores más cálidos. Si se añade más luminosidad, incluso la foto de un día lluvioso, parecerá que se ha tomado mientras brillaba el sol. Los reflejos en la fotografía debidos al flash nunca son deseables. Gimp puede eliminarlos pintando las áreas con datos de imagen de áreas vecinas. Para hacerlo, se selecciona el área que se desea eliminar usando la herramienta varita (Select contiguous regions). En las opciones de herramientas, se habilita Feather edges y se introduce un radio de 10. El campo Threshold: permite especificar un valor de umbral para espacios que la función debería tratar como similar. Un valor de 30 está bien para nuestro ejemplo. A continuación se hace clic en el centro de la reflexión para seleccionar la región que se desea eliminar. Si es necesario, se presionan las teclas [+] y [-] para hacer zoom de acercamiento y alejamiento. Para volver a usar esta selección, puede guardarse usando la opción del menú Select | Save to channel. Se selecciona la herramienta de movimiento y se establece la opción Affect: en Transform selection. Se traslada la selección a un área con un color similar, tal y como se muestra en la Figura 5; puede crearse una copia presionando [Ctrl]+[C]. Si se hace [Ctrl]+[L] se abren las capas de diálogo y se crea una nueva. Para cambiar el canal de diálogo se presiona Dialogs | Channels), se hace clic en Selection mask, y se selecciona Channel to selection. Esto desplaza la selección hacia atrás, esto es, a su posición original. En las capas de diálogo, se selecciona la capa que se acaba de crear, y luego se presiona [Ctrl]+[V] para insertar el contenido del portapapeles en la selección. Ahora puede usarse el cursor para ajustar la opacidad para igualar la región circundante. Deshabilitando View | Show selection y View | Show layer boundary obtendremos una visión mejor de la imagen.

WWW.LINUX- MAGAZINE.ES

Figura 5: Eliminación de un reflejo copiando de un área diferente.

La herramienta marca de pintura debería dar mejores resultados con algunas imágenes. Para experimentar, se selecciona una brocha con un borde suave (Circle Fuzzy permite elegir un tamaño adecuado), tras lo cual se establece primero la opacidad al 50% o menos. Se mantiene presionado [Ctrl] y se hace un clic derecho para decirle a Gimp que use los valores del color en esta región. Luego pueden presionarse los botones del ratón para pintar el área objeto con dichos valores.

Otros Retoques A menudo las fotos están malogradas debido a los ojos rojos que se originan cuando el flash se refleja en ellos. Para eliminar esos horribles ojos rojos se usa la herramienta varita para seleccionar la zona afectada, se habilita Feather edges y se establece un valor en torno a 10 dependiendo del tamaño del ojo con el que se esté trabajando. Si se hace clic en esa región pero se selecciona con la herramienta varita una zona demasiado grande, se podría reducir la misma con el valor Threshold; en cambio, si el área seleccionada es demasiado pequeña, sería preciso incrementar dicho valor. Con [Ctrl]+[Z] puede volverse a la imagen inicial si el experimento resultó fallido. Cuando la selección se realiza a nuestro gusto, se elimina este efecto haciendo clic en Layer | Colors |Desaturate. Además, se cambia la luminosidad en el diálogo Layer | Colors | Levels moviendo el control de luminosidad izquierdo a una distancia razonable a la derecha.

Retoque Fácil Las técnicas discutidas en este artículo muestran cómo pueden mejorarse las fotos en unos cuantos pasos. Claro que, solamente uno mismo puede decidir la imagen mejorada que más se acerca a la memoria ■ personal.

Número 16

73


LINUX USER • Fortune

Galletitas de la suerte para Linux

LA PITONISA

El programa Fortune presenta un refrán o una broma cuando arrancas una sesión en tu terminal. También puedes adjuntarlo a tu firma de correo para alegrar tus mensajes. POR HAGEN HÖPFNER

S

i se desea conocer el futuro sin tener que esperar hasta tu próxima comida china, ¿Por qué no configuras tu ordenador personal Linux para distribuir galletas de la “fortuna” virtuales?

¿Qué Versión? La mayoría de las distribuciones Linux incluyen una herramienta fortune-cookie conocida como Fortune. El paquete para Suse 9.3 se denomina fortune. Los usuarios de Gentoo disponen del comando emerge fortune-mod para añadir la pitonisa virtual a su colección de software. La herramienta original Fortune fue escrita en 1986 por Ken Arnold y se ha seguido desarrollando desde entonces. En 1995, Amy A. Lewis creó una versión aumentada sobre la cual está basada fortune-mod, y cuyo año de lanzamiento fue el 2004. Me centraré en la versión antigua, pero pueden seguirse todos los ejemplos si la distribución de que se dispone incluye el paquete fortune-mod.

74

Número 16

¿Cómo dice? La forma más sencilla de correr la herramienta es teclear el comando fortune, el cual ofrece como salida una cita o un chiste (Figura 1). Los dichos se toman de unos ficheros de bases de datos que se incluyen en el programa. Los ficheros de la base de datos residen típicamente en la carpeta /usr/ share/fortune/. Mandriva almacena los ficheros en /usr/share/games/fortunes. Pero fortune -f permite encontrar de manera rápida los temas que cubre su versión de Fortune. Si se desea restringir fortune a un fichero de la base de datos de citas único, simplemente será necesario especificar el fichero como un parámetro. Escribiendo fortune

startreck

Prolijo y Versátil Si las bases de datos de citas de las que se dispone no son de tu gusto, puede conseguirse algo más apropiado en Internet. El sitio especificado en [2] es un buen lugar donde comenzar a buscar. Los fans de los Simpsons estarán encantados con los contenidos de [3]. Para nutrir a Fortune con las citas de Bart Simpson se descarga y desempaqueta el fichero, y luego se arranca el servidor introduciendo fortune U ./fortune-simpsons-chalk board U /chalkboard

Si se pretende correr Fortune con determinadas bases de datos que no están incluidas por defecto, es una buena idea crear un directorio separado para cada base de datos: ~/.my_quotations, por ejemplo. Luego podrá copiarse la base de datos de citas y el fichero acompañante .dat, por ejemplo

linuxcookie

Fortune restringirá sus citas a las relativas a Star Trek (incluyendo su fecha estelar) y diversos temas relativos a Linux.

WWW.LINUX- MAGAZINE.ES

Figura 1: Introducción del comando Fortune en una ventana de terminal para que presente una cita o chiste.


Fortune • LINUX USER

encontrarán localizados en la carpeta Datfiles. Sin embargo, el paquete no incluye los ficheros índice para las colecciones, es decir, los ficheros .dat no se encuentran. Cuando se llama a fortune/ provierbios.fortune, el programa presenta un mensaje de error en el que dice que no puede encontrar la base de datos. Figura 2: Algunos salvapantallas como Phosphor de KDE Afortunadamente, la pueden integrar Fortune. herramienta necesaria para crear un índice, chalkboard y chalkboard.dat en el nuevo strfile se instala automáticamente junto directorio. con el programa Fortune. strfile analiza Para decirle a Fortune que analice esta los ficheros como bloques de texto carpeta, simplemente hay que especificar separados por simples signos de la ruta cuando llama al programa: fortune porcentajes. Usa esta información para ~/.my-quotations. Si se desea añadir una crear un fichero con un índice para los nueva base de datos de citas a los ficheros bloques de texto. La sintaxis para nuestro existentes, simplemente hay que ejemplo sería especificar las dos rutas en la línea de /usr/sbin/strfile U comandos. Pueden usarse porcentajes provierbios.fortune U para incrementar las probabilidades de provierbios.fortune.dat que Fortune seleccione una cita de tu directorio favorito: fortune 90% ~/ La herramienta strfile también es útil si se .my_quotations 10% /usr/share/fortune desea crear una base de datos a partir de te asegurará que el 90% de todas las citas un fichero con sus propias citas. Primero proceden de tu propia colección. Pero es es preciso crear un fichero de texto con preciso asegurarse de que los porcentajes las citas y refranes requeridos. Hay que sumen un total de 100%, de lo contrario Fortune lanzará un error. seguir cada entrada en el fichero con una línea que contenga un signo de Más Refranes porcentaje, como en Si se quiere añadir a Fortune una base de datos que no fuera en Inglés, es La venganza es un plato queU conveniente echar una ojeada a la se sirve frío. colección en [4]. Las páginas incluyen % una base de datos de Fortune en español No por mucho madrugar, amaneceU bajo fortune-es_1.24.tar.gz. Cuando se más temprano. desempaquetan los ficheros de las citas se % Luego se elige un nombre para almacenar el fichero, como por ejemplo, my_fortunes, y seguidamente se corre el comando /usr/sbin/strfile my_fortunes my_fortunes.dat para crear el índice.

Sin Preocupaciones Figura 3: Habilitando Fortune como un generador de firma en las configuraciones de identidad de Kontact.

Además de ofrecer un interesante artilugio para la línea de comandos, Fortune tiene otros usos. Por ejemplo, podría añadirse una llamada a Fortune al final del fichero ~/.bashrc para que el

WWW.LINUX- MAGAZINE.ES

programa te recibiera con un refrán absurdo diferente cada vez que se abre una ventana de terminal. Fortune también es útil en combinación con un salvapantalla. En KDE puede combinarse con el salvapantalla Phosphor, por ejemplo (Figura 2). Si no se usa KDE, el comando xlock-modemarquee ofrecerá un salvapantalla con muchas variaciones. Fortune es también útil como generador de firmas para correo. Por ejemplo, Kontact tiene una opción que permite configurar una firma para cada ID de correo en Settings/ Configure Kmail. Para permitirle al programa que añada una cita o refrán al correo electrónico, es preciso hacer doble clic en la identidad y en la ventana Edit Identity seleccionar la etiqueta Signature. Hay que marcar el cuadro Enable Signature en la etiqueta Signature, posteriormente hay que seleccionar Output of command en el menú inferior Obtain Signature text from: y hay que introducir el comando Fortune en el cuadro etiquetado Specify command (Figura 3). Es buena idea correr Fortune con las opciones -s -n 320 para las firmas de correo. -s le dice a Fortune que mantenga salidas “short” (esto es, cortas), mientras que el comando -n 320 le dice que considere todas las citas de menos de 320 caracteres como cortas. Otros programas de correo, tales como Sylpheed también disponen de opciones para el uso de citas Fortune como firmas. Pero no se preocupe si sus programas no disponen de esta opción. Fácilmente puede escribirse un script o establecer un cron para que invoque a Fortune a intervalos regulares y escriba la salida del comando al fichero ~/.signature. Luego puede configurar el programa de correo para que use los contenidos del fichero ■ como firma.

RECURSOS [1] fortune-mod: http://www.redellipse. net/code/fortune [2] Bases de datos de Fortune en Freshmeat: http://freshmeat.net/browse/ 895 [3] Citas de Bart Simpson: http://www. splitbrain.org/Fortunes/simpsons/ fortune-simpsons-chalk-board.tgz [4] Fortunes de Debian: http://packages. debian.org/unstable/games/

Número 16

75


LINUX USER • Educación

¿La herramienta que hará la revolución educativa?

SQUEAK

Todos escribimos sobre Squeak. Claro, uno también. Tenemos la idea de que Squeak es una aplicación que puede ayudar a cambiar la forma de enfocar la enseñanza y el aprendizaje, pero nos cuesta explicarnos y ser convincentes. Vamos a intentarlo. POR JUAN RAFAEL FERNÁNDEZ GARCÍA

S

queak rompe nuestros esquemas. Por un lado es visualmente distinto, y además eso de poner a los alumnos a programar… Squeak parte de la tan citada premisa de que se aprende haciendo, y la concreta con la idea de que los ordenadores son las herramientas que permiten un nivel de visualidad y de realismo de las simulaciones y modelos que no se podían alcanzar hasta ahora. Su uso conlleva un cambio en la forma de dar clase. También el convencimiento de que parte de la evolución del mundo de la informática ha seguido un camino equivocado, que ha convertido a los usuarios en

clientes a los que hay que devolver el control del ordenador y de su proceso de aprendizaje. Y que el esfuerzo que implica para los profesores está justificado y es necesario. Lo escribe Alan Kay con todas sus letras: «Virtualmente todas las dificultades de aprendizaje a las que se enfrentan los niños están causadas por la incapacidad de los adultos para establecer entornos de aprendizaje razonables para ellos. El principal obstáculo para la mejora de la educación de los niños, con o sin ordenadores, es la imaginación extremadamente pobre de la mayoría de los adultos»[1]. ¿Quién tiene miedo a un desafío intelectual? Nosotros no, ¿verdad?

Squeak, primera mirada

Figura 1:Esto es Squeak.

76

Número 16

¿Qué es Squeak?[2] Fácil, el ruido que hace un ratón inglés[3]. Vale vale, muy ingenioso, eso explica la mascota. ¿Y el Squeak de nuestros ordenadores, el Squeak de la figura 1? Miremos por

WWW.LINUX- MAGAZINE.ES

partes. Desde determinado punto de vista es un entorno creado con un lenguaje de programación orientado a objetos, Smalltalk, que permite al usuario la manipulación de los objetos Smalltalk[4]. El paciente lector estará pensando: ya ha dado la explicación rara, a ver si viene ahora la explicación sencilla. Vamos a intentarlo: imaginen el momento en que escribo, en un rectángulo blanco incluido en una ventana con unos iconos (Nuevo, Abrir, Guardar…) y unos widgets (la barra de desplazamiento, la barra de estado, pestañas…), este editor ha sido creado con un lenguaje que utiliza clases y objetos para dibujar la ventana, los controles, las operaciones que puedo realizar, borrar palabras, seleccionar fragmentos de texto, cambiarlos de sitio (los métodos). ¿Y si dejamos esos objetos vivos para que el usuario pueda transformarlos? Esa es una de las cosas que es Squeak, el aspecto técnico. Squeak es también una máquina virtual como la de java, una capa situada por encima del sistema operativo, y por tanto independiente de él: hay máquinas virtuales Squeak para cualquier sistema operativo. Intenta ser el sistema operativo que usaríamos si no estuviéramos anclados en tecnologías de hace treinta años (repito ideas que he oído a


Educación • LINUX USER

Figura 2: Jugando con texto.

Francisco de Urquijo y a Diego Gómez Deck). Pretende por tanto incluir todo lo que de utilidad proporciona un sistema operativo actual: editor de documentos y presentaciones multimedia (quizás un vistazo a la figura 2 nos puede orientar), reproductor de sonido, video, sintetizador de voz, navegador web, cliente de correo… Examinemos ahora con más detalle la figura 1: a primera vista es un programa que ocupa toda la pantalla, de colores inusualmente vivos, y pequeñas ventanas dentro. Lo que nosotros los profesores y alumnos vemos de Squeak es sólo una capa superficial, compuesta fundamentalmente por eToys y Ensayos activos. Leemos en Small-land[5]: «Los eToys son ambientes de computadora que ayudan a las personas a aprender sobre sus ideas construyendo y jugando con ellos. Los eToys ayudan a un usuario (usualmente un niño) a crear un grato y agradable modelo computacional de la idea y provee de pistas sobre cómo la idea puede ser ampliada». Un Ensayo activo (Active Essay) «es un nuevo tipo de medio literario que combina un ensayo escrito, con simulaciones, y con los programas de computación que hacen que todo trabaje en orden para proveer una profunda explicación de un sistema dinámico. El lector trabaja directamente sobre diferentes representaciones de los conceptos en discusión. Jugando con las simulaciones y el código, el lector obtiene experiencia concreta sobre el tópico». Los profesores y alumnos trabajan con estos tipos de objetos de alto nivel, y pueden utilizar guiones para programar visualmente el comportamiento de los

objetos. No se espera de nosotros que buceemos hasta el código Smalltalk subyacente (tampoco se nos prohíbe ni se nos oculta, las fuentes están ahí siempre). Podemos llegar a la conclusión de que Squeak no es un programa, es un entorno especial donde se ejecutan programas con una intención fundamentalmente educativa; Squeak es un mundo para crear mundos.

Instalar Squeak ¿Cómo conseguir Squeak? Para un debianita la respuesta semiautomática sería: aptitude install squeak. Pero no es tan sencillo, porque ciertos problemas con la licencia (ver el cuadro 1) han impedido que Squeak entre en los repositorios de Debian (o Debian-edu/ Skolelinux). Sin embargo, sí hay paquetes instalables. Por un lado los de la Fundación Squeak, basta añadir la línea deb http://box2.U squeakfoundation.org/files/U debian/ unstable main

y obtendremos la versión 3.8a en inglés. Podemos además añadir otra línea, deb http://debian.ofset.orgU sarge main

que nos proporcionará la imagen Freeduc creada por el grupo de desarrollo francófono[6] (figura 3). Pero si queremos una versión española a la última es preferible utilizar deb http://www.linex.org/U sources/linex/debian/ sargeU main contrib linex non-free

que nos proporciona las fuentes, imágenes y plugins para el navegador (versión educarex-squeak_20060106-1 en el momento de escribir estas líneas). Sugiero instalar también los paquetes algebra-squeak y tusitala; ya veremos más adelante su interés.

WWW.LINUX- MAGAZINE.ES

¿Fuentes, imágenes, plugins? Squeak se presenta bajo la forma de varios componentes: 1. Un grupo de tres ficheros que representan el conjunto del entorno y de los programas en un estado dado. Para ser más exactos: 1a.- uno o varios ficheros imagen (.image), capturas de una sesión completa Squeak en código bytecode (estado optimizado del código Smalltalk), 1b.- un fichero con las modificaciones que un usuario ha efectuado sobre la imagen (.changes, por ejemplo con actualizaciones, nuevos proyectos, etc.) y 1c.- un fichero con el código fuente original (.sources). 2. Una máquina virtual (VM), un ejecutable propio del sistema operativo huésped, que puede interpretar ficheros imagen. Y un plugin para poder ejecutar el código en remoto desde un navegador (la figura 4 nos muestra un recurso llamado simstory ejecutado desde el navegador). 3. Pero ahí no queda la cosa. Desde la versión 3.7[7] es posible utilizar el Cargador de Paquetes SqueakMap (figura 5) para descargar e instalar paquetes desde internet. 4. Y lo más importante: podemos guardar nuestros proyectos (ficheros .pr), exportarlos e importarlos de repositorios (figura 6). Si hemos instalado varias imágenes (en ~/.squeak/) al lanzar la máquina virtual se nos ofrecerá la posibilidad de seleccionar qué imagen deseamos ejecutar (figura 7).

Los duros hechos Todos los conocemos: esos alumnos desertores viscerales de la escuela que luego son capaces de repetir sin pestañear las alineaciones completas de todos los clubes de primera y segunda división o el plano completo de los reinos del Señor de los anillos. Alumnos a los que no se les saca una frase en inglés y luego son capaces de desentrañar el sentido de un abstruso texto en imitación de inglés medieval para avanzar en el juego de rol. O robar contraseñas del messenger (bueno, eso ya no tiene mucho mérito). Anotemos la forma en que plantea el problema Papert: «al intentar enseñar a los niños lo que los adultos quieren que aprendan, ¿utiliza la escuela los métodos a los que

Número 16

77


LINUX USER • Educación

Cuadro 1: La licencia de Squeak No es que el de la licencia de Squeak (conocida como Squeak-L) sea un tema recurrente, es que es un tópico permanente que ha aparecido en las listas de sleducación (diciembre de 2003),Skolelinux/Debian-edu (marzo de 2004), Debian-legal (abril 2004)… El texto en inglés de la licencia está en http://squeak.org/SqueakLicense/ ,y la licencia y sus problemas se comentan en http://minnow.cc.gatech.edu/squeak/159. Para comprender las dificultades que implica, primero hay que familiarizarse con la historia de Squeak, para lo que es útil visitar http://minnow.cc.gatech.edu/ squeak/389 (para la prehistoria bien vale http://gagne.homedns.org/~tgagne/ contrib/EarlyHistoryST.html). «Squeak comenzó de forma muy sencilla, a partir de las necesidades de un grupo de investigación en Apple. Queríamos que un sistema tan expresivo e inmediato como Smalltalk pudiera conseguir varios objetivos en cuanto a las aplicaciones desarrolladas: prototipos de software educativo, experimentos con la interfaz de usuario y (seamos honestos) otro intento en el tema del Dynabook» (su primer proyecto de ordenador perhttp://swiki.agro.uba.ar/ sonal, ver small_land/64; la cita procede de http:// minnow.cc.gatech.edu/squeak/158). Con el paso del tiempo Apple se desinteresó por el proyecto, y Kay y su equipo pasaron a trabajar para la Disney desarrollando la aplicación; actualmente el trabajo se realiza entre Hewlett Packard y el Instituto Viewpoints Research (http://

naturalmente acuden los humanos cuando aprenden en situaciones no relacionadas con la escuela?»[8]. Otro hecho: qué absurdos son los pasatiempos. ¿Qué sentido tiene romper una foto en fragmentos para que otra persona recomponga la frase original? ¿qué sentido tiene cambiar el orden de unas palabras en una frase, o borrar una de cada x palabras, para luego no llegar más allá que a la frase original? Qué absurdos son algunos ejercicios y qué inútiles son algunos exámenes. Otra: confieso que he vivido, que he visto flotas enteras arder en galaxias… digo… he visto justificar como trabajo con los ordenadores hacer a los alumnos copiar con un editor de texto los ejercicios del libro. Todos nos escandalizamos, pero lo que hace este profesor es sólo lle-

78

Número 16

www.viewpointsresearch.org/). Pero el copyright sigue perteneciendo a una empresa a la que no le interesa, y que por tanto, no va a modificar. Escribe el departamento legal de la sección europea de Apple a Knut Yrvin (de Skolelinux) en marzo de 2004: «Squeak es un producto obsoleto [sic] que ya no desarrolla Apple, y por tanto, no es factible que reexaminemos o modifiquemos los términos de la licencia usada por Squeak. No obstante, la comunidad de Squeak de los Estados Unidos está explorando la posibilidad de usar la opción de relicenciamiento contemplada en la licencia de Squeak para permitir que una tercera parte acepte la cláusula de indemnización, y permitir así a proyectos del estilo de Debian incluir Squeak con una licencia derivada (downstream» ¿se traduce aquí por derivada?, no soy abogado). Ese es el primer problema, acompañado por el hecho de que Smalltalk y el origen de Squeak datan de los años setenta y por tanto son anteriores y ajenos al origen del movimiento del software libre. Otro aspecto que sólo puede interesarnos por razones históricas es el los tipos de letras empleados. Los tipos propiedad de Apple hace tiempo que dejaron de utilizarse y por lo tanto el problema ya no existe. Como señalaba Gregorio Robles en el 2003 «El mayor problema de la licencia de Squeak está en la cláusula de indemnización. Esta cláusula hace que, por ejemplo, Debian no lo incluya en su

var al extremo la tendencia generalizada a repetir las formas de la enseñanza tradicional con nuevas herramientas. Más: qué bonitas son algunas animaciones, esas páginas web con profusión de flash… nosotros nunca llegaremos a hacer cosas de ese nivel. Menos mal que se pueden alquilar, y pagaremos por el uso de repositorios llenos de recursos cómodos de utilizar. Qué escuela más moderna será aquella en la que los ordenadores saluden «hola, Juanito», hoy te toca realizar la tarea 33 del nivel 5, todo muy multimedia y estándar IMS LD, usabilizado y afectivizado con la garantía de la empresa X.

El razonamiento Aprendizaje constructivo. Todos, todos los artículos de pedagogía empiezan así.

WWW.LINUX- MAGAZINE.ES

http://lists.debian.org/ distribución: debian-legal/2001/debian-legal-200110/ msg00028.html» (para el examen en la lista de discusión legal de Debian ver también http://lists.debian.org/ debian-legal-0404/msg00160.html y http://lists.debian.org/ debian-legal-0404/msg00242.html). ¿Qué dice la famosa cláusula 5? Que quien acepte la licencia deberá indemnizar a Apple por los daños, responsabilidades, costes, etc. que resulten de reclamaciones efectuadas por terceras partes contra Apple que se deriven del uso, distribución o modificación del software de Squeak por el licenciatario (y potencialmente sus sublicenciatarios). Que si un alumno crea un mundo que, de alguna manera ocasiona perjuicios contra alguien, y eso acaba en una reclamación contra Apple, el que deberá asumir los costes es quien haya aceptado la licencia y haya distribuido el código de Squeak. La cuestión que discutimos no es si Alan Kay y los desarrolladores de Squeak sienten o no que su programa es libre, que podemos estar convencidos de que lo sienten, ni es la probabilidad de la reclamación, sino si la cláusula hace o no libre la aplicación. Y creo que podemos concluir que no es libre en el sentido del software libre de la FSF y de Debian. Squeak es casi-libre. Que esto implique que no se pueda o deba utilizar en nuestras clases es otro debate; claro que si escribo sobre Squeak mi opinión es fácilmente deducible.

Con la lista de santos padres, Piaget, Ausubel, Bruner. Y tras el paso al cibermundo, Papert y Kay. No sé si la pedagogía del siglo XX algún día llegará a ser una ciencia y si será bueno seguir troceando conocimientos cada vez más profundos acerca de casi nada, pero la labor de un profesor de secundaria que escribe artículos es picotear, buscar una perspectiva y hablar todo lo claro que sea posible. Cuando una hipótesis científica se convierte en retórica pedagógica hay que repensarla. Volver al principio, plantarse la cuestión del modo más sencillo: los filósofos saben que todo conocimiento es construcción al menos desde Descartes (por no aventurarme a asegurar como hacía el otro que todo está en Platón). Es curioso el hilo de continuidad que


Educación • LINUX USER

Figura 3: Imagen de Squeak en francés.

podemos establecer entre geómetras, y si no me creen, lean esta cita: «Toda auténtica definición científica es genética: no se limita a copiar un objeto existente, sino que pone de manifiesto las leyes de su propia formación. Así, por ejemplo, no basta con explicar la circunferencia como una figura en la que todos los puntos se hallan situados a la misma distancia del centro común, pues lo que con ello designamos no es más que una cualidad concreta de la circunferencia, que no constituye, ni mucho menos, su esencia conceptual. Para captar ésta es necesario indicar la regla de la construcción de la circunferencia, explicarla, por tanto, como aquella figura geométrica que nace mediante el movimiento de rotación de una línea recta en torno a uno de sus dos puntos extremos, considerado como fijo». Dejo para la nota a pie de artículo la respuesta a la pregunta de a quién corresponde la cita[9]. El texto lo que me sugiere intensamente es que el orde-

Figura 5: Buscando paquetes con SqueakMap.

Figura 4: El plugin en acción.

nador es la máquina que buscaba el filósofo, la herramienta que va a conseguir que los niños comprendan en toda su dimensión qué es una circunferencia. El texto está muy cerca incluso en el lenguaje de la evidencia de las ideas poderosas de Papert: devolverle su cuerpo a las matemáticas, el movimiento de la tortuga crea la circunferencia.

La promesa Hemos estado hablando de lo que es Squeak en el sentido de cómo está hecho, no de lo que pretende ser. ¿Para qué se desarrolla Squeak? Papert y Kay[10] parten de una crítica a las formas de enseñanza de la escuela tradicional y al uso que se ha hecho de la tecnología en las aulas. Debemos intentar resumir la crítica, porque es posible -sólo posible, que nadie se enfade- que estemos decidiendo si se van a usar rincones de trabajo en nuestras aulas o un laboratorio de informática, sin la necesaria reflexión previa.

¿Cuántos ordenadores? En primer lugar nadie cree en la magia: la inversión económica, la simple presencia de los ordenadores, no cambia la forma de enseñanza/aprendizaje. El laboratorio de informática constituye la reacción de la escuela tradicional ante la presencia de los ordenadores: «en lugar de atajar y desafiar así la misma idea de fronteras entre materias, el ordenador se convertía en una nueva materia». Una de las ideas clave se puede resumir en el siguiente razonamiento de Kay: tendemos a confundir el piano con la música. Obligamos a los alumnos a «dar piano» antes de que amen la música, con la consecuencia de que frecuentemente se alejan de la música para siempre. El ordenador es el mejor piano inventado, pero sin despertar el deseo de aprender y de expresarse, la exigencia de «dar informática» no causará más que aturdimiento. Repitámonos la pregunta: ¿Tiene sentido una escuela en la que haya un má-

Figura 6: Importando un proyecto.

WWW.LINUX- MAGAZINE.ES

Número 16

79


ximo de tres lápices por aula o se guarden encerrados en una habitación especial que se visita esporádicamente? ¿Cuántos ordenadores son necesarios para que cambie la forma de dar clase? Los que permitan (1) la disponibilidad del ordenador la mayor parte del tiempo y (2) el desarrollo del sentimiento de identidad intelectual. En eso insiste Kay: «puedes poner un piano en cada clase, y eso no te dará una cultura musical desarrollada, porque la cultura musical está en las personas (…) Lo importante aquí es que la música no es el piano. Y el conocimiento (…) no está en el ordenador. El ordenador no es más que un instrumento cuya música son las ideas». ¿Para qué Squeak? Escuchemos a Papert: «Me fijé el objetivo de luchar para crear un entorno en el cual todos los niños -cualquiera que fuese su cultura, género y personalidad- pudieran aprender álgebra y geometría, ortografía e historia de una manera más parecida al aprendizaje informal del niño no escolarizado o del niño excepcional que al proceso educativo que se sigue en las escuelas». Como señalan Allen-Conn y Rose en su Ideas poderosas, Papert pensó que el estudio de ideas poderosas a través del ordenador, además de la ayuda de otras actividades, podrá servirle a los niños como instrumento para hacer frente a sus intuiciones. Pensó que los ordenadores podían ser de ayuda para los más jóvenes, al permitirles exteriorizar sus expectativas intuitivas usando materiales computacionales tales como simulaciones y modelos. De esta manera podrían ser capaces de reconsiderar o remodelar su conocimiento intuitivo.

Y en el próximo número… Hemos empezado a examinar qué es Squeak y las razones que explican su

desarrollo. Pero nos queda responder a la pregunta clave: ¿cumple Squeak su promesa, responde o se acerca a responder a las ambiciosas expectativas que despierta? Squeak pretende, no que los alumnos aprendan a programar, sino que los alumnos programen para aprender, ¿es esto absurdo? ¿o implica un esfuerzo que escapa a las posibilidades de nosotros los profesores? Este será el tema ■ del siguiente número. Nos vemos.

EL AUTOR

LINUX USER • Educación

Juan Rafael Fernández García es socio de OFSET, profesor de educación secundaria y tiene una larga experiencia en la traducción y documentación del software libre. Ha sido coordinador de uno de los Centros que participan en la experiencia andaluza de integrar las TIC en la educación y actualmente trabaja como asesor de formación del profesorado.

RECURSOS [1] Alan Kay, entrevistado por Lars Kongshem, FACE to FACE: Alan Kay Still waiting for the Revoultion (http://www.squeakland.org/school/HTML/essays/face_to_face.html). No vamos a explicar aquí quienes son Kay y Papert, para eso están google, la wikipedia y el resto de la documentación. [2] De pronto Squeak se ha convertido en una utilidad bien documentada incluso en castellano, y con una rica comunidad hispana de desarrolladores y usuarios, galerías de recursos, etc. Por supuesto hay que comenzar citando Small-Land (http://www. small-land.org/), el núcleo argentino donde desde hace años se trabaja en Squeak. Y las páginas sobre Squeak consecuencia de la apuesta de la administración extremeña por el software educativo libre, y en concreto por este entorno: Extremadura y SmallLand (http://squeak.linex.org/), la bitácora dedicada (http://squeak.blog.com/) o Squeakpolis (http://squeak.educarex.es/Squeakpolis, inciativa de Antonio Moreno), donde podemos encontrar un listado más exhaustivo de enlaces, artículos, proyectos… Hay también libros completos libres: Ideas poderosas en la clase, traducción al español del libro «Powerful Ideas in the Classroom», de B.J. Allen-Conn y Kim Rose(http://swiki. agro.uba.ar/small_land/uploads/193/Libro_Completo.pdf); un CD descargable con libro en pdf, proyectos y una imagen, creado por un equipo de docentes de Badajoz (Fueyo Díaz, Pizarro Galán, Prudencio Conejo, Roldán Cuerpo, Torres Escobar): http://www. small-land.org/libro-badajoz/cdrom.tar.gz; finalmente el libro editado por Editlin Squeak: un mundo para aprender, de los mismos autores más Paniagua Navarro: se pueden bajar PDFs con los borradores de los capítulos desde http://www.small-land.org/ SqueakUnMundoParaAprender. [3] En http://minnow.cc.gatech.edu/squeak/2381 tenemos una creíble explicación del nombre, según mensaje de Alan Kay a la lista de distribución de Squeak el 14 de marzo de 2002: «Era el nombre de la carpeta de mi Mac, en la que a principios del 96 solía guardar los nuevos ficheros de sistema para tenerlos separados de los otros Smalltalks que había en mi máquina. Disney ya nos estaba intentando atraer por aquel entonces y pensé que, pasara lo que pasara, habría algún ratón en el futuro de este sistema. Un mes o dos después surgió la cuestión del nombre para el sistema en una reunión del grupo y dije que había estado usando el nombre de Squeak. A todo el mundo le gustó y así se quedó». [4] «Squeak es una implementación completa del lenguaje de programación y entorno Smalltalk basada en el sistema original Samlltalk-80 (y altamente compatible con él)» (http://www.squeakvm.org/unix/). [5] Sobre los eToys, http://swiki.agro.uba.ar/small_land/18. Sobre Ensayos activos, http:// swiki.agro.uba.ar/small_land/19. [6] http://community.ofset.org/wiki/Squeak. [7] http://minnow.cc.gatech.edu/squeak/SqueakMap. [8] Seymour Papert, La máquina de los niños (1993), pg. 19. de la traducción española, ed. Paidós. [9] ¡Spinoza, Tractatus de intellectus emmendatione, parágrafos 50ss., parafraseado en lenguaje kantiano por Ernst Cassirer en El problema del conocimiento, tomo II, pg. 25ss. de la edición de Fondo de Cultura Económica!

Figura 7: Selección de la imagen que ejecutar.

80

Número 16

[10] Para este resumen hemos utilizado citas de Papert, ib., y de Kay, http://www. squeakland.org/school/HTML/essays/essays.html.

WWW.LINUX- MAGAZINE.ES


Línea de comandos: lspell • LINUX USER

Correctores de ortografía de la línea de comandos: Ispell y Aspell

LECCION DE ORTOGRAFIA

Nadie está a salvo de gazapos y de los enredos con palabras. Correctores de ortografía como Ispell y Aspell se encargan de mantener las letras en su lugar correcto. POR HEIKE JURZIK

L

os correctores de ortografía en paquetes oficimáticos y en programas de correo ayudan a encontrar errores y sugieren ortografías alternativas. Ispell y Aspell corrigen los ficheros en la línea de comandos y aunque no pueden reemplazar a un buen diccionario, son unos ayudantes extremadamente confiables. Ispell es una aplicación madura que ha estado durante varios años en distintos derivados Unix. El proyecto GNU introdujo a Aspell como un sucesor potencial. Éste último posee diccionarios

para varias lenguas, y puede manejar UTF-8 (a diferencia de Ispell). Este artículo mostrará cómo corregir desde la línea de comandos. Describiré algunos consejos y trucos, y demostraré cómo invocar tanto a Ispell como a Aspell mientras trabajo con los editores Vim y (X)Emacs.

Simplemente Ispell Ispell corre interactivamente en la línea de comandos. Si el corrector de ortografía encuentra un error, sugiere una ortografía alternativa. Si se decide no aceptar la

WWW.LINUX- MAGAZINE.ES

sugerencia puede añadirse la palabra del diccionario personal o ignorar el término en el resto del documento. La sintaxis simple del comando es Ispell nombrefichero

Se debería correr Ispell con la opción -d (de “dictionary”, esto es, de diccionario) dependiendo del diccionario que se necesite. Una rápida ojeada al directorio /usr/lib/ispell (Figura 1) nos dice los diccionarios que se encuentran disponibles en nuestro sistema. Pueden verse algunos de ellos con el sufijo .aff suffix. Ispell los usa para administrar guiones y caracteres en varias lenguas.

Número 16

81


LINUX USER • Línea de comandos: Ispell

Algunas distribuciones Linux usan nombres diferentes para los diccionarios. Para asegurarse que los caracteres especiales están correctamente codificados, pueden definirse un conjunto de caracteres mediante la opción -T. No es preciso especificar el diccionario ni las opciones del conjunto de caracteres cada vez que se corre el programa. En vez de ello pueden añadirse entradas apropiadas al fichero de configuración Bash ~/.bashrc en el directorio actual: export U DICTIONARY=nombre diccionario export U CHARSET=juego caracteres

Luego se reanaliza el fichero de configuración usando el siguiente comando: source ~/.bashrc

Interacción Requerida Ispell emplea la línea superior para presentar palabras desconocidas. Si el corrector de ortografía encuentra palabras similares en el diccionario, ofrece una lista enumerada de palabras alternativas (Figura 2). Para aceptar una de esas sugerencias, simplemente se presiona la tecla del número que aparece con la palabra en la lista enumerada, de esta forma se le dice a Ispell que sustituya la palabra. Si no se quiere sustituir la palabra que Ispell piensa que es errónea, se puede o bien presionar la tecla espaciadora para ignorar la palabra una vez, presionar [A] para ignorar la palabra para el resto de la sesión Ispell, o presionar [I] para almacenar la palabra permanentemente. En el último caso, Ispell añade el término al diccionario personal. La lista personal de palabras se almacena como fichero oculto en tu directorio home. El nombre del fichero se compone de .ispell_ y el nombre del diccionario que se usó. Por ejemplo, si se estuvo trabajando con el diccionario ngerman, la lista de la palabra personal sería .ispell_ngerman. Si Ispell descubre un error pero no ofrece una alternativa (razonable), puede presionarse [R] (de “reeemplazar”) y escribir los cambios en la línea de comandos. Ispell sustituye la palabra en todas las partes del texto.

82

Número 16

El Final de la Historia Ispell para su ejecución después de comprobar todas las palabras, pero alternativamente puede presionarse [Q] para abandonar la comprobación y descartar cualquier cambio. Te preguntará para determinar si realmente se quieren descartar los cambios. Puede presionarse bien [Y] para salir del programa o bien [N] para continuar con la comprobación. Otra alternativa es presionar [X] para salir de Ispell. En este caso se almacena cualquier cambio que se haya hecho.

Creando Backups Ispell ofrece una opción segura cuando se especifica el parámetro -b en el momento de arrancar el programa. Esto le dice al corrector que cree una copia de respaldo para cada fichero que chequee. Las copias de respaldo son identificables mediante un sufijo .bak o ~ y contienen el texto original.

Correctores Ortográficos en Vim y Emacs Ispell y Aspell corren de fondo en muchas aplicaciones KDE y Gnome, donde comprobarán la ortografía con un sólo clic. Aunque es muy fácil convencer a Vim y (X)Emacs para que cooperen. Una única línea en el fichero de configuración de Vim (~/.vimrc) te ofrece una macro. Para mapear una tecla de función [F10] al corrector de ortografía, es preciso añadir para Ispell la siguiente línea al fichero: map <F10> :w!<CR>: U !ispell %<CR>:e! %<CR> Si se prefiere Aspell, en su lugar se usa la siguiente entrada: map <F10> :w!<CR> U !aspell -c %<CR>:e! %<CR> Se coloca cualquier opción de la línea de comandos que se precisen después del comando. Si se usa Emacs o Xemacs, se añade la siguiente línea al fichero de configuo ~/.xemacs/ ración (~/.emacs custom.el): (setq-default U ispell-program-name "aspell") o: (setq-default U ispell-program-name "ispell")

WWW.LINUX- MAGAZINE.ES

Muchas distribuciones tienen versiones de Ispell que crean respaldo sin que, de hecho, sea preciso especificar la opción para crear una copia de seguridad. A veces este es el comportamiento especificado por defecto por el mantenedor del paquete. Si se prefiere no crear copias de seguridad, puede deshabilitarse esta característica estableciendo el parámetro -x.

Otros Formatos Ispell puede comprobar la ortografía de los formatos HTML y TeX/LaTeX además de los textos de ficheros. El corrector de ortografía identifica automáticamente cualquier fichero con el sufijo .html o .htm como un fichero HTML. En este caso, el corrector de ortografía ignora cualquier etiqueta HTML que descubra durante la sesión de comprobación. La única excepción es el atributo ALT, el cual puede ser usado para definir texto alternativo para una imagen embebida. Si el sufijo del fichero está perdido o en mayúsculas (.HTM), puede decirse a Ispell que el fichero es HTML cuando arranca el programa: ispell -H file.HTM

Lo mismo puede aplicarse para los ficheros XML y SGML: pasar la opción -H al programa cuando arranca Ispell para decirle al corrector de ortografía que ignore las etiquetas cuando esté comprobando la ortografía. (Algunas distribuciones, tales como Debian, usan -h, en minúscula para esta opción, mientras que otros, como Suse, usan una mayúscula -H.) Ispell identifica ficheros TeX/LaTeX mediante referencia al sufijo del fichero .tex y no comprueba instrucciones de formateado, sin embargo, el texto encerrado entre llaves ({}) sí es comprobado. El corrector de ortografía identifica comentarios, los cuales se indican con el carácter porcentaje (%) en ficheros TeX-/LaTeX, y los comprueba en busca de errores.

La Alternativa: Aspell Aspell es un corrector de ortografía alternativo para la línea de comandos. Éste es el programa designado como sucesor de Ispell, y ofrece muchos más funcionalidades. Por ejemplo, la versiones actuales (0.60.x) soportan el juego de caracteres UTF-8. La sintaxis genérica es como sigue:


Línea de comandos: lspell • LINUX USER

Figura 1: Ispell en nuestro laboratorio “entendió” inglés británico y americano.

A diferencia de Ispell, en Aspell esta opción solamente sustituye la instancia actual de la palabra. Si se desea que Aspell sustituya todos los casos de la palabra en el documento, hay que pulsar [Shift]+[R]. Puede pulsarse [I] para ignorar una palabra exactamente una vez, o presionar [Shift]+[I] para decirle a Aspell que ignore la palabra para el resto de la sesión de corrección ortográfica. Para almacenar una palabra permanentemente en el diccionario personal, es preciso pulsar [A]. De nuevo, Aspell almacena diccionarios privados bajo su directorio home, y de manera similar a lo que hace Ispell, usa una combinación de la palabra .aspell y del diccionario actual para identificar el fichero. Aspell también sale automáticamente después de completar la corrección ortográfica. Puede presionarse [X] para salir del programa y almacenar cualquier cambio que se haya hecho hasta ese momento. Para abandonar el corrector ortográfico y descartar los cambios, se presiona [B] y se confirma en la línea de comandos.

Una Cuestión de Formato

Figura 2: Ispell ofrece como alternativa palabras similares.

No es necesario especificar explícitamente un diccionario ya que Aspell evalúa la configuración del idioma. Sin embargo, si se ve un error que dice que el diccionario correcto no se pudo encontrar, se deberá comprobar si realmente se posee el diccionario necesario instalado en el sistema. Escribiendo aspell --help | less en la línea de comandos dice qué lenguajes “habla” Aspell en una lista de Available Dictionaries:. Los diccionarios se localizan por defecto bajo /usr/lib/aspell0.60/. Si falta un diccionario requerido, puede usarse el propio administrador de

paquete para instalar el recurso ausente. Al igual que en Ispell, puede usarse la opción -d para especificar un diccionario. Si se posee un texto codificado UTF-8, no hay que olvidarse que Aspell debe saberlo especificándoselo con la opción -encoding=utf-8.

Interacción Requerida Aspell destaca los términos desconocidos y ofrece una lista numerada de sustituciones aconsejadas. Para aceptar una sugerencia, se presiona el número apropiado y luego [Enter]. Si se necesita sustituir una palabra por otra palabra completamente diferente, se presiona [R] y se escribe la sustitución para la palabra que se está sustituyendo.

WWW.LINUX- MAGAZINE.ES

LA AUTORA

aspell -c nombrefichero

Al igual que Ispell, Aspell soporta varios formatos de ficheros. Puede especificarse -H (para HTML/SGML/XML) o -t (para TeX/LaTeX). Si se desea migrar a un nuevo corrector ortográfico, el paquete Aspell incluye un script en Perl titulado aspellimport que importa el Ispell personal y los diccionarios Aspell y los añade al diccionario Aspell en el directorio home. Puede comprobarse el cuadro Correctores Ortográficos en Vim y Emacs para otros pormenores sobre Ispell y Aspell mientras se trabaja en uno de esos ■ editores. Heike Jurzik estudió Alemán, Informática e Inglés en la Universidad de Colonia. Descubrió Linux en 1996 y desde entonces quedó fascinada por la línea de comandos de Linux. En su tiempo de ocio puedes encontrarla visitando Irlanda o en alguna sesión de folk Irlandés.

Número 16

83


LINUX USER • Juegos

Stroggs hasta en en la sopa

QUAKE 4 No podía faltar en nuestra serie de análisis de juegos la cuarta parte de la saga de juegos comerciales de acción en primera persona por excelencia. Continuando el argumento de su segunda parte y dándonos pistas para el argumento del futuro Enemy territory: Quake wars. Hablamos de Quake 4. POR VICENTE CARRO

H

ace ya muchos años salió a la venta Quake, un juego de disparos 3D en primera persona donde nos enfrentábamos a hordas de enemigos, con un diseño influenciado por las novelas de H.P. Lovecraft y el legendario Necronomicón. Después, aprovechando el tirón inicial del primero, se realizó una segunda parte que sólo guardaba del original el tipo de juego y algunas armas. Hace poco pudimos disfrutar de interminables sesiones de disparos entre amigos con Quake 3, que perdía su modo historia (o el guión al menos), pero aumentaba enormemente la jugabilidad en su modo online. Y hace apenas unos meses se nos presentaba el objeto de este artículo, Quake 4.

Pelotón Rino Quake 4 es un first person shooter con guión en toda regla. El guión nos sitúa en el planeta Stroggos, hogar de los Strogg, que van por el universo doblegando civilizaciones a las que les espera un futuro poco agradable. Comenzamos el juego poco después de que hubieran sucedido los acontecimientos vividos en Quake 2, aunque esta vez no seremos el mismo soldado sin nombre. En esta ocasión encarnaremos al cabo Mathew Kane, nuevo

84

Número 16

miembro del pelotón Rino. Tras ser enviados a Stroggos junto a nuestro pelotón con el fin de despejar una zona de aterrizaje para instalar un centro de mando móvil, acabamos estrellándonos contra la superficie del planeta. Como os podéis imaginar, nuestro personaje sobrevive, pero la situación no está ni mucho menos controlada. Hemos caído lejos de la zona de nuestro primer objetivo.

De gatillo fácil Quake 4 requerirá velocidad de disparo ya que, entre otras situaciones, entrar disparando en una habitación podría salvar la vida de soldados que después nos ayudarían. Las habilidades del protagonista serán las habituales en este tipo de juegos, pero podemos resaltar el uso de linterna acoplada en algunas armas, y la función secundaria o zoom de otras. Hemos probado los distintos modos de dificultad, y además de los pertinentes cambios de resistencia, también se ha anulado el retroceso del arma cuando jugamos en modo fácil (recluta), ayudando mucho a apuntar y disparar.

WWW.LINUX- MAGAZINE.ES

Esta entrega es bastante lineal, dando mucha importancia a un guión que nos tendrá absortos en la aventura. Desde las fáciles misiones iniciales hasta los eventos finales que nadie podría imaginar, todo está montado para hacernos sentir en la piel de Kane. Las fases duran lo justo, ni son muy cortas ni tan largas que nos aburran, y tienen una dificultad muy ajustada. A esto se le une una amplia variedad de detalles tanto en los escenarios y en los diálogos, como en la jugabilidad. En ciertos momentos conduciremos vehículos con mención especial para los Caminantes, unos pequeños robots de nuestro bando. Los enemigos siempre serán stroggs, en sus diversas formas y variedades, y su inteligencia artificial está muy basada en scripts. No harán cosas complejas, salvando que puedan esconderse para atacarnos después o tendernos emboscadas prefijadas.


Juegos • LINUX USER

Las armas son las justas, pero todas bastante ajustadas a la situación, vistosas y por supuesto, se mantienen algunas clásicas de la saga.

Con amigos mejor En muchas ocasiones estaremos acompañados de otros soldados que nos ayudarán en tramos de nuestras misiones. Otros simplemente estarán ahí manteniendo la posición, pero podremos acercarnos y hablarles, escuchando siempre una respuesta adecuada. Estos compañeros también podrán realizar tareas autónomamente, como pueden ser los médicos o los ingenieros, curando heridas o desbloqueando dispositivos y reparando armaduras respectivamente. También conoceremos a algunos miembros del pelotón Rino. Que el juego esté traducido y doblado al castellano consigue introducir al jugador medio en la historia, y es algo que opinamos debería ser casi obligado en todos los juegos, ya que no hubiera sido la misma experiencia si no hablasen castellano. Lamentablemente para disfrutar del castellano en Linux tendremos que hacer uso del siguiente script que os hemos preparado (ver Listado 1):

¿Unos tiritos? Se ha incluido en el juego un obligado modo online. Pero claro, los programadores del juego tenían un problema, y era que la versión anterior, Quake 3, era una obra

maestra del juego online. Así que, finalmente decidieron no arriesgarse y optaron por copiar el modo online del Quake 3 tal cual en este Quake 4, garantizándose un resultado satisfactorio, aunque poco sorprendente. El modo online nos permite jugar en modo Deathmatch (todos contra todos), TeamDM (equipo contra equipo), Tourney (uno contra uno), CLB/CTF (captura la bandera por equipos) y Arena CLB/CTF (igual pero con reglas ?arena?). Todos ellos en la linea de lo ya visto en la versión anterior.

¡Vaya gráficos! Sin lugar a dudas, incluso por encima de su absorbente historia, lo que más llama la atención de este título son sus gráficos. Son simplemente geniales. Lógicamente esto hace necesario un equipo puntero, hasta el punto de que el modo gráfico ULTRA requiere una tarjeta gráfica de 512 megas. Relieve, caras ultra detalladas y demás justifican la inversión en tamaño hardware. Pero esto se aplica sólo para el modo historia, ya que en el modo online los gráficos son notablemente peores, aunque está hecho a propósito para permitir jugar con mayor fluidez y reducir los larguísimos tiempos de carga de cada nivel.

Escuchando las balas El audio de este juego es muy correcto, aunque tampoco podemos decir que destaque en ningún aspecto. El doblaje

español era obligado y ha resultado satisfactorio, pero perdiendo algo de fuerza en algunas interpretaciones secundarias. La música es muy buena en algunos momentos, y bastante ambiental como norma general. Los efectos de audio son buenos y parece que han usado algunos sonidos de Quake 3.

En resumen Juego trepidante y muy absorbente que hará las delicias de los shooters, aunque algún fan de la saga puede sentirse decepcionado, no ante un mal producto, sino ante una cantidad de novedades insuficientes y un modo online calcado al del Quake 3. Para el resto será un juego de gráficos soberbios, acción a raudales y un excelente modo online que incluso se puede conseguir en España [2] en versión ■ Linux.

Listado 1: Script lanzar en español 01 #!/bin/sh 02 # Needed to make symlinks/shortcuts work. 03 # the binaries must run with correct working directory 04 cd "/PON_AQUI_LA_RUTA_DEL_JUEGO/" 05 set sys_lang "spanish" 06 export LD_LIBRARY_PATH=$LD_LIBRARY_PA TH:. 07 ./quake4.x86 $* 08 exit $?

Puntuación Lo mejor • Gráficos sobresalientes

8,5

• Absorbentes jugabilidad y argumento • Gran variedad Lo peor • Requiere un hardware puntero • Los jugones siguen jugando al Quake3, de momento • No ha sorprendido a los fans de la saga

RECURSOS [1] Ftp idsoftware: ftp://ftp.idsoftware. com/idstuff/quake4/linux/ Figura 1: El doctor Strogg nos va a recetar unas aspirinas.

WWW.LINUX- MAGAZINE.ES

[2] guadagames.com: http://www. guadagames.com

Número 16

85


COMUNIDAD · Konsultorio

Gnome versus KDE, Particiones para Expertos, Impresoras

KONSULTORIO Klaus Knopper es el creador de Knoppix y co-fundador de la LinuxTag Expo. Trabaja en la actualidad como profesor, programador y consultor. Si tiene algún problema de configuración, o simplemente quiere conocer mejor cómo funciona Linux, no dude en escribir sus preguntas a: preguntas@linux-magazine.es.

¿Están Gnome y KDE a la par? Gnome y KDE se han presentado siempre como alternativas equivalentes. ¿Son realmente equivalentes, o hay situaciones en las que uno sea mejor que el otro? ¿Puedo configurar mi sistema Linux de manera que se ejecuten tanto aplicaciones KDE como aplicaciones Gnome? Técnicamente hablando, tanto Gnome como KDE son sistemas de escritorio altamente configurables con un diseño interno orientado a objetos, y son muy fáciles de usar, aún para los usuarios sin conocimientos técnicos (siempre que estén configurados correctamente). Intentaré ser neutral a la hora de responder acerca de qué escritorio es “mejor” en general. He estado usando Xfce3 durante un cierto tiempo, y aunque sus funcionalidades son más limitadas, siempre han sido más que suficientes para mí. Siempre hubo discrepancias entre desarrolladores y usuarios acerca de si KDE era o no “libre”, debido a la licencia de Qt (la librería en la que se basa KDE), que si consumía más memoria que Gnome, o que si sus gráficos eran peo-

86

Número 16

res. Ninguno de estos problemas son reales hoy en día, y ni siquiera sé si los rumores acerca del consumo de memoria y los gráficos fueron alguna vez verdad, o simplemente eran parte de la competencia “creativa” entre ambos grupos y filosofías. Hoy día, Gnome consume la misma cantidad de recursos del sistema que KDE (si no más), los benchmarks de rendimiento son equivalentes, los gráficos son excelentes en ambos escritorios y sus características (al menos las más habituales para el usuario medio) son más o menos idénticas. Gnome y KDE, sin embargo, usan un sistema completamente diferente de dependencias en cuanto a demonios, servicios y librerías. Yo he llegado a ver programas de Gnome que requieren 40 dependencias de librerías o más. A veces resulta imposible usar un programa de alguno de ellos que no requiera componentes adicionales que llegan a ocupar 10 veces el tamaño del programa original. (Los enlaces estáticos de los programas de KDE o Gnome fallan más por su estructura modular que por cualquier otra razón).

WWW.LINUX-MAGAZINE.ES

Esto puede llevarnos a sufrir algunos problemas. Si usamos habitualmente KDE, y queremos instalar un simple programa como Gnopernicus, terminaremos instalando la suite de software Gnome completa, porque de otra manera no podremos ejecutar el programa. En el peor de los casos, Gnome trata de desinstalar partes de KDE (o viceversa) debido a conflictos en los servicios de ambos sistemas (son casos muy raros, de cualquier forma). Bueno, he hecho un poco de trampa con este ejemplo. Gnopernicus es más un conjunto de plugins y extensiones de Gnome que un programa en sí mismo. (Es un lector gráfico de la pantalla y herramienta de accesibilidad para Gnome). Pero esto mismo ocurre con aplicaciones de menor tamaño, como el maravilloso cliente de videoconferencia GnomeMeeting, gnumeric y otros, que seguramente querríamos tener en la edición Knoppix CD, basada en KDE, pero que simplemente no tienen espacio suficiente debido a las librerías de las que dependen. Ocurre lo mismo en el caso contrario: si queremos instalar un programa KDE en un sistema Gnome. Pero al menos los programas de KDE 3.X tratan de evitar dependencias innecesarias si es posible. De cualquier manera, cuando usamos KDE con aplicaciones de Gnome, o aplicaciones de KDE en Gnome, siempre acabaremos con un montón de librerías y servicios en segundo plano, objetos rotos o precargadores de uno u otro sistema. Afortunadamente, ambos sistemas de escritorio tratan de no pelearse entre ellos (en el runtime level), ni tratan de impedir


Konsultorio • COMUNIDAD

que el otro escritorio ejecute sus programas. Por lo que, sí, efectivamente es posible mezclar libremente aplicaciones de Gnome y de KDE, excepto en algún caso muy puntual en el que ambos insisten en arrancar su propio demonio de sonido (a veces por bloqueo de servicios), y terminamos preguntándonos por qué nuestra tarjeta de sonido de repente no responde aunque matemos los procesos arrancados por el “otro” sistema de escritorio. Si nos encontramos estos problemas, podemos comprobar quién bloquea nuestro sonido tecleando fuser -v /dev/dsp

que identifica el demonio de sonido problemático, en la mayoría de las ocasiones.

Particiones para Expertos Los instaladores de Linux han mejorado mucho con los años, pero la sección de particiones sigue siendo igual de confusa que siempre. Ahora, al menos, un asistente “sugiere” una configuración de particiones, pero sigue pidiendo una aprobación de dicha configuración, y no tengo ni idea de qué estoy aprobando. Suele existir un botón “Sólo para Expertos” que conduce a una nueva página donde se expresa todo en términos de nombres de partición y ubicaciones en el disco. ¿Porqué querría un experto usar una configuración de particiones diferente y porqué querría yo también hacer eso? ¿Existe alguna ventaja en cambiar el tamaño de la zona de swap o la ubicación de las particiones en el disco? Existen ciertas ventajas al crear las particiones de manera óptima para el propósito de nuestro sistema GNU/Linux. Si es nuestra primera instalación Linux, y sólo vamos a usar el sistema para trabajo cotidiano o juegos, no debemos preocuparnos mucho por las opciones avanzadas y podemos aceptar las opciones por defecto. La configuración manual es preferible si tenemos planes para realizar tareas más avanzadas con nuestro ordenador, como streaming en tiempo real, procesado de video u otras que requieran un alto grado de procesamiento de datos, que puedan necesitar de una configuración más sofisticada. También es importante saber si el sistema será usado por muchos usuarios, o si será un sistema de un solo usuario.

Yo suelo usar muchas particiones con objeto de tener varias instalaciones de prueba separadas, particiones encriptadas y espacio adicional de swap para ocasiones en las que haga falta. Un sistema GNU/Linux puede ajustarse a una sola partición (que puede incluso ser una partición virtual dentro de un archivo). El espacio de intercambio no es absolutamente necesario para ejecutar un sistema GNU/Linux, en absoluto (aunque muchos instaladores insisten en tener una partición de intercambio). Discutamos el tema del espacio de intercambio en primer lugar. El espacio de intercambio añade espacio a la gestión de la “memoria vitual” del kernel de Linux. Esto significa que podemos ejecutar más y mayores programas que los que cabrían en la memoria RAM de nuestro ordenador. La pregunta de cuánto espacio de swap vamos a necesitar depende de lo que deseemos hacer. La memoria RAM real es siempre mejor, por supuesto, pero en la mayoría de los casos, el espacio de intercambio funciona guardando temporalmente programas en ejecución y la información que no es necesaria en esos momentos. Una característica que potencia el rendimiento bajo Linux es que la RAM no utilizada se usa como un sistema de búfer dinámico de archivos (auto-ajustable). Los archivos que han sido leídos una vez permanecen en la veloz caché RAM (y serán leídos desde allí) hasta que la RAM sea requerida para algo más urgente (como un programa en ejecución que solicite memoria para gráficos, por ejemplo). Como ejemplo de cómo funciona el uso de la memoria, OpenOffice necesita unos 100 megas de RAM cuando lo arrancamos por primera vez. A medida que el documento de trabajo crece y se le añaden elementos de otras partes de OpenOffice, se requieren nuevos componentes, como hojas de cálculo, programas de dibujo o de presentaciones. Podemos terminar usando 300 megas o más simplemente con ejecutar OpenOffice un rato. El escritorio KDE necesita también unos 100 MB por sí mismo, y si abrimos el navegador Firefox, el programa de edición gráfica The Gimp y otros programas potencialmente hambrientos de memoria, nos situamos en alrededor de unos 500-1000 MB de memoria para hacer algo.

WWW.LINUX-MAGAZINE.ES

Si calculamos a mano el espacio de intercambio necesario, debemos tratar de estimar la memoria usada por los programas (el comando free es útil en estos casos, pero debemos comprobar los valores SIN los búfers del sistema de archivos), y añadir otro tercio a esta cifra para estar seguros. Si nuestro sistema se queda sin memoria, todo comienza a ir muy lento y la capacidad de respuesta cae en picado hasta el punto que lo mejor será irnos a por un café. Los programas en ejecución pueden morir si no encuentran la manera de conseguir la memoria que necesitan. Pero habitualmente, antes de que suceda esto, ya nos habremos planteado usar el botón de reset para reiniciar el sistema, sabiendo que esta no es la manera más conveniente de liberar memoria, obviamente. Por lo que habría que pensar en el espacio de swap en lo sucesivo. Si nos damos cuenta a posteriori que nuestra partición de intercambio es insuficiente, existe un forma sencilla de añadir más espacio de swap. Simplemente creamos un archivo, lo marcamos como swap y lo añadimos a la memoria virtual como una partición. El siguiente ejemplo nos muestra esto con un archivo de 100 MB ubicado en /var: dd if=/dev/zero of=/var/swap U bs=1024k count=100 mkswap /var/swap swapon /var/swap

y ya tenemos 100 MB más de memoria swap. Para que el cambio sea permanente, pondremos la siguiente línea en /etc/fstab: /var/swap none swap sw 0 0

Las particiones de swap dedicadas son mucho más rápidas que los archivos swap, dado que hay menos sobrecarga del sistema de archivos. (El kernel escribe directamente en la partición, en lugar de llamar a las funciones del sistema de archivos). Para las particiones de archivos, separar la información “frecuentemente escrita” de la “fundamentalmente estática” puede ser útil. Con esta precaución nos aseguramos que una partición saturada (con archivos de log, por ejemplo) no afectará al resto, y seremos capaces de entrar en el sistema y arreglar el problema (al menos,

Número 16

87


COMUNIDAD · Konsultorio

en la mayoría de los casos), sin tener que recurrir a pasar a un runlevel de administrador. Si lo tenemos todo en una sola partición, por otro lado, tendremos la ventaja de que el espacio disponible es compartido por todos y no tenemos que preocuparnos por cambiar el tamaño de las particiones cuando una se esté quedando sin espacio. Yo suelo utilizar una partición para los “archivos del sistema” (que contiene el sistema de archivo raíz y /usr), una partición para el frecuentemente escrito sistema de archivos /var (contiene también los archivos de log y /tmp), una partición encriptada para las claves de autenticación, contraseñas y backups de la información de usuario, una partición para mi directorio /home y por último una más para experimentos e información poco importante como instalaciones de prueba. Algo como esto: /dev/hda1 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8

5GB / 2GB /var 1GB /crypt 8GB /home 20GB /mnt/scratch

Por supuesto, esta configuración es muy personal y puede que otra persona tenga que reparticionar y reconfigurar cada vez que una partición termine llenándose, o cada vez que se plantee una actualización del disco. Si tenemos más de un disco duro, tiene sentido distribuir las particiones que contienen información usada con frecuencia por las distintos discos (por ejemplo: /dev/hda1 con los archivos del sistema y /dev/hdc1 con el directorio home, /tmp o /var). Esto disminuye los movimientos del cabezal del disco duro durante las operaciones de lectura y escritura simultáneas. Para tratamiento digital de video, puede ser esencial distribuir las particiones por los distintos discos para alcanzar el rendimiento necesario para codificar videos en tiempo real.

Problemas de Impresión Tengo una impresora HP 1200 Business Inkjet. La caja de la impresora no especifica que sea compatible con Linux, pero he podido imprimir sin problemas con mi sistema Linux con KDE utilizando un archivo PPD que descargué de la Web. La impresora funciona bien cuando imprime

88

Número 16

documentos. El único problema es que no tengo los mensajes habituales de la impresora cuando algo no va bien (atasco de papel, se ha quedado sin tinta, etc.). Sólo aparece un mensaje estándar que dice algo como “Printer Error”. ¿Existe alguna manera de recibir los mismos mensajes de error que (según el manual) reciben los usuarios bajo Windows? Los mensajes CUPS suelen llegar a /var/log/cups/error_log y /var/log/cups/access_log. Su nivel de detalle depende de la configuración de LogLevel en /etc/cups/cupsd.conf (véase la descripción de los log levels en el Listado 1). Por tanto, tendremos mayor nivel de información de los asuntos internos del driver si fijamos el LogLevel a debug o incluso a debug2 en /etc/cups/cupsd.conf. (No debemos olvidar reiniciar CUPS con /etc/init.d/cupsys reload, en el caso de Debian). La clase y visibilidad de la información ofrecida por el archivo PPD depende realmente de su estructura y configuración, por lo que pueden existir ciertas características de una impresora que no sean accesibles directamente desde el interior de CUPS. Encontraremos una tabla de impresoras y funcionalidades soportadas en http://www.linuxprinting.org/, que es una buena página para investigar.

Listado 1: Log Levels de CUPS 01 # Log level (LogLevel) 02 # 03 # Controls the number of messages logged to the ErrorLog 04 # file and can be one of the following: 05 # 06 # debug2: Log everything. 07 # debug: Log almost everything. 08 # info: Log all requests and state changes. 09 # warn: Log errors and warnings. 10 # error: Log only errors. 11 # none: Log nothing. 12 # 13 # ex: info 14 # 15 # Default: LogLevel info

WWW.LINUX-MAGAZINE.ES

Figura 1: Xfce es una veloz y sencilla alternativa a Gnome y KDE.

Más específicamente, para la impresora en cuestión, linuxprinting.org dice en http://www.linuxprinting.org/ show_printer. cgi?recnum=HP-Business_Inkjet_1200 que la impresora funciona perfectamente con Linux/CUPS, por lo que no sería necesario ni siquiera un PPD específico, sólo tener instalado el driver hpijs (y la versión actualizada de CUPS). Si buscamos una impresora nueva que esté bien soportada por CUPS, http:// www.linuxprinting.org/suggested.html nos muestra un resumen de las impresoras que han demostrado funcionar especialmente bien. En algunos casos, el fabricante de impresoras tiene un programa especial de monitorización del estado, algo como “Printer LCD display monitor” para Linux, que funciona de manera independiente a CUPS y captura la información (sólo lectura) directamente del conector de la impresora. Especialmente en casos como combinaciones de impresora y escáner, extensiones de terceros como ésta nos permiten acceder, o al menos, ver las “características ocultas” de la impresora. A mi personalmente no me gustan demasiado si sólo se ofrecen como binarios, y sin licencia que me permita analizarlos o modificarlos. Debemos comprobar el CD con los drivers que vienen con la impresora en busca de programas de usuario para Linux, o de nuevo, buscar en linuxprinting.org, que a veces tiene enlaces a extensiones de terceros o del fabricante para modelos específicos de impresoras. Para su impresora HP 1200, linuxprinting.org nos recomienda que busquemos el driver hplip en sourceforce: http:// hpinkjet.sourceforge.net/ para disponer de características avanzadas como reportes de estado y mantenimiento. ■


Opinión • COMUNIDAD

MUJERES++ Cómo consigues algo que realmente deseas? Digamos que quieres pedir prestado el coche a un amigo para ir de compras. Deberías preguntárselo amablemente y tentarle con chocolate o cerveza. Deberías admirar su nuevo corte de pelo y decirle cuánto te gusta su coche. Posiblemente no se te ocurriría algo como: “Tu coche está arañado, vibra cuando lo conduzco, odio el color y siempre está sucio ¿Te importa prestármelo?”. Yo siempre he creído que era vital y necesario una actitud positiva para obtener cualquier tipo de éxito. Recientemente he formado parte de una mesa redonda en la Open Source World Conference celebrada en Málaga. Cinco mujeres presentamos nuestras ideas acerca del papel de la mujer en el mundo del Software Libre. Cada una de nosotras dispusimos de unos cinco minutos para esbozarlas antes de abrir el debate. Me resultó muy desconcertante el que una de las ponentes se pasara alrededor de 25 minutos exponiendo sus ideas de forma extremadamente negativa. Casi la mitad de los asistentes abandonaron la sala y yo me sentía muy deprimida cuando acabó. La oradora llegó al extremo de increpar verbalmente a los que se iban de la charla. Un desastre. Cuando me llegó el turno dije lo que pensaba. En primer lugar agradecí a los asistentes su participación en el SL por ser nuestra comunidad la que está propiciando un cambio social y de percepciones real a nivel mundial. Nuestra comunidad está ligada a valores fundamentales que nada tienen que ver con limitaciones o con estúpidos status quos. Todo lo contrario, está integrada por gente grandiosa que ayuda a otros a ser grandes. Se trata de libertad personal y de poderío individual, y uno de los principales mecanismos que poseemos para ayudarnos es la meritocracia que subyace a nuestros modelos de desarrollo. La gente es juzgada no por sus atribuciones personales, sino más bien por el esfuerzo que ponen en su trabajo. También hablé brevemente sobre prejuicios activos y pasivos. Generalmente, la gente de nuestra comunidad no tiene pre-

¿

juicios activos contra nada en particular. La mayoría de los hombres con los que me he encontrado están muy dispuestos a conseguir que más mujeres se integren en el mundo del Software Libre, y a nadie le importa realmente la religión, edad, discapacidades o el color de la piel que se tenga siempre que se pueda contribuir positivamente a la comunidad de cualquier manera posible. He participado en foros o he estado en listas de correos en los que si alguien ha hecho un comentario racista o sexista, ha sido rápidamente reprimido por los demás. Puedes llevar años trabajando con un desarrollador y desconocer su nombre real y cualquier cosa acerca de su vida y, sin embargo, lo respetamos y confiamos en él gracias a nuestra relación laboral y a sus contribuciones. Esto significa que no le damos importancia a aspectos personales, que sin embargo sí alimentan los prejuicios en nuestra sociedad. Esto significa que la gente no está limitada por aquellas cosas que podrían ser usadas contra ellos en otra sociedad. Esta comunidad tiende a abrirse camino a pesar de los prejuicios y permite que gente de cualquier país, lengua, edad, religión y género trabajen juntos para obtener beneficios mutuos. En términos de prejuicios activos, salimos bastante bien parados. Pero siguen existiendo los prejuicios pasivos. Esas se basan en la existencia de percepciones y suposiciones y pueden ir en contra de un sector de la población. Para explicarme mejor usaré el ejemplo real que ocurre en las orquestas musicales. En un momento dado se introdujeron las audiciones ciegas para seleccionar a los músicos que compondrían una orquesta. La audición se hace desde detrás de una pantalla y la persona está representada por un número, de manera que no es posible la existencia de discriminación alguna. De repente, el número de mujeres y de no-caucásicos que llegaron a la ronda final de audiciones aumentó significativamente. Con las audiciones ciegas se eliminaron de un plumazo los prejuicios activos y pasivos de los jueces evitando perjudicar las interpretaciones individuales. Desde entonces, tanto

WWW.LINUX-MAGAZINE.ES

mujeres como no-caucásicos han tenido cabida en orquestas desempeñando distintos roles. La percepción ha cambiado y ahora no resulta un concepto tan descabellado. En el mundo del Software Libre, gracias al anonimato, existen pioneros de muchas demografías haciendo cosas importantes, los cuales podrían ser objeto de prejuicios por algunas comunidades. Esto es cambiar las percepciones, esto es motor de cambio social. Hay mujeres pioneras que están cambiando las percepciones a lo largo y ancho del mundo, las saludo e intento hacer todo lo que está en mi mano. Los modelos de conducta femeninos hacen maravillas para modificar la percepción de los niños. Esto lo sé muy bien, porque mi madre, que tenía una formación técnica, fue mi primer modelo. Existen también otros pioneros que están cambiando los prejuicios referentes a edad, religión, raza, etc. Hoy día, uno de los cambios más importantes del papel de las mujeres dentro de la informática es ser altamente técnica mientras no se comprometa su feminidad. Si la comprometemos estamos reforzando un status quo extraño y haciendo que sea más difícil para aquéllas mujeres que quieran integrarse. Necesitamos ayudar a cambiar los prejuicios limitadores hacia las mujeres en la informática mediante la participación en el maravilloso mundo del Software Libre y haciendo todo el ruido que podamos. Adopta los valores del Software Libre y llévalos al mundo donde la gente se enfrenta cara a cara, y tendremos un mundo más justo, con una mejor representación y que da más poder al individuo. ■ Saludos, Pia.

LA AUTORA

Mujeres en el Software Libre

Pia Waugh es vicepresidenta de Linux Australia (http://linux. org.au). Es una apasionada del SL y trabaja conjuntamente con el Gobierno Australiano en su promoción. Da charlas en escuelas y universidades a geeks en ciernes sobre las posibilidades del SL y las oportunidades que presenta en el campo de la informática. Puedes leer su blog en http://pipka.org/blog o visitar su sitio comercial en http:// www.waughpartners.com.au.

Número 16

89


COMUNIDAD · OSWC II

Conferencia Internacional de Software Libre de Málaga

OSWC II La recta final de la segunda edición de la OSWC se celebró en el Palacio de Ferias y Congresos de Málaga durante los días 15, 16 y 17 de febrero. Linux Magazine estuvo allí. POR ALBERTO PLANAS Y VÍCTOR TIENDA.

L

a conferencia estuvo marcada por el éxito de asistencia y el elevado nivel de muchos de los ponentes. Se presentaron 176 expertos de 26 países. La organización contó con los típicos contratiempos de estos mega-acontecimientos: problemas con el WiFi, caída de ultima hora de algunos ponentes (¿alguien vio a Alan Kay?), atasco en las máquinas de identificación para la prensa y el despiste natural que sobreviene cuando una ponencia es suspendida. Sin embargo, estos pequeños inconvenientes son del todo intrascendentes cuando se tiene la oportunidad de poder a escuchar a ponentes de la talla de Bletsas, Galli, Barrionuevo, Barahona y tantos otros que compartieron su tiempo y esfuerzo en discutir y comentar las nuevas de esta mezcla de tecnología y filosofía que es el Software Libre. Por otro lado no se ocultó la importancia que presenta para las pequeñas y grandes empresas del sector este nuevo modelo de desarrollo, tal y como atestigua el alto nivel de participación, tanto en ponentes como en stands, de empresas e instituciones. El cambio y la apertura de fabricantes a los modelos del software libre se hizo evidente al contarse en la zona de exposición (muy animada en esta edición) con muchas empresas que cuentan en su haber con una larga historia en el desarrollo de software bajo licencias privativas pero

90

Número 16

que, al menos de palabra, están tomándose más en serio la adopción de modelos de negocio diferentes. Aunque algunas empresas privadas españolas todavía no parecen tener claro por donde tirar a este respecto, quienes sí avanzan a todo tren son las distintas autonomías, con Extremadura a la cabeza, donde la migración es ya un hecho. A diferencia de lo que ocurre en otros ámbitos, en España la iniciativa y la mayor apuesta por el software libre viene de la mano de las instituciones públicas. En este aspecto, una de las estrellas del congreso fue la presentación de Guadalinex v3, la distribución desarrollada con los fondos de la Junta de Andalucía que llegó justo a tiempo para el evento. Con un factura impecable (los fondos y temas azules lucen mucho mejor que el verdigris de anteriores ediciones), un nuevo y remozado instalador gráfico y con un sistema base más moderno (Ubuntu, en vez del clásico Debian), esta distribución promete muchas novedades muy atractivas para el usuario final que se decida a instalarlo.

Las ponencias La ponencia más importante del día de la inauguración (miércoles 15) fue, sin duda, la de Michail Bletsas, del proyecto “One Laptop Per Child”, proyecto abanderado por el MIT y Nicholas

WWW.LINUX-MAGAZINE.ES

Negroponte que pretende desarrollar un pequeño portátil de muy bajo coste (100 dólares) para ser distribuido entre los niños y jóvenes de países del Tercer Mundo. Michail expuso cómo están logrando poco a poco abaratar costes y cómo se han desarrollado nuevas tecnologías para ello, especialmente en lo relativo a la pantalla. Ese mismo día por la tarde tuvo lugar la mesa redonda relativa a creative commons y patentes de software, aunque la discusión se polarizó rápidamente en torno a este último y polémico tema. Destacar la batalla que mantuvo Alberto Barrionuevo, representante de la FFII, frente a Christian Platzer, de la Oficina Europea de Patentes. Como es habitual en este tipo de debates, los defensores de lo indefendible recurrían a las medias verdades o se escudaban en la ignorancia, cosa que no dudaron en señalar los otros ponentes. La jornada del jueves se inició con la sesión plenaria “El futuro de las grandes empresas”, con la presencia de los pesos pesados: IBM, HP, Sun, etc. Las megacorporaciones, cómo no, intentaron transmitir que ellas apuestan completamente por el Software Libre, aunque la manera de hacerlo de cada una tenga puntos más que discutibles. Desde Oracle se defendieron los “ecosistemas abiertos” (especialmente en cuanto a estándares y código) y Sun, por su lado,


OSWC II • COMUNIDAD

apuntó entre otras ideas que el software libre es un medio para el fin de dar más libertad a la sociedad. Novell, ya en otra sala paralela, dejó claro su postura ante la moda de reciente aparición de que cada comunidad tenga su propia distribución GNU/Linux: todos estos esfuerzos se verían mejor recompensados si todas estas distribuciones autonómicas realizaran un intento de unificación. El jueves por la tarde tuvo lugar la mesa redonda con el título “¿Se están generando nuevos modelos de sociedad?”, en la que destacaron las aportaciones del periodista Francis Pisani, y del filósofo por la Universidad Complutense, Javier Bustamante. Bustamante resumió su postura acerca del impacto que las nuevas tecnologías de la información están teniendo en la sociedad actual y la nueva economía: explicó cómo la tecnología revitaliza la vida social y política de las democracias. Hizo también interesantes aportaciones, como la posibilidad de estudiar el modelo de Software Libre mediante la Teoría de Juegos. Francis Pisani, por su parte, se centró más en aspectos como la “brecha digital”, de la cual sostuvo que su principal causa es un problema cultural. Francis Pisani participó también en la mesa redonda del viernes por la mañana, que moderaba nuestro bloggerfoneador favorito, Enrique Dans, bajo el título “El futuro del software libre: la visión de los gurús”. Pisani polemizó en cierta medida al preguntarse acerca de los posibles elementos de fundamentalismo en el mundo del software libre. Branden Robinson, líder de Debian,

repasó los tres ámbitos de desarrollo principales concernientes a la comunidad del software libre: tecnológico, legal y social, y sostuvo que no se puede restringir la libertad, a la hora de crear software de realizar modificaciones a programas que beneficien a la sociedad. Por su parte, Alan Robertsson, del Linux Tehnology Center, alertó de que uno de los factores principales en la supervivencia de un proyecto de código abierto es que llegue a conseguir una masa crítica, una comunidad que pueda llevar adelante el proyecto cuando sus fundadores no puedan continuarlo. Por último, Jeff Waugh, de Ubuntu, defendió la importancia para el software libre que su filosofía de compartir y colaborar llegue a todas las personas: hay que asumir ese reto de difundir los valores de la filosofía del software libre a toda la sociedad.

Anuncios de la Administración Por otro lado se hicieron algunos anuncios importantes, como la puesta en marcha de un repositorio de software libre con más de 270 aplicaciones de la Junta de Andalucía, donde se volcarán todas las aplicaciones liberadas del Gobierno andaluz [1]. En cuanto a los proyectos de futuro, avanzó que este año se regulará el uso obligatorio de los estándares abiertos por parte de la Junta de Andalucía, con el objetivo de que en 2008 todos los sistemas y documentos que intercambien administración y ciudadanos sean de estas características. También anunció la creación del Centro Andaluz

WWW.LINUX-MAGAZINE.ES

del Software Libre, con la participación de las universidades, las empresas y la administración, y que funcionará como banco de pruebas de los fabricantes para sus productos.

Salas Paralelas Al margen de las sesiones plenarias tuvieron lugar en torno a 20 sesiones temáticas paralelas y casi 30 talleres. Sería casi imposible poder resumir de todo lo que se habló, pero podemos destacar fugazmente las ponencias de la gente de KDE, con Antonio Larrosa como anfitrión de lujo, los talleres de los miembros de The Apache Software Fundation y las sesiones de algunas de las más destacadas figuras del panorama del software libre español como Ricardo Galli, de la Universitat de les Illes Balears. Por último mencionar a Tomeu Borrás, de BULMA, que expuso la particular experiencia de BulmaGés y el modelo de negocio en software libre que ellos han adoptado.

… Y el año que viene Esta edición de la OSCW puede considerarse todo un éxito. ¿De cara al futuro? Pues se va a trabajar en potenciar este evento a nivel internacional para intentar situarlo como referente mundial dentro de su categoría. De momento se anunció que la próxima edición se celebrará en Badajoz. ¡Nos vemos allí!

RECURSOS [1] Repositorio de la Junta de Andalucía: http://www.juntadeandalucia.es/ repositorio [2] OSWC: http://www. opensourceworldconference.com

Número 16

91


ยกHazte con tus ejemplares atrasados! #05

#06

#07

#08

#09

#10

#11

#12

#13

o d a t o ag

W W W. L I N U X - M A G A Z I N E . E S / AT R A S A D O S


¡pídelos ya! el REPOSITORIO

de conocimientos LINUX más COMPLETO

¡No esperes a que se agoten! #14

#15

W W W. L I N U X - M A G A Z I N E . E S / AT R A S A D O S


EVENTOS

LinuxWorld Conf. & Expo España

Debconf 6

Fecha: 10-23 Abril

Festival Digital de Andalucía Ciudad: Málaga, España

Fecha: 18-19 Abril

Ciudad: Oaxtepec, México

Sitio Web: http://www.festivaldigital.org

Calendario de Eventos Evento LinuxWorld Conference & Expo Boston Festival Digital de Andalucía LinuxWorld Conference & Expo Spain 7º Fórum Internacional Software Libre III Jorn. Soft. Libre Univ. Cádiz VII Fórum Internacional Software Libre LinuxWorld & NetworkWorld Canada LinuxWorld Conference & Expo Italy LinuxWorld Conference & Expo SA LinuxWorld Conference & Expo Brazil LinuxWorld Conference & Expo Japan USENIX ’06 6º Fórum Internacional Software Livre LinuxWorld Conference & Expo Robocup OSCON 2006 LinuxWorld Conference & Expo LinuxWorld Conference & Expo NL LinuxWorld Conference & Expo UK

Fecha: 14-22 Mayo

Ciudad: Madrid, España. Sitio Web: www.linuxworldexpo.com

Fecha 3-6 Abril 06 10-23 Abril 06 18-19 Abril 06 19-22 Abril 06 20-21 Abril 06 19-22 Abril 06 24-26 Abril 06 9-10 Mayo 06 16-19 Mayo 06 23-25 Mayo 06 31 Mayo - 6 Junio 06 30 Mayo - 3 Junio 06 4-6 Junio 06 5-7 Junio 06 14-20 Junio 06 24-28 Julio 06 14-17 Agosto 06 11-12 Octubre 06 25-26 Octubre 06

Ciudad Boston, MA, EE.UU Málaga, España Madrid, España Porto Alegre, Brasil Cádiz, España Porto Alegre, Brazil Toronto, Canada Milan, Italia ohanesburgo, S. África Sao Paulo, Brasil Tokio, Japón Boston, MA, USA Porto Alegre, Brazil Korea Seúl, Korea Bremen, Alemania Portland, EE.UU. San Francisco, EE.UU. Utrecht, Holanda Londres, R.U.

Sitio Web: http://www.debconf.org

Sitio Web www.linuxworldexpo.com http://www.festivaldigital.org www.linuxworldexpo.com http://fisl.softwarelivre.org http://osl.uca.es/jornadas/ http://fisl.softwarelivre.org/ www.lwnwexpo.plumcom.ca www.linuxworldexpo.it www.linuxworldexpo.co.za www.linuxworldexpo.com www.linuxworldexpo.com www.usenix.org/events/usenix06 http://fisl.softwarelivre.org www.linuxworldkorea.com www.robocup2006.org/start http://conferences.oreillynet.com www.linuxworldexpo.com www.linuxworldexpo.nl www.linuxworldexpo.co.uk

Información de Contacto Director Paul C. Brown

Director Editorial Paul C. Brown

Coolaboradores Paul C. Brown, Jose Manuel González Vida, Juan Rafael Fernández, Pedro Orantes, José María Ruíz, Alberto Planas, Jose A. García, Ana Mª Ferreiro

Jefe de Producción Francisco Fernández

Traductores Paqui Martín Vergara, Paul C. Brown, Antonio Rueda, Víctor Tienda.

Subscripciones: www.linux-magazine.es/ magazine/subs

Maquetación Francisco Fernández Diseño de Portada Pinball info@pinball-werbeagentur.de Publicidad www.linux-magazine.es/pub/ Para España Expresando Comunicaciones info@exprecom.com Tel.: (+ 34) 952 216 406 Fax.: (+ 34) 952 217 115 Paul C. Brown pbrown@linux-magazine.es Tel.: (+ 34) 951 010 556 Fax.: (+ 34) 951 010 516 Para el Resto del Mundo Brian Osborn ads@linux-magazine.com Tel.: (+49) 6509 910 495 Fax.: (+49) 6509 910 497

94

Número 16

Precios Subscripción España: Europa: Resto del Mundo - Euros: Tel.: Fax.: subs@linux-magazine.es

54,90 € 64,90 € 84,90 € (+34) 951 010 556 (+34) 951 010 516

Linux Magazine Linux New Media Spain, S.L. Avda. Juan López Peñalver, 21 29590 - Campanillas Málaga ESPAÑA info@linuxnewmedia.es Tel.: (+34) 951 010 556 Fax.: (+34) 951 010 516

www.linux-magazine.es - España www.linux-magazine.com - Mundo www.linux-magazine.de - Alemania

WWW.LINUX- MAGAZINE.ES

Si bien se toman todas las medidas posibles para garantizar la precisión del contenido de los artículos publicados en Linux Magazine, la editorial no se hace responsable de imprecisiones aparecidas en la revista. Asimismo, Linux Magazine no comparte necesariamente las opiniones vertidas por sus colaboradores en sus artículos. El riesgo derivado del uso del DVD y el material que contiene corren por cuenta del lector. El DVD es estudiado escrupulosamente para confirmar que está libre de virus y errores. Copyright y Marcas Registradas © 2004 Linux New Media Spain, S.L. Linux New Media Spain S.L. prohíbe la reproducción total o parcial de los contenidos de Linux Magazine sin su permiso previo y por escrito. Linux es una Marca Registrada de Linus Torvalds. Impreso en Alemania Impresión: Dierichs Druck + Media GmbH Distribución: SGEL Depósito Legal: MA-116-2005 ISSN edición impresa: 1576-4079 ISSN edición online: 1699-2237


Más del 30% de descuento respecto al precio de portada: Consigue 12 números por 54’90 Euros y todos los DVDs ¡Gratis!

A diferencia de otras publicaciones, Linux Magazine no llenará tu buzón de recordatorios para que renueves tu subscripción. Ésta se renovará automáticamente cada año. Recibirás una confirmación aproximadamente 30 días antes del final de tu periodo de subscripción, pero no se requiere que hagas nada para seguir suscrito.

¡No te pierdas Linux Magazine nunca más! La subscripción te asegura que recibas los conocimientos Linux de más alta calidad en tu domicilio cada mes.

Si por cualquier motivo decides dejar de leer Linux Magazine, puedes cancelar tu subscripción en cualquier momento. Te abonaremos el precio de todos los números que no hayas recibido. Sin preguntas, sin fechas de cancelación, sin problemas.

Linux Magazine es algo más que una revista de Linux. Patrocinamos grupos, congresos, proyectos y eventos relacionados con el Software Libre. Suscribiéndote a Linux Magazine garantizas que podamos seguir apoyando al Software Libre allá donde haga falta.



LINUX LOCAL

LINUX LOCAL Leyenda inux Local es tu directorio de servicios y empresas de Linux cerca de ti. ¿Necesitas soporte, hardware, formación? Consulta Linux Local y encuentra quién ofrece qué y dónde. El directorio se divide en regiones autónomas para ayudarte a localizar las empresas que ofrecen servicios cerca de ti. Utiliza la leyenda de la derecha para encontrar la empresa que ofrece el servicio que precises. Linux Local es tu guía de servicios Linux.

L

1.- Hardware 2.- Software / Desarollo 3.- Formación 4.- Soporte / Consultoría 5.- Servidores 6.- Redes 7.- Migración 8.- Hospedaje

Andalucía Logo

Empresa

Correo-e

Web

1

2 3 4 5 6

7 8

Gesinfo

info@gesinfoweb.com

www.gesinfoweb.com

BitRock

info@bitrock.com

bitrock.com

Properly Software

info@properly.es

www.properly.es/site

GuadaGames

vicentecarro@guadagames.com

www.guadagames.com

Exprecom

info@exprecom.com

www.exprecom.com

Empresa

Correo-e

Web

1

IWS

iws@iws.es

www.iws.es

Empresa

Correo-e

Web

Mono::labs

contacte@monolabs.com

www.monolabs.com

Datum

info@datum.ws

www.datum.ws

Cataluña Logo

2 3 4 5 6

7 8

Madrid Logo

1

2 3 4 5 6

7 8

¿Por qué no está su empresa en este directorio? LINUX MAGAZINE llega a miles de empresas, profesionales y usuarios cada mes. Si tiene servicios o productos Linux que ofrecer ¡Llámenos! Tlf.: +34 951 010 556 Fax: +34 951 010 516 info@linux-magazine.es

WWW.LINUX- MAGAZINE.ES

Número 16

97


PRÓXIMO NÚMERO

Junio 2006: Número 17

PRÓXIMO NÚMERO

SCRIPTS El perfume caro se vende en botellas pequeñas, dicen algunos. Igual que el veneno, dicen otros. La cuestión es que los scripts, esas pequeñas joyas de la programación que hacen una sola cosa, pero de una manera super-eficiente, son la esencia del control sobre un sistema Linux. En el número 17 de Linux Magazine veremos algunas ideas para optimizar scripts para Bash. Asimismo la plataforma para desarrollo para red Twisted, una infraestructura basada en Python y que habla la mayoría de los protocolos de Internet. Terminaremos nuestro repaso a las novedades en el mundo del scripting con un artículo sobre RealBasic, un entorno que permite portar de manera sencilla scripts realizados en VisualBasic a Linux.

MUDS SENCILLAS

DOBLE KLIK

No, no vamos a revolcarnos por el fango. MUD son las siglas de Multi-User Database , y con Mudbag es posible crear bases de datos multiusuario sencillos sin necesidad de pasar por las complicaciones de motores de bases de datos más complejos como MySQL y PostgreSQL.

Si piensas que instalar software en un sistema Linux es complicado, piénsalo de nuevo, porque llega Klik, el nuevo concepto de instalación para KDE, que permite descargar e instalar con un único clic de ratón, sin problemas de dependencia y sin tocar el sistema subyacente. ¿Imposible? Averigua cómo funciona en el próximo número de Linux Magazine.

A LA VENTA: MAYO 2006 98

Número 16

WWW.LINUX- MAGAZINE.ES




Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.