Академический Документы
Профессиональный Документы
Культура Документы
QUIMERA
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
hí va una bonita historia: Habí- mencionamos antes. Todo unes a una red de información
FEDORA 10 :
32 Y 64 BITS
F
edora, heredera de la versión gra- Más Cosas para tu Fedora
tuita de Red Hat Linux, se ha con- Tal y como se menciona en el cuerpo del artículo, por razones legales, muchas distros no
vertido a lo largo de los años en pueden incluir software con licencias restrictivas o que infrinja patentes y, en este sen-
una de las más sólidas y recomendables tido, Fedora no es una excepción.
distribuciones de entre las mayoritarias. El tipo de software que se excluye suele ser codecs de vídeo y audio (necesarios para
En este número de Linux Magazine trae- reproducir películas o música en formatos propietarios, como .avi o .mp3), librerías de
mos lo último de la comunidad Fedora: descifrado de DVD (necesario para ver cualquier DVD comercial moderno) y plugins pro-
Fedora 10 Cambridge. pietarios (como el Flash).
Afortunadamente, la comunidad que surge alrededor de cada distro, de manera altruista
Novedades y sin ánimo de lucro, suele compensar estas carencias montando sus propios reposito-
El proceso de instalación es completa- rios, en sus propios servidores y poniendo a disposición de los demás el software fal-
mente gráfica, pudiéndose escoger los tante.
valores predeterminados que sugiere En el caso de Fedora, el repositorio independiente más completo es Livna, y podemos
Fedora en el caso de una instalación sobre incluirlo directamente durante el proceso de instalación (también recomendamos mar-
un equipo virgen. Durante el proceso car los repositorios Fedora 10 y Fedora 10 updates para poder disponer de todo el soft-
ware oficial de esta distro).
existe la opción de añadir repositorios a
los que vienen por defecto, por lo que En la pantalla de Agregación de Repositorios, pulsamos en “Agregar repositorios de
inmediatamente podemos aprovecharnos software adicional”. En el diálogo introducimos, en el cuadro de texto Nombre, “Livna”,
y en URL del Repositorio, http://livna-dl.reloumirrors.net/fedora/10/i386/ si nuestro sis-
del gran número de paquetes disponibles
tema es de 32 bits, o http://livna-dl.reloumirrors.net/fedora/10/x86_64/, si es de 64 bits.
en Internet, aparte de los incluidos en el
También podemos incluir estos repositorios utilizando los rpms que proporciona Livna y
DVD. Ver el cuadro Más Cosas para tu
que automatizan completamente el proceso. Nos bajamos los ficheros rpm de [2] y,
Fedora para más información.
como root, hacemos:
Fedora viene con Plymouth, un nuevo
# rpm -i livna-release-10.rpm
sistema de arranque gráfico. Es más atrac-
tivo y esconde los mensajes del arranque (Puede que el nombre del fichero rpm cambie según el sistema que se esté ejecutando).
(en caso de ser necesario, podemos seguir Inmediatamente dispondremos del repositorio configurado en nuestro sistema.
Figura 1: Pantalla de inicio de la instalación. Para más opciones se Figura 2: Durante la instalación podremos añadir nuevos repositorios
pulsa F1, F2 ó F3. a los existentes.
Multimedia
Entre los reproductores de medios
encontramos los sospechosos habi-
tuales: Totem, RhythmBox, K3B,
etc. en sus últimas versiones. Hay
que notar que no se incluyen de
manera predeterminada ni codecs
ni plugins sujetos a licencias res-
trictivas o que puedan violar
patentes de terceros. Sin
embargo, Fedora 10 incluye
Packagekit, que se activa cuando
un usuario intenta reproducir un
medio que requiera software no
soportado inicialmente. Con un par
de clics, el usuario puede instalar los
ficheros necesarios y disfrutar inmediata-
mente de sus películas y música. Ver cua-
dro Más Cosas para tu Fedora para apren-
der cómo añadir los repositorios requeri-
dos.
el proceso a través de los mensajes si pul- 3.0 y Firefox 3 se instalan de manera pre- Con todo, Fedora es una distro profesio-
samos Esc), que también es ahora más determinada. El sistema de mensajería ins- nal, completa y muy agradable de utilizar,
rápido gracias a la tecnología Readahead: tantánea de serie es ahora Empathy, aun- tanto en el entorno profesional como en el
con Readahead se leen todos los búfers de que se sigue incluyendo Pidgin para garan- doméstico. Su hincapié en la seguridad y
disco de antemano, lo que acorta de tizar la compatibilidad hacia atrás. estabilidad lo hacen especialmente indi-
manera sustancial el tiempo de arranque. El sistema ofrece un mejor soporte para cado para entornos corporativos.
El escritorio predeterminado es Gnome Webcams, habiéndose mejorado el driver ¡Pruébala! ■
2.24, pero si deseamos podemos escoger UVC, introducido por primera vez en
KDE 4.1.2, escritorio éste que trae la nueva Fedora 9. Con ello se consigue que se reco- RECURSOS
versión de Plasma que incluye mejoras de nozca sin problemas un mayor número de
[1] Página principal del proyecto Fedora:
estabilidad y más funcionalidades. cámaras, entre ellas todas las que lleven el
http://fedoraproject.org/
En el apartado de software para produc- logotipo de compatibilidad con Windows
[2] Página de inicio del proyecto de repo-
tividad tenemos disponible el nuevo GIMP, Vista.
sitorios Livna: http://rpm.livna.org/
versión 2.6, con sus cambios en interfaz y El sistema de seguridad de Fedora es
rlowiki/
soporte de espacios de color. OpenOffice SELinux, que presenta numerosas mejo-
Figura 3: El escritorio predeterminado es Gnome 2.24, que es sencillo Figura 4: … Aunque también podremos escoger el espectacular KDE
y funcional… 4.1.
SEGURIDAD WEB
Aprendemos más sobre cómo proteger nuestro sitio web con NoScript, ModSecurity y Site Security Police.
A
l igual que muchas otras áreas que seamos de la seguridad, pues siem- script por completo es una opción, aun-
relacionadas con la seguridad, la pre interactuaremos con servidores y que muchos sitios utilizan JavaScript
World Wide Web presenta dos clientes menos seguros. para presentar contenidos, formularios,
tipos de problemas muy diferentes con etc.
soluciones muy distintas. De una parte, JavaScript y NoScript Un método más grnaular se encuentra
la mayoría de nosotros usa un navegador Para el navegador web Firefox, más de disponible con el plugin NoScript de
web de manera habitual y deseamos evi- 196 avisos de seguridad, 62 listaban des- Firefox [1]. La opción por defecto es blo-
tar que nuestros clientes web ejecuten habilitar JavaScript como una solución quear la ejecución de JavaScript, y
código de un atacante que le permita provisional. Adicionalmente, las vulne- entonces podemos elegir si permitir que
hacerse con el control de nuestra rabilidades basadas en JavaScript tien- JavaScript se ejecute temporalmente o
máquina. Por otra parte están los servi- den a ser unas de las que permiten la bien permanentemente. O podemos
dores web, a los que no deseamos que se ejecución de código arbitrario, de modo marcar un sitio permanentemente como
vean comprometidos por ataques cons- que cualquier medida preventiva de de poca confianza para evitar cualquier
tantes (XSS, inyección SQL, etc.). Así seguridad que tenga relaciones con ellas JavaScript que se esté ejecutando desde
que ¿Cuál es la respuesta? Pues bien no tendrán un efecto significativo. aquel sitio (Figura 1).
existe una única respuesta. Necesitamos La seguridad de los clientes web con- El inconveniente principal de este
seguir una serie de pasos para proteger tra ataques es relativamente simple; sin plugin es que necesitamos prestar aten-
tanto a los clientes como a los servido- embargo, algunos sitios web no funcio- ción a la barra de información que apa-
res, ya que no importa lo escrupuloso nan adecuadamente. Deshabilitar Java- rece en la parte inferior de la pantalla
cuando está bloqueado JavaScript
(Figura 2) y decidir si permitirlo o no. Si
no lo permitimos, nos encontraremos,
como me pasa a mí, mirando fijamente
un sitio web preguntándonos por qué
está en su mayor parte blanco, o por
qué un formulario online no funciona
correctamente.
Adicionalmente, NoScript posee pro-
tección contra el scripting multi-sitio
básico: URLs con caracteres como “>”
en ellos generan un aviso y darán al
usuario la posibilidad de bloquear su
carga.
Asegurando el Servidor
Como administrador de servidores no
puedes forzar a tus clientes a asegurarse,
pero puedes proteger tu propio servidor
y aplicaciones basadas en web de ata-
ques. Protegiendo el servidor también
puedes evitar los clientes rotos o usua-
rios que hayan visitado sitios hostiles de
acciones de ataque que pudieran dañar
sus cuentas o de datos alojados en nues-
tro sitio, saboteando por ejemplo, un
ataque de scripting multisitio que inter-
actúa con la cuenta del usuario para
cambiar la contraseña de su cuenta en
nuestro sitio.
8 Número 4
45 WWW.LINUX- MAGAZINE.ES
INSEGURIDADES
NOTICIAS DEL
KERNEL
Estado del Driver HGA resultante pueda distribuirse legalmente mucha gente tenía opiniones muy diferen-
Framebuffer bajo su licencia), pero no cree que este tipo tes, con numerosas razones que las susten-
El driver HGA Framebuffer ha dejado de de cosas deban incluirse en el kernel. Está taban. En cuanto a qué podría pasar con los
mantenerse. Roland Kletzing confirmó que trabajando en crear una rama git separada parches de David Woodhouse, yo esperaría
el mantenedor oficial, Ferenc Bakonyi, no para todos ellos. algún tipo de compromiso. La eliminación
disponía de hardware relevante desde el Esto generó unas cuantas réplicas que del firmware es algo que prefieren los puris-
año 2001. Por tanto, la entrada en MAIN- disentían de esta política. La mayor parte de tas del software libre, y además también
TAINERS estaba completamente desactuali- la gente estaba a favor de aislar el firmware sería preferible por razones prácticas y lega-
zada y Roland ha posteado un parche para en una única ubicación, pero sacarlo fuera les. En ese caso, gente como David Miller
eliminarla. ■ de la rama parecía excesivo, debido a que podría perder la batalla: esperemos que esto
esto podía generar problemas en paquetes no les cause muchos inconvenientes. ■
¿Drivers de Cosecha de firmware y otros requerimientos que
Propia? algunos no querían enfrentar. Ayuda a la Compilación
Michael Buesch ha estado diseñando y La oposición más notable a la idea de Automática del Kernel
construyendo sus propios dispositivos hard- David la ofreció David S. Miller, que ya lle- Clifford Wolf ha escrito un nuevo objetivo
ware y preguntó recientemente si debía vaba un tiempo luchando contra ella, espe- de makefile, no2modconfig. Generalmente,
suministrar los drivers para ese hardware o cialmente en el caso del driver tg3, al que cuando configuramos nuestro kernel para
si simplemente debía mantenerlos como consideraba integrante necesario de la rama compilar, toda opción en la que tecleemos N
parches independientes. La respuesta principal. David Miller comentó que si dis- no se compilará. Con no2modconfig, estos
mayoritaria fue “¡envía los drivers!”. Apa- tribuciones como Debian querían evitar los elementos se compilan en módulos. Apa-
rentemente, en tanto en cuanto Michael (u datos binarios en el kernel, era cosa de ellos rentemente, esto es útil para autogenerar
otra persona) esté dispuesto a documentar escribir y mantener los parches necesarios kernels.
cómo se puede construir el hardware, los fuera de la rama. Resultó que Sam Ravnborg tenía algunos
drivers de ese hardware serán bienvenidos David Woodhouse respondió que él ya parches que hacían lo que Clifford quería,
en el kernel. Con este tipo de iniciativas, había tomado los pasos necesarios para de manera que usaban la configuración del
pronto veremos cómo aparece una gran asegurar que, incluso sin eliminar el firm- objetivo de compilación allmod existente
variedad de drivers para hardware especí- ware, sus cambios aún serían útiles, aun- con un archivo de configuración base pre-
fico. ■ que tenía la sensación de que sería mejor determinado. En respuesta al post de Clif-
sacarlos por completo. Llegados a este ford, Sam comentó que intentaría tener lista
Eliminar Firmware de la punto, los participantes derivaron sus dis- su propia solución a corto plazo para que
Rama del Kernel cusiones a aspectos técnicos de cómo debe- pudiera revisarse. ■
David Woodhouse quiere eliminar todo el ría implementarse esta idea. Sin embargo,
firmware de terceros fuera de la rama del no estaba claro si algunas de las ideas eran Escritura bajo CramFS,
kernel. David está a favor de permitir que el sugerencias reales o sólo cavilaciones SquashFS y Otros
kernel cargue elementos arbitrarios de acerca de si sería posible en caso de que la Arnd Bergmann añadió soporte para escri-
código firmware (siempre que el binario gente lo pidiese. Lo que estaba claro era que tura a CramFS… o algo parecido. Ahora el
usuario puede modificar los archivos en un
sistema en uso, aunque éstos no se escriben
La lista de correo del kernel de Linux comprende lo principal en disco: los cambios simplemente se man-
de las actividades de desarrollo de Linux. El volumen del
tienen en memoria, y un reinicio devuelve
tráfico es inmenso, alcanzándose a menudo los diez mil
al sistema a su estado original. Phillip Lou-
mensajes semanales. Mantenerse al día de todo lo que
gher comentó que está planeando imple-
sucede en el desarrollo del kernel es casi imposible para
una sola persona. mentar este tipo de solución para SquashFS.
Generalmente, los intentos anteriores impli-
Sin embargo, Zack Brown es uno de los pocos valientes que
lo intentan, y a partir de ahora podrá leerse lo último de las
caban el uso de UnionFS para revestir la ins-
discusiones y decisiones con respecto del kernel de Linux tancia TmpFS del sistema de archivos en
llevados de la mano de este experto. cuestión. Arnd señaló que UnionFS actual-
Zack ha publicado un resumen online semanal llamado
mente no es la mejor solución y que es pre-
“The Kernel Traffic Newsletter” durante cinco años. Linux ferible codificar la funcionalidad directa-
Magazine te trae ahora la quintaesencia de las actividades mente en CramFS, en lugar del complicado
del kernel de Linux del mayor especialista en el tema. UnionFS. Phillip añadió que el soporte de
sistemas de archivo apilable pertenecía en los cuales un apagón o problemas con la hardware o bien porque estaban acostum-
realidad a VFS, que actualmente no lo actualización podrían generar inconvenien- brados a trabajar con su equipo tal cual
soporta. tes a bastantes personas, por lo que no les estaba y no deseaban ningún tipo de cambio.
Mucha gente aconsejó usar (o al menos preocupaba actualizar a 2.6 y preferían man- Willy llevó a cabo su encuesta en parte
arreglar) UnionFS, generándose una discu- tener el último 2.4. Cerca del 20% de los para averiguar cómo incentivar a más gente
sión técnica acerca de cómo podría hacerse. encuestados usaban 2.4 para servidores de a que actualicen desde 2.4 de manera que
Arnd y Phillip comentaron que les gustaría aplicaciones específicas, que suelen ser ser- esta rama pudiese desaparecer en paz. La
comprometerse en caso de que UnionFS (o vidores “críticos”, en los cuales un apagón, recomendación principal de Willy hacia el
AUFS) pudiesen hacer lo que se necesita sin incluso para actualizar al kernel 2.4 más equipo de 2.6 es que elaboren una descrip-
un esfuerzo excesivo, pero la discusión fina- reciente, podría suponer un gran problema. ción clara de las diferencias funcionales
lizó sin conclusiones. Para los chicos del ker- Aproximadamente un 10% de las perso- entre 2.4 y 2.6, de modo que los usuarios no
nel, parece claro que el soporte de pseudo- nas que respondieron usaban 2.4 para rou- tengan que averiguar lo que no va a funcio-
escritura para CramFS y SquashFS (y posi- ters, cortafuegos y otras aplicaciones de nar por su cuenta. También recomendó des-
blemente ISO 9660 también) ayudaría a los redes. En estos casos, actualizar a 2.6 podría tacar que se puede regresar a 2.4 de manera
usuarios, y las funcionalidades podrían ser relativamente sencillo debido a los esca- sencilla en caso de que la actualización no
soportarse de una manera u otra. ■ sos requerimientos del sistema, pero los haya ido bien.
encuestados no estaban seguros de cómo Otra razón para realizar la encuesta fue
El Rumbo de 2.4 actualizar con éxito, por lo que simple- para hacer ajustes en el esquema de lanza-
Tras un largo paréntesis, Willy Tarreau ha mente se mantienen con lo que conocen. mientos del kernel 2.4 por parte de Willy. A
lanzado últimamente más versiones del ker- Otro 10% usaban 2.4 en productos de este respecto señaló: “efectuaré lanzamien-
nel 2.4 De igual manera, ha hecho algunos tipo sistemas embebidos. En este caso, sus- tos estables un poco más a menudo para
esfuerzos para recoger algunas estadísticas pender los sistemas para una actualización que los usuarios obtengan los arreglos de
acerca de quién usa el kernel y por qué no sería algo visible para el cliente y requeriría manera rápida, pero incrementaré progresi-
actualizan al kernel 2.6. Con sólo 22 res- cambios sustanciales en los procesos esta- vamente el intervalo entre lanzamientos
puestas, las cifras de Willy tienen un mar- blecidos por la empresa. mayores”. Continuó comentando que los
gen de error considerable, pero aún así son El resto de los encuestados, aproximada- lanzamientos mayores sólo se efectuarán
interesantes. Cerca de la mitad de los mente otro 10%, ejecutaban 2.4 en sus siste- con nuevas IDs de PCI, actualizaciones
encuestados señalaron que confiaban en mas personales, bien porque no querían importantes de drivers y soporte de compi-
2.4 para servidores de propósito general en intentar configurar un nuevo kernel para su lación, por ejemplo. ■
NOTICIAS
Acusaciones en Base Cero referencia a datos objetivos o fuentes En el artículo también se menciona
Pocas veces una noticia ha removido del estudio que menciona Frutos en un supuesto decremento de la crea-
a tantos portales de noticias y nave- sus declaraciones. ción de riqueza directamente en las
gantes de internet como la del estu- Todo lo anterior hace pensar que se autonomías, ya que se alega que el
dio de BSA y las polémicas declara- trata nuevamente de un informe software que no se compra no se
ciones de su presidente. encargado a consultoras “amigas” y crea, llegando a afirmar que en estas
En estas declaraciones, Luis Frutos que se basa en cifras aleatorias com- autonomías han llegado a perder 104
(presidente del Comité Español de putadas de manera interesada. Así millones de euros [5], como si el
BSA), acusa a una gran mayoría de vuelven a conseguir que los números beneficio que se genera con la venta
usuarios, mencionando expresa- justifiquen sus campañas de descré- de software propietario revirtiera en
mente a extremeños y andaluces, de dito contra el software libre. su totalidad en los habitantes de
cometer la ile- dichas comunidades.
galidad de usar La asociación Andalibre [6], la
software pirate- Asociación de Empresas de Software
ado. Y no con- Libre de Andalucía, ha denunciado
tento con acu- las declaraciones del señor Frutos
sar sin funda- con una esclarecedora nota de
mentos al 60% prensa [7] y promueve su propia
de la población campaña de “Legal y Rentable” que
andaluza y incide en la rentabilidad y la seguri-
extremeña, dad legal de informatizar una
declara que el empresa con software libre, en una
sistema opera- posición diametralmente opuesta a
tivo Linux es la de la BSA. ■
“una vía de
entrada para RECURSOS
software
[1] Declaraciones de Luis Frutos: http://
pirata” [1].
www.abcdesevilla.es/20081118/
También hace
andalucia-actualidad/
referencia a la
andalucia-comunidad-pirateria-infor
campaña que se
matica-200811181416.html
está empren-
diendo para [2] Metodologia del 2007: http://global.
que incluyan en bsa.org/idcglobalstudy2007/studies/
la polifacética methodology_globalstudy07.pdf
“educación para la ciudadanía” un Desde un punto de vista mercado- [3] Web de la BSA: http://w3.bsa.org/
tema en el que se hable de su parti- técnico, es perfectamente lógico: las espana/
cular visión de los derechos de autor. dos comunidades mencionadas en [4] Ahorro de costes en Andalucia:
En Linux Magazine nos ha sido sus declaraciones son (casualmente) http://www.softwarelibre.net/
imposible acceder a la fuente original en las que más inversión e implanta- category/andalucia
de la noticia (bien porque el estudio ción de software libre se ha realizado [5] Reducción en la creación de riqueza
no se halla disponible o bien porque en los últimos años, cosa que a una (según la BSA): http://www.
directamente no existe, no lo sabe- empresa que representa los intereses europapress.es/extremadura/
mos), sí habiendo conseguido encon- de los principales fabricantes de soft- noticia-extremadura-situa-segunda-r
trar la metodología del estudio que ware propietario no interesa dema- egion-pirateria-software-tasa-57-cien
se usó para elaborar el informe del siado. El software libre ha permitido to-bsa-20081119124239.html
año anterior, el del 2007 [2], algunas un ahorro de 180 millones de euros
[6] Web de Andalibre: http://www.
de cuyas premisas son, como poco, desde su implantación a la comuni-
andalibre.org/
bastante discutibles desde el punto dad autónoma andaluza [4], dinero
de vista estadístico. En la propia que han dejado de percibir los clien- [7] Andalibre denuncia las declara-
página web de la BSA [3] y a día de tes de la BSA. Con estos datos sobre ciones de Frutos: http://andalibre.
hoy no aparece ninguna noticia pos- la mesa se empieza a vislumbrar la org/prensa/
terior a mayo del 2008 ni ninguna razón de este ataque. 20081121-respuestaPirateriaBSA.pdf
ACCESO
INTELIGENTE
Posiblemente la seguridad de las contraseñas no sea perfecta, pero la mayoría de las redes dependen de ella.
Este mes examinaremos algunas herramientas para una autenticación más versátil e inteligente.
ras años de constante innovación la integración con tecnologías propieta- y LDAP, y mostraremos cómo crear una
EN PORTADA
Contraseña de usar y tirar . . . . . . . . . .18
OpenID . . . . . . . . . . . . . . . . . . . . . . . . .31
van la seguridad de las contraseñas de un solo uso a Linux. POR UDO SEIDEL KARSTEN REICH
A
pesar del auge de la biometría, las Incluso si un atacante rastrea una con- mediante un método conocido por
contraseñas siguen siendo los traseña en ruta hacia el servidor de ambas partes.
medios de autenticación más autenticación, la contraseña será inútil.
populares. En ambientes hostiles, usua- Para que funcione una contraseña de un Técnicas
rios renegados intentan rastrearlas o cap- solo uso el cliente debe tener algún Los expertos en seguridad han desarro-
turarlas. Estos intentos pueden frustrarse medio para determinar qué contraseña llado varias técnicas para generar contra-
mediante las contraseñas de un solo uso. va a utilizar, y el servidor debe saber señas de un solo uso. Algunos métodos
Una contraseña de un solo uso se vuelve qué contraseña esperar. A continuación obtienen la nueva contraseña a partir de la
obsoleta después de ser usada. el cliente calcula una respuesta manipulación matemática de la contra-
05 nullok try_first_pass
mente caros; además, a menudo la tecno- 06 Feb 16,2008 05:58
logía está patentada o bien los mecanis-
06 ... 07 #
mos internos no son totalmente revelados
DOMINANDO AL
CERBERO
Henryart, Fotolia
El sistema de Directorio Activo de Microsoft ofrece gestión centralizada de usuarios y un registro individuali-
zado. Si estamos dispuestos a realizar ciertos pasos manualmente, podemos aprovechar con Linux todo este
S
on muchas las empresas en las determinado número de componentes y ponen la funcionalidad de ingreso indivi-
que por fin Linux y Windows herramientas de libre distribución, pode- dualizado y la creación automatizada de
conviven en paz. Muy a menudo, mos integrar fácilmente nuestros siste- los directorios de los usuarios en el lado
en las redes heterogéneas predominan el mas Linux en la infraestructura de Direc- del cliente.
software de oficina de Windows y los torio Activo. El ejemplo de este artículo está basado
servidores al estilo Unix. El servicio de En este artículo suponemos que se dis- en el servicio Winbind del proyecto
Directorio Activo, que introdujo Micro- pone de un servidor de Directorio Activo Samba y en Kerberos 5 para la autentica-
soft con Windows 2000 Server, se suele que gestiona una estructura de dominio ción. Por supuesto, Kerberos no lo inven-
usar para la gestión centralizada de completa bajo Windows. Partiendo de taron los ingenieros de software de Red-
información de usuarios. aquí, mostraremos cómo configurar mond; Microsoft adoptó este método de
Linux suele hacer uso del típico sis- nuestros clientes Linux para autenti- autenticación del mundo Linux. Kerbe-
tema de /etc/passwd o de una solución carse, acceder y hacer uso de la infraes- ros fue desarrollado originalmente en el
distribuida tal como NIS o LDAP, pero si tructura del dominio. El plato fuerte de MIT (Massachusetts Institute of Techno-
estamos interesados en configurar un este menú sobre gestión y registro lo logy) en los años 80. Tanto el proyecto
Figura 1: Kerberos es un servicio de autenticación por red por tickets Figura 2: La autenticación en Kerberos es sofisticada a la vez que
basado en secretos compartidos. En la arquitectura de Kerberos flexible: un cliente envía una petición de TGS al KDC(1) y recibe un
todos los componentes pertenecen a la zona Kerberos. El corazón de ticket temporal(2). El ticket autoriza al cliente a pedir(3) más tickets,
la zona son la base de datos y el KDC (Key Distribution Center). Los esta vez para los servicios de red kerberizados(5), sin que sea nece-
componentes principales del KDC son el AS y el TGS. sario volver a introducir contraseñas.
libre Heimdal [1] como la aplicación de introducir la clave a la hora de recibir el usuario, la cifra, y guarda el hash en la
referencia del MIT [2] ofrecen un soporte TGT. base de datos principal. El programa de
completo para Kerberos 5. Shishi [3] es login, o el kinit, calcula la clave secreta a
otra implementación libre. ¡Sus Tickets, por Favor! partir de la contraseña introducida por el
El programa de login va pidiendo el TGT usuario y descifra el TGT. La contraseña
Secretos Bien Guardados a los clientes (ver Figura 2). Alternativa- nunca se transmite sin haber sido cifrada
Kerberos es un servicio de autenticación mente, el kinit puede realizar una peti- previamente.
por red basado en tickets que dependen ción después de que el usuario haya Cuando el usuario necesita acceder a
de secretos compartidos. El sistema ingresado. El AS busca en el Directorio un servicio kerberizado de una red, pre-
guarda un área, denominado zona, que Activo al principal que hace la petición. senta su TGT al TGS y pide un ticket para
puede incluir varios clientes y servicios. Cuando el AS encuentra al principal, el servicio en cuestión. El TGS le propor-
En este ejemplo, tanto los clientes envía un TGT. ciona el ticket en segundo plano. Ahora
como un número determinado de servi- Entonces el AS cifra el TGT con la que el cliente dispone de su ticket para el
cios, como el de archivos, se ejecutan clave del principal y devuelve el hash a servicio, puede hacer que el usuario
bajo Linux. Windows maneja los servi- la entidad que hace la petición. Si la enti- ingrese automáticamente en el servicio
cios de directorio y autenticación a tra- dad que hace la petición es un cliente, el solicitado sin que sea necesaria ninguna
vés del KDC (Key Distribution Center). KDC extrae la clave de la contraseña del contraseña.
El KDC es un componente central en Los tickets de Kerberos tienen un
Kerberos (Figura 1) que comprende el Listado 1: /etc/kr5b.conf tiempo de vida limitado. El problema del
AS (Servidor de Autenticación) y el TGS tiempo hace imprescindible la sincroni-
01 [libdefaults]
(Ticket Granting Server).028-034_ad- zación de la hora del sistema de todas las
pam 02 default_realm = máquinas de la zona. El servidor Kerbe-
Al inicio de cada sesión, cada miem- KDC.EJEMPLO.ORG ros se negará a proporcionar un ticket
bro (o el principal) de la zona demuestra 03 dns_lookup_realm = false inicial a cualquier máquina desincroni-
su autenticidad sólo una vez. Para zada en más de cinco minutos.
04 dns_lookup_kdc = false
hacerlo, el principal pide un TGT inicial Aunque podamos cambiar el tiempo
(Ticket Granting Ticket) al AS. Usará este 05 [realms] máximo a través del cliente Kerberos o el
ticket para las peticiones al TGS de los 06 KDC.EJEMPLO.ORG = { servidor de Directorio Activo, lo más
posteriores tickets de servicio. 07 kdc = w2k.kdc.ejemplo.org lógico es instalar un servidor de hora
Cuando en Kerberos hablamos de ti- central con el que sincronizar a los clien-
08 default_domain =
cket nos estamos refiriendo a una cre- tes.
dencial electrónica. Una vez el principal KDC.EJEMPLO.ORG Los clientes deben, además, ser capa-
ha recibido una credencial, se le garan- 09 } ces de resolver el nombre de DNS del
tiza el acceso a las aplicaciones “kerberi- 10 [domain_realm] servidor Kerberos. Si fuese necesario,
zadas” que requieran de una prueba de podríamos añadir una entrada en el ser-
11 .ejemplo.org =
identidad sin necesidad de introducir vidor de nombres central o simplemente
una clave. Los usuarios sólo tienen que KDC.EJEMPLO.ORG mantener el archivo estático /etc/hosts
de cada sistema implicado en el inter- sección [domain_realm] define el enlace Directorio Activo con la configuración
cambio. a nombre de dominio/zona en la librería necesaria para Winbind.
de Kerberos. Si queremos que la librería El parámetro security = ads de la línea
Instalación de Kerberos de Kerberos establezca una conexión con 5 indica a Winbind que no ha de buscar
Después de atender los requerimientos un host remoto, ésta necesitará conocer la contraseña en la base de datos local,
relacionados con el tiempo y la resolu- la zona en el que reside el host. Las sino que debe enviar la petición al con-
ción de nombres, ya podemos pasar a entradas que comienzan por un punto trolador de dominio del Directorio
instalar Kerberos en nuestros clientes asignan todos los hosts con el siguiente Activo. El controlador de dominio decide
Linux desde los paquetes de nuestra dis- sufijo a la zona especificada. Para asegu- entonces si la contraseña es legítima o
tribución. Para la versión del MIT en rar unas comunicaciones libres de pro- no.
debian instalaremos los paquetes krb5- blemas con el servidor Kerberos, es En caso de tener un controlador de
user y krb5-config desde los repositorios importante usar mayúsculas para los dominio de DA Windows 2003, tendre-
o, en caso de usar Fedora, instalaremos nombres de las zonas. mos que incluir clientschannel = no en
krb5-workstation y krb5-auth-dialog. Haciendo uso de esta configuración, la sección [global]. Antes de que el
Como alternativa, podríamos compilar podemos probar las comunicaciones con cliente se convierta en un miembro del
las fuentes proporcionadas por el MIT. el servidor kerberos. El comando kinit dominio, el administrador le dice (en la
Para configurar Kerberos, modifica- pide el TGT. Si no se especifica ningún línea 6) a qué zona de Kerberos perte-
mos el archivo /etc/kr5b.conf. El Listado parámetro más, el programa intenta nece el principal.
1 muestra una configuración mínima, afianzar un TGT para el principal con el
aunque funcional, del paquete del MIT; mismo nombre del usuario ingresado. Gestión Centralizada de
los clientes la necesitarán para estable- Para que esto ocurra, el usuario sólo Usuarios
cer una conexión con el servidor Kerbe- deberá introducir la contraseña una vez. Ser miembro de un dominio sólo elimina
ros. Las otras implementaciones de Ker- El programa kinit envía entonces una la necesidad, por parte del sistema
beros emplean más o menos la misma petición TGT sin cifrar al servidor de Linux, de gestionar las contraseñas, pero
sintaxis. autenticación; la petición contiene, entre
otras cosas, el nombre del principal. La Listado 3: smb.conf
Creación de Zonas respuesta enviada al cliente contiene el 01 [global]
La línea default_realm (zona predetermi- TGT cifrado, que kinit descifra para
02 ; Samba como miembro del
nada) de la sección [libdefaults] define almacenar localmente.
dominio
una zona llamada KDC.EJEMPLO.ORG La salida del comando klist del Listado
como el predeterminado para las aplica- 2 incluye los datos de validación del TGT 03 workgroup = kdc
ciones Kerberos. En caso de estar usando recién enviado. Si la salida del comando 04 password server =
varias zonas, podemos añadir otra expre- muestra el ticket, podemos suponer que srv.kdc.ejemplo.org
sión a la sección [realms] (zonas). La la configuración del ciente Linux está 05 security = ads
completa. Para eliminar el TGT de
06 realm = KDC.EJEMPLO.ORG
Listado 2: klist Mostrando prueba usamos kdestroy.
07 encrypt passwords = yes
los Tickets
01 $ klist
Pertenencia 08
El siguiente paso consiste en añadir el 09 ; no se es el maestro de la
02 Ticket cache:
cliente Linux como miembro del domi- red Windows
FILE:/tmp/krb5cc_1000
nio del Directorio Activo. Para ello nece-
03 Default principal: 10 local master = no
sitamos la versión 3.0.14a de Samba o
user@KDC.EJEMPLO.ORG posterior, y el paquete del programa 11 os level = 20
04 Winbind para la gestión centralizada de 12 domain master = no
usuarios en Windows y Linux. Winbind 13 preferred master = no
05 Valid starting Expires
hace uso de una implementación Unix
Service principal 14
de las llamadas RPC de Microsoft, los
06 03/17/08 11:10:27 03/17/08 15 ; Configuración de Winbind
módulos PAM (Pluggable Authentication
21:10 krbtgt/
Modules) y NSS (Name Service Switch) 16 winbind separator = +
KDC.EJEMPLO.ORG@KDC.EJEMPLO.O
para que los usuarios de clientes Linux 17 idmap gid = 10000-20000
RG puedan ingresar en el dominio Windows
07 renew until 03/18/08 18 idmap uid = 10000-20000
y trabajar como usuarios locales.
11:10 La configuración de Samba se realiza a 19 template shell =
08 través del archivo smb.conf, que normal- /bin/bash
mente se encuentra bajo el directorio 20 template homedir =
09 Kerberos 4 ticket cache:
/etc/samba/. En el Listado 3 mostramos /home/%D/%U
/tmp/tkt1000
una configuración completa a modo de 21 winbind enum users = yes
10 klist: You have no tickets ejemplo con la que implementamos un
cached 22 winbind enum groups = yes
servidor miembro de un dominio de
# /etc/pam.d/common-session
session required U
pam_mkhomedir.so silent U
skel=/etc/skel/ umask=0022
session sufficient pam_krb5.so
session required pam_unix.so
IDENTIDADES
OpenID nos ofrece un estándar abierto para la gestión del acceso a método más abierto. Pero después de un
desarrollo activo de siete años, Liberty
sitios web protegidos. POR NILS MAGNUS Alliance aún no ha llegado a ser aceptada
globalmente por considerarse mastodón-
N
o todo el mundo ve la web 2.0 desplace y acceda desde distintas localiza- tica. El proyecto OpenID, bajo el auspicio
como la panacea. Uno de los pro- ciones. de la OpenID Foundation [3], está basado
blemas tiene que ver con la canti- en una funcionalidad más simple que
dad de sitios web protegidos por contra- El Método de la Comunidad puede integrarse fácilmente en los siste-
seña. Blogs personales, comunidades vir- Las soluciones para la gestión de identida- mas de autenticación online.
tuales (desde Xing a Facebook), o incluso des proporcionan una respuesta más apro- Cuando elegimos la alternativa Open-
sitios dedicados a la gestión de gastos o piada y flexible para simplificar el proceso ID, dejamos de identificarnos mediante
planes de vacaciones, se basan en aplica- de login web. Estas herramientas suelen un nombre de usuario y una contraseña,
ciones web con cuentas de usuario priva- confiar en terceros. Algunos gigantes ofre- y pasamos a hacerlo mediante un URI
das. Esta enorme cantidad de contraseñas cen soluciones de login de terceros com- (Uniform Resource Identificator) visuali-
y diálogos de login hace que muchos probadas a partir de una sola fuente. El zable en un navegador web. El URI puede
usuarios se pierdan. Algunos navegadores sistema Passport de Microsoft se creó de consistir en una dirección web ofrecida
disponen de herramientas para la gestión acuerdo a este principio. Ahora Microsoft por un servicio OpenID, como http://
de contraseñas. También existen otras promociona Passport bajo el nombre Win- nilsmagnus.myopenid.com para Myope-
alternativas (como KDE wallet) que pue- dows Live ID [1]. Pero son muchos los nid [4]. El tipo de identidad no importa,
den resultarnos útiles a la hora de trabajar usuarios reticentes a depender de aplica- mientras el navegador pueda acceder a la
con un dispositivo único, local y físico. ciones propietarias como ésta. página. La página necesita añadir una eti-
Pero el paradigma de la web 2.0 contem- Pronto surgió una alternativa, llamada queta que apunte al proveedor del servi-
pla la posibilidad de que un usuario se Liberty Alliance Project [2], que ofrecía un cio:
OpenID, toma la parte del URI Este método se conoce también como
correspondiente al host. User-Centric Identity Management,
El consumidor (la wiki de debido a que cada usuario puede defi-
Amarok, en este caso) le pre- nir, de forma individualizada, qué infor-
gunta al proveedor el nombre mación debe proporcionar el proveedor
asociado al URI. Para hacerlo, se a los consumidores que la soliciten.
le redirige al sitio web del provee- Ciertos proveedores de identidad ofre-
dor, que revela quién ha reali- cen identidades de forma gratuita. Es el
zado la petición. El usuario con- usuario quien debe decidir en qué provee-
firma entonces la petición intro- dor debe confiar. A diferencia del método
duciendo una contraseña. El pro- centralizado empleado por Passport, hay
veedor redirige al navegador de una colección descentralizada de provee-
vuelta al sitio del consumidor, dores de OpenID compitiendo los unos
Figura 1: La wiki de Amarok nos permite ingresar con lo que el usuario queda iden- con los otros para ofrecer sus servicios. El
mediante OpenID. tificado. usuario puede incluso crear su propio pro-
Una de las prácticas funciones veedor.
<link rel=”openid.server” href=U de OpenID son los distintos atributos que Quien esté interesado en desarrollar una
“http://www.myopenid.com/U podemos asociar a una identidad en un solución propia puede usar los paquetes
server” /> proveedor. Por ejemplo, podemos guardar de código abierto disponibles para lengua-
<link rel=”openid.delegate”U nuestro nombre completo, nuestro idioma jes de programación como Perl, PHP,
href= “http://U favorito o nuestra fecha de nacimiento Ruby, Python o Java [7].
nilsmagnus.myopenid.com/” /> (ver Figura 2). Un
usuario, cuando
El servidor del lado del proveedor especi- recibe una petición
fica la primera relación; el segundo replan- de un consumidor,
tea el nombre de la identidad. Normal- puede especificar
mente, el proveedor instalará una página a cuáles son los
fin de hacer disponible esta información datos que deberían
para los sitios web que pidan información mostrarse a dicho
sobre el login. Un usuario podría también consumidor y qué
incluir los detalles en una página de inicio datos debería reser-
o en un blog. En ese caso, nuestra propia var.
dirección nos podría servir de OpenID. Este proceso de
aprobación es
El Acceso importante para Figura 2: El proveedor especifica los detalles que pretende enviar al
Las aplicaciones con soporte para OpenID prevenir el uso consumidor.
muestran un campo de login para OpenID, inadecuado de un
además de la página de login tradicional. parámetro crítico, como un PIN para una En Cuanto a la Seguridad
Por ejemplo, la Figura 1 muestra la auten- cuenta bancaria, que efectivamente pode- Habrá quien se pregunte cómo de seguro
ticación OpenID para la wiki de Amarok. mos guardar con nuestro ID. Algunos pro- es OpenID si cualquiera puede hacer de
Cuando un usuario introduce el ID veedores permiten al usuario la creación proveedor. ¿Puede un atacante falsear o
basado en URI, la aplicación web, cono- de varios perfiles, cada uno de ellos con secuestrar una identidad? Esto nos
cida como consumidor en el idioma de una serie de atributos propios. recuerda a un asunto de seguridad bien
conocido: Si podemos manipular un sitio
Gestión de Identidades y Federation web, podemos redirigir a la gente a nues-
OpenID no es el único proyecto para la gestión de identidades. Feder ID [9], por ejem-
tro proveedor de identidades o escribir
plo, es un proyecto de código abierto proveniente de Francia. Uno de sus colabo-
uno.
radores, Clément Oudot, señalaba en una entrevista reciente en Linux Magazine la
Dicho de otro modo, la seguridad está
importancia de las identidades digitales en el acceso a recursos web.
en manos de quienes ejecutan el sitio.
Considerando la calidad del código de
Según Oudot, muchos usuarios tienen una identidad para cada sitio web. Esto supone
muchos sitios escritos en lenguajes de
un problema para las grandes empresas y organizaciones, ya que los usuarios han de
scripting tradicionales, puede que sea
memorizar muchas contraseñas. Feder ID proporciona herramientas para la sin-
algo a tener en cuenta, pero no un argu-
cronización de repositorios de identidades. Estos atributos no sólo están disponibles
mento convincente en contra de Open-
para una única organización local, sino que pueden ser compartidos por varios socios.
ID.
Las herramientas Feder ID son de código abierto y cumplen con la IETF (Internet Engi- La segunda pregunta es más delicada:
neering Task Force), la OASIS (Organization for the Advancement of Structured Infor- ¿Puede un hacker interceptar las comuni-
mation Standards) y los estándares de la Liberty Alliance para la gestión de identi- caciones entre el consumidor y el provee-
dades. dor de identidades para guardar las sesio-
sesiones controlando su
Tabla 1: Proveedores Identidad estado con protocolos que no RECURSOS
Aplicaciones Web poseen dicho control nativa- [1] Passport de Microsoft: http://www.
Proveedor OpenID mente, como ocurre con http, passport.net
AOL http://openid.aol.com/Screenname la base de OpenID. El hecho [2] Liberty Alliance Project: http://www.
blogger http://Blogname.blogspot.com de que varias aplicaciones projectliberty.org
Flickr http://www.flickr.com/photos/Username web hayan sido comprometi- [3] Proyecto OpenID: http://openid.net
Livedoor http://profile.livedoor.com/Username das es un claro indicador de [4] Myopenid (proveedor): http://
Livejournal http://Username.livejournal.com los peligros que nos acechan, myopenid.com
Technorati http://technorati.com/people/technorati/ suponiendo que nos fiamos
Username [5] Extensión Mediawiki para OpenID:
de los resultados de las http://www.mediawiki.org/wiki/
Wordpress http://Username.wordpress.com
encuestas [8]. Extension:OpenID
Yahoo http://openid.yahoo.com
[6] Soporte de Drupal para OpenID:
Práctico y Abierto http://drupal.org/project/openid
nes? Después de todo, el proveedor envía OpenID es un paso más en la dirección
[7] Librerías de Código Abierto para
un mensaje de confirmación en caso de correcta hacia la gestión de identidades.
OpenID: http://wiki.openid.net/
una autenticación satisfactoria. Un ata- Debido a que OpenID implementa un
Libraries
cante podría presentar como credenciales único login, resulta muy adecuado para
para un nuevo login una sesión previa- todo aquel usuario que no quiera recordar [8] “Protegiendo a Clientes y Comer-
ciantes”, Whitepaper, Secure Com-
mente guardada. De todas formas, pode- un gran número de contraseñas. La capa-
puting: http://www.
mos evitarlo habilitando OpenID SSL/TLS cidad de gestión de atributos es mucho
securecomputing.com/webform.
para securizar la conexión y añadir un más potente de lo que pueda parecer en
cfm?id=289&ref=pci
grado de seguridad a cada petición. Con un primer momento.
este método conseguimos que las respues- El número de sitios web que usan Ope- [9] Feder ID: http://federid.objectweb.
org
tas sean válidas una sola vez, evitando nID continúa creciendo exponencial-
que se puedan reciclar fácilmente. mente, aunque algunas aplicaciones real-
A pesar de todo, no es buena idea mente grandes tienen que demostrar toda- racionales y conceptuales en cuanto a
subestimar la complejidad de la gestión de vía que cumplen todos los requisitos ope- confiabilidad y disponibilidad. ■
PROTECCIÓN DE
PÁGINA
Apache ofrece diferentes opciones para proteger mediante contraseña determinadas áreas de un sitio web.
S
i se quiere ofrecer un login en nuestras páginas sin necesidad de prueba si el usuario está autorizado
determinadas páginas web de aplicaciones propietarias adicionales. para visualizar el recurso solicitado a
acceso restringido, no es nece- En este artículo describimos algunas través de un proceso que comprende
saria una cuenta en MySpace, ni tam- de las técnicas que nos permitirán pro- tres fases. En la fase de Acceso se veri-
poco un enorme sitio web corporativo. teger nuestras páginas web mediante fica si la dirección IP que solicita el
Apache proporciona varias alternati- contraseña. recurso está autorizada para acceder
vas para la autenticación de usua- El servidor web Apa- al mismo. En la fase de Autenticación
rios. Aunque para poder dis- che com- se comprueba que el nombre de usua-
poner de ellas haya que rio proporcionado concuerda con la
hacer varias configura- contraseña asociada al usuario. La
ciones extra, podemos fase de Autorización suele usarse para
proteger fácilmente facilitar la administración creando
grupos de usuarios. Veremos cómo se
puede ampliar cualquiera de estas
fases con algo de código de cosecha
propia.
A menos que se trate de una cone-
xión a través de SSL, con cualquiera de
estos métodos se enviarán las contra-
señas sin cifrar. Recomendamos enca-
recidamente usar SSL en cada una de
las páginas que requiera autenticación.
Para los ejemplos de este artículo
hemos usado Apache 2.2.8. En versio-
nes anteriores, algunas de estas
opciones podrían no estar disponi-
bles, o podría variar ligeramente
la configuración.
Autenticación
mediante Archivos
La autenticación mediante archivos, a
la que en ocasiones nos referimos
Utemov, Fotolia
de/contraseñas
Listado 1: Restricción del Acceso del Usuario AuthBasicProvider file
01 <Location /> 07
Require valid-user
02 AuthType Basic 08 <Location /admin>
09 Require user Manuel Ramón
</FilesMatch>
03 Authname ”Mi Sitio”
04 AuthBasicProvider file 10 </Location>
05 AuthUserFile 11 Además de permitir el acceso a todos
/ruta/al/archivo/de/contraseña 12 <Location /contenidos> los usuarios incluidos en el archivo de
s 13 Require valid-user contraseñas, podemos restringir el
06 </Location> 14 </Location>
acceso a determinados usuarios.
La configuración del Listado 1 con-
<Location /admin> indica a Apache que debe autorizar a cede el acceso a Manuel y Ramón a la
AuthType Basic cualquier usuario válido que aparezca sección /admin mediante la entrada
AuthName ”Páginas deU en el archivo. Require user, seguida del listado de
Administración” Apache viene acompañado con un usuarios separados por espacios. Ade-
AuthUserFile programa llamado htpasswd que nos más, cualquier usuario correctamente
/ruta/al/archivo/U asiste en la creación y actualización de autenticado podrá acceder a /conteni-
de/contraseñas archivos de contraseñas. Primero crea- dos.
AuthBasicProvider file mos el archivo con: Otra funcionalidad útil es la de per-
Require valid-user mitir el acceso a grupos específicos en
</Location> htpasswd -c U lugar de a usuarios individuales. Para
/ruta/al/archivo/de/U hacerlo crearemos un archivo de gru-
La ubicación del archivo de contraseñas <usuario> pos. En el Listado 2 se muestra el
configuración de Apache varía en los ejemplo anterior, esta vez usando gru-
distintos sistemas. En los sistemas Red Después de que se haya creado, si que- pos. El formato del archivo de grupos
Hat/Fedora se encuentra en /etc/httpd/ remos añadir nuevos usuarios o cam- es muy simple:
conf/httpd.conf, mientras que en biar sus contraseñas, usamos el mismo
Debian está en /etc/apache2/ comando htpasswd, sólo que esta vez <nombre del grupo>:
apache2.conf. sin el parámetro -c. Para eliminar un <usuario1>U
En caso de usar Apache 2.0.x, ten- usuario podemos editar a mano el ... <usuarioN>
dremos que eliminar la directiva Auth- archivo mediante un editor de textos
BasicProvider. Después de definir normal o usar el comando htpasswd En nuestro ejemplo, el contenido del
AuthType como Basic, nombramos este con el parámetro -D. archivo sería:
área de modo que los usuarios sepan Además, podemos usar este método
dónde están ingresando. Además, (y otros métodos que veremos más admin: Manuel Ramón
debemos informar a Apache del sitio adelante) con directivas como <Direc-
donde ha de buscar la contraseña para tory>, <DirectoryMatch>, <Loca- Podemos crear de este modo tantos
este área. El último paso lo realizamos tionMatch> o <FilesMatch>. Por grupos como queramos uno por línea.
mediante la directiva Require, que ejemplo, podríamos solicitar una con- El uso de grupos es una forma estu-
traseña para visualizar cualquier penda de reducir el tiempo necesario
Listado 2: Trabajando con archivo .gif de nuestro sitio web con: para el mantenimiento y de simplificar
Grupos las configuraciones, haciéndolas más
<FilesMatch ”\.gif$”> fáciles de leer y comprender.
01 <Location />
02 AuthType Basic AuthType Basic Nótese la importancia de que nues-
03 AuthName ”Mi Sitio” AuthName ”Para las imágenesU tros archivos de contraseñas y grupos
04 AuthBasicProvider file hace falta contraseña” no se encuentren dentro del
05 AuthUserFile DocumentRoot de Apache; de no ser
AuthUserFile/ruta/al/archivo/ /ruta/al/archivo/U así, cualquiera podría descargarlos.
de/contraseñas
06
AuthGroupFile/ruta/al/archivo Listado 3: Autenticación mediante SQL
/de/grupos 01 DBDriver pgsql 09 AuthBasicProvider dbd
07 </Location> 02 DBDParams ”host=localhost 10 Require valid-user
08 03 nombredb=foro usuario=apache
09 <Location /admin> 11
04 password=secreto”
10 Require group admin 12 AuthDBDUserPWQuery ”SELECT
05
11 </Location>
06 <Location 13 password FROM usuarios WHERE
12 /solo_usuarios_del_foro> usuario = %s”
13 <Location /contenidos> 07 AuthType Basic
14 Require valid-user 14 </Location>
08 AuthName ”Sólo Usuarios
15 </Location> del Foro”
Autenticación con Base de y extraiga la información relativa a las pueda funcionar con nuestra base de
Datos SQL contraseñas. El software deberá alma- datos SQL, de forma que saque de ahí
Quizá nuestro sitio ya esté usando cenar las suyas con el mismo tipo de las contraseñas de los usuarios. En el
algún software que requiera contra- hash que lo hace Apache, en este Listado 3 se muestra una
seña, algún foro por ejemplo, y que, caso, la función crypt(). Además, ten- configuración aplicable al caso de una
una vez creados los usuarios, decida- dremos que activar dos módulos en base de datos PostgreSQL. En primer
mos añadir otra sección a la que sólo Apache: mod_dbd.so y lugar debemos definir el controlador
puedan acceder los usuarios registra- mod_authn_dbd, para lo cual añadi- de la base de datos, que en este caso
dos. mos estas líneas al archivo de será pgsql. Para las bases de datos
Tener que volver a registrar todos configuración de Apache: MySQL, el controlador se llama mysql.
nuestros usuarios en algún tipo de Apache incluye soporte para bases de
autenticación mediante archivos LoadModule dbd_module U datos Oracle, SQLite2 y SQLite3.
(como la descrita anteriormente) modules/mod_dbd.so Tras definir el controlador, debemos
podría convertirse en una verdadera LoadModule authn_dbd_module U pasarle ciertos parámetros relativos a
pesadilla, con dos sitios distintos en modules/mod_authn_dbd.so la conexión con la base de datos. En el
los que añadir y modificar usuarios. Es caso de MySQL o PostgreSQL, hemos
más, algunos usuarios podrían acabar El segundo parámetro de cada línea es de pasarle la máquina, el nombre de la
teniendo nombres o contraseñas dis- una ruta relativa o absoluta al módulo; base de datos, el usuario y la contra-
tintas para según qué parte del sitio el valor exacto podría variar según el seña.
web. sistema, dependiendo de la distribu- Las líneas siguientes deberían resul-
Si nuestro foro hace uso de una base ción que estemos usando o de cómo tarnos familiares en este punto; la
de datos SQL, guardando allí las con- hayamos compilado Apache. única diferencia es que ahora configu-
traseñas, podemos configurar Apache Después de cargar los módulos ramos AuthBasicProvider de manera
para que acceda a dicha base de datos debemos configurar Apache para que que use el módulo dbd. Lo último es
Su
rflifes
,F
UNA OFICINA
oto
lia
NUEVA
Las versiones previas de OpenOffice.org no decepcionaron a nadie, así Formatos Soportados
De forma similar a las versiones previas de
que hay grandes esperanzas puestas en la reciente versión 3.0 de una OpenOffice.org, la última versión utiliza el
formato ODF como formato por defecto.
de las más importantes aplicaciones de código abierto que existen. Sin embargo, OpenOffice.org 3.0 utiliza la
nueva versión 1.2 de ODF, que incluye un
Vamos a echarle un vistazo a las bondades que según dicen ofrece esta
poderoso lenguaje para fórmulas así como
nueva versión. POR DIMITRI POPOV un sofisticado modelo de metadatos
basado en los estándares RDF y OWL de
W3C. El cambio a ODF 1.2 implica que
Mantener las Apariencias
S
i desea probar la última versión otras versiones más antiguas de esta suite
beta de OpenOffice.org 3.0 o si no Lo primero que notaremos cuando se eje- presenten problemas a la hora de manejar
desea esperar hasta que su distribu- cute OpenOffice.org 3.0 es que ya no vol- los documentos creados con
ción favorita de Linux incorpore la versión verá a aparecer una pantalla gris comple- OpenOffice.org 3.0. Sin embargo, puede
final, puede instalarse la nueva versión de tamente vacía; por el contrario, aparecerá indicarse a OpenOffice.org 3.0 que guarde
esta suite usted mismo. Las buenas noti- una nueva pantalla de bienvenida, lla- los documentos en ODF 1.0 por defecto,
cias son que no interferirá con la instala- mada Start Center, que le permitirá crear estableciéndose así una solución temporal.
ción actual de su OpenOffice.org 2.x.x, así de forma rápida nuevos documentos, abrir Con respecto a los formatos soportados,
que podrá tener ambas versiones al mismo archivos existentes y navegar por las plan- la nueva versión de OpenOffice.org incluye
tiempo. tillas y los repositorios de extensiones. un filtro para importar los documentos de
Otro elemento que llama la atención es Microsoft Office 2007. Esto permitirá ahora
Comenzamos la estética: OpenOffice.org 3.0 viene con abrir los documentos .docx, .xlsx y .pptx en
Para comenzar, debe descargarse OpenOf- una nueva serie de iconos por defecto OpenOffice.org, aunque no puedan sal-
fice.org [1]. Si se tiene Ubuntu, hay que cuyo tema se denomina Galaxy. El cambio varse los de Writer, Calc e Impress en el
obtener la versión deb del programa. Tras no es totalmente radical, pero proporciona formato de Microsoft Office 2007.
la descarga del paquete será necesario des- una interfaz gráfica nueva más refres-
comprimirlo y ejecutar un terminal. Utili- cante. Sin embargo, puede ocurrir que no Writer, Calc e Impress
zando el comando dpkg -i instalaremos los se vea la nueva interfaz gráfica, ya que La funcionalidad Notas en las versiones
ficheros .deb en la carpeta DEBS: muchos proveedores de distribuciones previas de OpenOffice.org eran inadecua-
Linux añaden temas propios que se ajus- das y muy poco amigables. Las notas en
sudo dpkg -i DEBS/*.deb tan al aspecto general de sus distribucio- línea en un documento de texto se mostra-
nes. En la mayoría de los casos se puede ban como pequeños rectángulos amarillos,
Y eso es todo. Con el comando que sigue cambiar al tema Galaxy por medio de que eran difíciles de utilizar y se perdían
podremos ejecutar OpenOffice.org 3.0: Herramientas | Opciones | OpenOffice.org | con facilidad.
Ver y seleccionando el tema Galaxy del Si usted utiliza notas para comentar y
/opt/openoffice.org3/U menú desplegable Estilo y tamaño del colaborar con documentos Writer, le agra-
program/soffice icono. dará saber que OpenOffice.org 3.0 viene
Figura 1: OpenOffice.org 3.0 viene con una nueva presentación inicial. Figura 2: Nueva funcionalidad Notas.
con un sistema de notas totalmente redise- zarse una barra de desplazamiento que se compartida. Si dos usuarios modifican la
ñado (Figura 2). Las Notas se muestran encuentra en la barra de herramientas de la misma celda, el sistema muestra el cuadro
ahora en un lado del documento, y cada parte inferior para ampliar y reducir el de diálogos de resolución de conflictos,
una posee una flecha que apunta al punto documento así como cambiar entre los dis- proporcionando de esta forma diferentes
exacto de inserción en el texto. Las notas tintos modos de visualización. Esta funcio- opciones a la hora de solventarlo.
creadas por los distintos usuarios se mues- nalidad supone una forma más eficaz de El módulo para representar gráficas de
tran con colores diferentes, y cada una ver y recorrer documentos extensos que la esta nueva versión de OpenOffice.org per-
contiene su fecha y hora de creación así opción de Vista Previa que proporcionaba mite la representación de errores y ecuacio-
como el nombre del usuario que la aña- la versión 2.x.x (Figura 4). El programa de nes de regresión. Ahora es posible dibujar
dió. De esta forma se facilita su uso, con- hojas de cálculo Calc también incorpora los errores basándose en rangos de error
virtiéndose en una herramienta eficiente unas cuantas funcionalidades nuevas proporcionados en celdas de la hoja de cál-
para utilizarla en los documentos colabo- (Figura 5). La más notable es el compo- culo. Además, pueden mostrarse ecuacio-
rativos. nente Solver, diseñado para problemas de nes de regresión así como coeficientes de
OpenOffice.org 2.4 presentó la posibili- optimización. El valor óptimo de una celda correlación.
dad de aplicar diferentes idiomas a los dis- particular se calcula en base a restricciones La aplicación de presentaciones Impress
tintos segmentos del texto de un docu- proporcionadas en otras celdas. viene ahora con soporte nativo de tablas
mento de forma sencilla, una funcionali- Otra funcionalidad también novedosa (y (Figura 6). En las versiones anteriores se
dad fundamental cuando se trabaja con menos esotérica) es la posibilidad de com- podían insertar tablas sólo como objetos
documentos multilingües. OpenOffice.org partir las hojas de cálculo con otros usua- Calc incrustados, con lo que se complicaba
3.0 añade una pequeña pero importante rios. En la versión actual de el uso y era limitado.
mejora a esta funcionalidad. Los dicciona- OpenOffice.org, cuando un usuario abre un La nueva versión de Impress estrena el
rios ortográficos se tratan en documento de Writer, Calc o Impress, el soporte nativo de tablas, y la aplicación
OpenOffice.org 3.0 como extensiones, y el sistema lo bloquea, de modo que el resto suministra todas las herramientas esencia-
comando Herramientas | Idioma | Más dic- de usuarios no pueden modificarlo. La fun- les para manipular y darle formato a las
cionarios en línea abre el repositorio de cionalidad Compartir en Calc proporciona tablas. Cuando se inserta una tabla por
extensiones que contienen los diccionarios. a otros usuarios el acceso al documento y medio del comando Insertar | Tabla, se
Una vez aquí, pueden descargarse los dic- establece un mecanismo simple de resolu- puede utilizar la barra de herramientas de
cionarios que se deseen e instalarlos utili- ción de conflictos. Cuando se activa utili- las Tablas para añadir o eliminar filas y
zando el Gestor de Extensiones. zando el comando Herramientas | Compar- columnas, unir y dividir celdas y ajustar las
El módulo Gestor de Extensiones tam- tir documento, los otros usuarios pueden propiedades de la tabla. La pestaña Diseño
bién ha sido mejorado para facilitar su abrir y editar la hoja
uso. El nuevo gestor ofrece un resumen de cálculo compar-
mejorado de las extensiones instaladas y tida. Los cambios
muestra información detallada de las dis- realizados a la hoja
tintas extensiones (información incluida de cálculo se mez-
en el interior de las extensiones por los clan cuando los
desarrolladores de las mismas). Los desa- usuarios la guardan.
rrolladores de extensiones también apre- Cuando se realiza
ciarán la capacidad de integrar la ayuda de esta operación, el sis-
la extensión en el módulo de Ayuda en tema notifica la
línea. modificación a los
La aplicación Writer también viene con usuarios y las resalta
otra pequeña mejora muy útil: puede utili- en la hoja de cálculo Figura 3: Gestor de Extensiones rediseñado.
Figura 4: Vista preliminar en OpenOffice.org. Figura 5: Calc viene ahora con el componente Solver.
de Tabla en el panel Tareas también ofrece Aunque PDF Import realiza un buen tra- Aunque la idea de extender la funcionali-
varios estilos de tablas predefinidos que se bajo abriendo los ficheros PDF, no reem- dad por medio de extensiones tiene bas-
pueden utilizar para maquillar el aspecto plazará a los editores de PDF dedicados tante sentido (después de todo, Firefox lo
final de la tabla. debido a sus importantes limitaciones. Por lleva haciendo desde hace años) presenta
ejemplo, la extensión importa cada línea de ciertos inconvenientes. Por ejemplo, tras
Extensiones texto del fichero PDF como un bloque de instalar la versión 3.0, habrá que seguir
Con una arquitectura robusta de extensio- texto independiente. Esto implica que no se descargando diversas extensiones para
nes en su sitio, la integración de funcionali- puede copiar un fragmento de texto y añadir algunas de las más interesantes y
dades directamente en OpenOffice.org pegarlo como texto en un documento Wri- útiles, y algunos dirían esenciales, funcio-
dejará de ser la única forma de añadirle ter, lo que limita la posibilidad de extraer nalidades del programa. También, algunos
funcionalidad a la suite, como muestra la texto de los ficheros PDF. También, a la usuarios podrían encontrar raro el hecho
extensión Sun Report Builder [2] (Diseña- hora de exportar el fichero editado como de que la función para exportar un docu-
dor de Informes de Sun). En vez de rem- PDF no se preservan los marcadores exis- mento en formato PDF se encuentre incor-
plazar el sistema de informes obsoleto de tentes en el fichero PDF original. Por ello, porada en OpenOffice.org, pero si se desea
OpenOffice.org Base, Sun creó un nuevo PDF Import es útil cuando se necesite reali- importar un fichero PDF, se tendrá que ins-
motor de informes como una extensión. zar un cambio ligero, pero no reemplazará talar un componente adicional.
Esta tendencia ha continuado con OpenOf- a los editores PDF dedicados. Es decir, hay
fice.org 3.0, en la que ciertas “funcionalida- que tener claro que la extensión PDF Conclusión
des” nuevas han salido como extensiones Import no ha sido diseñada como una Uno de los mayores rasgos del proyecto
separadas. Los ejemplos más notables son herramienta para la edición completa de OpenOffice.org ha sido siempre su cons-
las extensiones Sun PDF Import [3] y Sun ficheros PDF. tante mejora y su conservadora tendencia
Presenter Console [4]. Tal y como sugieren Ahora las presentaciones creadas con a la hora de añadir funcionalidades nue-
sus respectivos nombres, la primera per- Impress son más fáciles de realizar gracias vas; la próxima versión de esta productiva
mite importar ficheros PDF en OpenOf- a la extensión Sun Presenter Console. Esta suite no es una excepción. OpenOffice.org
fice.org, mientras que la segunda propor- extensión permite que el usuario pueda ver 3.0 no va a ser una versión revolucionaria,
ciona un mayor control sobre las presenta- la presentación, las notas y el tiempo. Esta pero va a aportar bastantes mejoras y
ciones. Sun PDF Import es toda una nove- información sólo estará disponible para el unas cuantas funcionalidades nuevas que
dad para aquellos usuarios que necesiten ponente, mientras que la audiencia sólo harán que muchos usuarios deseen actua-
una herramienta ligera para editar y verá el pase de la misma. lizarse. ■
comentar documentos
PDF. La extensión per- RECURSOS
mite que pueda impor-
[1] Descarga de la versión beta de Open-
tarse un fichero PDF en
Office.org 3.0: download.openoffice.
la aplicación Draw y uti- org/3.0beta/
lizar todas las herramien-
[2] Diseñador de Informes de Sun: exten-
tas disponibles para
sions.services.openoffice.org/project/
modificar y comentar el reportdesign
documento. Luego se
[3] Sun PDF Import: extensions.services.
puede guardar de nuevo
openoffice.org/project/pdfimport
el fichero modificado en
[4] Sun Presenter Console: extensions.
formato PDF utilizando
services.openoffice.org/project/
el comando Archivo |
presenter-screen
Exportar como PDF. Figura 6: Impress posee soporte nativo de tablas.
Benice, Fotolia
COMPETIDORES DE
ALTURA
La famosa utilidad de administración de Unix conocida como Top tiene muchos imitadores. Vamos a echarle
un vistazo a las mejores herramientas Top. POR MARKUS FEILNER Y SASCHA SPREITZER
P
icos de carga, problemas de E/S y la ayuda del jurado de Linux Magazine, están utilizando la mayoría de los recur-
comportamientos inexplicables hemos probado docenas de estos progra- sos, organizando los resultados por el
del sistema son las dificultades mas y ahora orgullosamente presenta- uso de la memoria pixmap (Figura 1). La
que día a día tienen que afrontar los mos a los 10 mejores. herramienta se basa en la extensión de
administradores. ¿Por qué está la base Las herramientas top de esta categoría, recursos X [2] para obtener la informa-
de datos utilizando tanta memoria de con una sola excepción, tienen algo en ción de los clientes conectados al servi-
intercambio? ¿Por qué se descarga la común: muestran los recursos utilizados dor X. Las funciones XResQueryClients,
batería del portátil tan rápidamente? La por los servicios o los servidores en una XResQueryClientResources y XresQuery-
clásica herramienta de la línea de sintaxis similar al clásico programa Top ClientPixmapBytes proporcionan los
comandos Top es la utilizada para diag- de Unix. El ranking que mostramos aquí datos que Xrestop utiliza para generar
nosticar este tipo de comportamientos. está basado en cómo es de útil la herra- una vista al estilo Top.
Top fue la primera en una larga serie mienta a la hora de resolver problemas. Xrestop fue originalmente diseñado
de herramientas encargadas de monitori- para la comunidad X.org para ayudar a
zar los recursos del sistema. Ahora 10: Xrestop los desarrolladores a localizar los aguje-
diversos imitadores compiten por llamar Xrestop [1] muestra a los usuarios de ros de memoria y de rendimiento en el
la atención de los administradores. Con X11 qué programas clientes de las X servidor X, pero con el paso del tiempo
4: Mytop
La segunda herramienta para las bases
de datos es Mytop [11], que está escrita
en Perl y muestra información de las dos
sentencias estándar de MySQL, SHOW
PROCESSLIST y SHOW STATUS a interva-
los periódicos.
Mytop es muy adaptable, listando
información como el número de senten-
cias SELECT, INSERT, UPDATE y
DELETE perdidas. Una cabecera en la
parte superior de la pantalla muestra la
eficiencia de los índices de las claves,
junto con la entrada y salida por
segundo.
La mejor solución consiste en ejecutar
Mytop introduciendo mytop -u usuario
-p contraseña -h nombre_de_host -P Figura 8: La lista de procesos de Atop es detallada pero interactiva.
Conclusión
Figura 9: No hay mejor herramienta que Htop a la hora de modificar el nivel Nice de todos los Cualquier libro de Linux o Unix que
procesos de Apache. Los administradores pueden pulsar F6 para ordenar, la barra espaciadora cubra la administración de sistemas pro-
para seleccionar y F6 o F7 para modificar las prioridades de las entradas. porciona al menos unas cuantas páginas
sobre la herramienta Top. El programa
página web del proyecto, PowerTop ciones múltiples, los cambios de priori- Top original sigue siendo hoy día el
puede incluso doblar la vida de la bate- dades son más sencillos y rápidos con número uno, pero el ganador no debería
ría. Debido a que la herramienta sólo Htop que con el resto de las otras herra- conformarse: otros competidores, algu-
está disponible para las CPUs de Intel y mientas del sistema. nos especializados y otros simplemente
el último kernel (2.6.22 o posterior), La información que Atop proporciona clones modernos del original, se están
sólo se queda en el tercer puesto de este es más útil para los administradores acercando al liderato. Htop, por ejemplo,
ranking a pesar de todas sus maravillo- avanzados que deseen investigar deta- le puede quitar el puesto. ■
sas características. lles minuciosos de los diferentes proce-
sos. RECURSOS
2: Atop y Htop En la vista estándar, Atop suministra
[1] Xrestop: http://www.freedesktop.org/
El puesto número dos lo tienen dos clo- información avanzada del uso de la
wiki/Software/xrestop
nes de Top, Atop [13] y Htop [14]. Como memoria (M), la planificación (S), pará-
[2] Librería de extensiones de recursos
ambas herramientas son muy parecidas, metros de la línea de comandos (C) y
X: http://linux.die.net/man/3/xres
comparten este puesto. Las ventajas que diversos detalles de los procesos (V).
[3] Ntop: http://www.ntop.org
aporta Atop, y el programa Atopsar que Un kernel especialmente parcheado
viene con el paquete, consisten en mos- permite mostrar de forma adicional el [4] Pksh: http://pksh.tecsiel.it
trar una vista detallada de los procesos uso del disco (D) y de la red (N). Gra- [5] ApacheTop: http://spork.qfe3.net/
monitorizados (Figura 8). cias a Atopsar, los administradores apachetop/
Por otro lado, Htop ofrece un resu- incluso pueden acceder a los datos [6] Ptop: http://ptop.projects.postgresql.
men sensible y su capacidad a la hora Sysstat de los últimos días o semanas, org
de permitir a los administradores actuar suponiendo que se ejecute el servicio [7] Capturas de pantalla Ptop: http://ptop.
sobre los procesos directamente. Por Sar en el sistema. projects.postgresql.org/screenshots
ejemplo, el programa ordena la lista de [8] Dnstop: http://dns.
procesos por nombre o por PID usando Aún el Número 1: Top measurement-factory.com/tools/
sólo un par de atajos de teclado, y A pesar de todas las ventajas de los pro- dnstop
puede asignar una prioridad Nice dife- gramas mostrados en este listado, el [9] Iftop: http:// www.ex-parrot.com/
rente para todos los procesos de Apache favorito del jurado de Linux Magazine ~pdw/iftop
(Figura 9). es la clásica y legendaria herramienta [10] Manual de Iftop: http://www.fifi.org/
También es interesante que todos los de Unix, Top, de William LeFebvre y cgi-bin/man2html/usr/share/man/
controles sean auto explicativos: la inter- otros. man8/iftop.8.gz
faz de Htop es una mezcla entre Mid- Top se encuentra instalado en todos [11] Mytop: http://jeremy.zawodny.com/
night Commander y Top. Un menú con los sistemas, está bien documentado y mysql/mytop
las funciones más importantes se proporciona más o menos los mismos [12] PowerTop de Lesswatts.org: http://
encuentra disponible en el margen infe- controles y comportamiento en cual- www.lesswatts.org/projects/
rior de la pantalla: F6 sirve para ordenar quier sistema Unix, BSD, Linux, muchos powertop
(el administrador puede utilizar una sistemas empotrados y Mac OS X. La [13] Atop: http://www.atcomputing.nl/
especie de menú desplegable para selec- herramienta, que desde 1984 ha sido Tools/atop
cionar la columna), F7 reduce y F8 fundamental para los administradores, [14] Htop: http://htop.sourceforge.net
incrementa la prioridad Nice de un pro- funciona en grandes sistemas, estacio-
[15] Top: http://sourceforge.net/projects/
grama. Como el usuario puede presionar nes de trabajo, ordenadores personales y
unixtop
la barra espaciadora para realizar selec- clusters.
VINO DE
IMPORTACIÓN
sería factible poder ejecutar en el sistema operativo libre Linux las aplicaciones Windows? Es el momento de
M
uchos de los que migran a todo el mundo contribuyen al proyecto tivo de Redmond, y las ventanas se com-
Linux pierden juegos y progra- Wine. portan como si pertenecieran a un pro-
mas gráficos tales como Corel- grama nativo de Linux.
DRAW o productos como Adobe Photo- ¿Qué Hay en el Nombre? Pero un intérprete sólo es tan bueno
shop. La única solución es instalar Win- Para ejecutar programas de Windows como bueno sea su conocimiento de la
dows en paralelo con Linux, o probar sobre Linux, Wine utiliza un truco bas- lengua, y ahí reside el problema: Debido a
Wine, que engaña a las aplicaciones tante complejo: Se sienta entre la aplica- que Microsoft se negó hasta hace poco a
haciéndoles creer que se están ejecu- ción de Windows y Linux como si fuera revelar detalles de su sistema operativo,
tando en un sistema Windows. un traductor simultáneo. Si la aplicación los desarrolladores de Wine se vieron obli-
La historia de Wine se remonta al año de Windows dice: “Dibuja un botón”, gados a adoptar un enfoque de prueba y
1993. En ese momento, Sun estaba desa- Wine pasa esta orden directamente a error. Esto implicó mucho trabajo arduo, y
rrollando una pequeña herramienta para Linux. Al contrario que VirtualBox o teniendo en cuenta el monstruoso tamaño
ejecutar aplicaciones de Windows en VMware, Wine no emula un PC completo del sistema operativo al que se enfrentan,
Solaris, su propio sistema operativo, sin y, por tanto, no es un verdadero emulador. esto se parece mucho a un trabajo de
la necesidad de una licencia de Windows Esto explica también el nombre de Wine, Sísifo. Por si fuera poco, algunos fabrican-
o de otro tipo de interacción. Este soft- que son las siglas de “Wine Is Not an tes de software utilizan algunos trucos de
ware inspiró a Bob Amstadt y Eric Emulator”. La manera de actuar de Wine programación muy feos, y para hablar a
Youngdale a desarrollar algo similar para tiene una serie de ventajas. La principal es estas aplicaciones cuando se ejecutan en
Linux. Un tiempo después se lanzó la pri- que no necesita una costosa licencia de Linux, Wine necesita conocer estos trucos.
mera versión de Wine. Hoy en día, más Windows. Los programas se ejecutarán Lamentablemente, la mayoría de los pro-
de 300 programadores voluntarios de casi tan rápido como en el sistema opera- veedores de software mantienen este tipo
Figura 3: El archivo de instalación del paquetizador WinRAR. Figura 5: Instalando WinRAR en openSUSE 11.0.
no está Internet Explorer; por ejemplo, necesita es un disco de instalación para Preparaciones
Lexware, un software de contabilidad instalar dicha aplicación de Windows. Wine no se integra con el menú de inicio
basado en Internet Explorer para algunas Obviamente, es preciso una licencia válida de openSUSE. Para iniciar Wine se pulsa
operaciones. para la aplicación de Windows, aunque Alt + F2 y se teclea winecfg en el cuadro
Si la aplicación que se busca aparece en Wine sea gratuito. de texto, pulsándose, dependiendo del
la base de datos como rota, hay que verifi- escritorio que se utilice, Launch o Run.
car la fecha de la prueba (en Test Results). Instalación Después Winecfg creará un directorio
Si la prueba es de hace algún tiempo, Wine está incluido en las principales dis- oculto llamado .wine bajo el directorio
puede que ya funcione, aunque habrá que tribuciones, en caso contrario puede recu- home. EL software utiliza este directorio
experimentar para averiguarlo. Wine con- perarse fácilmente de un repositorio. Si para guardar información básica, tal como
tinúa madurando, y es posible que esa prefiere instalarse la versión más reciente se ve en la Figura 2. Por el momento no se
aplicación ya funcione. Por esta razón, siga los pasos del cuadro “Instalar Wine ha de modificar nada aquí, solamente se
tiene sentido habilitar en la distribución la 1.0 en openSUSE”. ha de pulsar Cancel para cerrar la herra-
actualización automática, que instala cual- En openSUSE 10.2, 10.3, y 11.0, se lanza mienta.
quier actualización de Wine que se lance. YaST y se selecciona Software Manage-
Si esto no funciona, al menos se ha de ment en el cuadro de diálogo Software. Instalando un Programa
intentar instalar la versión más reciente, la Después se teclea Wine en el cuadro de Windows
1.0, tal como se describe en el cuadro “Ins- búsqueda y se pulsa en Search. En la lista Para realizar una prueba de funciona-
talar Wine 1.0 en openSUSE”. de resultados del lado derecho, se marca la miento de Wine se descarga el paquetiza-
Una vez que se haya elegido la aplica- entrada Wine, confirmándose la selección dor WinRAR [2], abriéndose después el
ción de Windows, que probablemente se haciendo clic en Apply (o Accept en open- gestor de archivos de la distribución. En el
ejecute sobre Wine, lo siguiente que se SUSE 11.0). gestor de archivos buscamos el instalador
Conclusiones
Desafortunadamente, Wine no es la pana-
cea, y la mayoría de los principales progra-
mas siguen negándose a cooperar. Los
mejores candidatos son los juegos (ver
Figuras 9 y 10), pero puede que no haya
nada que hacer con los paquetes más
populares de contabilidad, CorelDRAW, la
última versión de Photoshop o iTunes, por
ejemplo.
Una mejor alternativa podría ser la de
buscar un programa Linux que proporcione
una funcionalidad similar. En el caso de
Photoshop, ¿por qué no intentar GIMP o
Krita? Y OpenOffice ha sido durante mucho
tiempo más que suficiente para sustituir
Microsoft Office. Si se comprueba la lista de
paquetes del gestor de paquetes de una dis-
tribución Linux, probablemente se sor-
Figura 9: Algunos juegos Windows, como Adventure Runaway,… prenda por el número de programas com-
parables, o incluso programas de caracterís-
Después, se pulsa Open, se selecciona la podría pensar que sería suficiente con ticas superiores, que ofrece Linux. ■
aplicación de la lista,y a continuación se borrar el directorio correspondiente que se
selecciona la versión de Windows reque- encuentra bajo .wine/drive_c/Program Aplicaciones Descarriladas
rida en la lista desplegable Windows Ver- Files.
La licencia MIT de Wine ofrece a los
sion. La configuración de Default Settings No se debe hacer esto, ya que Wine
usuarios muchos privilegios, un hecho
es válida para todas las aplicaciones Win- sigue manteniendo la aplicación como ins-
que ha ayudado a TransGaming a gene-
dows, a menos que se defina una excep- talada. En vez de esto, se debe ejecutar el rar enormes beneficios. TransGaming
ción. Uninstaller específico de Wine. Para lanzar solamente cogió el paquete, añadió
el desinstalador, se pulsa Alt+F2 en open- funcionalidades DirectX, necesarias
Recogiendo la Basura SUSE y se escribe uninstaller. Después, se para los juegos, y comenzaron a vender
Para deshacerse de una aplicación de Win- pulsa Run (o Launch) y se debe ver la ven- los resultados como Cedega [3] (ante-
dows que se ha instalado en Linux, se tana de la Figura 8. Al llegar a este punto, riormente WineX). Los desarrolladores
de Wine no estaban muy contentos con
esto y, por tanto, cambiara en marzo de
2002 los términos de la licencia a la
LGPL. La LGPL se asegura de que pueda
seguir utilizándose Wine con fines
comerciales, aunque los cambios y adi-
ciones deberán ser devueltos al pro-
yecto. CodeWeavers es ejemplar en este
sentido, la empresa agrupó Wine con
sus propios componentes comerciales
para crear el paquete CrossOver [4],
mientras promueve activamente el
desarrollo continuo de Wine.
RECURSOS
[1] Página principal del proyecto Wine:
http://www.winehq.org/
[2] Página principal del paquetador Win-
RAR: http://www.rarsoft.com/
[3] Sitio web de Cedega: http://www.
transgaming.com/
[4] CrossOver para Linux: http://www.
Figura 10: …funcionarán en Linux gracias a Wine. codeweavers.com/products/cxlinux/
Spectral-Design, Fotolia
Accede a la red sencillamente con Wicd
¡CONECTADO!
Los usuarios de portátiles cambian de red sin parar. Wicd gestiona distintos perfiles de conexión con rapidez
L
os guerreros de la carretera y [1] ofrece una alternativa: Un redu- desarrollado como alternativa al ges-
los usuarios que usan sus por- cido gestor de red que ofrece una tor de red de Ubuntu, aunque se ha
tátiles cambiando constante- interfaz de usuario con todo lo nece- extendido la implementación a otras
mente de entorno utilizan frecuente- sario para configurar redes wifi y distribuciones. Funciona bien con
mente el gestor de red del sistema. cableadas. interfaces alternativas tales como
Lamentablemente, los gestores de red El programa basado en Python actúa XFCE, IceWM, o Fluxbox. Gracias a su
no son el tipo de software que se como un interfaz de usuario para pequeño consumo de memoria y
maneja con rapidez y facilidad. Wicd varios guiones. Originalmente fue ciclos de CPU se siente como en casa
PRÁCTICO • Wicd
TOMA DE CONTROL
E
l proyecto OpenWrt se denomina a si torizar tráfico podemos compilar herra- Por supuesto, hackear un router domés-
mismo como “una distribución Linux mientas de seguridad, como Snort y tico no es precisamente una actividad propia
para dispositivos empotrados”. Más tcpdump. De igual modo, podemos configu- para un novato. OpenWrt proporciona toda
allá de esta sencilla definición, OpenWrt [1] rar logs a medida, scripts o alertas. OpenWrtuna variedad de funcionalidades potentes e
es un marco de trabajo para crear firmware a también puede hacer que ahorremos bas- interesantes, pero necesitamos estar dispues-
medida que podemos instalar en dispositi- tante dinero si adaptamos un router de bajo tos a experimentar.
vos como routers domésticos y cortafuegos. coste, como el WRT54GL, para que realice A pesar de que OpenWrt implementa
Existen diferentes versiones de OpenWrt funciones propias de una herramienta varios mecanismos de seguridad para ayu-
disponibles para toda una gama de dispositi- mucho más cara. darnos a restaurar el sistema, el uso del soft-
vos, incluyendo los afamados routers/corta- ware OpenWrt puede alterar el dis-
fuegos Linksys WRT54GL [2], una solución positivo de manera que sea imposi-
SOHO de bajo coste que probablemente ble volver a la configuración origi-
reconocerá por haberlos visto en tiendas de nal.
ordenadores (véase la Figura 1). Instalar software de terceros en
dispositivos como un router
¿Por qué a Medida? doméstico generalmente anula la
El firmware preinstalado que incluyen dis- garantía.
positivos como el WRT54GL está orientado OpenWrt está disponible para un
a una fácil configuración estándar para todo buen número de modelos de router,
tipo de entornos. Esta solución por defecto incluyendo dispositivos de los fabri-
es aceptable para un uso estándar, pero está cantes Linksys, Netgear, Allnet o
lejos de explotar el verdadero potencial del Asus. El sistema OpenWrt se
dispositivo. diseñó originalmente para operar
OpenWrt nos permite adaptar el software Figura 1: El Linksys WRT54GL es un router/cortafue- desde la línea de comandos, aun-
a nuestras propias necesidades. Para moni- gos SOHO bastante extendido. que el reciente frontend X-Wrt [3]
Comenzamos
Para preparar el sistema para su uso, en pri-
mer lugar debemos configurar la red.
OpenWrt es sólo una instalación base. Las
ubicaciones, módulos add-on y las actualiza-
ciones se descargan desde Internet. Debe-
mos tener en cuenta el siguiente detalle cada
vez que cambiamos la configuración del rou-
ter: para aplicar los cambios, debemos pul-
sar previamente el botón Save Changes, y
luego pulsar sobre el enlace Apply. Sólo
entonces el sistema guarda los cambios.
Si pulsamos Network en el menú superior
llegamos a un submenú donde podemos
seleccionar la primera entrada, WAN-LAN,
para afrontar la configuración básica.
Para utilizar el router para conectarnos a
Internet mediante ADSL o módem conven-
cional, seleccionamos PPPoE como nuestro
Alternativas
Otros proyectos el software libre, como
FreeWRT [5] y DD-WRT [6], también
ofrecen firmware alternativo de terceros Figura 3: Para conectarnos a Internet, OpenWrt necesita un modelo DSL. Configuramos los
para dispositivos empotrados. detalles en la configuración WAN-LAN.
nuestra cuenta con el proveedor en los cam- La sección System | Packages (véase la WLAN
pos Username y Password. Nótese que el Figura 4) muestra una lista de cientos de Las exhaustivas opciones de configuración
router no soporta POTS ni RDSI. paquetes disponibles, que podemos instalar WLAN, que sobrepasan ampliamente el
con sólo pulsar el botón Install junto a la des- firmware original, es la parte más interesante
Actualizaciones y Módulos cripción del paquete. para muchos usuarios. Para acceder a la
Add-on Desafortunadamente, la mayoría de estos configuración básica pulsamos sobre Net-
Para actualizar el software del router a la paquetes carecen de una interfaz gráfica de work | Wireless, donde podemos especificar
última versión, seleccionamos Info en el usuario, y la configuración requiere acudir a el modo de operación para la red inalám-
menú, y a continuación pulsamos el botón la consola (véase el cuadro titulado “Línea de brica. Las opciones incluyen Client, Ad Hoc y
Check For Webif Update. Si marcamos la casi- Comandos”). Además de mostrar los paque- Access Point. Esta última es la opción por
lla correspondiente a Include daily builds tes instalados y disponibles, la página Web defecto, que es la elección adecuada para la
when checking for update to webif, el actuali- también ofrece un sistema de administración mayor parte de los escenarios posibles.
zador verificará diariamente las versiones, de paquetes similar a DPKG y soporta la Cuando iniciamos un cliente WLAN,
que podrían tener algún bug. Para instalar la administración de repositorios. Además de difunde en primer lugar un mensaje para
actualización, pulsamos Install Webif. todo esto, con Install Package from URL descubrir puntos de acceso disponibles. Si
Como se mencionó anteriormente, podemos instalar paquetes desde una URL. configuramos ESSID Broadcast a Hide hace-
OpenWrt es simplemente una instalación mos invisible a nuestro router para el resto
base que podemos personalizar mediante la Extensión SSL del mundo.
instalación de programas añadidos. Este Si tenemos que administrar OpenWrt en un OpenWrt también nos proporciona varias
método permite a los desarrolladores mante- entorno LAN no confiable, es aconsejable opciones de cifrado para protegerlos frente a
ner el sistema básico con un tamaño muy instalar la extensión SSL, a la cual podemos usos no autorizados. Se recomienda expresa-
pequeño, lo que es una buena idea, debido a acceder a través de System. Para instalarla, mente habilitarlos. Las opciones que tene-
que un dispositivo como el WRT54GL tiene pulsamos sobre el botón Install Matrix Tun- mos incluyen cifrado WEP de 48 y 128 bits y
sólo 2.112 KB de memoria flash, lo cual nel. Debido a las restricciones de memoria, WPA versión 1 ó 2, que es mucho más
limita el número de herramientas que pode- deberíamos planificar cuidadosamente qué segura. Para usar WPA, debemos instalar
mos instalar. Para consultar el estado de la paquetes necesitamos antes de instalarlos. software añadido mediante la opción Install
memoria pulsamos sobre Status. El valor En caso contrario, podemos quedarnos sin NAS Package.
solicitado es el espacio libre de /dev/ memoria suficiente para instalar extensiones Se accede a las configuraciones avanzadas
mtdblock/4. críticas en un paso posterior. de WLAN vía Advanced Wireless. La opción
Para algunos elementos del menú, como
UPnP o SNMP, los programas correspondien-
tes no están instalados por defecto.
Para descargar los programas pulsamos
sobre Install en la sección del repositorio en
línea correspondiente y continuamos con la
instalación. X-Wrt tiene un cuadro de
configuración para todos los programas que
instalemos de esta manera, y que se habilita
automáticamente al completar la instala-
ción.
Línea de Comandos
OpenWrt soporta una detallada configu-
ración a través de la consola, a la que
podemos acceder vía SSH. Usamos root
como nombre de usuario con la con-
traseña de administrador que hayamos
fijado. Gracias a BusyBox podemos
acceder a casi todas las herramientas
del sistema habituales de Linux.
El ligero administrador de paquetes
ipkg, basado en dpkg de Debian, está
disponible para instalar y desinstalar
paquetes. El comando ipkg install pack-
age_name instala el paquete especifi-
cado y resuelve automáticamente las
dependencias. ipkg update y ipkg
upgrade actualizan nuestro sistema a la Figura 4: OpenWrt tiene un administrador de paquetes al estilo dpkg que resuelve automática-
última versión. mente las dependencias de los programas que vayamos a instalar.
Restrict access (MAC address) nos permite fil- Refreshing, pararemos la actualización y se Reset
trar el acceso al router especificando direc- mostrará un menú desplegable junto a los Si no conseguimos comunicarnos con el
ciones MAC. Si el router y el cliente están nombres de los procesos. router de la manera habitual, nuestra última
bastante alejados, podemos modificar la Desde este menú desplegable podemos opción puede ser presionar el botón de
potencia de salida en el apartado Transmit matar procesos de manera individual Reset. Pulsamos el botón de Reset situado
Power (mw). mediante el envío de las señales SIGHUP, en la parte trasera del dispositivo durante 30
SIGKILL o SIGTERM. Status | Wireless mues- segundos. A continuación lo mantenemos
Análisis tra los clientes WLAN conectados y también pulsado mientras desconectamos la
OpenWrt nos ofrece muchas más opciones actúa como un escáner para descubrir otros corriente, y durante otros 20 segundos tras
de tipo estadístico que el software original, y dispositivos WLAN. Por el momento, el dis- haberlo desconectado. Una vez volvamos a
esto nos puede ayudar a analizar diferentes positivo carece de una función para desco- conectar la corriente, los LED DMZ debe-
eventos que puedan ocurrir en el dispositivo. nectar clientes. rían encenderse para indicarnos que el rou-
El enlace Graphs del menú superior nos con- Si pulsamos sobre Log se abrirá una ven- ter ha entrado en modo mantenimiento y
duce al motor de estadísticas y a la gráfica de tana de configuración del registro del sistema que las configuraciones han sido resetea-
carga de red (véase la Figura 5). El software que nos permite escribir archivos de log en das.
actualiza los datos cada segundo, ofrecién- un equipo externo (servidor de log). El sub-
donos una visión en tiempo real del estado menú también nos permite acceder a los logs Restaurar
de salud del dispositivo. del sistema y del kernel, y al protocolo del Para restaurar el software original, en primer
Si pulsamos sobre el enlace Status se cortafuegos. Las opciones de filtrado están lugar descargamos el archivo de imagen del
abrirá un supuesto en el cual podemos solici- limitadas a la búsqueda por palabras clave. fabricante desde [7]. A continuación vamos
tar diferentes parámetros del sistema, a System | Upgrade en la interfaz gráfica y
comenzando por los módulos cargados, los Copias de Seguridad pulsamos sobre Find… junto a Firmware
clientes conectados, y el estado actual de la OpenWrt es un sistema que invita a los file:. Desde el explorador de archivos, selec-
red. Esta pantalla nos ofrece un resumen usuarios a experimentar. Para asegurarnos cionamos la imagen que hemos descargado
detallado de casi todas las métricas de los de que podemos restaurar un sistema si ocu- y pulsamos sobre Open. Por último, pulsa-
sistemas críticos. La opción Processes nos rre un desastre, existen diferentes métodos mos en Upgrade para reinstalar el firmware
muestra una lista con todos los procesos acti- para hacer copias de seguridad de los archi- original.
vos, que se refrescan en intervalos de 20 vos y las particiones, que están disponibles
segundos. Si pulsamos sobre Stop bajo la opción System | Backup & Restore. Conclusiones
OpenWrt amplía considerablemente las
capacidades del router WRT54GL en compa-
ración con el software original. El sistema
básico incluye un conjunto enorme de fun-
cionalidades, que además pueden ampliarse
con la instalación de módulos, por ejemplo
para UPnP o QoS (Quality of Service).
Si no es usted un usuario experimentado,
debería evitar instalar el software. Debido al
enorme número de opciones, el riesgo de
acabar con una configuración defectuosa es
considerable.
Además de todo esto, la interfaz de admi-
nistración web en ocasiones no es precisa-
mente intuitiva. Varias funciones están
escondidas tras enlaces confusos o son sólo
accesibles dando algún que otro rodeo. ■
RECURSOS
[1] OpenWrt: http://openwrt.org
[2] Linksys: http://www.linksys.com
[3] X-Wrt: http://x-wrt.org
[4] Descarga del firmware X-Wrt: http://
x-wrt.org/install.html
[5] FreeWRT: http://freewrt.org
[6] DD-WRT: http://www.dd-wrt.com
[7] Firmware del Linksys WRT: http://
Figura 5: Análisis gráfico de varios parámetros, como carga del procesador y tráfico de red, en
tinyurl.com/4utmuy
tiempo real.
YO, TEXTO
Las buenas librerías son un bien escaso, y en el software libre lo son aún más. En este artículo veremos cómo
hacer uso de iTextSharp, una de las mejores librerías para generación de documentos PDF, a través de Iron-
Python. POR JOSÉ MARÍA RUÍZ
E
xisten pocas librerías realmente rías binarias C, aunque la plataforma .NET y podemos usarla para cargar los denomina-
potentes en software libre para el tra- Mono pueden hacerlo; para ver más infor- dos Assemblies de .NET (librerías .NET), y
tamiento de PDFs. A pesar de ser mación sobre cómo cargar librerías de una vez cargados podemos importar sus
algo desconocida, iText [1] se emplea en CPython ver Recurso [3]. librerías como si de Python. En el Listado 1
gran cantidad de proyectos de software Como ya hemos dicho, podemos asignar podemos ver un ejemplo práctico que mues-
cerrado, y es vista por muchos como la variables, crear clases, funciones… es tra cómo hacer esto.
mejor librería libre disponible para este Python al fin y al cabo. En particular, la ver- Mono nos provee de la mayoría de las
menester. También se ha adaptado la librería sión 1.1 de IronPython (sobre la que he librerías de .NET. Como vemos en el ejem-
a .NET, dándole el nombre iTextSharp [2]. escrito este artículo) es compatible con plo, sólo tenemos que emplear la función
Por tanto, iText está disponible en las dos Python 2.4 . Una de las diferencias con clr.AddReference() para cargar el assembly
grandes plataformas informáticas del CPython es que no se puede salir del intér- System.dll, que posee toda la funcionalidad
momento: Java y .NET. prete tan alegremente. IronPython fue dise- básica de .NET . En el caso de tener que car-
¿Puede Python aprovecharse de esta cir- ñado para Windows, en el que no existe el gar un assembly que tengamos físicamente
cunstancia? Gracias a IronPython podemos concepto de Control-C o Control-D que tanto en el mismo directorio que nuestro programa
trabajar con librerías .NET a través de Mono. se usa en Unix para salir de un intérprete. (cosa que haremos en este artículo) sólo
Vamos a ver cómo podemos sacarle partido Para poder salir del intérprete debemos man- tenemos que emplear la función clr.AddRefe-
a iText sin dejar de usar nuestro lenguaje darlo a background con la combinación de renceToFile() con el nombre del fichero.
favorito. teclas Control-z y recuperarlo con el
comando fg. En ese momento el intérprete Hola Mundo, desde iText
Recordando IronPython finalizará su ejecución. Metamos las manos en la masa, vamos a
Una vez tengamos IronPython instalado En general no nos encontraremos nada generar el equivalente al «Hola Mundo» pero
podemos arrancar un intérprete mediante el extraño en IronPython en comparación con en PDF. Para ello, y como acabamos de decir,
script que normalmente instala el paquete Python. La gran diferencia radica en la capa- necesitaremos un assembly (librería con
que hemos instalado o mediante Mono: cidad de IronPython de interactuar con la extensión dll de .NET), que guardaremos en
plataforma .NET. Para ello se emplea una el mismo directorio en el que trabajemos.
$ mono ipy.exe librería especial y exclusiva de IronPython: .Net posee algunas decisiones de diseño real-
IronPython 1.0 (1.0) on .NETU clr. Una vez hayamos importado esta librería mente acertadas, y una de ellas es la de
2.0.50727.42
Copyright (c) MicrosoftU Listado 1: Ejemplo de Uso de IronPython
Corporation. All rightsU
01 # -*- coding: utf-8 -*- Size
reserved.
02 import clr 08
>>>
03 09 form = Form( Text=”Hola
04 Mundo”, Size=Size(200, 200))
A pesar de que es Microsoft quien está
clr.AddReference(“System.Windo 10 botón = Button(Text=”¡ Púlsame
esponsorizando el desarrollo de IronPython,
ws.Forms”) !”)
éste posee una licencia libre (estilo BSD).
05 11
IronPython pretende ser igual a Python,
clr.AddReference(“System.Drawi 12 def onClick(event, handler):
podemos ejecutar la mayoría de las senten-
ng”) 13 print “Hola mundo”
cias a las que estamos acostumbrados. La
06 from System.Windows.Forms 14
mayor limitación está en las llamadas libre-
import Application, Button, 15 botón.Click += onClick
rías C que Python posee en su sistema de
Form 16 form.Controls.Add(botón)
módulos. IronPython se ejecuta sobre .NET,
07 from System.Drawing import 17 Application.Run(form)
lo que le limita, ya que no puede cargar libre-
58 Número 43
45 WWW.LINUX- MAGAZINE.ES
Python • DESARROLLO
• Type 3, que emplean la tecnología de mirando la documentación de la clase mientras que las fuentes TrueType son las
dibujo de PDF. iTextSharp.text.Font. Las fuentes Type 3 más usadas en el escritorio KDE o en
• TrueType, que podemos instalar. nos permiten definir nuevas fuentes dibu- OpenOffice. Lo más sencillo es emplear las
Las fuentes Type 1 vienen de serie con jándolas, lo que es bastante complicado, fuentes Type 1, pero hay muchas más
iText, y podemos encontrar sus nombres aunque se utiliza en situaciones especiales, fuentes TrueType, entre las que se encuen-
tra la (al menos para mí) odiosa Comic tenedor de objetos ListItem, que se compor-
Sans. tan de forma muy parecida al elemento Para-
En un sistema Linux podemos encontrar graph, puede contener una cadena de texto,
las fuentes TrueType del sistema en un Chunk o un Phrase. Podemos ver un List
/usr/lib/X11/fonts/TTF/. Sólo tenemos que en acción en el Listado 3.
traernos una de ellas al directorio en el que
estamos trabajando y generar en nuestro Tablas
programa la fuente iText mediante las Las tablas son uno de los elementos estrella
siguientes sentencias: de iText debido a la sencillez con las que
podemos manejarlas.
bf=pdf.BaseFont.CreateFontU Las tablas se generan empleando la clase Figura 2: Tablas, gráficos y texto en nuestro
(“/home/josemaria/fuente.ttf”,U Table, que acepta como parámetro el PDF de ejemplo.
BaseFont.CP1252,U número de columnas que tendrá la tabla. En
BaseFont.EMBEDDED); el elemento Table es donde más se nota que Office o Word), XML y HTML. La genera-
fuente = Font(bf, 12); Bruno empleó como ejemplo las tablas de ción de documentos en estos formatos es
HTML, y funciona exactamente igual. De aún experimental en iTextSharp, y es muy
Empleamos la factoría hecho, hasta los parámetros se llaman igual. probable que el resultado no se parezca
iTextSharp.txt.pdf.BaseFont.CreateFont() Tenemos filas y columnas, y podemos alterar demasiado al que obtenemos generando
para cargar la fuente. Acepta tres parámetros: su tamaño mediante los parámetros Row- PDF. Aún así, la exportación a HTML es la
la ruta de la fuente, el encoding, que será Span y Colspan como si estuviésemos en que mejor funciona. En el Listado [3] se
siempre CP1252 (el que se empleaba en los HTML, incluso tenemos parámetros como generan 3 ficheros (PDF, RTF y HTML) a la
IBM PC), y un último parámetro en el que Padding. vez, sólo tenemos que indicarle a iTextS-
indicamos que queremos empotrar la fuente Debemos crear un elemento Table, confi- harp en qué formatos queremos que genere
en el documento. Este último parámetro nos gurarlo e ir añadiendo celdas una a una. Las documentos.
permite distribuir el documento sin necesi- celdas son elementos de la clase Cell que, de
dad de que la persona que lo recibe posea la nuevo, se comporta de forma muy parecida Conclusión
fuente TrueType que hemos empleado. a Paragraph. En el Listado [3] aparece una No hemos podido ver ni un 20% de todo lo
Resumiendo, un Chunk nos permite dar tabla que hace uso de algunos de los pará- que ofrece iText, simplemente debemos
formato a un texto, pero nada más. Para com- metros que nos permiten configurarla. comprobar la documentación del API para
poner textos complejos necesitamos las cla- ver cómo iText se extiende mucho más allá
ses Phrase y Paragraph. ¿Qué podemos hacer Imágenes de la simple disposición de texto e imágenes.
si queremos emplear en un mismo texto dis- La clase Image es la encargada de gestionar- Posee clases para cifrar los PDF, para generar
tintos formatos? Debemos crear distintos las en iText. En otras librerías es necesario código de barras o empotrar Javascript.
Chunks y componerlos dentro de una Phrase cargar los distintos tipos de imágenes emple- Incluso nos permite, dentro de unos límites,
mediante su método Add(). ¿Y si queremos ando clases espaciales para cada formato, cargar un fichero PDF y extraer su texto y
componer varias frases? Pues, siguiendo el pero en iText simplemente necesitamos la componentes.
razonamiento de iText, debemos agruparlas ruta de la imagen. Image puede cargar imá- Espero que el esfuerzo anónimo de perso-
en un Paragraph (un párrafo) mediante su genes en los formatos JPEG, PNG, GIF o nas como Bruno siga trayéndonos al soft-
método Add() . Por tanto, podemos estructu- WMF. En el caso del Listado [3] cargamos ware libre librerías de tanta calidad como
rar nuestro texto en Chunks, Phrases y Para- una imagen en formato PNG. iText. ■
graphs. Aún así, tanto Phrase como Para- Un hecho curioso de iText es que es el ele-
graph admiten texto y un formato prescin- mento que cargamos en un documento es RECURSOS
diendo de otras estructuras si queremos, lo que le indica al documento dónde debe
[1] Página de inicio de iText: http://
que nos da mayor flexibilidad al no tener que situarse. Es decir, debemos indicarle a iTextS- www.lowagie.com/iText/
emplear Chunk si no es necesario. harp.Text.Image cómo queremos que se ali-
[2] Página de inicio de iText Sharp:
iText nos permite crear listas de elementos nee mediante el atributo Alignment, y eso
http://itextsharp.sourceforge.net/
de la misma forma que nos lo permite hacemos en el Listado [3]. También podría-
[3] Cómo cargar librerías de CPython:
HTML. Se crean con la clase List, y podemos mos haber indicado que se situase en una
http://www.voidspace.org.uk/
seleccionar si queremos que sean numéricas posición absoluta mediante el método Set- ironpython/cpython_extensions.
o no mediante el primer argumento de su AbsolutentPosition(). shtml
constructor, que puede tomar los valores
[4] Zona de descarga de Text Sharp:
List.ORDERED o List.UNORDERED. Acepta RTF, HTML http://sourceforge.net/projects/
dos parámetros más, aunque no son obliga- Aunque el desarrollo de iTextSharp sigue de itextsharp/
torios: el segundo parámetro nos permite cerca el de iText, aún no ha conseguido
[5] Mono Documentation Library: http://
indicar si queremos que en lugar de números soportar completamente todas las opciones www.go-mono.com/docs/
se empleen letras para numerar los items de que ofrece iText. La librería iText permite
[6] Listados de este artículo: http://
la lista, el tercero indica el margen que se generar no sólo ficheros PDF, sino también
www.linux-magazine.es/Magazine/
dejará entre el texto y la viñeta o número que RTF (Rich Text Format, formato estándar Downloads/45/Python
identifica a la linea en la lista. List es un con- soportado por editores de texto como Open-
Vasiliy Yakob
Un script Perl que vigila precios de Amazon
chu, Fotolia
CAZA
GANGAS
Si eres un caza gangas es probable que te guste este script Perl que monitoriza la evolución de los precios en
Amazon y nos alerta si los baja súbitamente en productos por los que nos hemos interesado.
¿
Debería comprar esa cámara digi- 1, para encontrar los productos que activar el flag -a , pero tenga en cuenta
tal a la que he echado el ojo quiere el usuario. Un cronjob llama al que probablemente se mostrará un mon-
recientemente? ¿O debería esperar script a intervalos periódicos. Cada vez tón de información si ha estado monitori-
a que bajara un poco de precio? Estas que el script conecta con el servicio Web zando precios desde hace tiempo y ha
preguntas son difíciles de contestar, pero de Amazon, consulta los precios de los vigilado diferentes productos.
un vistazo a la evolución de los precios artículos señalados y los guarda en una Cuando se ejecuta sin ninguna opción
en los meses anteriores puede indicarnos base de datos SQLite local. en línea de comandos, amtrack realiza
qué camino pueden tomar esos precios. Si el precio de un producto cae, el su trabajo mediante los atajos definidos
script envía un correo electrónico con la en el archivo de configuración ~/
Historial de Precios URL del producto y el precio a la direc- .amtrack-rc y actualiza la base de datos
Si Amazon ofreciese un historial de pre- ción configurada en la línea 79 . Lo único con los últimos precios.
cios para sus productos, de manera simi- que le resta por hacer al caza gangas es
lar a la evolución del precio de las accio- pulsar la URL en el cliente de correo, Lista de Deseados
nes en las páginas de finanzas, los clien- echarle otro vistazo al producto en el El archivo de configuración tiene dos
tes podrían disgustarse al descubrir que navegador, y en su caso, cazarlo al columnas. La primera contiene el
han desaprovechado oportunidades. O vuelo.
podrían llegar a la conclusión de que los Debido a que los precios se
precios van a seguir cayendo y esperar guardan de forma local en una
un momento mejor para comprar. La base de datos, el script puede
famosa tienda online no ofrece este ser- solicitar y mostrar información
vicio, así que tendremos que desarro- del histórico al momento. Una
llarlo nosotros mismos. llamada a amtrack -l devuelve
los últimos precios de todos los
Precios a la Vista productos monitorizados (véase
El script que vamos a ver, amtrack, par- la Figura 2). Si estamos intere-
sea un archivo de configuración sados en el contenido completo Figura 1: El archivo de configuración ~/.amtrack-rc lista
~/.amtrack-rc, parecido al de la Figura de la base de datos podemos los productos especificados y sus números ASIN.
62 Número 43
45 WWW.LINUX- MAGAZINE.ES
Perl: Amtrack • DESARROLLO
mos de transporte de correo electrónico, configuración, incluso si se le llama que cron, que inició el script, envíe un
también soporta SMTP especificando el desde un directorio diferente (por ejem- correo electrónico al administrador.
host. Estos valores por efecto se fijan plo, bin/amtrack o amtrack desde el Se define un único usuario registrado
como parámetros en el archivo local directorio de usuario), el módulo Find- para la categoría main (es decir, para el
.maildwim. Para más detalles acerca de Bin nos ayuda a exportar la variable $Bin programa principal). Net::Amazon tam-
esto, sólo tiene que leer la página man como directorio donde se encuentra el bién permite Log4perl, y otra entrada en
Mail::DWIM. script, asegurando de esta manera que el archivo de configuración mostrará
El correo electrónico también contiene $Bin/amtrack.l4p representa la ruta rápidamente los detalles de las comuni-
la URL del producto, que se consigue absoluta a la configuración de Log4perl. caciones con el servidor Web de Amazon
añadiendo /dp/$asin a la URL base de la La configuración de Log4perl no es por pantalla. El usuario main controla
página web de Amazon. precisamente sencilla. Después de todo, dos appenders: Logfile y Screen. Para
queremos que el script escriba sus activi- asegurarnos de que Screen sólo recibe
Logueo Profesional dades normales en el archivo de log mensajes con prioridad ERROR superior,
Para mantener al usuario al corriente de (Figura 6) y muestre los errores en la la línea
lo que está haciendo el script se usa consola.
Log4perl para registrar sus actividades. Se llama a un cronjob a intervalos log4perl.appender.Screen.U
El archivo amtrack.l4p, inicializado por regulares para añadir información en el Threshold = ERROR
Log4perl, se guarda en el mismo directo- archivo de registro (por defecto), pero se
rio que el script (Figura 5). Para permitir enviarán los errores (como una conexión configura este umbral en la definición
al script que encuentre el archivo de fallida de red) a STDERR, y esto provoca del appender.
Listado 1: amtrack
001 #!/usr/bin/perl -w 030 060
002 use strict; 031 if($opts{l} or $opts{a}) { 061 for my $line (@$config) {
003 use Getopt::Std; 032 for my $key (sort keys 062
004 use Net::Amazon; %$txt_by_asin) { 063 my($asin, $txt) = @$line;
005 use 033 my $txt = 064 my $now =
Net::Amazon::Request::ASIN; $txt_by_asin->{$key}; DateTime->now();
006 use Log::Log4perl qw(:easy); 034 for my $val 065
007 use Cache::Historical 0.02; ($cache->values( $key )) { 066 my $last_price =
008 use DateTime; 035 my($dt, $price) = fix_price($cache->
009 use Mail::DWIM qw(mail); @$val; 067
010 use FindBin qw($Bin); 036 print “$dt $txt get_interpolated($now,
011 $price\n”; $asin));
012 my ($home) = glob “~”; 037 last if $opts{l}; 068
013 my $amzn_rc = 038 } 069 track($asin, $txt,
“$home/.amtrack-rc”; 039 } $cache);
014 040 } else { 070
015 041 update($config); 071 my $price_now =
Log::Log4perl->init(“$Bin/amt 042 } fix_price($cache->
rack.l4p”); 043 072
016 044 #################### get_interpolated($now,
017 my $cache = 045 sub fix_price { $asin));
Cache::Historical->new( 046 #################### 073
018 sqlite_file => 047 my($price) = @_; 074 if(defined $last_price
019 “$home/.amtrack-sqlite” 048 and
020 ); 049 if(defined $price) { 075 defined $price_now) {
021 050 $price =~ s/[^\d]//g; 076
022 my $UA = Net::Amazon->new( 051 $price =~ 077 if( $price_now <
023 token => s/..$/.$&/g; $last_price) {
‘YOUR_AMZN_TOKEN’, 052 } 078 mail(
024 # locale => ‘uk’, 053 return $price; 079 to =>
025 ); 054 } ‘foo@bar.com’,
026 055 080 subject =>
027 my($config, $txt_by_asin) = 056 #################### “[amtrack] “ .
config_read(); 057 sub update { 081 “$txt cheaper
028 058 #################### ($price_now < “ .
029 getopts(“al”, \my %opts); 059 my($config) = @_; 082 “$last_price)”,
En caso de que queramos aprender plemente tenemos que descomentar que el script mantiene las condiciones de
más acerca del entorno de trabajo locale => ‘uk’ en la línea 24. uso de Amazon, e impone limites si el
Log4perl, podemos visitar la página Web Para otros países europeos, los precios usuario recupera precios a intervalos
de Log4perl [2], que tiene una documen- debería mostrarse en formato EUR X,XX, muy cortos.
tación exhaustiva y una FAQ con confi- pero la función fix_price los convierte a
guraciones frecuentes a modo de ejem- un formato en punto flotante adecuado, Mejoras
plo. que podemos comparar con el uso de Para mejorar el script podríamos asignar
operaciones matemáticas. un límite para cada precio en el archivo
No sin Mi Token Como las cifras en Estados Unidos usan, de configuración e indicar al script que
Amazon requiere un token para los para el punto flotante, tanto un punto no nos notifique a menos que el precio
scripts que estén trabajando con su web como comas para separar los miles, baje por debajo de este valor. Otra apli-
service. El token está a libre disposición fix_price() simplemente desecha todo lo cación podría ser dibujar un gráfico de
de cualquiera que se registre y acepte que no es un dígito e inserta el punto deci- los cambios en el precio en un período
las condiciones [3]. Tras recibirlo, sólo mal delante de los últimos dos dígitos. de tiempo. Los módulos RRDTool::OO o
tenemos que remplazar Imager::Plot de CPAN serían perfectos
YOU_AMZN_TOKEN de la línea 23 con Instalación para este propósito. ■
el token correcto. Un shell de CPAN instala los módulos de
El script funcionará con la página CPAN especificados al comienzo del RECURSOS
Web de Estados Unidos o con la de script, y resuelve inmediatamente todas
[1] Listados de este artículo: http://
cualquier otro país, como puede ser la p las dependencias al mismo tiempo.
www.linux-magazine.es/Magazine/
del Reino Unido. Para esta última, sim- Una entrada crontab con el formato
Downloads/45
[2] Log4perl homepage: http://
23 0 * * *
log4perl.com
/path/to/amtrack
[3] Los tokens de Amazon Web Servi-
ces están disponibles en: http://
llama al script una vez al día,
www.amazon.com/soap
23 minutos después de media-
[4] El robot aspirador Roomba: http://
noche. Esto debería ser más
www.amazon.com/
que suficiente para mantener-
iRobot-Roomba-Intelligent-Floorva
Figura 6: Fragmento del archivo de log tras una ejecución nos al día. El módulo c-Robotic/dp/B00008439Y
exitosa del script. Net::Amazon se asegura de
EXPERIENCIA CON
CLAVES
Normalmente, la técnica del gol-
E
l golpeo de puertos convencional, Figura 1: El cliente llama a la puerta del puerto 22 permitiéndole el paso porque tiene la clave
que expliqué el mes pasado [1], le correcta.
protege contra atacantes que esca-
nean de forma rutinaria redes enteras bus- mentación SPA que funciona muy bien es contesta fwknopd a un golpeo del cliente.
cando cualquier oportunidad. Un cracker Firewall Knock Operator, o Fwknop [2]. La clave secreta que el cliente utiliza para
que se tome su tiempo y registre la comu- Además de las herramientas de compi- identificarse se almacena aquí. La línea
nicación puede identificar señales de gol- lación, la instalación requiere Perl, el SOURCE puede utilizarse para restringir
peo, ya que las secuencias se repiten. paquete libpcap-dev y el módulo redes desde las que el servicio acepta gol-
En teoría, podría considerarse el uso de Net::Pcap. Tras la instalación de todos peos. Para configurar el puerto que el sis-
listas de señales de golpeo de un sólo uso estos recursos, se instala Fwknop, que es tema abre para golpeos con éxito (por
que quedan obsoletas tras utilizarse. Des- una gozada gracias al instalador basado ejemplo, tcp/22 para SSH) puede utilizar
afortunadamente, es muy complejo. Ade- en Perl. OPEN_PORTS. La Figura 1 muestra un
más, si el administrador no es muy crea- intento con éxito. El cliente fwknop recoge
tivo, un atacante podría intentar con Encontrando el Picaporte la clave de su propio
secuencias conocidas de golpeo (puerto Fwknop se compone del servidor /etc/fwknop/access.conf.
7000, 8000, 9000, …) para conseguir el fwknopd y del cliente fwknop. El servidor Si la conexión SSH no se abre lo bas-
acceso. puede configurarse editando dos ficheros tante rápido, FW_ACCESS_TIMEOUT se
Una posible solución puede ser la bajo /etc/fwknop/; fwknop.conf contiene dispara en el servidor. Este tiempo nor-
Autenticación de Paquetes Individuales la configuración básica. Inicialmente malmente está establecido en 30 segun-
(SPA). El sistema de golpeo envía un sólo necesitará cambiar un par de parámetros, dos, pero yo lo suelo doblar ¡Nunca le
paquete conteniendo las credenciales de que están etiquetados con __CHAN- meta prisa a un administrador en su tra-
autenticación cifradas, normalmente una GEME__. bajo! ■
frase de paso, y el cliente responde Los demás parámetros que se pueden
abriendo un puerto específico. Una imple- utilizar aquí vienen ya por defecto. Nótese RECURSOS
que necesitará sincronizar el tiempo entre
[1] “Knock-Knock” por Charly Kühnast,
SYSADMIN el servidor y el cliente, ya que si la dife-
Linux Magazine, edición en caste-
rencia es muy grande, fwknopd ignorará
KSplice . . . . . . . . . . . . . . . . . . . . . . . .68 llano, Nº 44.
el golpeo del cliente.
Cómo actualizar el kernel sin tener que [2] Fwknop: http://www.cipherdyne.org/
Las entradas en
reiniciar la máquina. fwknop/
/etc/fwknopd/access.conf definen cómo
WWW.LINUX-MAGAZINE.ES Número 45 67
ADMINISTRACIÓN • Ksplice
Anjapepunkt, photocae.com
Modificación del kernel en ejecución con Ksplice
PEDAZO A PEDAZO
A veces el tiempo total de funcionamiento de una máquina es tan los parches son muy simples. El ochenta
por ciento constaba de menos de quince
importante como lo puedan ser las actualizaciones. Pero, ¿no hay que líneas de código, de las cuales más de la
mitad era de poco más de una línea. Los
reiniciar cada vez que se aplican parches al kernel? Con Ksplice problemas suelen estar causados por un
simple error a la hora de procesar los ele-
podemos aplicarlos mientras estamos usando ese kernel. mentos de un array (“off-by-one errors”).
Los bugs de este tipo son muy fáciles de
POR NILS MAGNUS
arreglar. Por ejemplo, el Listado 1 muestra
un parche para la llamada al sistema
A
pocos administradores les entu- media un bug en el kernel cada tres sema- prctl(), que soluciona la vulnerabilidad
siasma la idea de instalar un nas. El modelo de desarrollo libre tiene la explicada en CVE-2006-2451. El problema,
nuevo kernel, por lo que la mayo- peculiaridad de que continuamente apare- para el que hay exploit, se soluciona con
ría de distribuciones ofrecen un gestor de cen nuevos parches. una sola línea de código.
paquetes y algunas herramientas de insta- Jeffrey Brian Arnold, del MIT (Massa- Arnold desarrolló el paquete Ksplice [2]
lación que simplifican la tarea. Después de chusetts Institute of Technology), demostró con la idea de parchear un kernel en eje-
cargar e instalar el nuevo kernel, y de con una encuesta [1] que la mayoría de cución, directamente, sin necesidad de rei-
registrarlo en el cargador de arranque, el
reinicio no debería tomar más de un par Listado 1: Parche para CVE-2006-2451
de minutos. Pero es que dos minutos de
01 diff —git a/kernel/sys.c b/kernel/sys.c
ausencia resulta que son demasiado para
02
algunas aplicaciones.
03 —- a/kernel/sys.c
Si gestionamos sistemas para procesa-
04 +++ b/kernel/sys.c
miento matemático, como los usados para
05 @@ -1991,7 +1991,7 @@ asmlinkage long sys_prctl(int option,
simulaciones en climatología, o sistemas
unsigned
gestores de un gran número de conexiones
06 long arg2, unsigned long arg3,
de red, como servidorees telefónicos o
07 case PR_SET_DUMPABLE:
tiendas en línea, probablemente preferire-
08 - if (arg2 < 0 || arg2 > 2) {
mos evitar tener que reiniciar.
09 + if (arg2 < 0 || arg2 > 1) {
Por otro lado, el administrador es tam-
10 error = -EINVAL;
bién el responsable de la seguridad de los
11 break;
sistemas que gestiona. Las encuestas reve-
12 }
lan que los desarrolladores encuentran de
68 Número 45 WWW.LINUX-MAGAZINE.ES
Ksplice • ADMINISTRACIÓN
Figura 1: Para preparar los cambios que se aplicarán al kernel en ejecución, Ksplice crea dos árboles de kernel (Fase 1), encuentra las diferencias
a nivel de código de los objetos (Fase 2), los optimiza (Fase 3) y reúne para crear un nuevo módulo (Fase 4).
niciar. El programa sólo necesita el código el programa llama a stop_machine_run(), suposiciones erróneas con respecto al ker-
fuente del kernel, sus datos de deteniendo la ejecución del hilo, ya que nel en ejecución. Ksplice hace uso de una
configuración y la tabla de símbolos. Lo esta función crea un proceso de alta priori- sólida lógica a la hora de analizar la tabla
mejor de todo es que ni siquiera tenemos dad por cada CPU. El módulo de Ksplice de símbolos, que en muchas distribucio-
que preparar el sistema para usar Ksplice. comprueba entonces si el candidato al nes se guarda en el archivo /boot/
El programa es capaz de modificar cual- cambio contiene algún hilo. En caso de ser Symbol.map. Además de todo esto, com-
quier kernel a partir de la versión 2.6.8. así, el módulo espera un rato y luego pila ambos kernels con varias opciones
Las distribuciones Linux suelen propor- vuelve a intentarlo. Este método no es que asignan un segmento de texto ELF
cionar el código fuente del kernel, pero si efectivo con algunas funciones como el distinto a cada función para facilitar la
lo hemos compilado nosotros mismos, lo programador de tareas, puesto que siem- identificación de los saltos relativos modi-
tendremos en /usr/src. Los archivos config pre está ocupado haciendo algo. En esos ficados.
y System.map suelen ubicarse en /boot. casos, Ksplice deja de insitir, pero si no, Debido a que Ksplice maneja el código
Ksplice necesita además, obviamente, un instala las direcciones de salto. A partir de como las cajas negras, no puede detectar
parche o un archivo (o varios) ya modifi- ahora, el kernel Linux ejecutará la versión cambios en estructuras de datos. Por
cado. El programa compila dos nuevos parcheada de estas funciones. ejemplo, si con un parche se añaden nue-
kernels: pre representa una versión del sis- vos atributos a una estructura de datos
tema actual, mientras que post designa el Valores Internos dada, o si se cambia su diseño, pueden
kernel resultante tras aplicar los cambios. Ksplice tiene que encontrar las funciones producirse sorpresas. Los saltos suelen
adecuadas y las direcciones de vectores en tomar punteros a funciones, pero no hay
Encuentra las Diferencias código reubicable. El programa es capaz garantía de que Ksplice pueda realizar,
Después de compilar los dos nuevos ker- de detectar cambios en direcciones de según el caso, operaciones aritméticas
nels, Ksplice busca diferencias en el salto relativas donde la función en sí complejas con punteros o hacer correcta-
código objeto (ver Figura 1). Si Ksplice misma no se ve afectada por ninguna mente las conversiones de tipos.
analizase el código directamente, tendría modificación, gracias al nuevo tamaño de
que emular cada una de las decisiones del la función parcheada. El kernel normal- Fuera de los Límites
compilador, algo muy complicado para la mente introduce al inicio las funciones En la documentación, el autor enfatiza
tarea que nos atañe. Por este motivo, implementadas en C. Por contra, en el que diseñó la herramienta principalmente
Ksplice hace uso de la librería GNU BFD caso de tratarse de código ensamblador, el para la aplicación de pequeños parches de
[3] para buscar funciones en el código programa tiene que buscar el vector. seguridad, y que es responsabilidad del
objeto que hayan cambiado en el nuevo Si el programa usase un compilador administrador leer, comprender y evaluar
kernel. Ksplice guarda entonces el nuevo diferente para el kernel pre, se darían el parche antes de aplicarlo. Dicho de otro
código en módulos e inserta saltos al prin-
cipio de las funciones originales, que
apuntarán ahora a las nuevas versiones.
Cuando el administrador activa los cam-
bios, Ksplice carga dos módulos en el sis-
tema en ejecución, realizando así las
modificaciones (ver Figura 2).
Uno de los momentos críticos se da en
el instante en el que Ksplice ya puede ins-
talar los saltos. Los problemas empiezan
cuando hay un hilo del kernel usando una Figura 2: Para activar las nuevas funciones, Ksplice intenta introducir saltos al comienzo de
de las funciones que hay que reemplazar. la función antigua. El programa detiene antes los procesos y se asegura de que el código no
Para evitar que se produzca esta situación, usa hilos.
WWW.LINUX-MAGAZINE.ES Número 45 69
ADMINISTRACIÓN • Ksplice
70 Número 45 WWW.LINUX-MAGAZINE.ES
LINUX USER • Fotoxx
Sajola, photocase.com
LUCES Y SOMBRAS
El programa de manipulación de imágenes Fotoxx ofrece lo más destacado, como HDR y funciones de todo
tipo, aunque donde hay luces también hay sombras. POR THOMAS PELKMANN
E
l programa de manipulación de diferentes de las que presentan las GUIs que se mueven, el grado de frustración
imágenes libre Fotoxx ofrece la más populares. puede variar. A pesar de ello, el visor de
colección habitual de funciones Fotoxx es una buena elección como imágenes es importante para un flujo de
para la mejora y edición de fotos digita- visor de imágenes y como aplicación para procesos intuitivo. También es desafortu-
les, pero también herramientas para seguirle la pista a nuestras fotos digitales. nado que el botón Open no ofrezca a los
manipulación de fotos high-dynamic Para ver una perspectiva de nuestra colec- usuarios una vista previa: o conocemos el
range (HDR) e imágenes panorámicas. ción de fotos en cualquier carpeta pulsa- nombre de las imágenes o tendremos que
Los paquetes precompilados se encuen- mos Folder. Cuando se trata de coleccio- adivinar cuál queremos.
tran disponibles para unas cuantas dis- nes grandes, Fotoxx se bloquea o res-
tros y el desarrollador nos dirige a ellos; ponde lentamente. También carece de Retoque y Mejora
en el sitio web de Fotoxx, el programador, algunas funcionalidades útiles, como el La barra de icono de la izquierda suminis-
cuando se enfrentó con el gran número modo presentación o la capacidad para tra herramientas de edición de imágenes.
de sistemas de empaquetado [1], simple- clasificar imágenes por categorías. A los La mayoría de ellas son autoexplicativas,
mente declaró “Me rindo”. Sin embargo, usuarios se les deja la tarea de navegar como Crop, Redeye, Rotate, y abren diálo-
con un par de pasos manuales podemos imágenes individuales, debiendo pulsar gos adicionales que muestran los paráme-
instalar Fotoxx desde el código fuente dos veces sobre una para abrirla y editarla tros más importantes con un clic de ratón.
(véase el cuadro “Instalación de (Figura 1). El método de abrir deslizadores y vistas
Fotoxx”). Desafortunadamente, Fotoxx no posee previas en ventanas separadas indepen-
Cuando se arranca por primera vez, una barra de desplazamiento, lo que dientes del programa principal obliga a
Fotoxx aparece con una interfaz sorpren- resulta una molestia si las imágenes no los usuarios a cambiar una y otra vez
dentemente sencilla: un extenso espacio caben en la ventana. La única opción es entre ventanas para mover lo que se nece-
vacío, enmarcado por una barra de ico- reducir la escala de la previsualizaciones sita al primer plano.
nos horizontal para las funciones de o navegar fila a fila o página por página Sin embargo, el programa ofrece una
archivo principales y una barra vertical por las imágenes. Como el programa apa- buena selección de opciones de calibra-
para las herramientas del programa, muy rentemente recarga las imágenes cada vez ción. Por ejemplo, podemos establecer el
RECURSOS
[1] Fotoxx: http://www.kornelix.com/
fotoxx
[2] Artículo de la Wikipedia sobre DRI:
http://en.wikipedia.org/wiki/
High_dynamic_range_imaging
[3] Artículo de la Wikipedia sobre mape-
ado de tono: httP://en.wikipedia.org/
wiki/Tone_Mapping
[4] Plugin de exposición combinada de
GIMP: http://turtle.as.arizona.edu/
jdsmith/exposure_blend.php
Figura 3: Fotoxx realiza un buen trabajo en la creación de imágenes HDR.
DIFERENCIAS
L
os programadores a menudo tra- siones actuales de Ubuntu y Debian, Además, el arranque inicial dura más
bajan con parches que contienen aunque sí se encuentra incluido en de lo esperado. Sin embargo, una vez
las diferencias entre dos ficheros. openSUSE. en marcha, la ventana del programa
Linux siempre tuvo herramientas basa- Si no podemos encontrar a BeeDiff en (Figura 1) es limpia y ordenada, con
das en texto para comparar ficheros, el repositorio de nuestra distribución, dos cuadros de texto, una barra de ico-
como la clásica utilidad de Unix diff. siempre podemos descargar un binario nos y una línea de estado que contiene
BeeDiff es una herramienta de compara- del sitio web [2]. En la línea de coman- cuatro contadores.
ción con la ventaja de lo gráfico: Pode- dos, escribimos tar xvfz
mos comparar archivos desde una beediff_1.7_i586.tar.gz o ejecutamos Configuración
cómoda interfaz de escritorio, apare- nuestro administrador de archivos para La interfaz BeeDiff es bastante auto-
ciendo los cambios resaltados en color. desempaquetar el directorio beediff con explicativa. Si fuera necesario, System |
los ficheros. Para arrancar el programa Configure nos lleva hasta las opciones
Instalación introducimos beediff en la línea de básicas (Figura 2), incluyendo distin-
BeeDiff [1] no se encuentra disponible comandos. ción entre mayúsculas/minúsculas,
como paquete precompilado en las ver-
Alternativas a BeeDiff
Como la comparación de ficheros es
parte del trajín diario de los desa-
rrolladores, muchos programas con
ámbitos funcionales variados pueden
comparar archivos. Los puristas
preferirán herramientas de la línea de
comandos como diff. Si también usa
Windows a Mac OS X para trabajar con
ficheros, es preferible la GUI tkdiff [3] a
BeeDiff. KDiff3 [4], Meld [5] o Diffuse [6]
poseen más funciones que BeeDiff. La
mayoría de los editores y paquetes
ofimáticos ofrecen ahora funcionali-
dades similares.
Figura 1: BeeDiff es limpia y ordenada.
Comparación de Ficheros
Para comparar ficheros los abrimos pul-
sando el botón … situado encima de las
ventanas de texto. Lo normal es cargar
el fichero original en la ventana de la
parte izquierda y el fichero con el que
queremos compararlo en la parte dere-
cha. La herramienta enumera automáti-
camente las líneas, aunque podemos
deshabilitarlo en System | Numeration.
La Figura 3 muestra una comparación
entre dos ficheros de texto. La ventana
de texto de la parte izquierda contiene el
fichero original, test1.txt, mientras que
la de la derecha posee una versión modi-
ficada denominada test2.txt. La barra de
estado nos dice que hay un total de 26
diferencias, incluyendo 9 cambios, 8 Figura 3: BeeDiff comparando dos archivos de texto.
adiciones y 9 supresiones. Los destaca-
dos rojos indican las líneas de supresio- directamente en BeeDiff. La función dar el archivo pulsando sobre el icono
nes, las verdes, cambios dentro de una Operations | Remove all from left o de disquete.
línea, y las azules, las líneas insertadas. Remove all from right elimina las líneas
Los cambios a palabras individuales se insertadas y las borradas (líneas con Conclusiones
destacan en amarillo. fondo rojo a azul) de los archivos de la BeeDiff es útil para comparar dos ficheros
izquierda o de la derecha, respectiva- y visualizar los cambios. Aunque dise-
Sincronización de Cambios mente. ñado originalmente para programadores,
Si deseamos sincronizar la diferencia Las líneas marcadas en verde contie- BeeDiff también es útil a otros usuarios.
entre dos ficheros, podemos hacerlo nen pasajes de texto confusos para Bee- La capacidad de aceptar o de deshacer-
Diff, porque el software es incapaz nos individualmente de los cambios es
de identificar los detalles de los práctico, y el hecho de que ambas venta-
cambios. nas estén sincronizadas muestra que los
En lugar de deshacer simple- desarrolladores han considerado el uso de
mente los cambios, podemos su producción. A BeeDiff aún le falta una
seleccionar Operations | Merge all función para recomparar ficheros pul-
to left o Merge all to right. La fun- sando un botón después de hacer los
ción intenta incorporar los cam- cambios. Si necesitamos comparar docu-
bios a un archivo en el otro mentos más complejos, probablemente la
archivo, aunque típicamente se mejor opción sea una suite ofimática que
necesitan algunas ediciones a soporte control de versiones y rastreo de
mano. cambios. ■
Asistente
¿
No sería mejor que OpenOffice.org trucos, los cuales la hacen una ingeniosa
tuviera una funcionalidad de mar- herramienta de gran ayuda. Si no estamos familiarizados con Book-
cado? Con algo así podríamos mar- Al igual que ocurre con la mayoría de las marks Menu, la manera más fácil de añadir
car nuestros documentos favoritos y acce- extensiones de OpenOffice.org, instalar una marca es a través del asistente, que
der a ellos con un par de clics de ratón en Bookmarks Menu no es particularmente podemos iniciar pulsando el botón Wizard.
vez de tener que buscar a través de los dificultoso. Descargamos la última versión Cuando lo ejecutamos notaremos que
directorios de nuestro disco duro. de la extensión, luego, usando el adminis- nos permite marcar no solamente docu-
Aunque podemos acceder previamente a trador de Extensiones en OpenOffice.org mentos, sino también directorios e incluso
ficheros abiertos a través del menú Archivo (Herramientas | Administrador de Exten- comandos y aplicaciones (véase la Figura
| Documentos Recientes, esta funcionalidad siones) instalamos el paquete .oxt descar- 2). Para crear una marca para una aplica-
también se encuentra demasiado limitada gado.
como para ser muy útil. Afortunadamente, Tras instalar Bookmarks Menu
tenemos al menos dos maneras de resolver debemos reiniciar OpenOffice y
este problema: Podemos usar la extensión habilitar la extensión. Para ello
Bookmarks Menu (Figura 1) o crear nues- seleccionamos Herramientas | Com-
tra propia herramienta de marcado usando plementos y pulsamos en el botón
OpenOffice.org Basic. Activar. Esto añade el menú a la
barra de herramientas principal y
Extensión Bookmarks Menu abre el diálogo Edit Bookmarks
Tal y como su nombre sugiere, la extensión Menu, desde el que podemos añadir
Bookmarks Menu [1] nos permite marcar marcas y configurar elementos del
documentos, y además aplicar otros pocos menú. Figura 1: La extensión Bookmarks Menu.
base de datos como un fichero Book- servicio FilePicker que puede hacer mucho Después de que el usuario haya seleccio-
markDB.odb y lo registramos como una trabajo pesado por nosotros. Este servicio nado un fichero, la macro extrae su nom-
fuente de datos en OpenOffice.org. presenta un diálogo que permite al usuario bre. Para hacerlo usa la propiedad Display/
Para hacer esto último, arrancamos seleccionar un documento. Para iniciar y Directory y obtiene la ruta del fichero y las
OpenOffice.org y elegimos Herramientas | ejecutar el servicio sólo necesitamos dos rutinas de cadena Right y Len para extraer
Opciones. Seguidamente seleccionamos líneas de código: el nombre del fichero de la ruta.
OpenOffice.org Base | Bases de datos y A continuación la macro establece una
pulsamos el botón Nuevo. Luego seleccio- FilePicker=createUnoServiceU conexión a la base de datos BookmarkDB e
namos la base de datos BookmarkDB.odb (“com.sun.star.ui.dialogs.U inserta el nombre del fichero obtenido y la
y damos a la nueva conexión el nombre FilePicker”) ruta en los campos apropiados de la tabla
de “BookmarkDB”. Después pulsamos FilePicker.execute files con la instrucción INSERT INTO SQL.
Aceptar dos veces y creamos un diálogo La macro OpenDocument comienza
llamado BookmarkDialog (que consta de Debido a que el administrador de marcas estableciendo la conexión a la base de
un cuadro desplegable y de un botón sólo maneja documentos de procesador de datos BookmarkDB y usa una consulta
Aceptar), y habremos acabado. textos, es buena idea añadirle un filtro de SQL para conseguir todas los registros
manera que el usuario no pueda seleccio- (marcas) de la tabla de ficheros. Luego la
Macro BookmarkDocument nar ficheros en otros formatos, que es exac- macro llama al diálogo BookmarkDialog y
Lo siguiente es la macro BookmarkDocu- tamente lo que hace el bloque de código puebla el cuadro desplegable con los nom-
ment. OpenOffice.org Basic viene con el With ... End With. bres de los ficheros.
Cuando el usuario selecciona un fichero
Listado 2: Macro OpenBookmarks de la lista y pulsa el botón Abrir, la macro
01 Sub OpenBookmarks()
utiliza el nombre del fichero como una
parte de su consulta siguiente para encon-
02 DBContext=createUnoService(“com.sun.star.sdb.DatabaseContext”)
trar la grabación apropiada:
03 DataSource=DBContext.getByName(“BookmarkDB”)
04 ConnectToDatabase=DataSource.GetConnection (“”,””) SQLQuery=”SELECT “”FilePath”” U
FROM “”files”” WHERE U
05 SQLResult=createUnoService(“com.sun.star.sdb.RowSet”)
“”FileName””=” U
06 SQLQuery=”SELECT “”FileName”” FROM “”files”””
& “‘“ & CurrentItemName &”’”
07 SQLResult.activeConnection = Database
08 SQLResult.Command = SQLQuery Finalmente, la macro pasa la ruta del
fichero obtenido a la instrucción Shell, que
09 SQLResult.execute
abre con OpenOffice.org Writer.
10 exitOK=com.sun.star.ui.dialogs.ExecutableDialogResults.OK
11 OpenDialog(“BookmarkDialog”) Una Última Palabra
12 Dialog=CreateUnoDialog(TheDialog) Una ventaja importante de este administra-
dor de marcas hecho en casa es que pode-
13 DialogField=Dialog.GetControl(“ListBox1”)
mos ajustarlo de cualquier manera que
14 While SQLResult.next
deseemos. Por ejemplo, podemos añadir
15 ListBoxItem = SQLResult.getString(1) un cuadro de diálogo de entrada a la macro
16 DialogField.additem(ListBoxItem, DialogField.ItemCount) BookmarkDocument que nos solicite que
introduzcamos etiquetas para el docu-
17 Wend
mento seleccionado. Luego podemos
18 If Dialog.Execute=exitOK Then
modificar la macro OpenDocument para
19 CurrentItemName=DialogField.SelectedItem que presente solamente marcas que coinci-
20 End If dan con una etiqueta específica.
Con unas cuantas personalizaciones
21 SQLQuery=”SELECT “”FilePath”” FROM “”files”” WHERE “”FileName””=” &
simples, el administrador de marcas puede
“‘“ & CurrentItemName &”’”
usarse para iniciar aplicaciones. En otras
22 SQLResult=Database.createStatement() palabras, con el administrador de marcas
23 QueryResult=SQLResult.executeQuery(SQLQuery) básico en su lugar, no existen virtualmente
24 QueryResult.next límites a lo que podemos hacer con él. ■
25 FileToOpen=QueryResult.getString(1)
RECURSOS
26 Shell(“swriter”,1, FileToOpen)
[1] Extensión Bookmarks Menu de
27 Database.close
OpenOffice.org: extensions.services.
28 Database.dispose() openoffice.org/project/
29 End Sub bookmarksmenu
TORMENTAS
MENTALES 50% juguete de montaje, 50% kit de robótica, 100% juguete
L
o malo de Lo más irónico de todo el asunto es que el $ wget http:U
muchos de los sistema operativo del Mindstorms es soft- //downloads.sourceforge.netU
juegos educati- ware libre. No sólo eso, sino que Lego pro- /bricxcc/nbc-1.0.1.b35.tgz
vos, es que la mayoría porciona kits de desarrollo tanto para soft- $ tar zxvf nbc-1.0.1.b35.tgz
están diseñados por ware como el hardware NXT, todo disponi- $ cp nxt/nbc /home/U
profesionales del sec- ble en [1]. directorio-personal/bin/
tor que tienen una Así que, trabajar con Mindstorms bajo
deformación profe- Linux no es tan sencillo como insertar el CD … donde /home/nuestro-directorio-personal/
sional que les impide y esperar que aparezcan los programas con bin/ se encontraba en nuestro PATH. El pro-
pensar fuera del aula. sus colorines. Más bien todo lo contrario: es ceso anterior fue muy similar para t2n.
Así, muchas propuestas una experiencia mucho más hardcore que
de ideas, juegos y soft- requiere de editores de texto, compiladores Cómo se Hace
ware que vemos en la y la línea de comandos… todo lo cual lo Los pasos necesarios para crear un pro-
redacción, no tienen hace mucho más divertido e instructivo. grama y ejecutarlo en el robot son los
una aplicación práctica La lista de la compra de los programas siguientes: escribir el programa en nuestro
para el mundo real, son necesarios comprende: editor, compilarlo con nbc, transferirlo al
trillados y, lo peor de • un editor de textos, nosotros escogimos ladrillo NXT con t2n y ejecutarlo seleccio-
todo, son aburri- kate, aunque vi, emacs, gedit… cualquiera nándolo de los ficheros ejecutables disponi-
dos… Ninguna vale; bles.
de estas cosas • el compilador nbc (NXT Byte Compiler) Como muestra, un botón: el Listado 1,
se pueden decir [1], que compila código de alto nivel a versión ligeramente modificada de un ejem-
del Lego Mind- algo que entiende el “ladrillo” NXT. plo extraído del excelente tutorial de Daniele
storms. • el programa de transferencia t2n (Transfer Benedettelli [4], hace que el robot circule
to NXT) [2]. El sistema de archivos del dibujando un cuadrado. Una vez escrito, lo
Soporte Linux ladrillo NXT no es algo muy común y no guardamos como cuadrado.nxc (incluir la
No conseguimos hacer fun- puede simplemente montarse como se extensión .nxc es importante) y, desde una
cionar el software que venía con el haría con un pendrive o similar. De todas línea de comandos, escribimos:
kit bajo Linux de ninguna manera. Ya está- las soluciones existentes que probamos,
bamos preparados para utilizar el CD como ésta es la que mejor funciona y la más
posavasos desde el principio, pero, que ni sencilla.
siquiera funcionara la instalación fue una Por tanto, de los tres programas, uno ya
sorpresa particularmente desagradable. debería estar instalado en nuestros sistema, y
Pero no es tan grave, ya que, según algunos de los otros dos, ninguno necesita de compli-
sitios de aficionados, el sistema de progra- cadas instalaciones ni configuraciones. Se
mación visual y con ladrillos pronto se bajan de sus respectivos sitios web, se des-
vuelve impracticable y confuso a medida comprimen, se les cambian los permisos
que crece la complejidad de los programas. para que sean ejecutables (de ser necesario),
Aún así, cero puntos para Lego en ésta área se copian a algún directorio para aplicacio-
para un juguete que, por lo demás, es exce- nes, y listo. Por ejemplo, para tener el compi- Figura 1: Nuestro robot NXT-Logo con el
lente. lador nbc globalmente disponible hicimos… rotulador subido.
LANZADERA
CENTRAL
Redrex, Fotolia
Información en la punta de tus dedos… que coincide con las acciones. Rhythmbox (ver Figura 2) , Amarok, o en
las bases de datos de Banshee, y contactos
Eso es lo que ofrece Gnome Do, mitad motor de búsqueda, mitad lan- en Evolution, Gmail, o el mensajero instan-
táneo Pidgin. Si se desea, podemos decirle
zador de aplicaciones, todo super-herramienta. a Gnome Do que configure una sesión de
chat con el contacto que escojamos en Pid-
POR CHRISTOPH LANGNER
gin. La herramienta también soporta ope-
raciones con ficheros y mucho más. Varios
D
ocumentos, aplicaciones, mensajes escribimos text se iniciará nuestro editor de plugins ofrecen a los usuarios un práctico
y marcas tienden a dispersarse por texto. Gnome Do basa sus sugerencias de método para extender las funcionalidades.
todo el sistema. Gnome Do [1] auto-completado en las entradas del menú
brinda a los usuarios un nuevo lanzador de inicio. Instalación
para Gnome y otros escritorios que no sólo Pero Gnome Do puede hacer más que Gnome Do es fácil de instalar. Los autores
encuentra información, sino que también arrancar programas: encontrará música en ofrecen paquetes binarios para distribucio-
desencadena acciones en base a los resul- nes populares (desde Arch a Ubuntu) junto
tados.
El flexible lanzador de aplicaciones
Gnome Do [1] es similar a la herramienta
de arranque Quicksilver [2] para Mac OS X.
Los usuarios pulsan un atajo de teclado
para desplegar una ventana en la que intro-
ducen el nombre del programa que necesi-
tan.
Como Gnome Do autocompleta la Figura 1: Gnome Do auto-completa la
entrada, con introducir una parte del nom- entrada. (Instantánea cortesía de David Figura 2: Gnome Do incluso encuentra nues-
bre es suficiente (Figura 1). Por ejemplo, si Siegel). tra música.
WORMUX
En un mundo distinto con un sinfín de paisajes se libra una
Metidos en Faena
A
unque es probable que la mayoría La diferencia más evidente está en los
de nuestros lectores lo sepan, propios personajes. Wormux nos permite En cada turno tenemos la opción de elegir
Wormux[1] es un clon de la saga elegir entre varias mascotas de proyectos uno y solo uno de los miembros de nues-
de juegos Worms, una exitosa serie de jue- de software libre que nos representarán tro equipo, moverlo por el escenario y/o
gos cuya jugabilidad venía determinada durante la partida. Además cada uno de disparar el arma usada. Pulsando el botón
por una mezcla entre el clásico Lemmings los miembros del equipo, aunque visual- derecho del ratón desplegaremos en pan-
y el legendario Scorched. mente iguales, estarán identificados con talla el menú con todas las armas disponi-
Sin embargo, a pesar de la edad que ya un nombre de alguna aplicación, subpro- bles. Cada arma puede tener un número
tiene este proyecto, Wormux ha conseguido yecto o término muy relacionado con máximo de usos y, aunque somos libres
el ideal de todo clon: superar al original. No nuestra elección. de usarlas cuando queramos, deberíamos
es que estemos ante un título perfecto, ni Así por ejemplo, si elegimos al equipo hacerlo con un mínimo de estrategia si
mucho menos, pero cumple con creces en Firefox, algunos de los posibles nombres queremos ganar de vez en cuando.
lo fundamental, la diversión, al tiempo que de sus miembros serán Mozilla Browser, El catálogo de armas va desde un sim-
muestra unos acabados que nos hacen sen- FireBird, FireMonger, Phoenix, etc. ple bate de baseball hasta un ataque aéreo
tirnos ante un juego comercial. La comunidad de jugadores se ha con- independiente, pasando por bazucas,
vertido en parte fundamental del juego y, escopetas, rifles, etc. También existen una
Una Idea Simple aparte de la evi-
La idea detrás de este título consiste en dente orientación
que nuestro equipo elimine a todos los del mismo al modo
enemigos en un escenario completamente online que luego
destruible. Para darle un toque más estra- veremos, práctica-
tégico, el juego se desarrolla por turnos, mente todo el juego
permitiéndonos un tiempo prudencial se puede personali-
para pensar la siguiente acción. Además, zar, pudiéndose
casi todos los disparos y explosiones irán compartir estos
perforando y deformando el escenario, cambios con nues-
creando grutas y escondrijos con alto tros conocidos. E
valor estratégico. incluso, si los cam-
bios lo merecen,
Marcando Diferencias nuestra personali-
Hasta aquí podríamos estar describiendo zación puede llegar
Worms, sin embargo Wormux ha sabido a convertirse en
perfilarse lo suficiente como para tener parte oficial del
entidad propia. juego. Figura 1: Así ha quedado nuestro nivel.
Figura 2: Nuestro nivel… tras sufrir una partida. Figura 3: Hay mapas de todo tipo. Y algunos muy buenos.
serie de “herramientas”, que si bien no Antes de empezar hay que saber que un favorito, Gimp, hemos creado un docu-
pueden hacer daño, sí que nos pueden nivel está compuesto por un fondo (usado mento nuevo de 1000x1000 píxels con el
servir para salir de una situación difícil únicamente como decoración) y el propio logotipo de nuestra revista, y nos hemos
(como el teletransportador) o para prepa- mapa (sobre el que se desarrolla la asegurado de que el fondo sea transpa-
rar una trampa (como el constructor ). acción). Opcionalmente puede haber tam- rente. Después lo hemos grabado con el
bién una serie de partículas entre el fondo nombre map.png y formato PNG.
Con Amigos Mejor y el mapa. A continuación creamos un nuevo
Sin duda, Wormux está pensado para Para nuestro mapa hemos decidido documento del mismo tamaño, y hemos
jugar con otras personas. Incluso en el crear una isla con el logotipo de Linux pintado un fondo a mano, aunque muy
menú principal, las dos opciones de Magazine. Desde nuestro editor gráfico simple, sin pretensiones. Esta imagen la
juego más importantes nos permiten
jugar en nuestra máquina con otro juga- Listado 1: config.xml
dor, o bien en internet, creando una par-
01 <?xml version=”1.0” file=”windparticle.png”>
tida o uniéndonos a una previamente cre-
encoding=”UTF-8”?> 19 <grid pos=”0,0”
ada.
Entonces, ¿no se puede jugar contra la 02 <!DOCTYPE resources SYSTEM size=”128,128” array=”1,1”/>
máquina? Sí, podemos jugar contra la “../map.dtd” []> 20 </image>
máquina… más o menos. Y es que por 03 <resources> 21 </sprite>
mucho que busquemos en el menú, no 04 <author> 22 <wind>
veremos ninguna opción para combatir
05 <name>LinuxMagazine</name> 23
contra la IA. Los desarrolladores, quizás
06 <nickname>LM</nickname> <nbr_sprite>10</nbr_sprite>
ligeramente avergonzados, lo han dejado
como una opción oculta. 07 <email></email> 24 <need_flip>0</need_flip>
Para poder jugar contra la IA tenemos 08 <country>Spain</country> 25 <mass>3.0</mass>
que editar el nombre de alguno de los 09 </author> 26
equipos de una partida normal y escribir <wind_factor>8.5</wind_factor>
10 <surface name=”sky”
AI-stupid. Cuando la comencemos, una
file=”sky.jpg” /> 27
muy modesta IA nos intentará poner las
11 <surface name=”map” <air_resist_factor>0.2</air_re
cosas difíciles.
file=”map.png” /> sist_factor>
Pero no nos engañemos, el gancho real
del juego es jugar online, con amigos. 12 <surface name=”preview” 28
Además, en este modo podemos comuni- file=”preview.jpg” /> <gravity_factor>0.2</gravity_f
carnos escribiendo mensajes (tras pulsar actor>
13 <name>LM</name>
la tecla t) si no disponemos de una apli- 29
14 <water>1</water>
cación de chat de audio externa. <rebounding>true</rebounding>
15 <nb_mine>7</nb_mine>
30
Creando un Nivel 16 <is_open>1</is_open> <rebound_factor>3.3</rebound_f
Para demostrar las opciones de personali- 17 <sprite actor>
zación de este título vamos a crear un name=”wind_particle”> 31 </wind>
nivel muy simple (que estará disponible
18 <image 32 </resources>
desde nuestra página web [3]).
EL
KONSULTORIO
DE KLAUS
¿Es posible ejecutar Linux simultánea- namiento de una de las distribuciones que
mente en estos sistemas, ya sean normal o haya probado.
RAID? En caso afirmativo, supongo que ten- De igual manera, puede instalar Linux en
dré la opción de elegir en qué sistema ope- paralelo con Windows en el mismo ordena-
rativo arranco, ¿o tengo que instalar otro dor, aunque es algo arriesgado si nunca ha
disco duro? (Lo cual no es mucho problema reparticionado un disco duro anteriormente.
si es la solución recomendada). ¿Funcionan A continuación debería redimensionar las
los programas de Windows en Linux? Hago particiones Windows para hacer espacio sufi-
mucha edición de vídeo. ciente a la instalación GNU/Linux, comenzar
Klaus Knopper es el creador de
¿Cuáles son las alternativas para progra- la instalación desde el DVD, y seleccionar
Knoppix y co-fundador de la mas como Word/Powerpoint/Excel? ¿O fun- “mantener sistema operativo instalado”, lo
cionan en el entorno Linux? También me que también se denomina “arranque dual”.
LinuxTag Expo. En la actuali- gusta experimentar con el overclocking: ¿fun- Una vez que inicie su ordenador, se le mos-
cionan Pi, Memtest, Prime, etc. bajo Linux? trará un menú de arranque desde el que
dad trabaja como profesor, Mi objetivo es migrar completamente puede seleccionar el sistema operativo con el
desde Windows, pero me gustaría hacerlo que quiere trabajar en esa sesión.
programador y consultor. Si con cuidado y aprendiendo en el proceso. Aunque es posible ejecutar aplicaciones
Debido a que aún no está familiari- Windows (incluso juegos [1]) bajo Linux
tiene algún problema de zado con los sistemas Linux, podría usando Wine o sus derivados, las aplicacio-
empezar ejecutando una distribución Linux nes nativas de Linux pueden hacer práctica-
configuración, o simplemente
dentro de su sistema operativo actual con mente las mismas cosas.
quiere conocer mejor cómo un sistema de virtualización, como QEMU o Para la edición de vídeo recomiendo Kino
VM-ware, los cuales no hacen cambios en [2], que graba desde una cámara DV, per-
funciona Linux, no dude en su sistema más que añadir algunos archivos mite cortar y preparar escenas, y tiene una
para dos discos duros virtuales que conten- sección con magníficos efectos de vídeo y
escribir sus preguntas a: drán la instalación. etiquetado. Al trabajar sobre el disco, no
Por otro lado, sería más efectivo dedicar requiere mucha memoria, y puede crear for-
preguntas@linux-magazine.es uno de sus ordenadores a experimentar, eje- matos de salida para SVCD o DVD. Igual-
cutando primero algunas distros Live GNU/ mente, Cinelarra [3] es una completa solu-
Linux desde un CD o DVD, y hacer más ción para la edición de vídeo.
¿Migrar? tarde una instalación en disco duro una vez OpenOffice es la suite ofimática estándar
Actualmente no sé casi nada comience a sentirse cómodo con el funcio- que incluye procesador de textos, hoja de
acerca de Linux, salvo lo poco que
he leído. Estoy interesado en instalar
Ubuntu Linux como mi sistema operativo
principal.
Tengo diferentes equipos (portátiles,
equipos de escritorio,…) y todos ellos ejecu-
tan Windows XP en sus diferentes versiones
(por ejemplo, de 32 y 64 bits, instalación
Timo Keilhau, Fotolia
88 Número 45 WWW.LINUX-MAGAZINE.ES
Konsultorio ·• COMUNIDAD
Konsultorio COMUNIDAD
cálculo y aplicaciones de dibujo y presenta- rir archivos de vídeo. Los equipos son los
ciones, disponible para muchas plataformas siguientes:
y que está incluida en todas las distribucio- • Windows XP, P4 3.0, 2GB RAM, disco
nes que conozco. Además, el programa duro 500GB SATA, ethernet gigabit en
puede leer formatos viejos o propietarios de placa (cinco años de antigüedad). Trans-
otros programas. ferencia ftp a Linux es de más de 600
RAID, en sus diferentes niveles, también MB/s.
está soportado por Linux, tanto vía software • SUSE 10.3, C2Duo 2.66, 2GB
como mediante hardware. RAM, dos discos 500GB
Tenga cuidado, porque algunos controla- SATA en Raid 0, ethernet
dores que se venden como “RAID” son sólo gigabit dual en placa (sin
“Softraid” (es decir, necesitan drivers espe- configurar aún). Transfe-
Chris3d, Fotolia
ciales que en última instancia no hacen más rencia ftp a XP es 20 MB/s.
que lo que haría un RAID basado en soft- Al copiar cualquier cosa desde
ware). este equipo Linux a, por ejemplo,
Windows usa diferentes sistemas de una unidad USB (o incluso simplemente
archivo. Linux puede leer y escribir en duplicar un archivo) obtengo una velocidad
FAT32 y NTFS sin problemas, mientras que máxima de transferencia en torno a 20-28
Windows no puede acceder a los sistemas MB/s. Ambos ordenadores están conecta- conectividad, basta con volver a habilitar la
de archivo de Linux de manera directa. Sin dos a un switch gigabit, y obtengo estas lec- autonegociación.
embargo, existen algunos drivers para Win- turas desde el cuadro de transferencia de Para medir la velocidad de transferencia
dows que nos permiten copiar información KDE. de datos podemos usar la herramienta
desde ext2 o ReiserFS. No puedo explicar esta enorme diferencia “bing”:
Memtest, lm_sensors (para monitorizar la en la tasa de transferencia. Apreciaría cual-
temperatura de la placa y la CPU), cpuburn, quier ayuda que me pueda proporcionar. sudo bing U
stress, super pi y otras suites de pruebas Es complicado determinar qué local_machine_ip_address U
están disponibles para Linux. causa esa diferencia, debido a los remote_machine_ip_address
Asimismo, existen diferentes foros de dis- muchos componentes implicados: tarjetas
cusión acerca de Linux y el overclocking. de red y sus drivers, servidores ftp (¿en Esto envía información y mide la respuesta
Personalmente no me gusta demasiado, ya ambos lados?), programa cliente ftp, escri- hasta que presionemos Ctrl+C, y muestra a
que esto acorta el tiempo de vida del hard- torios con caché en disco… continuación las estadísticas acerca de la
ware. (Véase el mensaje de advertencia en Para realizar un benchmark más fiable, tasa de transferencia. Las cifras mostradas
la página Web de cpuburn [4]). recomendaría algunas herramientas en son la velocidad máxima que podemos con-
línea de comandos de Linux para descartar seguir con esta configuración de la tarjeta,
Disparidad ftp algún problema de configuración del escri- sin el overhead del protocolo de aplicación.
Estoy perplejo con un problema torio. Para medir la velocidad en ftp podemos
con el que me encuentro al transfe- En primer lugar hay que verificar la usar wget, que es también la herramienta
configuración de la tarjeta de red con más rápida para transferir datos vía http y
Listado 1: Configuración de ftp, y que también soporta transferencias
Tarjeta de Red sudo ethtool eth0 parciales de datos.
01 Settings for eth0: El comando:
02 Supported ports: [ TP MII ] que debería reportar algo como lo mostrado
03 Supported link modes: en el Listado 1. wget -c ftp://U
10baseT/Half 10baseT/Full En este Listado 1 se pueden apreciar los remote_machine_ip_addressU
04 100baseT/Half 100baseT/Full modos de transferencia de datos que están /filename
05 Supports auto-negotiation: soportados y que la tarjeta funciona en este
Yes caso a 10 MB/seg, a pesar de que es capaz descarga el archivo remoto al directorio
06 Advertised link modes: de hacerlo a 100 MB/seg. Esto puede local y muestra la velocidad de transferencia
10baseT/Half 10baseT/Full deberse a la autonegociación: el switch mientras la descarga está en proceso.
07 100baseT/Half 100baseT/Full puede determinar la velocidad que consi- Cuando vaya a copiar a disco (ha seña-
08 Advertised auto-negotiation: dere más fiable. Podemos deshabilitar la lado que, en general, la escritura en disco
Yes autonegociación y fijar la velocidad a 100 parece que va lenta en su sistema Linux),
09 Speed: 10Mb/s MB/seg con: por favor tenga en cuenta que Linux y Win-
10 Duplex: Half dows usan la caché de disco de maneras
11 Port: MII sudo ethtool -s diferentes.
12 PHYAD: 32 eth0 autoneg off speed 100 Al copiar pequeños archivos “parece”
13 Transceiver: internal que la información se escribe inmediata-
14 Auto-negotiation: on En su configuración, podría intentar la mente, cuando de hecho el archivo se
configuración speed 1000. En caso de perder cachea en memoria en primer lugar y se
WWW.LINUX-MAGAZINE.ES Número 45 89
COMUNIDAD · Konsultorio
escribe sólo si la caché de memoria es / dev/ hda: Timing cachedU Ahora tenemos dos distribuciones funcio-
lenta, el dispositivo no está montado reads: 572 MB in 2.00 secondsU nales, y podemos experimentar con nue-
(Linux) o “extraído con seguridad” (Win- = 285.80 MB/ sec TimingU vas versiones de una de ellas mientras
dows), o un programa fuerza un sync buffered disk reads: 138 MBU mantenemos la otra como una copia de
(escribir la información de caché a disco). in 3.04 seconds = 45.40 MB/ sec seguridad. Los dispositivos RAID 1 se
Al copiar información mayor que la RAM mantienen intactos en estos procedimien-
de su ordenador, debería comenzar com- Cuarenta y cinco MB/seg es un buen resul- tos. 9. Periódicamente, repetir los pasos 7 y
probando el rendimiento del disco en tado para un disco IDE con la DMA habili- 8 para realizar copias de seguridad.
bruto, posiblemente verá picos debido a tada, pero para un disco conectado vía USB Al fin y al cabo, RAID 1 es una buena
que la información se cachea primero en 2.0 a mi portátil, sólo consigo unos 12 MB/ solución para hacer mirroring de informa-
RAM y luego se escribe en disco de seg. ción, pero no tanto para programas del sis-
manera asíncrona. Escribir a un disco USB flash es muy tema.
A pesar de que 20-28 MB/seg puede pare- lento. De nuevo, sólo “parece” rápido al Aunque la configuración que propone
cer un resultado normal de transferencia a escribir pequeños archivos, antes de indicar para /boot y / tienen todo el sentido
disco con USB 2.0, es demasiado lento para al sistema operativo que desconecte el dis- cuando actualizamos frecuentemente el
un disco IDE o SATA moderno. Si la escri- positivo y por tanto envíe toda la informa- kernel (habiendo instalado varias distri-
tura en disco de su sistema principal es ción al chip. buciones en paralelo en los mismos dis-
lenta, debería verificar si la DMA está habili- Debido a que la transferencia por red cos y teniendo una copia de los archivos
tada con entre dos ordenadores generalmente de configuración raid disponibles en par-
parece muy rápida, cabe la posibilidad de ticiones separadas que no requieren un
sudo hdparm /dev/hda que el lado receptor simplemente sea lento kernel con raid habilitado o distro para
a la hora de confirmar tratos recibidos, o montar), tengo que disentir de su afirma-
lo cual debería mostrar unos resultados por alguna razón, que esté intentando ción acerca de que RAID 1 no es útil para
como los siguientes: resolver el nombre del host en direcciones hacer mirroring de programas y datos del
IP locales que no están presentes en el sistema.
/dev/hda: archivo host local (/etc/hosts). ¿Ha inten- El código de Linux MD incrementa balan-
multcount = 16 (on) tado subir archivos en ambas direcciones, ceado en lectura, de manera que cuando
IO_support = 1 (32-bit) o funciona el servidor ftp en una sola de tenemos dos discos separados en ranuras de
unmaskirq = 1 (on) las máquinas? controladoras diferentes, la tasa de transfe-
using_dma = 1 (on) rencia al leer archivos (especialmente con
keepsettings = 0 (off) Disco RAID sistemas con mucha carga y mucha activi-
readonly = 0 (off) Quisiera hacerle un comentario dad de disco) también será mayor, ya que la
readahead = 256 (on) acerca de su respuesta sobre RAID lectura de archivos puede paralelizarse en
geometry = 19457/255/63, U en Linux del número 43. los diferentes discos.
sectors = 312581808, start = 0 En un sistema de rápido desarrollo como Cuando el proceso de lectura aguarda en
Linux, no es aconsejable instalar RAID 1 la escritura en un disco hasta completar la
El using_dma = 1 es relevante, ya que para la partición /. Cada vez que cambia- transferencia física de información, puede
indica que el disco puede transferir informa- mos nuestra distribución o actualizamos el transmitir información al segundo disco.
ción a una aplicación sin mucha interacción sistema, nos enfrentamos al peligro de Esto no dobla exactamente la tasa de trans-
desde la CPU, lo que puede significar una reformatear la partición /. ¡Y esto significa ferencia, pero hace que los programas car-
mejora de la velocidad en un factor de 5 o que podemos perder información RAID 1 guen sensiblemente más rápido.
incluso más. Algunos controladores IDE en las listas de dispositivo! La escritura en disco, por otro lado, es
(defectuosos) en placas generalmente anti- En lugar de esto, recomiendo hacer más lenta con RAID 1 por diversos moti-
guas no soportan DMA, pero para el resto lo lo siguiente: 1. Tener dos dispositi- vos. También, en teoría, con la metainfor-
podemos habilitar con: vos /boot de 1 MB en dos discos diferentes. mación RAID/EVM actual, el kernel debe-
2. Reservar equitativamente dos dispositi- ría ser capaz de ensamblar un array a par-
sudo hdparm -d1 /dev/hda vos / de 12 MB. 3. Usar el resto de espacio tir de la información guardada dentro de
en disco para RAID 1 (o EVM). 4. Hacer la particiones RAID por cuenta propia, aun-
si su ordenador se bloquea tras este instalación en una partición /boot y /. 5. que es más sencillo guardar una copia de
comando, u ocurren otras cosas extrañas, Crear nuestros dispositivos RAID 1 con un raidtab o mdadm.conf en una partición no
probablemente se trate de un controlador punto de montaje al dispositivo /. 6. Arran- RAID. ■
que no soporta DMA y probablemente car el equipo con un disco Knoppix y mon-
necesite apretar el botón de reset. Una tar todos nuestros dispositivos /boot y / en RECURSOS
rápida prueba de rendimiento del disco en este sistema. 7. Hacer una copia de seguri-
[1] Wine HQ: http://www.winehq.org/
sólo lectura puede realizarse con dad de los dispositivos /boot y /. Podemos
usar simplemente sudo cp -a directorio_ori- [2] Kino: http://www.kinodv.org/
sudo hdparm -tT /dev/hda gen directorio_destino para este propósito. [3] Cinelerra: http://cinelerra.org/
8. Editar los archivos /boot/grub/menu.lst y [4] Cpuburn:http://pages.sbcglobal.net/
lo que muestra algo como: /etc/fstab para albergar los dispositivos. redelm/
90 Número 45 WWW.LINUX-MAGAZINE.ES
Linux Legal • COMUNIDAD
Jose María Lancho, abogado, contesta a las dudas legales de los lectores.
LINUX LEGAL
■ C uando una organización con una forma sea utilizado. Por ejemplo, si software de fuente abierta es un
patente (tradicional, no explícita- el “programa de software libre” es “territorio sin patentes”
mente de software) pretende publi- esencial para llevar a cabo la fun- Es difícil que lo que exprese una
car bajo la GPL, ¿qué tipo de diligen- ción reivindicada por la patente, licencia pueda cambiar el alcance
cia debida deberá utilizar con el fin estoy convencido que sería violar la jurídico de “obra derivada” desde
de garantizar que las patentes no licencia Affero . luego respecto a lo que prevé la ley
queden involuntariamente sin Cuando se usa el término de de propiedad intelectual. Pero eso
efecto? patente “tradicional” en este ámbito, tampoco lo pretende la GPL – con
Desde la Affero GPL, en cuanto a la parece que se nos quiere hacer olvi- esto entramos en la segunda parte
prestación de servicios del tipo dar que en la electrónica, este tipo de la pregunta – así, si “un programa
redistribución, ¿significa esto que el de invenciones pueden ser vindica- cliente puede ser el trabajo derivado
alcance de una obra derivada ya no das desde diferentes perspectivas y de un programa servidor y vice-
se limita a la memoria de un solo tipos, que incluyen aparatos, el versa”, entiendo que eso depende
ordenador, sino que ahora se extien- método, las reivindicaciones deno- menos de esa circunstancia concreta
den a la relación entre un cliente y minadas “means plus function” (servidor/cliente) o si la obra se
un servidor? La preocupación está (medios más función), y todos pue- encuentra o reside en memorias u
en que opera un software libre y den corresponder a determinados ordenadores distintos como que las
otro propietario. aspectos y componentes de un sis- obras sean expresiones derivadas en
tema de software. el sentido de los derechos de autor.
■ Afortunadamente, la normativa de No fue hasta la versión 3 de la GPL La licencia GPL Affero no traduce
patentes no es aún una ciencia exacta, que no se introdujeron obligaciones interoperabilidad con obra derivada.
especialmente para quienes aún creen explícitas a quienes accedían a En cualquier caso, la pregunta es
en el sistema de patentes en este código bajo GPL y detentaban paten- altamente intuitiva y prevee futuros
ámbito. Por eso advierto que más de tes. Así, la nueva versión de la GPL conflictos entre creaciones comple-
una conclusión razonable se puede obliga a que si usted tiene patentes jas propietarias sobre estructuras en
llegar a sacar ante una pregunta seme- que sean necesarias para el uso del línea de varios ordenadores y que
jante. Para mí, Patentes + Software = software, usted otorga, sin costo incluyan software bajo Affero. Creo
Total Inseguridad Jurídica. alguno, una licencia sobre estas que con el texto de esa licencia cabe
Determinar si una patente “tradi- patentes, incluido para cualquier concebir, aunque no es sencillo,
cional” se vería afectada en su vali- obra derivada. Los límites de esta estructuras complejas propietarias
dez o inoponibilidad en “un con- condición no han sido verificados que utilicen, entre otros, programas
texto Affero GPL” resulta cierta- ante un Juzgado todavía, pero está bajo GPL Affero. ■
mente complicado, y estoy seguro de claro que un titular de patentes que
que no hay una verdadera presun- usa GPL v3 no puede ignorar dónde EL AUTOR
ción con validez jurídica a este res- se mete y qué tipo de expectativas
Jose María
pecto. Es cierto, la compatibilidad legales está generando. Cuando
Lancho es abo-
del software de código abierto con alguien usa GPL, en lo último que gado, fundador
las patentes es una cuestión incó- piensa es en una infracción directa de la aso-
moda pero perpetuamente latente y de una patente relativa a alguien que ciación Legal
real. El sistema de protección legal se encuentra en la cadena de trans- Venture (http://
por medio de patentes coexiste con misión del código. www.
el copyright, y no sólo en Estados En el caso de la pregunta, usted legalventure.
Unidos y Japón, sino también en puede estar seguro de que si intenta com/), co-fun-
Europa, donde cabe el modelo de recuperar los daños causados por un dador del Observatorio de Neutralidad
patentamiento que expresa en su infractor de su patente, éste, al Tecnológica (http://neutralidad.es/) y
secretario en la directiva de Hispali-
pregunta, es una coexistencia menos, le alegará un stoppel, y por-
nux. Puedes hacerle llegar tus pregun-
impuesta por la legalidad. Un deter- que está utilizando un código de
tas a José Maria enviando un correo a
minado software puede violar o no fuente abierta, sí hay cuando menos jmcamelot@gmail.com
una patente dependiendo en qué una presunción ideológica de que el
WWW.LINUX-MAGAZINE.ES Número 45 91
COMUNIDAD · Blogs: La Perrera
ENSEÑAME
EL CÓDIGO
La apertura del software libre estimula la innovación a través de genera-
P
robablemente siempre he sido tante factor en la mejora de sus conoci-
sutilmente consciente de las mientos informáticos. Con el software
habilidades de algunos programa- libre pocas personas te preguntarán tu
dores de software libre, por lo que no edad, tu sexo o tus preferencias sexuales,
debería sorprenderme de lo que son tu religión o cualquier otra cosa que no
capaces de hacer. Pero he de admitir que sea ¿Donde está el código? Los nuevos al programador. Como alguien que ha
continúan sorprendiéndome. programadores pueden llegar tan rápido trabajado tanto en el software cerrado
Por ejemplo, Nick vive a unas cuantas y tan lejos como ellos quieran mediante como en el software libre, agradezco
millas de mi casa y comenzó a progra- la lectura del código de otras personas, enormemente el hecho de que si quiero
mar a la edad de 9 años, hackeando el tanto el bueno como el malo, y aprender conocer a quien escribió un programa
núcleo de Linux a los 12 y escribiendo de él. particularmente bueno, y cómo se des-
controladores de dispositivos a los 15. A mediados de los 70 había un profe- envuelve esa persona en un entorno de
Fue administrador de sistemas junior de sor de una pequeña universidad que desarrollo, puedo buscar y seguir la lista
una pequeña universidad a los 19 y creía que el mejor método para enseñar de correo del proyecto. Esta estrategia
ayudó a que el FBI de los Estados Unidos a los programadores a escribir buen me permite localizar a un montón de
capturara a algunos crackers creando un código era mostrándoles el código de programadores realmente buenos que
“honeypot” cuando tenía 21. Después programadores realmente buenos. John están alcanzando la cumbre de su profe-
pasó a investigar, aunque oficialmente Lions llegó a comentar y anotar el listado sión.
nunca se graduó en la secundaría. completo de la Sexta Edición de Unix Este pensamiento me lleva a mi último
O aquel que a los 14 años comenzó su antes de que AT&T cambiara la licencia descubrimiento y a la inspiración de este
propia distribución y lanzó 20.000 copias con la Séptima Edición de Unix, que pro- artículo. Recientemente he sabido de un
antes de que sus padres averiguaran qué hibía el uso del código fuente con fines estudiante que está participando en lo
estaba haciendo. Cuando le preguntaron educativos. Afortunadamente para la que yo considero que es un trabajo de
por qué, no se lo contó, simplemente ciencia de la computación, unas cuantas graduado. Se expresa adecuadamente,
respondió: “Bueno, realmente no necesi- copias se “escaparon”, y esos dos volú- parece que tiene un amplio rango de
taba vuestra ayuda”. menes se convirtieron en los libros de intereses y vive en Rumania. La apertura
Un amigo de la familia al que no le iba ciencias de la computación más fotoco- del software libre me ha permitido
muy bien en secundaria, armado con piados de todos los tiempos. encontrarlo, y espero trabajar con él en
una copia de Running Linux y una de los Los programadores demostraban el el futuro tal como he trabajado, y conti-
primeros CDs de Linux, instaló Linux en tiempo que habían pasado en el campo núo haciéndolo, con los prodigiosos pro-
su sistema, configuró la red wifi de su de la computación en función de si eran gramadores que he mencionado antes.
casa (incluido el acceso Samba para los propietarios de la quinta generación de Sigo atento al próximo “Albert Einstein
sistemas de sus padres) y aprendió él la fotocopia del libro de Lion o tan sólo de la ciencia de la computación”, y no
solo a programar en C. También creó el de la décima generación. soy tan chovinista como para creer que
primer club de ordenadores en su insti- Con el software propietario puedes ver ese genio tendría que llegar de los Esta-
tuto, salió de su concha, participó en el lo que un programa hace, pero no cómo dos Unidos, o si no educado aquí. Con
equipo de fútbol del instituto, más tarde lo hace. Debes confiar en que el progra- tantos problemas que resolver y sin sufi-
aprendió seguridad de ordenadores por mador haga las cosas bien cuando elige ciente gente para resolverlos, el próximo
sí mismo y ahora está haciendo un post- los algoritmos para el programa. Sin “Albert”, o “Alberta”, puede ser de Bra-
grado como estudiante. embargo, al enseñar cómo funciona el sil, China, Rumania o incluso de Helsinki
software , directamente creas un curso en Finlandia.
La Fuente de aprendizaje. Lo que sí sé es que la apertura del soft-
Todos estos hackers acreditan acceso Y en el software libre no sólo te mues- ware libre nos ayudará a encontrar la
visual al código fuente como un impor- tran el código, también puedes conocer próxima generación de expertos. ■
92 Número 45 WWW.LINUX-MAGAZINE.ES
PRÓXIMO NÚMERO
ABRIENDO
VENTANAS
L
inux está ganando una cuota de mercado cada
vez mayor en el terreno TI, aunque Windows no
va a desaparecer de la noche a la mañana.
Hasta que eso no ocurra, las redes de sistemas hete-
rogéneos son el pan nuestro de cada día para usuarios,
desarrolladores y administradores de sistemas, y hacer
que todas las máquinas hablen entre sí puede ser todo
un reto.
El mes que viene miramos de cerca todo lo que
implica integrar dos sistemas tan dispares de la manera
más armoniosa posible. Aprenderemos a montar un
servidor de Protocolo de Escritorio Remoto (PER), cómo
funciona el Universal Plug and Play, a integrar servido-
res Linux en clusters Active Directory, y lo que tiene que
dar de sí el proyecto Moonlight de Mono – la versión
libre de la infraestructura multimedia Silverlight de
Microsoft.
El próximo mes, encuentra paz y armonía en Linux
Magazine.