DVD de dos caras con Fedora Linux 11. Más info. en páginas 6 y 7
Comandos
Introducción a la magia de la terminal p84
LINUX MAGAZINE
NÚMERO 52
NÚMERO 52 • P.V.P 0,00 €
Tuning de Máquinas Virtuales
EC2 de Amazon
PelicanHPC
TUNING VIRTUAL
NagVis
Lectores de eBooks
Optimiza tus máquinas virtuales p18 Control de redes con NagVis p33 Los secretos del cloud EC2 de Amazon al descubierto p24 Clusters de alto rendimiento con PelicanHPC p28
Boo
FSniper
FSniper
Samba4Wins
Clasifica automáticamente tus ficheros entrantes p74
Multicasting
Phidgets
Zim
Robótica, sensores y servos con Squeak p81 WWW.LINUX- MAGAZINE.ES
eBooks Lectores de libros electrónicos para netbooks p37
FreeIPA Administración de identidades integradas p43
Adonde vayas...
Lee Linux Magazine desde cualquier sitio con nuestra subscripción digital. Accede a todos los números en PDF entrando en nuestro sitio. Encuentra lo que buscas con un sencillo formulario de búsqueda. Mantén tu propia biblioteca de artículos y leelos desde cualquier dispositivo.
... Linux Magazine va contigo. http://www.linux-magazine.es/digital
EDITORIAL
INFLEXIÓN ay momentos en los que la historia toma otro rumbo. Un individuo o un colectivo pequeño hacen algo que deriva el devenir de las cosas por otros derroteros. Estos puntos de inflexión son fáciles de identificar a posteriori. Son un poco como aquello tan trillado de “estar en el momento justo en el sitio adecuado”: el entorno tiene que ser favorable y algunos de los jugadores han de dar los pasos correctos para que la inflexión, es decir el cambio, se produzca. Tomemos como ejemplo el ascenso de Microsoft al status de imperio. En 1980, IBM se puso en contacto con Bill Gates interesándose por CP/M, sistema operativo que pensaban serviría para sus nuevos PCs. Sin que sirviera de precedente, Gates hizo lo correcto e indicó al Gran Azul que debía hablar con Digital Research, la empresa fabricante del sistema. Las dos empresas no llegaron a un acuerdo, e IBM volvió a contactar con Microsoft a ver si podían llenar el hueco. Esta vez Gates aprovechó la ocasión y se hizo con QDOS (Quick and Dirty Operating System) de Seattle Computer Products, vendiéndole la moto (que no el software) a IBM. El pelotazo estaba en el contrato entre las dos empresas: Gates introdujo una cláusula que le permitía vender copias del sistema operativo al margen de IBM e IBM, en un acto de miopía que hoy día consideraríamos casi suicida, pensando que el futuro de la informática pasaba por el hardware y que el software era algo accesorio, accedió al cambio. Y ese fue el punto de inflexión. Existen una serie de casualidades en el relato anterior que hacen parecer el éxito de Microsoft como algo altamente improbable: Si IBM hubiera desarrollado su propio sistema operativo… Si Digital Research e IBM hubieran llegado a un acuerdo… Si Gates no hubiera introducido la famosa cláusula y si IBM no hubiera accedido a su inclusión… Si… Si… Si… Súmese a lo anterior que toda la rocambolesca historia se desarrolló en
H
Nos sentimos orgullosos de nuestros orígenes como publicación, que se remonta a los primeros días de la revolución Linux. Nuestra revista hermana, la publicación alemana Linux Magazine, fundada en 1994, fue la primera revista dedicada a Linux en Europa. Desde aquellas tempranas fechas hasta hoy, nuestra red y experiencia han crecido y se han expandido a la par que la comunidad Linux a lo ancho y largo del mundo. Como lector de Linux Magazine, te unes a una red de información dedicada a la distribución del conocimiento y experiencia técnica. No nos limitamos a informar sobre el movimiento Linux y de Software Libre, sino que somos parte integral de él.
menos de un año, y tenemos un claro caso de pelotazo por suerte. De no haberse dado todas esas casualidades y los protagonistas no haber tomado una sola de aquellas decisiones, el presente sería completamente diferente. En ese universo paralelo, donde Microsoft es sólo un jugador más en el mundo de la informática, en vez de su mayor aliado, IBM es la mayor amenaza para el Software Libre. En contraste, el movimiento del software libre es todo menos fruto de la casualidad. El camino hacia el estado actual de las cosas, en retrospectiva, más parece una denodada carrera de fondo que una sucesión de felices coincidencias. La situación que vivimos hoy es el producto de una evolución natural sobrevenida por la disconformidad con una anterior percibida como injusta y que se hubiera dado de todas maneras, aunque Richard Stallman hubiera dedicado más tiempo a los bailes folclóricos que a la informática, o que Linus Torvalds hubiera insistido en conservar su propia licencia original (que permitía, entre otras cosas, compartir el código pero no utilizarlo con fines comerciales), en vez de decantarse por la GPL. Por supuesto que la historia del software libre ha estado plagada de hitos, muchos de ellos protagonizados por los dos monstruos arriba citados, pero también lo ha estado de derrotas. El destino de Microsoft se selló en diez meses y con un golpe de suerte. El software libre está a punto de cumplir 25 años y aún se está peleando por su plena aceptación, por lo que es impreciso hablar de “punto” de inflexión. Más preciso sería describirlo como “segmento”. A pesar de la dificultad de identificar algo así desde dentro, las señales parecen estar ahí: el descontento de los proveedores y usuarios con las dos últimas versiones de Microsoft, Vista y 7; la adopción de GNU/Linux y software libre en general por parte de importantes
WWW.LINUX- MAGAZINE.ES
jugadores, como Google y Nokia; la fusión de empresas tradicionalmente grandes con otras que tienen como principal modelo de negocio la explotación de sistemas abiertos, como la adquisición del especialista en implementaciones Linux en dispositivos móviles Wind River por parte de Intel; indican sin duda un lento y gradual, pero inexorable cambio en el ecosistema. Seguimos oyendo cómo GNU/Linux es un sistema de nicho, pero el analista que tome como parámetro las instalaciones en sistemas de escritorio para medir su éxito, o está completamente ciego, o es un torpe manipulador: Los equipos de escritorio y portátiles constituyen un ínfimo subconjunto de todos los dispositivos que pueden llevar un SO en ejecución dentro. No contar los electrodomésticos, routers, servidores, mandos a distancia, clusters, superordenadores, PDAs y, por fin, el mayor grupo de todos, el de los móviles, es ignorar más del noventa por ciento del mercado. En todos y cada uno de los grupos anteriores, el punto de inflexión en el que GNU/Linux u otros SOs abiertos han pasado a ser dominantes, llegó hace tiempo.
Paul C. Brown Director
Número 52
3
CONTENIDOS • Linux Magazine nº 52
PORTADA 17 Centro De Datos El espacio del servidor está cambiando, generando nuevas oportunidades para una administración más ágil. Si planea crear un nuevo centro de datos, más le vale tener lista una buena caja de herramientas. Este mes estudiamos las herramientas y técnicas para centros de datos y entornos de servidor.
18 Más Rápido Afinar el rendimiento de un entorno virtual es similar a hacerlo en un entorno ordinario, pero no exactamente igual.
24 Código de Altura Mostramos algunas técnicas para aprovechar las ventajas de la tecnología nube.
28 De Caos a Clúster Manejando números enormes con nuestro propio clúster computacional de alto rendimiento.
LINUX MAGAZINE 03 06 08 12 16 93 95 95 98
4
Editorial DVD Linux Magazine Inseguridades Kernel Noticias Subscripciones Eventos Información de Contacto Próximo Número
Número 52
DESARROLLO 33 Vistas Personalizadas NagVis, una sencilla herramienta para visualizar el estado de nuestras redes, nos advierte de potenciales problemas.
54 La Hora de Boo ¿Enganchado a la cómoda sintaxis de Python? ¿Enamorado de la arquitectura .NET pero al mismo tiempo agradecido al tipado fuerte de C#? Boo ofrece lo mejor de tres mundos.
EVALUACIÓN 37 Recién Impreso Un netbook y un buen lector de ebooks es cuanto necesitamos para extraer la riqueza de los ebooks libres que se vislumbran en las profundidades de la web.
PRÁCTICO 43 Comprobación de Identidad FreeIPA ofrece una gestión integrada de identidad y buenas ideas para el futuro.
47 Control del Tráfico Mostramos cómo WebHTB permite gestionar el ancho de banda de una red a través de una interfaz de navegador conveniente.
DESARROLLO 50 Jython a la Carga Después de mucho tiempo, Jython vuelve al escenario. Su versión 2.5 pone al día este intérprete de Python que ha salvado del tedio a más de un programador Java.
WWW.LINUX- MAGAZINE.ES
59 Velocidad de Ejecución En lugar de CPUs más potentes, podemos usar trucos de programación para aumentar la velocidad de un programa. Los profilers pueden descubrir cuellos de botella que necesitan más TLC por parte del desarrollador.
ADMINISTRACIÓN 63 ¡Nómbralo! A menudo se utiliza el editor vi para editar los datos de zona de su servidor de nombres, lo que no es muy elegante, ya que un simple error mecanográfico puede producir problemas en el DNS. Afortunadamente, NicTool le ayudará a realizar esta tarea.
64 Mucho Público Mostramos el lado práctico del multicasting, incluyendo una configuración de ejemplo que hace uso de la suite libre del protocolo de enrutamiento XORP.
ADMINISTRACIÓN 69 Al Filo de la Ventana Samba4Wins permite configurar un servidor WINS para la resolución de nombres NetBIOS en Linux.
LINUX USER 81 Phidgetlab ¿Cómo atravesar la frontera desde el mundo de Squeak al mundo real de los objetos físicos?
84 Magia Terminal
LINUX USER 74 ¡Muévete! Cada día los ordenadores se inundan con cientos de ficheros. Fsniper da la bienvenida a las nuevas llegadas y las procesa de acuerdo a las reglas que definamos.
Lejos de ser un anacronismo, la línea de comandos es una parte indispensable del moderno escritorio libre.
COMUNIDAD 87 Konsultorio Si tienes algún problema de configuración, o simplemente quieres conocer mejor cómo funciona Linux, pregúntale a Klaus Knopper, el creador de Knoppix. Este mes: WFI, módem UMTS, Particiones y Drivers de Impresora.
DVD DVD de de dos dos caras caras con con Fedora Fedora 11 11 de de 32 32 yy 64 64 bits bits Instalación Instalación transparente transparente yy automatizada automatizada de de codecs codecs yy reproductores reproductores de de medios medios Mejor Mejor integración integración con con sistemas sistemas Windows Windows Soporte Soporte nativo nativo para para sistema sistema de de ficheros ficheros ext4 ext4 Gnome Gnome 2.26, 2.26, KDE KDE 4.2.2, 4.2.2, OpenOffice OpenOffice 3.1.0, 3.1.0, Firefox Firefox 3.1, 3.1, etc. etc.
90 Linux Legal Jose María Lancho, presidente de HispaLinux, resuelve las dudas legales de los lectores. Este mes: ¿Cómo casa la interoperabilidad con GNU/Linux?
76 Organizador El administrador de información Zim ofrece mucho más que notas digitales con la explotación de opciones de datos de redes.
92 ¡No Funciona! Ayuda al personal de apoyo que nos ayuda: Recopile información antes de llamar.
78 Tomo Nota Te ayudaremos a organizar datos con Chandler, una aplicación que nos permite reunir información y decidir luego cómo usarla.
WWW.LINUX- MAGAZINE.ES
Número 52
5
LINUX MAGAZINE EN LÍNEA
¡Aún hay más! Visítanos en la red en linux-magazine.es para enterarte de las noticias del mundo del software libre, leer artículos, descargar software, consultar nuestro calendario de eventos, seguir nuestro streaming y ver vídeos.
ARCHIVOS ¿Buscas un artículo? ¿Necesitas saber cómo utilizar, configurar o programar una aplicación? Tienes más de 600 artículos a tu disposición en nuestro archivo abierto y gratuito y muchos más en la zona de subscriptores digitales.
VÍDEOS ¿Quieres conocer las opiniones de los expertos en sus propias palabras? ¿Necesitas un vídeo tutorial para aprender como funciona una aplicación? ¿No pudiste acudir a un evento o te perdiste una charla que te interesaba? Screencasts, entrevistas y nuestro archivo de grabaciones de eventos te esperan. ¡Consulta nuestra videoteca!
TWITTER Mantente al día de lo que hacemos con nuestro feed en Twitter. Síguenos en twitter.com/linux_spain.
EVENTOS
OFERTAS Libros, gadgets y servicios, o gratis o muy rebajados. Consigue el chollo de tu vida en nuestro repositorio de ofertas de Linux Magazine: http://www.linux-magazine.es/digital/ofertas.
… ¡Y MUCHO MÁS!
LISTADOS
Siempre estamos actualizando nuestra web con nuevos contenidos y servicios. Muy pronto, los blogs de los gurús del software libre, RSS, whitepapers y mucho más. Visita linux-magazine.es y conecta con la red de información Linux más extensa del mundo.
Evita tecleos y errores cuando copias de la revista descargándote los listados de los artículos desde http://www.linux-magazine.es/ Magazine/Downloads.
6
Enterate de lo que ocurre cerca de ti y cómo y cuándo puedes registrarte. Todos los eventos están en http:/www.linux-magazine.es/Readers/Events.
Número 52
WWW.LINUX- MAGAZINE.ES
Data Centers • PORTADA
Herramientas inteligentes para rack y nube
CENTRO DE DATOS El espacio del servidor está cambiando, generando nuevas oportunidades para una administración más ágil. Si planea crear un nuevo centro de datos, más le vale tener lista una buena caja de herramientas. Este mes estudiamos las herramientas y técnicas para centros de datos y entornos de servidor. POR JOE CASAD
l centro de datos está en un estado de continua re-invención. Los actuales son enormes complejos deslocalizados a los que están migrando, y funcionando, miles de máquinas virtuales invisibles. Pero por muy futuristas que estas nuevas instalaciones puedan parecer, son realmente una extensión de una antigua fórmula: eficiencia a través de la concentración geográfica y economía de gran escala. Tanto si obtienes ciclos de una sala de servidores tradicional, como si lo haces de una gran superficie virtual, encontrarás mucho que pensar con el número de este mes. Comenzamos con algunos consejos sobre mejoras de rendimiento para entornos virtuales. La mayoría de los administradores opinan que junto con la virtualización se incurre en algún coste sobre el rendimiento, pero ¿cuánto realmente? ¿Y qué medidas se pueden adoptar para reducir al mínimo la pérdida de eficiencia? Echamos una mirada objetiva a los misterios del rendimiento virtual. En la carrera por abrazar las maravillas de la nube, muchas organizaciones han subido sus infraestructuras sin dete-
E
nerse a considerar los beneficios de rendimiento adicionales disponibles a través de un uso más eficiente de los servicios de la nube. Nuestro segundo artículo analiza algunos ejemplos que describen cómo escribir aplicaciones web que se aprovechan de las sutiles diferencias entre los servicios de la nube y los servicios de entornos web convencionales. También examinamos PelicanHPC, una distribución Linux diseñada para la creación de clusters de alto rendimiento,
y, para aquellos que aún mantienen la custodia de sus equipos, finalizamos comprobando cómo mapear una red con el ingenioso suplemento de visualización para Nagios, NagVis. Tanto si eres un administrador de la nueva era como si perteneces a la vieja guardia, puedes estar seguro de que aprenderás algo nuevo en la sección de portada de este mes. ■
EN PORTADA Rendimiento Virtual . . . . . . . . . . . . . . .18 Técnicas de Cloud . . . . . . . . . . . . . . . . .24 PelicanHPC . . . . . . . . . . . . . . . . . . . . . . .28 NagVis . . . . . . . . . . . . . . . . . . . . . . . . . .33
WWW.LINUX- MAGAZINE.ES
Número 52
17
NagVis • PORTADA
Joerg Humpe, Fotolis
Visualización de redes Nagios con NagVis
VISTA PERSONALIZADA Si necesitamos una posición dominante desde la que advertir posibles problemas, quizá NagVis, una sencilla herramienta para visualizar el estado de nuestras redes, sea lo que estamos buscando. POR JAMES MOHR
N
agios es una popular herramienta de monitorización de código abierto que nos asiste en la organización del estado de las máquinas y servicios de una red. Si todos los servicios van bien, probablemente baste con la vista que nos muestra la herramienta. Pero cuando se trata de redes de gran tamaño, o cuando la red es proclive a sufrir problemas ocasionales, puede que sea preferible disponer de una representa-
ción gráfica de la situación. La renderización gráfica de una red supone un método rápido de diagnóstico para los problemas que se pudieran estar produciendo. Además, un director suele preferir unas vistosas imágenes y la conveniencia de un resumen visual. NagVis [1] es un útil add-on de Nagios que permite visualizar los sistemas de una red. La idea es que el administrador se cree sus propias imágenes de fondo (denominadas mapas)
WWW.LINUX- MAGAZINE.ES
y luego integre en dichas imágenes unos iconos representativos de las máquinas y servicios de la red. Cada icono muestra el estado actual de la máquina o servicio que representa. Este diseño simple pero flexible permite la explotación de NagVis de muy diversos modos. Por ejemplo, se puede crear un mapa geográfico de una habitación y colocar en él las ubicaciones físicas de los servidores que ésta contiene. Un mapa podría servir también a modo de vista esquemática de un servidor único con iconos para representar cada uno de los servicios que éste ofrece. NagVis soporta incluso sub-mapas, permitiendo de este modo la representación flexible de grandes redes. Por ejemplo, un mapa puede representar
Número 52
33
PORTADA • NagVis
un edificio, y los sub-mapas en él pueden representar los habitáculos de dentro de ese edificio.
Mapas Un mapa de NagVis se elabora a partir de una imagen de fondo y una serie de símbolos representando máquinas y servicios. Además de las ventajas obvias derivadas de poder ver un mapa representativo de la geografía de la red, otro modo posible de implementar los mapas de NagVis es creando un diagrama de la estructura lógica. Por ejemplo, se podrían dividir los sistemas en grupos en base a su funcionalidad: primario, middleware, bases de datos… Cada servicio o máquina de Nagios viene representado por un icono, y el icono cambia su apariencia en función de su estado. Si un servicio se encuentra en estado crítico, el aviso advirtiendo del problema es inmediato, simplemente a través de un cambio en el icono.
NagVis por Dentro NagVis es una aplicación en PHP/ AJAX construida sobre Nagios. Además del propio Nagios, tenemos que asegurarnos de tener instalados en el sistema NDO (Nagios Data Out) y NDOutils (NagVis obtiene toda la información sobre estados de la base de datos NDO). Para la elaboración de este artículo se ha usado la versión 3.0.6 de Nagios, así como NDOutils 1.4b7. Además, se da por hecho que ya se encuentra en ejecución Nagios 3.x con NDO y que se tiene cierta soltura con Nagios y NDO. NagVis es una aplicación web, por lo que son también necesarios un servidor web y PHP 4.2 o superior, así como una serie de paquetes que se pueden consultar en el cuadro titulado “Paquetes Necesarios para NagVis”. Nótese que NagVis no tiene por qué ejecutarse en la misma máquina que Nagios. Es
posible, por ejemplo, ejecutar una instancia de NagVis en un servidor externo y Nagios en uno interno. En cierta ocasión, proporcionamos a unos clientes acceso a Nagvis sin permitirles el acceso a la instancia latente de Nagios. NagVis se suele distribuir en forma de archivo comprimido con gzip, disponible desde SourceForge a través del sitio de NagVis [1]. El archivo se descomprime en un directorio cuyo nombre depende del número de versión (por ejemplo, nagvis-1.3.2), que debemos mover al directorio compartido de Nagios y renombrar a nagvis. Por ejemplo del modo siguiente: mv ./nagvis-1.3.2 U /usr/local/nagios/share/nagvis
Si se creó un alias a este directorio al instalar Nagios, no es necesario volver a crear un alias para NagVis. Todo lo que necesitamos hacer es definir los permisos, igual que para el archivo INSTALL incluido. El directorio etc, que podemos encontrar bajo el directorio principal de NagVis, contiene un archivo de configuración de ejemplo. El método más sencillo pasa por copiar este archivo de muestra a nagvis.ini.php y hacer luego los cambios necesarios. Este archivo está hecho como los archivos .ini típicos de Windows. Los bloques de configuración se definen entre corchetes y cada entrada tiene el formato parámetro=valor. Por ejemplo, el bloque global predeterminado presenta el siguiente aspecto: 01 [global] 02 ; selección de idioma (english,german,french,...) 03 language=”spanish” 04 ; dateformat para las marcas de mostradas en nagvis (consultar la documentación ßs 05 de PHP)
Sólo Mapas NagVis hace uso del archivo de configuración de Nagios, /usr/local/nagios/etc/
htpasswd.users, por lo que se aplican las mismas reglas de acceso. De todas formas, es posible especificar archivos diferentes para conjuntos de usuarios diferentes (por ejemplo, ../share/nagvis/etc/.htaccess). De este modo, es posible proporcionar acceso a usuarios específicos a determinados mapas de NagVis, sin tener que dejarles acceder directamente a Nagios.
34
Número 52
WWW.LINUX- MAGAZINE.ES
06 07 08 09
;dateformat=”Y-m-d H:i:s” ;mostrar cabecera o no (0/1) ;displayheader=1 ;tiempo de refresco de las páginas 10 ;refreshtime=60
A través del archivo de configuración, podemos ver que la mayoría de los parámetros están comentados por defecto. NagVis es autoexplicativo, además de que disponemos de valores predeterminados para los distintos parámetros. Los parámetros de la base de datos de Nagios se definen en el bloque correspondiente al backend. Un backend de NagVis es simplemente una fuente de datos. El tipo de backend predeterminado, ndomy, significa que NagVis obtiene los datos a través de una base de datos NDO MySQL. Actualmente es la única opción soportada. Hemos de asegurarnos de cambiar los parámetros dbuser (usuario) y dbpass (contraseña) para que reflejen los parámetros apropiados. Aunque podemos usar el mismo usuario que Nagios, no hay problema en crear un usuario específico para NagVis mientras pueda leer la base de datos. De forma predeterminada, sólo disponemos de un backend, definido como [backend_ndomy_1]; pero se pueden definir más. Por tanto, es factible mostrar información desde múltiples instancias de Nagios ubicadas en diferentes máquinas. Todo lo que hay que hacer es especificar los parámetros necesarios en la definición del backend. Nótese que es necesario incluir backend_ en la definición para que NagVis la pueda reconocer. Si NagVis no funcionase en un primer momento y la pantalla de mensajes de error no fuese de utilidad, siempre podemos mirar en /var/log/messages. Este archivo suele proporcionar información adicional sobre el motivo real causante del problema. Uno de los problemas más comunes se da en el acceso a la base de datos, cuyo mensaje de error tiene la forma de “Could not open data sink!”
Configurando NagVis Una vez instalado Nagios, se puede apreciar que hay varios servicios configurados de forma predeterminada para
NagVis • PORTADA
blemente conservemos los mapas durante algún tiempo, no es mala idea hacerlos más agradables estéticamente. Cuando tengamos la imagen, la copiamos a ../ nagvis/nagvis/images/maps (el hecho de que nagvis aparezca dos veces no es un fallo). Comenzamos la configuración dirigiendo el navegador hacia http:// NOMBREDELAMÁFigura 1: La página de inicio de Nagios proporciona una vista inicial QUINA/nagios/nagde nuestros sistemas. vis. Esta dirección nos lleva a la localhost (la máquina en que se está página de inicio de NagVis (Figura 1). ejecutando Nagios). Estos servicios Al pulsar sobre una de las miniaturas, son comúnmente conocidos, por lo accedemos al correspondiente mapa en que cuando ejecutamos NagVis, éste escala completa (Figura 2). En cuallos reconoce y muestra automáticaquier momento, podemos pulsar sobre mente. Edit current map para entrar en modo Llegados a este punto, podría el lecedición. Luego, pulsamos con el botón tor sentirse tentado a ponerse a confiderecho sobre el mapa para hacer apagurar su mapa inmediatamente, pero le recer el menú contextual. La primera pasaría desapercibido un punto clave: opción, Open Map, abre el mapa selecla imagen de fondo. cionado en el editor de NagVis. Con Dicha imagen no tiene por qué ser Open in NagVis se abre en modo de complicada o extravagante. Un simple sólo lectura. En Options podemos condiagrama de líneas puede valer y figurar el mapa actual. cualquier herramienta gráfica capaz La opción Configuration de Nagvis de guardar en formato PNG puede sirve para configurar el propio NagVis. servir igualmente. Aún así, a menudo A menos que se el propósito de los mapas como éste hayan hecho cames servir de gancho para los directobios directamente res, por lo que quizá sí que convenga sobre el archivo de elaborar el mapa de forma algo más configuración, se detallada. Además, dado que probapuede ver que todos los campos aparecen en blanco con la Paquetes Necesarios para configuración predeNagVis terminada. • mysql-devel • php5 • php5-common • php-gd • php-mysql • php5-mbstring • php5-session • php5-xml • graphviz (para automap)
existente. En la parte superior del formulario (Figura 3), introducimos el nombre del mapa. Luego, introducimos los nombres de los usuarios que tienen acceso de lectura (allowed_user) y los de los que tienen permiso para cambiar la configuración del mapa (allowed_for_config). Estos usuarios son los mismos que reconoce el servidor web, pero NagVis no realiza ninguna comprobación en este punto. Por tanto, hay que estar seguros de que los usuarios se definen correctamente. Nótese que, en caso de dejar en blanco alguno de los campos relativos a los usuarios, aparece un aviso. Por defecto, debemos incluir al menos nagiosadmin o el nombre que corresponda al administrador principal de Nagios. Si la seguridad es un punto importante, se puede usar un usuario diferente. Además, podemos definir este parámetro como EVERYONE, sin listar los usuarios explícitamente, de forma que cualquier usuario autenticado podría ver el mapa. Luego, seleccionamos la imagen de fondo desde el menú desplegable map_image. En este caso, el mapa creado debe encontrarse en el sistema. NagVis no amplía ni reduce las imágenes, por lo que cabe la posibilidad de que la imagen resulte demasiado grande o demasiado pequeña para un monitor en particular. Si fuese necesario, se tendría que escalar con la ayuda de una herramienta gráfica externa.
Configuración de los Mapas Seleccionando Manage | Maps desde el menú podemos crear un mapa o realizar funciones administrativas, como renombrar o eliminar un mapa
Figura 2: Incluso un mapa simple de NagVis puede resultar muy útil.
WWW.LINUX- MAGAZINE.ES
Número 52
35
PORTADA • NagVis
Luego, sobre Icon para elegir Host, Service, Hostgroup, Servicegroup y Map. Uno de los aspectos útiles de Nagvis es Las primeras cuatro opciones no neceque sólo reacciona ante estados persissitan explicación (“Máquina”, “Servitentes. Es decir, si un servicio presenta cio”, “Grupo de Máquinas” y “Grupo de Servicios”, respectivamente). El una dificultad breve y deja de estar icono Map nos permite crear un enlace disponible por un período de tiempo a otro mapa. breve, normalmente no se observarán Enlazar diferentes mapas sirve para cambios en el mapa. Si se prefiere ver crear una jerarquía de mapas de edifitodos los cambios de estado, se debe cios, servidores o gabinetes de servicambiar el parámetro only_hard_states dores. Además, podemos definir icoa no al configurar la máquina. nos para máquinas o servicios que enlacen con una URL completamente Si se dispone de varios mapas con ajena a Nagvis o Nagios. Por ejemplo, una jerarquía profunda, se puede usar si se está monitorizando la disponibiel parámetro show_in_lists para orgalidad de un sitio web, es posible enlanizarlos. Un valor de 0 evita que Nagzar al sitio mismo para verificar su Vis muestre el mapa en el menú desestado. plegable o la página de inicio. Al seleccionar la opción de añadir un El campo Map Iconset define el juego objeto, el cursor adopta la forma de de iconos que se usarán al mostrar los una cruz. Moviendo y pulsando el estados. De forma predeterminada, ratón se pueden ubicar los iconos. Al NagVis usa tres juegos de iconos hacerlo, aparece una ventana que per(grandes, medianos y pequeños), que mite introducir información de residen en ../nagvis/nagvis/images. Si configuración para la máquina o servise quiere, es posible editar la imagen cio que se añadirá. existente para ajustarla a las necesidaDel mismo modo que Nagios, Nagdes propias, o crear un juego de iconos Vis emplea el campo use para definir propio. El juego se configura para el plantillas de configuración que son mapa completo, pero también es posiaccesibles para todos los servicios y ble definir un icono para un servicio o máquinas del mapa. Luego sólo queda una máquina en concreto. Para obteconfigurar las opciones específicas de ner más detalles acerca de cómo crear cada plantilla. un juego propio, consultar la docuAl editar un icono, no hay que pulmentación en el sitio web de NagVis sar sobre él necesariamente para reali[1]. zar los cambios. Al posicionarnos Al pulsar sobre Save volvemos a la sobre uno, pasados un par de segunventana del mapa. dos se abre una ventana con la configuración del icono y un enlace Añadiendo Objetos al Mapa que permite editar dicha Llegados a este punto, el mapa sólo configuración. Si se prefiere un existe en forma de imagen de fondo. método no interactivo, se pueden conPor tanto, es necesario añadir los icofigurar los iconos para mostrar texto nos que representarán las distintas en vez de esperar a un evento del máquinas y servicios. En primer lugar, ratón. pulsamos con el botón derecho sobre Cuando configuramos una el mapa y seleccionamos Add Object. máquina, NagVis sólo muestra de forma predeterminada el estado de la propia máquina. El parámetro recognize_services indica a NagVis que debe incluir los servicios en la máquina indicada. Normalmente no es necesario incluir los iconos de servicio ni los Figura 3: El formulario de creación de mapas de NagVis. de máquina en un
Estados Persistentes
36
Número 52
WWW.LINUX- MAGAZINE.ES
Figura 4: Creación de un servicio en el formulario de configuración de servicios de Nagios..
mismo mapa pero, aún así, con mapas de más alto nivel, puede resultarnos útil combinar esta información. Cabe destacar que no se está limitado tan sólo a servicios y máquinas individuales. NagVis soporta tanto grupos de servicios como grupos de máquinas, los cuales aparecen en el menú de configuración junto con las máquinas y servicios. Debido a que las máquinas y servicios pertenecientes a grupos determinados tienen diferentes prioridades, Nagvis muestra el estado con mayor prioridad.
Eso No Es Todo NagVis nos permite visualizar nuestro entorno Nagios en mapas personalizados. Una vez instalados los mapas con la configuración básica, ya podemos probar con opciones más avanzadas para ver cómo encajan en nuestro ■ entorno.
RECURSOS [1] NagVis: http://www.nagvis.org
FreeIPA • PRÁCTICO
Gestión Integrada de Identidad con FreeIPA
COMPROBACIÓN DE IDENTIDAD FreeIPA
ofrece
una
gestión
integrada de identidad y buenas ideas para el futuro. POR THORSTEN SCHERF
L
os sistemas Linux empresariales emplean un conjunto de herramientas estándar para la gestión de identidades, auditoría y seguridad. Estas herramientas funcionan bien de forma independiente, una vez que se tengan bien configuradas, pero cuando hay que integrarlas, los administradores a menudo tienen que improvisar. Características tales como la gestión centralizada de registros de auditoría de múltiples máquinas, así como la posibilidad de distribuir los módulos de política SELinux en múltiples máquinas, se encuentran con frecuencia controlados por scripts de andar por casa. Aunque hay diversas soluciones propietarias, normalmente son caras y poco flexibles. El proyecto FreeIPA [1] es un esfuerzo por combinar diversos proyectos populares de código abierto en un sistema unificado común. IPA son las siglas de Identidad, Política y Auditoría, pero los desarrolladores normalmente utilizan esta abreviatura teniendo en cuenta posibles objetivos futuros. El énfasis actual se centra en la gestión de la identidad, con soporte para Kerberos y LDAP. Próximas versiones ofrecerán la gestión y configuración centralizada de certificados, así como gestión de políticas y auditorías. La Figura 1 muestra los componentes individuales de FreeIPA versión 1 y cómo funcionan. La combinación de LDAP y Kerberos
hacen que la integración de FreeIPA con el sistema de Directorio Activo de Microsoft sea sencilla. Aunque el mundo de Linux ofrece otras opciones para la integración con el Directorio Activo (como Samba o Likewise [2]), el Directorio Activo por sí mismo es sólo una parte de la solución para una herramienta de
auditoría y seguridad completamente integrada. Por ejemplo, no ofrece nada con respecto a la gestión de las políticas o las auditorías para los sistemas Linux, de este modo se fuerza a los administradores a que utilicen otras fuentes para cubrir
El Camino por Recorrer El objetivo de la versión 1 actual de FreeIPA consiste en la gestión de las identidades de los usuarios y los grupos. La migración de las soluciones existentes de NIS a FreeIPA para tener un entorno LDAP con contraseñas Kerberos es fácil. La versión en desarrollo ya ofrece un servicio de sincronización con un servidor de Directorio Activo existente; de hecho, la integración con el Directorio Activo debería estar disponible en la versión oficial de FreeIPA en el momento de la publicación de este número. La versión 2, cuyo lanzamiento se prevé para el próximo año, añadirá más funcionalidades. La característica de gestión de identidades se extenderá para que pueda manejar cuentas de máquinas. Otra característica prevista es el soporte de CA (Certificate Authority) para proporcionar certificados de usuario y de servicios. Por supuesto, los dos componentes de IPA inexistentes, Políticas (P) y Audi-
WWW.LINUX- MAGAZINE.ES
toria (A), aún tienen que incluirse. El componente de políticas no manejará la gestión de conjuntos de reglas SELinux. La hoja de ruta de desarrollo también incluye la gestión centralizada de configuraciones PAM, con pam_access, pam_time y pam_limits. También será fácil asignar privilegios de usuario por medio de sudo, ya que los administradores podrán gestionar estas configuraciones de forma centralizada con FreeIPA. Los componentes de auditorías accederán fundamentalmente a las funciones de los servicios de auditoría más populares para asegurarse la compatibilidad con las políticas de identidades existentes. Desde luego, un sistema de reglas de auditorías central incluirá la colección de eventos de auditorías en máquinas individuales. Estos eventos de auditoría serán registrados en el servidor FreeIPA para generar informes y para su evaluación.
Número 52
43
PRÁCTICO • FreeIPA
estas funciones. Muchos usuarios de Linux deben considerar también si es una buena idea ubicar su infraestructura de seguridad en las manos de una tecnología propietaria como es el Directorio Activo de Microsoft. FreeIPA es aún un trabajo en desarrollo; los desarrolladores aún no han alcanzado el potencial completo de esta herramienta tan prometedora (véase el cuadro titulado “El Camino por Recorrer”). La versión actual, sin embargo, proporciona soporte para LDAP y Kerberos, así como otras características interesantes. En este artículo vamos a mostrar la forma de comenzar con FreeIPA.
Instalación del Servidor Antes de comenzar con la instalación del servidor, hay que asegurarse de que todas las máquinas soportan la resolución de nombres DNS. Añadiéndole un par de registros de servicio (SRV) al servidor DNS existente, se simplificará la posterior configuración de los clientes, permitiendo que por medio de una solicitud DNS se obtenga el servidor responsable y el dominio de Kerberos. Cuando se instala el servidor FreeIPA, se creará un fichero de zona DNS de ejemplo con todas las entradas necesarias, el cual se puede utilizar como extensión del servidor DNS (Listado 1). Para instalar el servidor FreeIPA en un sistema Fedora sólo hay que teclear yum -y install ipa-server. El servidor y todos los paquetes necesarios están disponibles en los repositorios estándar desde que apareció Fedora 8. Tras la instalación, hay que ejecutar ipa-server-install para configurarlo. Si se prefiere crear directamente un fichero de zona DNS, se puede llamar a la herramienta con el
parámetro --setup-bind. En este paso se crea un fichero de zona en el directorio tmp. Al llamar a la rutina de configuración se instalarán los siguientes componentes en la máquina: • NTP • Servicio de Directorio Fedora Figura 1: Las herramientas de código abierto más popula• MIT Kerberos res ejecutándose bajo el paraguas común de FreeIPA. • Apache/TurboGears • SELinux-targeted policy para FreeIPA Login Shell: /bin/sh El programa de instalación solicitará al usuario Login: tscherf que introduzca los datos necesarios (por ejemplo, el LDAP Base DN, el dominio Kerberos y Si se necesita más información de atributos el nombre del servidor); un par de minutos LDAP, se puede, por supuesto, configurar una más tarde, el servidor y todos sus componenconexión autenticada por Kerberos al servidor tes estarán listos. A continuación hay que LDAP y consultar los atributos que se deseen teclear kinit admin y solicitar un ticket de (Listado 2). usuario para admin con el propósito de comLa herramienta klist muestra el ticket del probar que el servidor Kerberos esté funcioservicio transferido para el servidor LDAP: nando adecuadamente. La siguiente llamada añade un usuario [root@devel-srv1 ~]# klist -5 nuevo al directorio/Kerberos del servidor: Ticket cache: FILE:/tmp/krb5cc_0 # ipa-adduser U -f Thorsten -l Scherf tscherf Password: Password (again): tscherf successfully added
Si la contraseña introducida cumple las políticas definidas para las contraseñas, ipa-finduser encontrará la cuenta del usuario, que ahora ya existirá en el directorio del servidor: # ipa-finduser tscherf Full Name: Thorsten Scherf Home Directory: /home/tscherf
Default principal: U admin@VIRT.FOO.DE Valid starting Expires U Service principal 09/19/08 13:57:28 09/20/08 U 13:57:26 krbtgt/VIRT.FOO.DE@U VIRT.FOO.DE 09/19/08 13:57:42 09/20/08 U 13:57:26 ldap/devel-srv1.U virt.foo.de@VIRT.FOO.DE
También se encuentra disponible una interfaz web para gestionar todas estas tareas (Figura 2), pero habrá que configurar el navegador web. Firefox muestra la configuración actual
Listado 1: Extensiones DNS 01 $TTL 86400 02 @ IN SOA devel-srv1.virt.foo.de. root.devel-srv1.virt.foo. de. ( 03 ; Dont forget to increment the serial number 04 2003040100 ;serial number 05 1H ;refresh slave 06 5M ;retry refresh 07 1W ;expire zone 08 5M ;cache time-to-live for negative answers 09 ) 10 ; Name server resource records ( NS ) 11 ; owner TTL CL type RDATA
44
Número 52
12 @ IN NS devel-srv1.virt.foo.de. 13 14 15 ; Internet address resource records( A ) 16 ; owner TTL CL type RDATA 17 devel-srv1 IN A 192.168.122.100 18 19 ; ldap servers 20 ldap._tcp IN SRV 0 100 389 devel-srv1.virt.foo.de. 21 22 ;kerberos realm 23 kerberos IN TXT VIRT.FOO.DE 24
WWW.LINUX- MAGAZINE.ES
25 ; kerberos servers 26 kerberos._tcp IN SRV 0 100 88 devel-srv1.virt.foo.de. 27 kerberos._udp IN SRV 0 100 88 devel-srv1.virt.foo.de. 28 kerberos-master._tcp IN SRV 0 100 88 devel-srv1.virt.foo.de. 29 kerberos-master._udp IN SRV 0 100 88 devel-srv1.virt.foo.de. 30 kpasswd._tcp IN SRV 0 100 464 devel-srv1.virt.foo.de. 31 kpasswd._udp IN SRV 0 100 464 devel-srv1.virt.foo.de. 32 33 ;ntp server 34 ntp._udp IN SRV 0 100 123 devel-srv1.virt.foo.de.
FreeIPA • PRÁCTICO
que hacer es llamar a ipa-client-install para comenzar la instalación del cliente. Gracias a la entrada dns_lookup_realm = true del fichero /etc/krb5.conf, el cliente le solicitará a su servidor DNS toda la información de configuración necesaria (Listado 3). Para probar la conexión con el servidor, se puede utilizar kinit admin en el cliente; si todo funFigura 2: La interfaz web facilita la incorporación de nue- ciona, el siguiente paso consistirá vos usuarios al directorio. en definir un host principal para el cliente en la base de datos de Kercuando se introduce about:config. Los siguienberos y almacenar la contraseña localmente tes comandos son los que se necesitan para la en el lado cliente: personalización: # ipa-addservice host/U devel-client.virt.foo.de # ipa-getkeytab host/U devel-client.virt.foo.de -k U /etc/krb5.keytab Keytab successfully retrieved U and stored in: /etc/krb5.keytab
network.negotiate-U auth.trusted-uris .virt.foo.de network.negotiate-auth.U delegation-uris .virt.foo.de network.negotiate-auth.U using-native-gsslib true
Tras abrir una conexión https al servidor FreeIPA, se podrá crear o consultar la cuenta de un usuario fácilmente por medio de la interfaz web.
Configuración del Cliente Fedora, Red Hat Enterprise Linux (RHEL) y distintas variantes de UNIX, incluyendo a Solaris, AIX, HP-UX y Mac OS X, tienen disponible un cliente FreeIPA. Instalarlo en Fedora es tan sencillo como ejecutar el siguiente comando yum: yum install ipa-client U ipa-admintools
Si posteriormente se transfiere el fichero de configuración de Kerberos /etc/krb5.conf desde el servidor al cliente, lo único que hay
Servicios Kerberos El siguiente paso consiste en configurar un servicio para que funcione con Kerberos. Primero, considérese el ejemplo de un servidor NFS al que las máquinas cliente puedan acceder por medio del protocolo NFSv4 con autenticación por Kerberos. El servidor se asegurará de la integridad de los datos y de la privacidad. Para que esto suceda, hay que configurar un recurso compartido NFS en el servidor IPA: # cat /etc/exports /data gss/krb5U (rw,fsid=0,subtree_check) /data gss/krb5pU (rw,fsid=0,subtree_check) /data gss/krb5iU (rw,fsid=0,subtree_check)
Introduciendo echo SECURE_NFS = yes > /etc/sysconfig/nfs se activan todos los servicios NFS requeridos tras ejecutar el comando service nfs start. Ahora hay que configurar el servicio principal para el servicio NFS en la base de datos de Kerberos y exportarlo al fichero del servidor keytab: # ipa-addservice U nfs/devel-srv1.virt.foo.de # ipa-getkeytab U nfs/devel-srv1.virt.foo.de -k /etc/krb5.keytab Keytab successfully retrieved U and stored in: /etc/krb5.keytab
La configuración del cliente es bastante similar. Si se siguen los mismos pasos para crear un servicio principal NFS y se almacenan localmente en el fichero /etc/krb5.keytab, el comando ipa-findservice indicará si está en funcionamiento o no. Este comando ipa-findservice listará todos los equipos y servicios principales del fichero keytab. Para asegurarse de que los servicios NFS cliente requeridos, rpcgssd y rpcidmapd, se ejecutan correctamente, hay que añadir una entrada SECURE_NFS = yes al fichero /etc/sysconfig/nfs. Ahora ya estará listo para montar de forma segura NFSv4: # mount -v -t nfs4 U -o sec=krb5p devel-srv1:/ U /mnt/nfs4
Téngase en cuenta que FreeIPA almacena la configuración completa de Kerberos en LDAP (Figura 3). Como las herramientas nativas de Kerberos como kadmin o kadmin.local no ofrecen una interfaz LDAP nativa, no se pueden utilizar para gestionar la base de datos de Kerberos. Por otro lado, los administradores siempre necesitarán utili-
Listado 2: Consultando el Servidor 01 [root@devel-srv1 ~]# ldapsearch -Y GSSAPI uid=tscherf -LLL 02 SASL/GSSAPI authentication started 03 SASL username: admin@VIRT.FOO.DE 04 SASL SSF: 56 05 SASL installing layers 06 dn: uid=tscherf,cn=users,cn=accoun ts,dc=virt,dc=foo,dc=de
07 08 09 10 11 12 13 14 15 16 17
uid: tscherf objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: inetUser objectClass: posixAccount objectClass: krbPrincipalAux objectClass: radiusprofile loginShell: /bin/sh gidNumber: 1002
WWW.LINUX- MAGAZINE.ES
18 19 20 21 22 23 24 25
gecos: tscherf sn: Scherf homeDirectory: /home/tscherf krbPrincipalName: tscherf@VIRT.FOO.DE givenName: Thorsten cn: Thorsten Scherf uidNumber: 1100 memberOf: cn=ipausers,cn=groups,cn=accou nts,dc=virt,dc=foo,dc=de
Número 52
45
PRÁCTICO • FreeIPA
zar las herramientas FreeIPA para las tareas administrativas.
Datos de Alta Disponibilidad Tras completar la configuración básica del servidor, se deberían replicar los datos del servidor de directorios en una segunda máquina. Como FreeIPA almacena la configuración completa de Kerberos y la base de datos de Kerberos en LDAP, esta replicación proporciona un segundo servidor maestro en un momento. En el caso de que el servidor maestro falle, el servidor maestro secundario poseerá todos los datos, en el cual incluso se podrán editar los mismos. Una vez que el servidor maestro primario vuelva a estar en línea, los datos modificados se replicarán en él. El uso de al menos dos servidores es también una buena idea para propósitos de balanceo de carga. Si se almacenan los datos en dos localizaciones geográficas diferentes, podría considerarse la configuración de más servidores y montarlos como réplicas para evitar el uso de una conexión WAN cuando se vaya a consultar o cambiar el directorio. El servidor maestro principal posee un fichero de configuración con toda la información que se necesita para crear un servidor secundario: # ipa-replica-prepareU devel-srv2.virt.foo.de
Ahora sólo hay que copiar el fichero creado en este último paso al equipo que replica y ejecutar la instalación allí: # scp /var/lib/ipa/replica-U info-devel-srv2.virt.foo.de U root@devel-srv2:/tmp/ # ipa-replica-install U
/tmp/replica-info-devel-U srv2.virt.foo.de
Suponiendo que el programa de instalación se complete sin ningún error, se podrá empezar con la réplica de la base de datos LDAP. Si se ha asignado un fichero de zona DNS separado para la réplica, se tendrán dos servidores independientes. Con el uso de ipa-replica-manage, se podrá ver y modificar cualquier parámetro de replicación que se haya establecido de esta forma.
Sincronización con el Directorio Activo Los administradores pueden utilizar ipa-replica-manage para sincronizar los datos entre un servidor Windows con Directorio Activo y un servidor FreeIPA. La versión en desarrollo actual de FreeIPA ya implementa esta característica. Para ello, se necesita un certificado TLS/SSL en el servidor Windows; esto es obligatorio para la sincronización de los datos entre el servidor del Directorio Activo y FreeIPA. La Wiki de Fedora posee un HOWTO [3]. Ahora hay que copiar el certificado CA utilizado aquí al servidor FreeIPA para verificar el certificado TLS/SSL del servidor del Directorio Activo. Cuando se ejecuta el programa ipa-server-install, el plugin Windows Sync se instala automáticamente. Sin embargo, el plugin no se utiliza a menos que se realice una replicación de datos entre un servidor Windows y un servidor FreeIPA con ipa-replica-manage. La herramienta posee varias opciones nuevas: • winsync – define la replicación de datos entre un servidor Windows y un servidor FreeIPA. • binddn – define la cuenta de usuario para conectarse al Directorio Activo. Este usuario necesita una serie de privilegios (lectura,
Listado 3: Instalación Cliente 01 [root@devel-client ~]# ipa-client-install 02 Discovery was successful! 03 Realm: VIRT.FOO.DE 04 DNS Domain: virt.foo.de 05 IPA Server: devel-srv1.virt.foo.de 06 BaseDN: dc=virt,dc=foo,dc=de 07 08 Continue to configure the system with these values?[y/N]: y
46
Número 52
09 10 11 12 13 14
15 16 17
Created /etc/ipa/ipa.conf Configured /etc/ldap.conf LDAP enabled nss_ldap is not able to use DNS discovery! Changing configuration to use hardcoded server name: devel-srv1.virt.foo.de Kerberos 5 enabled NTP enabled Client configuration complete.
WWW.LINUX- MAGAZINE.ES
Figura 3: FreeIPA almacena la base de datos de Kerberos en un contenedor LDAP.
escritura, búsqueda, cambio de contraseñas, DirSync). • bindpw – especifica una contraseña para la cuenta de un usuario específico. • cacert – define una ruta al certificado CA ASCII/PEM-encoded que se utiliza para firmar el certificado TLS/SSL del servidor Windows. Esta configuración se almacena posteriormente en el repositorio de certificados de FreeIPA. Tras introducir los datos necesarios, el contenedor del usuario del Directorio Activo se sincroniza con el servidor FreeIPA. Todos los clientes IPA Unix/Linux podrán entonces acceder a esta información por medio de una interfaz nativa. Como el proceso de sincronización es unidireccional, los nuevos usuarios que posean cuentas tanto en los clientes Windows como Linux deben crearse primero en el Directorio Activo.
Conclusiones FreeIPA unifica diversas herramientas bajo un mismo paraguas. La versión 1 se centra en el almacenamiento de las identidades. Aunque componentes como certificados, auditorías y gestión de políticas aún no se encuentran disponibles, es fácil ver hacia dónde se dirige el ■ producto.
RECURSOS [1] FreeIPA: http://www.freeipa.org [2] Likewise: http://www. likewisesoftware.com [3] HOWTO Windows Sync: http:// directory.fedoraproject.org/wiki/ Howto:WindowsSync
Educación: Phidgets • LINUX USER
Robótica en el aula
PHIDGETLAB
¿Cómo atravesar la frontera desde el mundo de Squeak al mundo real de los objetos físicos? POR MÁXIMO PRUDENCIO
E
l proyecto PhidgetLab es una atractiva muestra de las grandes posibilidades de trabajo en el aula con Squeak que, como dicen sus autores, permite atravesar la frontera desde el mundo de Squeak al mundo real de los objetos físicos. Con Phidgetlab es posible obtener información a partir de sensores de diferente tipo (de fuerza, temperatura, luminosidad, táctiles, rotación, vibraciones, deslizadores, …) y controlar y programar el funcionamiento de dispositivos externos, tales como motores, relés, diodos, transistores, ..., o mediante las entradas registradas por los sensores, controlar objetos del mundo de Squeak. El Software Architecture Group del Instituto Hasso Plattner de la Universidad de Postdam, dirigido por el Dr. Robert Hirschfeld, ha desarrollado un conjunto de métodos y herramientas destinadas a mejorar la comprensión y el diseño de complejos sistemas mediante el acceso a Phidgets, utilizando Squeak como herramienta de programación de diversos dispositivos conectados al puerto usb de un ordenador personal.
serie de placas usb, de bajo coste, diseñadas para ser controladas desde cualquier ordenador y sistema operativo. Los Phidgets se distribuyen con una serie de interfaces de programación de aplicaciones (APIS) disponibles para la mayoría de las plataformas [1]. El origen de la palabra proviene de los gadgets o widgets, pequeñas aplicaciones ejecutadas por un motor de widgets (Widget Engine). El objetivo de estas miniaplicaciones es muy diverso, princi-
palmente la de dar fácil acceso a funciones usadas frecuentemente y proveer de información visual. Son widgets aquellas aplicaciones que habitualmente añadimos a nuestro panel o escritorio y que nos proporcionan servicios tales como relojes en pantalla, calculadoras, calendarios, agendas, juegos, ventanas de información del tiempo, etc. Los Phidgets son widgets que traspasan la barrera de lo virtual a lo real. Un Phidget es una representación o imple-
¿Qué Son los Phidgets? El término Phidget es un acrónimo de Physical Widget. Los Phidgets son una
Figura 1: Control de dispositivos externos mediante Squeak-PhidgetLab.
WWW.LINUX- MAGAZINE.ES
Número 52
81
LINUX USER • Educación: Phidgets
Instalación de PhidgetLab
Figura 2: Tarjeta Phidget 8/8/8, incluye 8 entradas analógicas, 8 entradas digitales y 8 salidas digitales.
mentación física de un widget. Los Phidgets son sistemas de componentes electrónicos, plug and play, económicos con sensores y operadores que se pueden controlar por un ordenador personal utilizando el puerto serie universal (USB) [2] [3]. Para que el Phidget pueda acceder al sistema se requiere una interfaz de programación de aplicaciones (API), generalmente escrita en lenguaje C, y se pueden programar usando un amplia variedad de software.
Proyecto PhidgetLab Un grupo de estudiantes del Software Architecture Group (formado por Lysann Kessler, Stephanie Platz, Thomas Klingbeil, Philipp Tessenow, and Frank Schlegel), como proyecto de curso, han desarrollado recientemente PhidgetLab, una interfaz de programación de aplicaciones (API) para Squeak y su integración en los Etoys [4] [5]. El trabajo ha consistido en la creación de una interfaz de programación de aplicaciones (API) que permite acceder a Phidgets desde Squeak. El fundamento de la interfaz de programación de aplicaciones (API) es un plugin (PhidgetPlugin) para la máquina virtual de Squeak, escrito en Slang y C, que posibilita la comunicación entre la máquina virtual de Squeak y la interfaz de programación de aplicaciones (API) del Phidget, así como la integración del acceso y control de los Phidgets en el entorno gráfico.
82
Número 52
Para proceder a la instalación de PhidgetLab deberemos, en primer lugar, enchufar al puerto usb del ordenador el Phidget y los sensores y operadores que se vayan a utilizar. El PhidgetInterfaceKit 8/8/8, utilizado por el Software Architecture Group, es una placa de bajo coste que incluye 8 entradas analógicas, 8 entradas digitales y 8 salidas digitales. A continuación será necesario descargar e instalar el software necesario para su uso con Squeak. El proceso consiste en: • Descargar el driver Phidget 21, para la arquitectura utilizada, que contiene la interfaz de programación de aplicaciones (API ). Hay librerías disponibles para Linux y otros sistemas operativos [6]. Instalar la librería Phidget 21. • Descargar la librería del plugin Phidget (Phidgetplugin.dll) y copiarla en el directorio en el que tengamos instalada la máquina virtual de Squeak [7]. • Descargar e instalar los archivos sar, por este orden, Core [8] y Etoys [9]. Para instalar los archivos sar, Core y Etoys, utilizando la imagen de Squeak de Squeakpolis [10] deberemos estar en modo experto, pulsar el botón Escape, seguir la secuencia abrir > lista de archivos, localizar sucesivamente los archivos Phidget-Core.sar y Phidget-Etoys.sar en nuestro disco duro y pulsar, en cada caso, el botón Instalar.
El proyecto consiste en dos paquetes, denominados Phidget-Core y PhidgetEtoys. El paquete Phidget-Core es la interfaz de programación de aplicaciones (API) para Squeak. En tanto que Phidget-Etoys es el encargado de integrar esta funcionalidad en los Etoys, lo que permite su control desde el entorno gráfico de Squeak. Ambos paquetes se distribuyen como archivos *.sar. Un archivo .sar (SqueakARchive) es, en realidad, un archivo zip que puede tener cualquier contenido, incluso otro .sar, y que se puede usar para instalar código en una imagen de Squeak, implementando nuevas funcionalidades. En este caso, los archivos PhidgetCore.sar y Phidget-Etoys.sar trabajan conjuntamente. El archivo Phidget-Core adapta la interfaz de programación de aplicaciones (API) Phidget a Squeak y el paquete PhidgetEtoys.sar integra esta funcionalidad en los Etoys, de modo que sea accesible fácilmente desde el Figura 3: Catálogo de Objetos de Squeak con la categoría Phidgets entorno gráfico. incorporada.
WWW.LINUX- MAGAZINE.ES
Educación: Phidgets • LINUX USER
desencadenarán al activarse. La página del proyecto PhidgetLab ejemplifica, mediante un vídeo incrustado [11], el control de un sencillo e ilustrativo juego de un laberinto flotante con agujeros, a través del cual hacen evolucionar una bola, y al que se han conectado dos servomotores a través del Phidget y su programación con Squeak.
Reconocimientos
Figura 4: Objetos de la categoría Phidgets.
• Por último, guardar la imagen modificada de Squeak que integrará Phidgets, como nueva categoría, en el Catálogo de objetos.
Funcionamiento Utilizando la imagen de Squeak con PhidgetLab se obtiene pleno control sobre los Phidgets conectados a puertos usb desde la imagen de Squeak. Por el momento, los objetos de la categoría PhidgetLab permiten acceder a varios Phidgets que controlan dispositivos físicos. Una vez realizada la instalación de PhidgetLab, el Catálogo de objetos de la imagen modificada de Squeak contendrá una nueva categoría, denominada Phid-
gets, con tres nuevas clases de objetos, Accelerometer, InterfaceKit y Servo 1Motor. Mediante el visor del objeto de cada uno de ellos se puede acceder a las opciones de configuración de su comportamiento. El acelerómetro permite obtener información de la aceleración de un objeto, Servo 1-Motor controlar motores y el InterfaceKit incluye el control de varios sensores, servo motores, acelerómetros de tres ejes, el Kit RFID y el Kit LV Motor. La programación de estos objetos sigue los mismos patrones de la programación gráfica de objetos en Squeak, arrastrando y soltando guiones sobre el mundo y configurando las acciones que
Queremos agradecer expresamente al Software Architecture Group, a los profesores Michael Haupt, Michael Perscheid y Robert Hirschfeld del Instituto Hasso Plattner de la Universidad de Postdam, y al equipo de estudiantes, formado por Lysann Kessler, Stephanie Platz, Thomas Klingbeil, Philipp Tessenow, Frank Schlegel, autores del proyecto PhidgetLab, toda la ayuda prestada para la elaboración de este artículo y la utilización de algunas de ■ las imágenes contenidas en su web.
RECURSOS [1] Página oficial de Phidgets: http:// www.phidgets.com/ [2] ILOP. Distribuidor en España de Phidgets: http://www.ilop.es/ [3] Presentación de Phidgets por el distribuidor en Youtube: http://www. youtube.com/watch?v=nIzPlwmaoQU [4] Página de PhidgetLab: http://www. hpi.uni-potsdam.de/hirschfeld/ projects/phidgetlab/ [5] Descripción del proyecto PhidgetLab: http://www.hpi.uni-potsdam.de/ hirschfeld/projects/phidgetlab/media/ PhidgetLab.pdf [6] Librería Phidget 21: http://www. phidgets.com/drivers.php [7] Plugin Phidget para Linux: http:// www.hpi.uni-potsdam.de/hirschfeld/ projects/phidgetlab/media/source/ PhidgetPlugin [8] Sar Core: http://www.hpi. uni-potsdam.de/hirschfeld/projects/ phidgetlab/media/source/ Phidget-Core.sar [9] Sar Etoys: http://www.hpi. uni-potsdam.de/hirschfeld/projects/ phidgetlab/media/source/ Phidget-Etoys.sar [10] Portal de Squeakpolis: http://squeak. educarex.es/Squeakpolis
Figura 5: Control de dos servomotores en función de los valores de dos sensores analógicos.
WWW.LINUX- MAGAZINE.ES
[11] Vídeo funcionamiento PhidgetLab: http://www.youtube.com/ watch?v=hTcxoIYwpBs
Número 52
83
Más del 30% de descuento respecto al precio de portada: Consigue 12 números por 54’90 Euros y todos los DVDs ¡Gratis!
A diferencia de otras publicaciones, Linux Magazine no llenará tu buzón de recordatorios para que renueves tu subscripción. Ésta se renovará automáticamente cada año. Recibirás una confirmación aproximadamente 30 días antes del final de tu periodo de subscripción, pero no se requiere que hagas nada para seguir suscrito.
¡No te pierdas Linux Magazine nunca más! La subscripción te asegura que recibas los conocimientos Linux de más alta calidad en tu domicilio cada mes.
Si por cualquier motivo decides dejar de leer Linux Magazine, puedes cancelar tu subscripción en cualquier momento. Te abonaremos el precio de todos los números que no hayas recibido. Sin preguntas, sin fechas de cancelación, sin problemas.
Linux Magazine es algo más que una revista de Linux. Patrocinamos grupos, congresos, proyectos y eventos relacionados con el Software Libre. Suscribiéndote a Linux Magazine garantizas que podamos seguir apoyando al Software Libre allá donde haga falta.
EVENTOS
Presentación CREA
Fisol 2009
Fesoli 2009
Lugar: Málaga, España
Fecha: 02 - 03 Oct
Fecha: 14 Nov
Web: www.forman.es
Lugar: Tapachula, México
Lugar: Lima,Perú
Web: www.fisol.org
Web: fesoli.cosolig.org
Fecha: 18 Sep
Calendario de Eventos España e Hispanoamérica Evento Presentación CREA Feria de CREA de Empresas de Soft.Libre Jornadas Lat. Am.y Caribe usuarios gvSIG Festival Internacional de Software Libre Jornadas Regionales del Software Libre Fesoli 2009 MOSKittDay 2009 Resto del Mundo Evento Software Freedom Day 2009 LinuxCon 9th Annual Linux Kernel Summit LUGRadio Live 2009 Plone Conference 2009 FSOSS 2009 USENIX LISA '09 Linux Found. End User Summit SCALE 8x
Fecha 17 Sep 17 Sep 30 Sep - 02 Oct 02 - 03 Oct 07-09 Oct 14 Nov 1 Dic
Ciudad Málaga,España Málaga, España Buenos Aires, Argentina Tapachula,México Santiago,Chile Lima,Perú Valencia,España
Sitio Web www.forman.es www.forman.es gvsig.org/web/community/events/ www.fisol.org www.opencommunity.cl fesoli.cosolig.org www.moskitt.og
Fecha 19 Sep 21 - 25 Sep 18 - 20 Oct 24 Oct 28 - 30 Oct 29 - 30 Oct 01 - 06 Nov 09 - 10 Nov 19 - 21 Feb,2010
Ciudad Mundial Portland,EE.UU. Tokyo, Japón Wolverhampton,R.U. Budapest,Hungría Toronto,Cánada Baltimore,EE.UU. Jersey City,EE.UU. Los Ángeles,EE.UU.
Sitio Web softwarefreedomday.org events.linuxfoundation.org events.linuxfoundation.org www.lugradio.org/live/ plone.org/events/conferences/2009 fsoss.senecac.on.ca/2009 www.usenix.org/events/lisa09/ events.linuxfoundation.org scale7x.socallinuxexpo.org
Información de Contacto Director Paul C. Brown Coolaboradores Paul C. Brown, Máximo Prudencio, José María Ruíz, AOliver Frommel, Klaus Knopper, Jose María Lancho Traductores Paqui Martín Vergara, Lucas González, Víctor Tienda Maquetación Miguel Gómez Molina Diseño de Portada Pinball info@pinball-werbeagentur.de Porsche Carrera GT por Luciano Lourenço http://luciano.kurumin.com.br Free Art License Publicidad www.linux-magazine.es/pub/ Para España Marketing y Comunicaciones anuncios@linux-magazine.es Tel.: (+ 34) 952 020 242 Fax.: (+ 34) 951 235 905 Carmelo Medina cmedina@linux-magazine.es Tel.: (+ 34) 952 020 242 Fax.: (+ 34) 951 235 905 Para el Resto del Mundo Hubert Wiest ads@linux-magazine.com
Tel.: Fax.:
(+49) 8999 34 11 23 (+49) 8999 34 11 99
Director Editorial Paul C. Brown Jefe de Producción Miguel Gómez Molina Subscripciones: www.linux-magazine.es/magazine/subs Precios Subscripción España: 54,90 € Europa: 64,90 € Resto del Mundo - Euros: 84,90 € subs@linux-magazine.es Tel.: (+34) 952 020 242 Fax.: (+34) 951 235 905 Linux Magazine Linux New Media Spain, S.L. Edfco. Hevimar, Planta 2, Ofic. 16 C/Graham Bell nº 6 29590 - Málaga ESPAÑA info@linux-magazine.es Tel.: (+34) 952 020 242 (+34) 951 235 904 Fax.: (+34) 951 235 905 www.linux-magazine.es - España www.linux-magazine.com - Mundo www.linux-magazine.co.uk - Reino Unido www.linux-magazine.com.br - Brasil www.linux-magazine.pl - Polonia
WWW.LINUX- MAGAZINE.ES
Si bien se toman todas las medidas posibles para garantizar la precisión del contenido de los artículos publicados en Linux Magazine, la editorial no se hace responsable de imprecisiones aparecidas en la revista. Asimismo, Linux Magazine no comparte necesariamente las opiniones vertidas por sus colaboradores en sus artículos. El riesgo derivado del uso del DVD y el material que contiene corren por cuenta del lector. El DVD es estudiado escrupulosamente para confirmar que está libre de virus y errores. Copyright y Marcas Registradas © 2009 Linux New Media Spain, S.L. Linux New Media Spain S.L. prohíbe la reproducción total o parcial de los contenidos de Linux Magazine sin su permiso previo y por escrito. Linux es una Marca Registrada de Linus Torvalds. Impreso en Alemania Impresión: F&W Mediencenter Distribución: SGEL Depósito Legal: MA-116-2005 ISSN edición impresa: 1576-4079 ISSN edición online: 1699-2237
Número 52
95
ยกHazte con tus ejemplares atrasados! #41
#42
#43
#44
#45
#46
#47
#48
#49
W W W. L I N U X - M A G A Z I N E . E S / AT R A S A D O S
¡pídelos ya!
el REPOSITORIO
de conocimientos LINUX más COMPLETO ¡No esperes a que se agoten! #50
#51
W W W. L I N U X - M A G A Z I N E . E S / AT R A S A D O S
PRÓXIMO NÚMERO
DISPOSITIVOS E
l enorme abanico de hardware periférico para PCs, combinado con la poca predisposición de algunos proveedores de suministrar drivers para Linux de sus productos, ha obligado a la comunidad de creadores de software libre a desarrollar su creatividad. El mes que viene mostramos algunas herramientas y técnicas para soportar dispositivos en Linux. Vemos el estado del desarrollo de drivers en Linux y algunos de los obstáculos que ha de superar cualquier programador que quiera iniciarse en este campo. Continuamos nuestro recorrido examinando las librerías necesarias para desarrollar código para aparatos multimedia. A continuación analizamos varios trucos que nos harán la vida más fácil, permitiéndonos, entre otras cosas, escribir en ficheros de sólo lectura. Y, por último, aprendemos a mantener datos a salvo con cifrado sobre dispositivos de almacenamiento USB. Manten todos tus periféricos en perfecto funcionamiento con el número 53 de Linux Magazine
ZFS en Linux
En la Punta de los Dedos
A pesar de que Linux ha desplazado en muchos casos a Solaris de la salas de máquinas corporativas, existe al menos un área donde los sistemas de Sun siguen superando técnicamente a los de GNU: El sistema de ficheros Z (o ZFS) dispone de funcionalidades avanzadas, como alta tolerancia ante fallos de disco, soporte para tipos de datos de 128 bits, soporte RAID integrado, compresión online, y mucho más. Aunque no está integrado en el kernel de Linux, no es imposible hacer funcionar ZFS en el sistema. El mes que viene te enseñamos cómo hacerlo.
Mantenerse al tanto de inventarios, historial de mantenimiento y peticiones de soporte de los usuarios es una auténtica pesadilla logística. Un fallo o descuido puede resultar en montañas de trabajo adicionales para su resolución o, incluso, pérdida de clientes y volumen de negocio ¿No sería agradable almacenar todos estos detalles en una única base de datos a la cual pudiéramos acceder a través de una interfaz unificada y amigable? Es justo lo que te traemos en el número de octubre de Linux Magazine.
A LA VENTA: OCTUBRE 2009 98
Número 52
WWW.LINUX- MAGAZINE.ES