índice
En este número
novedades
internet
3
34
6 7
Noticias José Alex Sandoval Morales
Joaquín Rincón
Fedora
Nunca he estado a favor de los servicios de Internet que forman la famosa “nube”, he tenido pésimas experiencias con algunos editores en línea, in embargo, una vez que utilicé el servicio ofrecido por Dropbox (dropbox.com), quedé enganchado literalmente.
Diego Rivero Montes
FreeBSD Osvaldo R. Salazar S.
programación
seguridad
8
38
Gestión de backups mediante Bacula Francisco Olcina Grande
Uno de los trabajos más importantes que debe realizar un administrador de sistemas es el de realizar copias de seguridad periódicas verificando que se han efectuado correctamente, y que se pueden restaurar con relativa facilidad. Muchos administradores descuidan estas tareas, o bien las realizan mediante complejos scripts que carecen de la flexibilidad que proporcionan otros programas existentes. Bacula es una solución Open Source que permite al administrador gestionar sus backups de una manera cómoda, flexible, y eficaz.
18
Ad|Quiere: distribución gratuita para imágenes forenses
Acceso a BBDD MySQL usando PHP Diego J. García
Desde hace varios años los creadores de páginas web no se dan por satisfechos con una simple página en HTML sino que además le añaden algún lenguaje de programación de scripts para generar páginas dinámicas en el servidor. Al profundizar en el dinamismo de las páginas con lenguajes de script se hace más y más necesaria la dinamización de los propios contenidos. Una forma de solucionar este problema es añadiendo una base de datos de la cual recoger la información insertada por los diferentes usuarios.
música y Linux
46
Francisco Lázaro
CheapSounD: Chiptunes, LoFi, Soundtrackers, 8-bits Bands y otras rarezas Lino García Morales
En los comienzos de la Informática Forense los investigadores se limitaban a copiar los archivos que les podían servir como evidencia. Si sospechaban que algunos de ellos habían sido borrados intentaban recuperarlos con 'undelete' -aquel misterioso comando que solo conocían los gurús autodidactas del MS-DOS-. La búsqueda de carácteres se llevaba a cabo con el Norton Disk Editor. No pocas veces sorprendimos de este modo al legendario Viernes 13 agazapado en las interioridades de nuestro sistema.
CheapSound (al igual que en el artículo Linux SmartCheap. Construcción desde la nada, publicado en LiNUX+ 7/2010, www.lpmagazine.org, pp.3743) es un juego fonético entre Cheap/Chip juega con los conceptos barato/ [circuito integrado] en una clara alusión al sonido producido por tecnología electrónica pero no por cualquiera sino por aquella relacionada con los vídeo juegos y, más en concreto, con el chip SID (Sound Interface Device) 6581/8580 de MOS Technology y toda la revolución estética que supuso.
soluciones para empresas
opinión
26
50
Virtualización en Entornos Corporativos Marcos Blanco Galán
La virtualización ha dejado de ser una inversión de futuro, su evolución y consolidación en los últimos años la convierten en una clara necesidad para aumentar la competitividad de la empresa. Reducción de costes de operación y mantenimiento, optimización de recursos hardware, eficiencia energética, seguridad y alta disponibilidad son sólo algunas características que hacen de la virtualización el aliado perfecto en entornos corporativos.
30
“¿Café? No, gracias”, respondió el servidor DNS Fernando de la Cuadra, director de Educación de Ontinet.com
Hace algún tiempo, con un gran amigo, pensamos en escribir una pequeña novela de terror, pero de “terror informático”. Estaría basada en la caída globalizada de Internet un día de estos. Sí, eso es poco probable, no es tan fácil hacer que todos (¡todos!) los servidores se caigan a la vez, pero caramba, era una novela, ¿no?
Consejos Prácticos en Seguridad TI Josías Galván Reyes
Este artículo tiene como objetivo ofrecer consejos prácticos a las problemáticas comunes relacionadas a la seguridad de las tecnologías de información, detectadas en las PYMES, donde los ambientes heterogéneos son una realidad recurrente.
2
Dropbox: Mantén tus archivos sincronizados en la nube
LiNUX+ 9/2010
novedades sección llevada por Alex Sandoval Noticias
Oracle vs Google: todos mienten
E
n primer lugar, la libertad de Java es indiscutible, pero es un tema de patentes. Por eso es vital entender la diferencia entre una y otra. Una licencia se puede definir como un contrato en el cual se establecen los derechos que cede el propietario original sobre una tecnología. Así, la GPL establece las cuatro conocidas libertades para quienes quieran usar Software Libre, en tanto que otras licencias, las propietarias por ejemplo, establecen diversas limitaciones y generalmente el pago de un canon por el uso de tecnología. Las patentes son distintas y originalmente tenían como objetivo principal proteger la innovación y al inventor para evitar que otra persona saque beneficios de un invento que no le corresponde. De esa forma instituciones y personas podrían desarrollar e invertir en sus inventos con mas tranquilidad, aunque el asunto se ha desvirtuado bastante con respecto a ese noble objetivo. En base a eso, Google o cualquiera en el mundo, puede usar libremente Java y el código fuente. Las aplicaciones generadas con este lenguaje pueden ser libres y además se pueden usar en distintas plataformas. Pero para garantizar esa “portabilidad“, se crearon estándares, estándares que definió Sun y que quedaron integrados en el código genético de la maquina virtual Java. Las patentes ayudaban a Sun a asegurarse de que nadie pudiera re-implementar Java y creara nuevos estándares incom-
Ha pasado de todo, desde decir que Oracle pretende destruir el Open Source , hasta… absolutamente lo contrario, y frente a todo ese caos de opiniones controvertidas, declaraciones y contra-declaraciones, no me queda más que llegar a la misma controvertida filosofía aplicada miles de veces por el “reconocido” doctor House: “el paciente siempre miente”.
patibles con la tecnología original de Sun. Esto me recuerda cuando hace algunos años Microsoft intentó crear su propia implementación de Java que funcionaba “de maravilla” …en Windows, lo cual se convirtió en un “escándalo” y que sólo tras una pequeña batalla, con indemnización de por medio, se logró que Microsoft desistiera de sus intentos por crear un “Microsoft Java”. Bueno, lo que hizo Google con Dalvik no es muy diferente de lo que intentó hacer Microsoft en su momento, una máquina independiente y distinta a la máquina original de Java, que eventualmente, sentaría un nuevo estándar. Por supuesto, Google no busca reemplazar la máquina Java “normal”, pero la industria tiende a generar y adoptar sub-estándares fácilmente cuando hay dinero de por medio y no es poco el que hay en torno a Android. Es difícil imaginar a Sun, con su decaída situación financiera, llevando a cabo un largo y duro juicio contra Google, sin embargo, tampoco es que estuviera “fuera de su código genético” hacerlo. La demanda contra Google era otra carta puesta en la mesa de negociaciones entre Oracle y Sun, como ya lo demostraba la declaración de James Glosing. Entonces, finalmente no hay un ataque de Oracle hacia la comunidad Open Source, por lo menos no de la forma que Google lo plantea, sino que es un ataque sólo contra él, y eso lo saben bien en Mountain View. Oracle comienza a hacer lo que Sun, por más que lo niege, siempre quiso hacer (y no supo como): sacar dividendos directos de la tecnología Java usada en Android. Esto nos deja con que Sun tampoco era ningún ”santo” (o víctima como lo dicen algunos), y la demanda contra Google hubiera llegado de todas maneras. También nos muestra que Google no hizo las cosas bien al principio y probablemente le cueste muy caro su error. Y por ultimo, Oracle… ¿tenía la necesidad de decir “Java”? Cuando tus “grandes” acciones relacionadas Open Source han sido escuetas, pocas y hasta malas (si consideramos lo de OpenSolaris), debes tener conciencia del cuidado que debes poner en tus palabras. Oracle simplemente hizo lo que muchos “propietarios” hacen todas las semanas, pero pasando por alto el factor
www.lpmagazine.org
NE WS
Chat con video y audio en Gmail llega a Linux vía el navegador
Es algo que quizás muchos usuarios de sistemas operativos basados en Linux estaban esperando, Google finalmente hizo posible la utilización del videochat mediante el navegador en el servicio de correo Gmail, terminando así las miradas celosas hacia otras plataformas que sí soportan este medio de comunicación. La disponibilidad está en distribuciones de Linux basadas en Debian, como por ejemplo el popular Ubuntu, y para acceder a esta funcionalidad sólo basta con dirigirse a gmail.com/videochat y descargar el plugin o software adicional correspondiente para así disfrutar de los beneficios del chat con video y audio con tus contactos de Gmail. http://www.chw.net/2010/08/chat-convideo-y-audio-en-gmail-llega-a-linuxvia-el-navegador/ Google cierra vulnerabilidades criticas en Chrome 5
Google ha lanzado la versión 5.0.375.127 de Chrome, una actualización de seguridad que se dirige a dos vulnerabilidades "críticas" y seis "alto riesgo" en su navegador basado en WebKit. Según los desarrolladores, uno de los problemas críticos estaba relacionado con el diálogo de archivo que podría dar lugar a corrupción de memoria, mientras que el segundo podría causar una caída en el apagado debido a un fallo en las notificaciones. http://www.h-online.com/security/news/ item/Google-closes-critical-vulnerabilitiesin-Chrome-5-1062480.html Valve: “No habrá ninguna versión de Steam para Linux”
Los usuarios de Linux nos las prometíamos muy felices con los rumores que habían aparecido sobre el posible desarrollo de un cliente nativo de Steam en Linux. Esta plataforma de distribución de juegos a través de Internet ha sido todo un éxito en Windows, y no hace mucho los desarrolladores de Valve lanzaban la versión para Mac OS X. Eso hizo pensar que la empresa podría estar preparando una versión de Steam para Linux, y de hecho en al menos dos ocasiones parecía haber confirmación oficial de que habría una versión de dicho cliente, e incluso de que éste llegaría pronto, algo que podría haber impulsado a este sistema operativo también como alternativa para los amantes de los videojuegos.Sin embargo una reciente entrevista concedida a GamesIndustry por Doug Lombardi, uno de los directivos de Valve, éste dejó claro que los usuarios de Linux tendremos que olvidarnos de tal posibilidad: “No hay ninguna versión de Linux en la que estemos trabajando en estos momentos”. Esperemos que esas declaraciones no sean tan definitivas como parecen y que Valve no haya cerrado la puerta definitivamente a esa posibilidad. http://www.muylinux.com/2010/08/23/ valve-no-habra-ninguna-version-de-steampara-linux
3
NE WS
novedades Noticias sección llevada por Alex Sandoval
Corrigen vulnerabilidad de casi 6 años de antigüedad en el núcleo de Linux
A principios de este mes se liberaba la versión 2.6.35 del kernel de Linux, pero un hecho poco conocido era que tanto esta nueva versión, como las anteriores poseían una vulnerabilidad que permitía acceso como root a usuarios con privilegios limitados. Cuyo parche fue recientemente liberado. Dicha vulnerabilidad conocida como el bug de corrupción de memoria, fue descubierta por el investigador Gael Delalleu allá por el 2004, y explotaba un atributo heredado de la arquitectura x86 diseñada por Intel, por el cual 2 regiones de memoria del X Server que crecen en direcciones opuestas en el espacio de direcciones. Explotando dicho fallo los atacantes pueden forzar a que ambas regiones de memoria colisionen, provocando que datos de control críticos sean reemplazados por valores que permitan que X Server sea “secuestrado”. Marcus Meissner del SUSE Security Team indica que Andrea Arcangeli, SUSE maintainer, proporcionó una solución para el problema en septiembre de 2004, pero por razones desconocidas esta revisión no se incluyó en el kernel de Linux. SUSE mismo tiene la corrección y SUSE Linux Enterprise 9, 10 y 11, así como también openSUSE desde la versión 11.1 a la 11.3 no presentan esta vulnerabilidad. El núcleo de Linux ha sido finalmente purgado de una vulnerabilidad de escalamiento de privilegios que por lo menos durante media década permitió que usuarios locales sin privilegios consiguieran acceso sin trabas a los lugares más seguros del sistema operativo. http://microteknologias.wordpress.com/ 2010/08/23/corrigen-vulnerabilidadde-casi-6-anos-de-antiguedad-en-elnucleo-de-linux/ Tienes 30 segundos para arrepentirte de ese mail en Gmail
¿Tomaste mucho ayer y enviaste un correo incómodo a la persona equivocada? ¿Te enojaste con alguien y le escribiste una horrible carta, pero cuando hiciste clic dijiste '¡oh no! ¿qué he hecho’? Pues si eres una persona que le suelen ocurrir estas cosas, ahora Gmail te da 30 segundos para cambiar de idea.Dentro de los Labs, existe una alternativa que está disponible desde hace algún tiempo y se llama “Deshacer el envío” (Undo Message), que en la última actualización ha ampliado el tiempo para arrepentirse hasta 30 segundos (al principio tenías apenas 5). La opción es ideal para remediar a tiempo correos donde se te olvida agregar el archivo adjunto, o si pusiste a la persona equivocada en la barra de destinatario, o si después de hacer clic en enviar te acordaste de que te faltó agregar algo en el mail. Se puede configurar haciendo clic en el botón de Labs de tu Gmail y habilitando la opción. http://www.fayerwayer.com/2010/08/tienes30-segundos-para-arrepentirte-de-esemail-en-gmail/
4
“comunidad Open Source“, un factor clave en la adopción de Java frente a .NET, por ejemplo, y que ahora lo deja un punto abajo en el marcador de esta dura batalla, donde precisamente Java tenia la “ventaja” de ser mas libre, abierto y “puro”, si cabe decirlo. ¿Qué es lo peor de todo esto? Pues que se genera una suerte de FUD (Fear, Uncertainty and Doubt) contra el Open Source, donde el mensaje vendría a ser: “el Open Source es vulnerable y su modelo de negocio no es seguro”, haciendo que las miradas se concentren inevitablemente en MySQL, MariaDB y OpenOffice. Lamentablemente este mensaje no solo lo dirige Oracle, sino que también firman en
él Google y Sun Microsystems. Sin embargo nada de esto debiera servir para que repudiemos o rechacemos a los actores antes mencionados. Eso seria tan dañino como cerrar los proyectos (que, sea como sea, siguen adelante). Más bien debemos aprender las lecciones y no permitir que un par de “actuaciones” nos “revolucionen” y nos hagan caer en un juego de “FUD”, comprendiendo que cuando hay de por medio, prestigio, apariencias, personas y muchísimo dinero, se hace evidente en el mundo empresarial una gran verdad: “Todos mienten”. http://www.muylinux.com/2010/08/23/ oracle-vs-google-todos-mienten
Oracle “asesina” a OpenSolaris
U
n mensaje interno de Oracle a sus empleados ha dejado claro que la empresa no invertirá más recursos en la versión comunitaria y de Código Abierto de Solaris, lo que cierra el desarrollo oficial de Open Solaris. Hace tiempo que se mascaba esta noticia de una empresa que abandona esta solución Open Source, aunque afortunadamente el proyecto Illumos del que hablamos recientemente retoma el desarrollo de OpenSolaris allí donde éste se quedó. El mensaje interno o memo estaba firmado por Mike Shapiro, Bill nesheim y Chris Armes, y fue publicado en el blogdel desarrollador del kernel de OpenSolaris Steven Stallion con el título “Open Solaris está muerto”, algo que parece muy claro tras ver el contenido del mensaje interno. “Todos los esfuerzos de Oracle en distribuciones binarias en tecnología Solaris se centrarán en Solaris 11. No publicaremos binarios de otras distribuciones, como por ejemplo compilaciones quincenales o nocturnas de binarios de Solaris, ni tampoco publicaremos OpenSolaris 2010.05 o una versión posterior. Determinaremos una forma simple y eficiente en coste que permita a los usuarios empresariales de OpenSolaris y de sus versiones binarias migrar a Solaris 11 Express”. Oracle hace referencia a dos razones para esta decisión. En una de ellas indican que “no podemos hacerlo todo“, y revelan que sus recursos de ingeniería
LiNUX+ 9/2010
Afortunadamente no todo son malas noticias: la empresa seguirá poniendo a disposición de los usuarios el código que ya estaba disponible bajo licencia CDDL -aunque es probable que no se renueve dicho código-, pero además los antiguos desarrolladores de OpenSolaris centrarán ahora sus esfuezos en Illumos, un nuevo proyecto que retomará el camino de OpenSolaris y que esperamos tenga mucho éxito.
y desarrollo son limitados, y que tienen que centrarse en algunas áreas clave. La segunda razón es aún más clara: “Queremos que se acelere la adopción de nuestra tecnología y nuestra propiedad intelectual, sin permitir a nuestros competidores que saquen ventaja en los negocios a partir de nuestras innovaciones antes de que nosotros mismos lo hagamos”. Esta segunda razón deja claro que Oracle no tiene la mentalidad Open Source que Sun defendió con cada vez mayor fuerza en los últimos tiempos, algo que se confirma con la demanda que Oracle registró contra Google y contra el uso de Java en Android hace muy pocos días. http://www.muylinux.com/2010/08/16/ oracle-asesina-a-opensolaris
internet Dropbox
www.lpmagazine.org
37
novedades Fedora sección llevada por Diego Rivero Montes
Microsoft y Linux
A finales de julio podíamos leer la opinión de Red Hat sobre la contribución de Microsoft al kernel de Linux. Textual y básicamente la empresa del sombrero rojo viene a decir lo que sigue: “Microsoft ha aportado una contribución significativa al kernel de Linux bajo la licencia pública GNU 2. Esta es una noticia importante. Parece que fue ayer cuando Microsoft situaba a Linux, el software libre y las licencias GPL en el eje del mal. Ahora Microsoft ha dado un paso creíble para convertirse en un miembro de la comunidad Linux. Red Hat, como mayor contribuidor corporativo al kernel de Linux, se complace en reconocer la aportación de Microsoft y le anima a seguir por este camino”. Sin embargo Red Hat sigue objetando que para que Microsoft pueda ser un miembro de pleno derecho de la comunidad aún es necesario que salve algún escollo: “A lo largo de los años, los miembros individuales y corporativos de la comunidad han dejado claro formal e informalmente que no van a mantener o amenazar con litigios sobre patentes en el terreno de Linux. La amenaza de las patentes es incompatible con las normas y los valores que sustentan el núcleo de Linux. Para ganarse el respeto y la confianza de la comunidad Linux, Microsoft debe desechar inequívocamente estos comportamientos y comprometerse a que sus patentes nunca serán usadas contra Linux o contra otros desarrolladores de código abierto o usuarios”. Ahora la pelota está en el tejado de Microsoft a ver como responden y en consecuencia se les tratará. Conferencia Internacional sobre Software Libre
La primera conferencia internacional de Software Libre CISL 2010 Argentina, será realizada el 7 del próximo mes de septiembre y tendrá lugar en la Biblioteca Nacional. Este evento, organizado por la Fundación Sociedades Digitales y la Cámara Argentina de Empresas de Software Libre, contará con la participación de Jon “Maddog” Hall, de Linux International, como figura principal entre participantes llegados desde Brasil, Ecuador, España, Paraguay y Venezuela. Lo que se pretende con este tipo de conferencias es dar una imagen de la realidad que se vive en el Software Libre y de Código Abierto en todos los aspectos de la sociedad, ya sea a nivel privado como público además de estar respaldado por entes de la talla de Red Hat así como Linux Internacional e igualmente patrocinado por el Distrito Informático La Plata, La Junta de Extremadura (España) y SOLAR (Argentina) así como también cuentan con el apoyo de comunidades como Morfeo Cono Sur, Elastix, Latinux, Mozilla.
6
Fedora 14 se retrasa
E
n cada liberación de nuestra distribución se barajan multitud de parámetros que influyen en que esté o no a punto para salir y estar a disposición de todos los usuarios en la fecha que en un primer momento se establece ya que aunque los plazos se suelen establecer para que haya un lapso suficiente de tiempo en el que todo pueda estar listo, siempre pueden surgir imprevistos que trastocan todas las previsiones.
Esta vez, la release número 14 de la que se esperaba que en el mes de agosto fuera liberada la versión Alfa, va a ser definitivamente retrasada, así lo han estimado los responsables de los departamentos de Ingeniería y Desarrollo en el control de calidad, lo que significa que en lugar de para el 24 de octubre del año en curso la versión definitiva de Fedora 14 si no se producen más retrasos estará operativa a partir del 2 de noviembre.
Problemas con actualizaciones Fedora 13
A
primeros de agosto pudimos leer que se había encontrado un bug que no permitía que se enviasen las notificaciones sobre las actualizaciones y por lo tanto estas pasaran inadvertidas y no descargadas. Muchos de los usuarios cuando se dieron por enterados y buscaron las actualizaciones pudieron comprobar que tenían gran cantidad de software que actua-
FudExp
S
iempre es agradable observar que en el mundo del software libre se promuevan iniciativas que tiendan a su difusión y que cada día son más los interesados en las nuevas tecnologías basadas en sistemas Unix. En este caso podemos comprobar cómo la comunidad Fedora de Perú ha tenido la gran idea de organizar la FudExp para que todos aquellos que tengan inquietudes a este respecto puedan tener la ocasión de asistir y aprender y a la vez aportar su granito de arena. Si las cosas van como parecen, cuando estén leyendo estas líneas se habrá realizado la FudExp o Fedora Users & Developers Experience, el Colegio Juana Alarco de Dammert, en la ciudad de Lima (Perú) que según parece se realiza el 28 de agosto. FudExp es una reunión, una experiencia donde se pueden adquirir nuevas habilidades, destrezas y conocimientos y que tiene dirigido el proyecto Fedora a todos los estudiantes de Sistemas. No se trata de una simple conferencia, es también un taller en el que se pueden aclarar dudas y adquirir múltiples conocimientos, en definitiva es como estar en una clase de Software Libre con el Proyecto Fedora.
LiNUX+ 9/2010
lizar, así que para corregir el bug y volver a tener las actualizaciones la solución vino del propio equipo de Fedora como era de esperar, abrimos una terminal de línea de comandos y escribimos: su -c yum -y –skip-broken update.
Y listo ya tenemos las notificaciones funcionando de nuevo. Por supuesto las disculpas de Jared Smith líder del proyecto ya están en la web oficial.
El equipo planificador de FudExp Lima es: • • • •
Henry Anchante Castro (main coordinator) Joel Porras (coordinator) Peter Ccopa (Designer / Material) María Leando (Diseño)
Aunque a la hora de redactar esta noticia queda por confirmar la asistencia de alguno de los ponentes, habrán sido los siguientes: • • • • •
Mario Lacunza – Perú –OpenOffice.org Henry Anchante – Perú – Proyecto Fedora Hernán Pachas – Perú – Fedora y OLPC / Comunidad Edgar Rodolfo – Perú – Fedora user / Comunidad Julio Yupanqui – Perú – Seguridad con Fedora
Por otra parte decir que el acontecimiento no cuenta con presupuesto alguno y es de agradecer que surjan iniciativas como ésta.
novedades BSD
sección llevada por Osvaldo R. Salazar S.
EuroBSDCon 2010
D
el 8 al 10 de octubre del presente año se realizara en Karlsruhe, Alemania, el EuroBSDCon, gran evento europeo donde se reunirán varios usuarios y desarrolladores de Europa y de otras partes del mundo. Se contará con la asistencia de Marshall Kirk McKusick, Jeffery Roberson, Dru Lavigne, Hans-Martin Rasch, Kris Moore, Klaus P. Ohrhallinger, Vassilis Laganakos, Dominic Fandrey, Patrick M. Hausen, Warner Losh, Gábor János Páli, Reyk Floeter, Marc Espie, Marc Balmer, Hans Petter Selasky, Erwin Hoffmann, Renato Bothelo, Thordur Bjornsson, Owain Ainsworth, Henning Brauer, Martin Matuska, James Gritton y Bjoern A. Zeeb
Guillermo Amaral en Campus Party México
por mencionar algunos de los participantes. También se ofrecen, hasta el momento, algunos tutoriales, entre los que se encuentran: “An Introduction to the FreeBSD Open-Source Operating System”, “Halfday tutorial: Introduction to NETGRAPH on FreeBSD Systems”, “pfSense 2.0 Tutorial” y “Building the Network You Need with PF, the OpenBSD packet filter” proporcionados por Marshall Kirk McKusick, Adrian Steinmann, Chris Buechler, Peter Hansteen, respectivamente. Si necesitas más información y, principalmente, registrarte para este evento puedes ingresar a http://2010.eurobsd con.org
IV Congreso Internacional de Software Libre
E
l Grupo de Usuarios de GNU/Linux de la Laguna (www.gulag.org), asociación regional, sin ánimo de lucro, con cuatro años de existencia, realizará en Torreón, Coahuila, México, el IV Congreso Internacional de Software Libre. El 10 y 11 de septiembre los grandes gurús nos compartirán sus experiencias, y se impartirán talleres para poner en práctica programas libres y ejerceremos nuestra libertad de compartir conocimientos y software. La universidad sede este año es el Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Laguna. La propuesta central de las conferencias de esta edición del Congreso es compartir las experiencias del uso del software libre en la iniciativa privada y en el gobierno. También se realizarán talleres, donde aprenderemos y pondremos en práctica lenguajes de programación y detección de vulnerabilidades de sistemas operativos. Tenemos la expectativa de reunir un mínimo de 200 personas interesadas en las tecnologías informáticas. La inscripción está abierta, y será gratuita, para cualquier estudiante, profesional, maestro, funcionario, investigador o apasionado del universo del software presente y futuro de nuestra era informática. Para registrarse, entrar a http://congreso.gulag.org.mx. Nuestro objetivo es compartir con toda la comunidad el software, los conocimien-
tos, las ventajas y la filosofía del software libre. Como personas encontramos en éste el mejor camino para aprender, estudiar y trabajar; como empresarios usamos un software económico, seguro y poderoso; como funcionarios públicos representa estándares abiertos, un gran ahorro en el presupuesto y también el fomentar la creación de empresas regionales; como investigadores, estamos a la par de los centros científicos del primer mundo. El lema del Congreso es ¡Vive Libre! ¡Elige tu software libre! porque sabemos que el software trasciende a nuestra forma de vivir, de trabajar y de pensar. Para vivir en libertad de aprender, desarrollar y compartir usamos software libre. Y en ejercicio de esa libertad, también está la de elección, porque podemos escoger entre miles y miles de programas elaborados por voluntarios, empresas y gobiernos. Por último, la libertad de compartir, queremos invitarte a ti a que experimentes esta forma de pensar. Es nuestra meta, como partidarios del movimiento de software libre, que nuestra comunidad comparta conocimientos, experiencias y filosofía. Para mayor información pueden consultar nuestro sitio en Internet http://con greso.gulag.org.mx, ahí encontrarán el programa, los conferencistas, los talleres y la forma de registro del Congreso.
www.lpmagazine.org
Campus Party México, más de 6000 asistentes, en el área dedicada a Software Libre sube al estrado Guillermo Amaral, promotor del uso de KDE, FreeBSD, PC-BSD y del conocimiento libre entre usuarios. De una manera amena... muy amena mostró el trabajo del equipo KDE, trabajo muy interesante y divertido, puesto que el equipo de KDE trabaja muy bien, en armonía y colaboración, en constante comunicación y abundante imaginación; hecho que quedó por demás demostrado en las imágenes que mostró el buen Guillermo. Parte de la plática estaba también destinada a los usuarios que no habían tenido contacto con KDE, invitándolos a probar KDE y si es en un sistema operativo como FreeBSD o PC-BSD, ¡mejor! :) Muchos de los asistentes se llevaron un DVD con este sistema operativo y la mayoría de ellos lo probaron en ese momento dibujando una sonrisa al verlo trabajar es sus equipos. Otra parte de la plática fue dirigida para los usuarios de KDE y todo aquel que quisiera (sea usuario o no) a colaborar con la promoción, distribución y enseñanza de KDE, FreeBSD y PC-BSD. Esta parte es una de las más interesantes, sin quitarle el mérito a todo lo anterior, ya que es una de las cosas que el mundo del Software Libre le falta: Promoción. Se invitó a todos los asistentes a participar y promover KDE; al momento de preguntar quienes deseaban colaborar se vieron muchas manos alzadas (una de ellas era la de un servidor) ya que no les importaba tanto el viajar de una ciudad a otra dentro de México, o ir de un país a otro, sino el dar a conocer la ventaja de usar KDE junto con FreeBSD o PC-BSD... muy bien, a muchos si les gustó la parte del viajar. Al término de la plática, muchos recibieron sus “cuernitos”, sus DVDs de PC-BSD y posaron para la foto... a partir de ese momento, en el evento Campus Party México se vieron varios diablitos, todos con una gran sonrisa y no era para menos... Guillermo los contagió con su natural alegría. Para todo aquel que desee colaborar para KDE, pueden unirse a las listas de correo y a la lista de colaboradores en www.kde.org. Y si te interesa colaborar para KDE México, puedes agregarte a la siguiente lista de correo https://mail.kde.org/mailman/listinfo/kdemexico. Blog oficial PC-BSD
En el mes de agosto fue lanzado el blog oficial de PC-BSD en donde todos los usuarios de este sistema operativo pueden estar al tanto de las noticias. Este blog fue lanzado por Dru Lavigne, quien maneja “A Year in the Life of a BSD Guru” en la red, autor de “BSD Hacks”, “The Best of FreeBSD Basics”, y “The Definitive Guide to PC-BSD”. Blog muy completo sobre PC-BSD y que asiste ya a varios usuarios de este poderoso sistema operativo, puedes ingresar a: http:// blog.pcbsd.org y dejar tu comentario, duda o aportación.
7
seguridad Gestión de backups mediante Bacula
Gestión de backups mediante Bacula Francisco Olcina Grande
es@lpmagazine.org
Uno de los trabajos más importantes que debe realizar un administrador de sistemas es el de realizar copias de seguridad periódicas verificando que se han efectuado correctamente, y que se pueden restaurar con relativa facilidad. Muchos administradores descuidan estas tareas, o bien las realizan mediante complejos scripts que carecen de la flexibilidad que proporcionan otros programas existentes. Bacula es una solución Open Source que permite al administrador gestionar sus backups de una manera cómoda, flexible, y eficaz.
E
n el presente artículo se mostrará un • ejemplo de implantación de una política de backups, para un sistema real, utilizando Bacula. •
Introducción
Bacula es un conjunto de programas que permite al administrador de sistemas realizar copias de seguridad, así como restauraciones de datos localizados en una • red de ordenadores. También puede ser configurado para funcionar en un único ordenador, y puede realizar • las copias en varios medios de almacenamiento. La plataforma mostrada en este artículo, y de la cual se quiere realizar copias de seguridad, consta de las siguientes máquinas: Superlopez, Carpanta y Vicky. Por otro lado, la información a respaldar en todo el sistema será: • • • •
Director: es el centro de decisiones de Bacula, dirige el resto de componentes. Lanza los trabajos, autentica contra los clientes, y controla las operaciones de backup. File Daemon: recibe las instrucciones del Director y se conecta con el sistema de ficheros del cliente para copiar los datos que el Director solicite. Storage: es el encargado de escribir los datos extraídos de cada cliente en un soporte físico. Catalog: es una base de datos donde se guarda la información de los trabajos realizados y de su información relativa: ficheros copiados, tamaño, sumas MD5 de los mismos,...
El sistemas de ficheros raíz de cada máquina. Varios repositorios SVN alojados en la máquina Carpanta. Varias bases de datos MySQL en Superlopez. Un directorio LDAP en Carpanta.
Se ha diferenciado entre servicios y ficheros porque la copia de los datos de dichos servicios ha de ser realizada mediante volcados, utilizando los programas que cada servicio ofrece a tal fin. Si únicamente se copian los directorios que cada servicio utiliza, se obtendrá una copia inconsistente, al estar siendo utilizados en el momento de copiarse.
Funcionamiento de Bacula
En la Figura 1 se puede observar el esquema de funcionamiento de Bacula basado en los siguientes Figura 1. Esquema de funcionamiento de Bacula programas:
8
LiNUX+ 9/2010
seguridad Gesti贸n de backups mediante Bacula
Listado 1a. Fichero de configuraci贸n del Bacula Director Director {
# define myself
Name = superlopez-dir DIRport = 9101
# where we listen for UA connections
QueryFile = "/etc/bacula/scripts/query.sql" WorkingDirectory = "/var/lib/bacula" PidDirectory = "/var/run/bacula" Maximum Concurrent Jobs = 1 Password = "XXXXXXXXXXXXXXXX"
# Console password
Messages = Daemon DirAddress = xxx.xxx.xxx.xxx } JobDefs { Name = "backup-raiz" Type = Backup Level = Incremental FileSet = "raiz" Schedule = "WeeklyCycle" Storage = File Messages = Standard Pool = Default Priority = 10
Client Run Before Job = "mount /mnt/raiz" Client Run After Job = "umount /mnt/raiz" } Job { Name = "backup-raiz-superlopez" JobDefs = "backup-raiz" Client = superlopez-fd Write Bootstrap = "/var/lib/bacula/backup-raiz-superlopez.bsr" } ## Aqu铆 aparecer铆a el
Job
backup-raiz-carpanta y
backup-raiz-vicky
Job { Name = "backup-ldap" Client = carpanta-fd Write Bootstrap = "/var/lib/bacula/ldap.bsr" Type = Backup Level = Incremental FileSet = "ldap" Schedule = "WeeklyCycle" Storage = File Messages = Standard Pool = Default Priority = 10
Client Run Before Job = "/root/scripts/ldap.sh" Client Run After Job = "rm /root/ldap.ldif" } Job { Name = "backup-mysql" Client = superlopez-fd Write Bootstrap = "/var/lib/bacula/mysql.bsr" Type = Backup Level = Incremental FileSet = "mysql" Schedule = "WeeklyCycle" Storage = File
www.lpmagazine.org
9
seguridad Gesti贸n de backups mediante Bacula
Listado 1b. Fichero de configuraci贸n del Bacula Director Messages = Standard Pool = Default Priority = 10
Client Run Before Job = "/root/scripts/mysql.sh" Client Run After Job = "rm /root/dump.sql" } Job { Name = "backup-svn" Client = carpanta-fd Write Bootstrap = "/var/lib/bacula/svn.bsr" Type = Backup Level = Incremental FileSet = "svn" Schedule = "WeeklyCycle" Storage = File Messages = Standard Pool = Default Priority = 10
Client Run Before Job = "/root/scripts/backup_svn.sh" Client Run After Job = "rm /tmp/svn/*.tgz" } Job { Name = "restore-raiz-superlopez" Type = Restore Client=superlopez-fd FileSet= "raiz" Storage = File
Pool = Default
Messages = Standard Where = /tmp/bacula-restores Bootstrap = "/var/lib/bacula/backup-raiz-superlopez.bsr" } ## Aqu铆 aparecer铆an el resto de Jobs de tipo restore:
restore-raiz-carpanta, restore-raiz-vicky, restore-
mysql, restore-ldap, y restore-svn. La unica diferencia entre cada uno de ellos el el cliente donde se ejecutan, el fileset, y el bootstrap utilizado.
# List of files to be backed up FileSet { Name = "raiz" Include { Options { signature = MD5 compression=GZIP } File = /mnt/raiz } Exclude { File = /mnt/raiz/var/tmp File = /mnt/raiz/var/lib/mysql File = /mnt/raiz/var/lib/svn File = /mnt/raiz/var/lib/ldap } }
10
LiNUX+ 9/2010
seguridad Gesti贸n de backups mediante Bacula
Listado 1c. Fichero de configuraci贸n del Bacula Director FileSet { Name = "ldap" Include { Options { signature = MD5 compression=GZIP } File = /root/ldap.ldif } } #Aqui estar铆a el FileSet de mysql, similar al de Ldap, pero respaldando el fichero dump.sql FileSet { Name = "svn" Include { Options { signature = MD5 } File = /tmp/svn } } Schedule { Name = "WeeklyCycle" Run = Full 1st sun at 23:05 Run = Differential 2nd-5th sun at 23:05 Run = Incremental mon-sat at 23:05 } # This schedule does the catalog. It starts after the WeeklyCycle Schedule { Name = "WeeklyCycleAfterBackup" Run = Full sun-sat at 03:10 } # This is the backup of the catalog and bootstrap files FileSet { Name = "Catalog" Include { Options { signature = MD5 } File = /var/lib/bacula/bacula.db } } # Clients (File Services) to backup Client { Name = superlopez-fd Address = superlopez FDPort = 9102 Catalog = MyCatalog Password = "xxxxxxxxxxxxxxxx" File Retention = 15 days
# password for FileDaemon # 15 dias
www.lpmagazine.org
11
seguridad Gestión de backups mediante Bacula
Listado 1d. Fichero de configuración del Bacula Director Job Retention = 15 days
# 15 dias
AutoPrune = yes
# Prune expired Jobs/Files
} #A continuación aparecerían el resto de Clients: vicky, y carpanta, con una configuración casi idéntica salvo los parámetros Address y Password.
# Definition of file storage device Storage { Name = File
# Do not use "localhost" here Address = vicky
# N.B. Use a fully qualified name here
SDPort = 9103 Password = "xxxxxxxxxxxxxxxxxxx" Device = FileStorage Media Type = File }
# Generic catalog service Catalog { Name = MyCatalog dbname = "bacula"; dbuser = "bacula"; dbpassword = "" }
# Default pool definition Pool {
Name = Default
Pool Type = Backup Recycle = yes
# Bacula can automatically recycle Volumes
AutoPrune = yes
# Prune expired volumes
Volume Retention = 15 days
# 15 dias
Maximum Volume Bytes = 4294967296
#4Gb cada volumen
Maximum Volumes = 25
#100G en volumenes
Label Format = "File-" }
•
•
Console: un interfaz modo consola de texto para interactuar con el Director. Se puede ver el estado de las operaciones efectuadas, lanzar trabajos, restaurar ficheros, verificar cada componente de Bacula,... Monitor: un sistema de monitorización que permite al administrador observar el estado de las operaciones mediante un interfaz gráfico.
Cómo almacena los datos
Bacula es un sistema de backups flexible. Cada trabajo (Job) es un recurso que Bacula lanza con los siguientes parámetros: en qué cliente se realiza, qué es lo que se quiere copiar, cuándo se quiere hacer, y dónde se quiere guardar. Los datos de los backups se guardan en unidades llamadas volúmenes, que son unidades físicas de almacenamiento (pueden ser ficheros también). Estos volúmenes cuentan con una etiqueta (label), y se agrupan en conjuntos
12
llamados Pools. Un sistema básico de configuración de Bacula, tendrá al menos un Pool, y un volumen como mínimo dentro del Pool. El catálogo (Catalog) mencionado anteriormente guarda toda la información contenida en los volúmenes, sus etiquetas, y los Pools utilizados.
Puesta en marcha de bacula
Cada una de las máquinas del sistema debe ejecutar el File Daemon de Bacula (bacula-fd), por otro lado, el Bacula Director y el Storage Daemon han de ser ejecutados en una sola máquina (no necesariamente en la misma). Se ha escogido la máquina Superlopez para ejecutar el Director, y la máquina Vicky para almacenar los backups (dado que tiene más espacio de disco). La instalación que se muestra a continuación es sobre Debian Lenny de 64 bits:
LiNUX+ 9/2010
seguridad Gestión de backups mediante Bacula
���������������� ������������ ����������
����������������������
���������������������������������������������������� ������������������������������������������������������������������������� ���������������������������������������������������������������������������� ����������������������������������������������������������������������� ���������������������������������������������������������������������������� ���������������������������������������������������������������������� �����������������������������������������������������������������������
�����������
www.lpmagazine.org
��������������������������� ���������������������������� ���������������������������������������� ����������������������������������� 13
seguridad Gesti贸n de backups mediante Bacula
Listado 2. Fichero de configuraci贸n del Storage Daemon #
# Default Bacula Storage Daemon Configuration file # # #
For Bacula release 2.4.4 (28 December 2008) -- debian lenny/sid
# You may need to change the name of your tape drive #
on the "Archive Device" directive in the Device
#
resource.
#
that dird.conf has corresponding changes.
# #
If you change the Name and/or the
"Media Type" in the Device resource, please ensure
Storage {
Name = "File"
SDPort = 9103
# definition of myself # Director's port
WorkingDirectory = "/var/lib/bacula" Pid Directory = "/var/run/bacula" Maximum Concurrent Jobs = 20 }
SDAddress = xxx.xxx.xxx.xxx
#
# List Directors who are permitted to contact Storage daemon #
Director {
Name = superlopez-dir
}
Password = "xxxxxxxxxxxxxxxxxxxx"
#
# Restricted Director, used by tray-monitor to get the # #
status of the storage daemon
Director {
Name = superlopez-mon
Password = "xxxxxxxxxxxxxxxxxxxx" }
Monitor = yes
#
# Devices supported by this Storage daemon
# To connect, the Director's bacula-dir.conf must have the # #
same Name and MediaType.
Device {
Name = FileStorage Media Type = File
Archive Device = /storage/bacula LabelMedia = yes;
# lets Bacula label unlabeled media
AutomaticMount = yes;
# when device opened, read it
Random Access = Yes; RemovableMedia = no; }
AlwaysOpen = yes;
#
# Send all messages to the Director,
# mount messages also are sent to the email address #
Messages {
Name = Standard
}
14
director = superlopez-dir = all
LiNUX+ 9/2010
seguridad Gestión de backups mediante Bacula
Instalación de Bacula director en Superlopez Se instala el meta paquete bacula, que por defecto instalará el cliente también: superlopez:~# apt-get install bacula
•
•
Una vez instalado el Bacula Director, se ha de configurar a mano el fichero /etc/bacula/bacula-dir.conf •
Configuración del Bacula Director Director funciona mediante el uso de varios recursos, a continuación se explicarán cuáles son y cómo han de ser configurados para realizar los backups planeados.
Recurso Pool Define el conjunto de volúmenes usados por Bacula para escribir los datos. Para el diseño planteado se utilizará un solo Pool de 100G máximo. Los volúmenes que almacene el Pool tendrán 4G de tamaño, por si se desean copiar posteriormente los volúmenes a discos DVD. El número máximo de volúmenes para el Pool, será de 25, dando los 100G totales. Bacula permite reciclar volúmenes para mantener siempre el mismo espacio máximo ocupado de backups. Hay varios métodos para llevar a cabo el reciclaje, en este caso se configurará para reciclar los volúmenes que contengan los datos más antiguos. Se marcará también un límite de 15 días de retención de cada volumen, para asegurar tener los backups de los últimos 15 días en todo momento. Es tarea del usuario realizar los cálculos para ver cuánto tiempo puede retener los volúmenes en función del espacio disponible para el pool (si se marcase un número máximo de volúmenes para el pool). Si se llega a una situación en la que Bacula necesita un nuevo volumen, se ha alcanzado el número máximo, y no se puede reciclar ninguno porque todos tienen menos días de los indicados para la retención, se enviara un mensaje al administrador para que intervenga manualmente.
Recurso Storage Define la conexión con el demonio de Storage y que tipo de almacenamiento provee, siendo de tipo fichero en este caso. Como el demonio Storage correrá a cargo de Vicky, se pondrá la información de conexión con Vicky.
Recursos Client Cada máquina ejecuta el demonio File Daemon para que el Director pueda conectarse y acceder al sistema de ficheros. En el Director ha de configurarse la conexión con cada File Daemon mediante estos recursos.
El momento de realizar estos volcados y los programas ejecutados para ello, se verá en los recursos Job, más adelante.
Recurso Catalog Se utiliza para conectarse a la base de datos interna de Bacula, en la configuración han de aparecer los datos de conexión a la base de datos, según el tipo que tenga. En este caso es una base de datos SQLite.
Recursos Schedule Estos recursos definen las fechas en las cuales se realizarán los backups, así como el tipo de backup a realizar (entero, diferencial o incremental). Los calendarios configurados son los siguientes: •
•
•
Sistema de ficheros raíz: se montará en cada máquina el raiz en el directorio /mnt/raiz, de esta forma se asegura
Semanal cíclico: realiza un backup completo el primer domingo de cada mes, diferencial el resto de domingos, e incremental de lunes a sábado. La hora de inicio es a las 23:05. Semanal cíclico posterior: backup completo diario, se utilizará para respaldar el catálogo una vez ejecutados todos los trabajos. La hora de inicio es las 03:10.
Recursos Job Son los recursos donde se programa el trabajo de backup a realizar. Los parámetros más importantes que se definen son los siguientes: • • • • •
•
Recursos FileSet En estos recursos se define el directorio o directorios de los cuales se quiere realizar backups, así como diversas opciones cómo la compresión utilizada (GZIP6 por defecto). Se definirá un fileset para cada uno de estos casos:
copiar únicamente la partición raiz, excluyendo otros sistemas de ficheros tanto físicos como virtuales. Fichero ldap.ldif: se realizará una copia del volcado del servidor ldap contenido en Carpanta en un fichero llamado ldap.ldif. Se copiará el volcado utilizando un fileset personalizado. Fichero dump.sql: se realizará un volcado de la base de datos MySQL contenida en Superlopez. Se copiará el volcado utilizando un fileset personalizado. Directorio /tmp/svn: en este directorio se alojarán los volcados de cada repositorio SVN ya comprimidos. Se copiará el directorio completo utilizando un fileset personalizado.
•
Dónde realizar el backup: se utiliza para ello un recurso Client. Qué copiar: se utiliza un recurso FileSet. Cuándo: se utiliza un recurso Schedule. Dónde se guarda: se utiliza un recurso Pool. Tipo de trabajo: hay dos tipos principales, backup y restore, el primero para que Bacula guarde los datos y el segundo para que Bacula restaure los datos. Comando a ejecutar en el cliente antes de realizar el trabajo: utilizado para montar el raíz en /mnt/raiz, o para hacer los distintos volcados de los servicios a un fichero o directorio para su posterior copia. Comando a ejecutar en el cliente después de realizar el trabajo: para desmontar el /mntr/raiz, o borrar los ficheros y directorios de volcado.
Existe un recurso denominado JobDefs que se utiliza para agrupar características comunes de varios Job, y no tener que repe-
www.lpmagazine.org
15
seguridad Gestión de backups mediante Bacula
tir los mismos parámetros en cada Job, poniendo el JobDefs correspondiente. Para el ejemplo, se utilizarán los siguientes Jobs para realizar backups: • •
Raíz de vicky, Raíz de superlopez,
• • • • •
Raíz de carpanta, Volcado de ldap, Volcado de svn, Volcado de MySQL, Catálogo de Bacula,
Listado 3. Fichero de configuración del File Daemon en Vicky # # Default
Bacula File Daemon Configuration file
# #
For Bacula release 2.4.4 (28 December 2008) -- debian lenny/sid
# # There is not much to change here except perhaps the # File daemon Name to #
# # List Directors who are permitted to contact this File daemon # Director { Name = superlopez-dir Password = "xxxxxxxxxxxxxxxxxxxxx" }
# # Restricted Director, used by tray-monitor to get the #
status of the file daemon
# Director { Name = superlopez-mon Password = "xxxxxxxxxxxxxxxxx" Monitor = yes }
# # "Global" File daemon configuration specifications #
# this is me
FileDaemon { Name = vicky-fd FDport = 9102
# where we listen for the director
WorkingDirectory = /var/lib/bacula Pid Directory = /var/run/bacula Maximum Concurrent Jobs = 20 FDAddress = xxx.xxx.xxx.xxx }
# Send all messages except skipped files back to Director Messages { Name = Standard }
16
director = superlopez-dir = all, !skipped, !restored
LiNUX+ 9/2010
seguridad Gestión de backups mediante Bacula
Cada uno de estos trabajos tendrá su correspondiente Job de restauración, que se realizará en el directorio /tmp de la máquina cliente correspondiente a los datos resguardados. Una vez vistos todos los recursos de los que se compone la configuración del director, se muestran las partes más importantes del fichero de configuración en el Listado 1. Se han omitido las contraseñas y direcciones ip por motivos de privacidad. Para obtener sus propias contraseñas, y los hash correspondientes, sustituyendo las que Bacula pone por defecto, se puede utilizar el comando md5sum:
1000 OK: superlopez-dir Version: 2.4.4 (28 December 2008) Enter a period to cancel a command. *run Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" A job name must be specified. The defined Job resources are: 1: backup-raiz-superlopez 2: backup-raiz-carpanta 3: backup-raiz-vicky 4: backup-ldap
superlopez:~# echo "contraseña-secreta" | md5sum
5: backup-mysql
ba9333e6822fcb59a9b76c2fc2fe81c9
6: backup-svn
-
7: BackupCatalog
Instalación del Storage Daemon
En la máquina Vicky, destinada a almacenar los backups, se instalará el Storage Daemon y el File Daemon:
8: restore-raiz-superlopez 9: restore-raiz-vicky 10: restore-raiz-carpanta 11: restore-mysql
vicky:~# apt-get install
12: restore-ldap
bacula-client bacula-sd-sqlite
13: restore-svn
La configuración de ambos demonios es mucho más sencilla que la del Director. En el Listado 2 aparece el contenido del fichero /etc/bacula/bacula-sd.conf, y en el Listado 3 el contenido del fichero /etc/bacula/bacula-fd.conf El resto de ficheros de configuración pertenecen a los File Daemon de Carpanta, y de Superlopez. Ambos son muy similares al mostrado en la figura 4 para Vicky.
Utilizando Bacula
Una vez establecidos los ficheros de configuración, y reiniciados los demonios, el sistema empezará a trabajar automáticamente cuando llegue la hora de lanzamiento de los trabajos. Para verificar que todo es correcto y poder lanzar algún trabajo manualmente, se puede utilizar el comando bconsole (instalado por defecto en la misma máquina que contiene el Director, en este caso Superlopez). Para lanzar un trabajo de forma manual el procedimiento es el siguiente: superlopez:~# bconsole Connecting to Director superlopez:9101
En la red • • • • •
Página principal de Bacula: http://bacula.org Documentación de Bacula: http://bacula.org/5.0.x-manuals/en/main/main/index.html Volcado de bases de datos MySQL: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html Volcado de un directorio LDAP: http://linux.die.net/man/8/slapcat Copia online de un repositorio SVN: http://svnbook.red-bean.com/en/1.0/re33.html
Select Job resource (1-13):
Indicando al final cuál de los trabajos queremos lanzar (nótese que aparecen tanto los trabajos de backup, como los de restauración).
Conclusiones
En este punto ya se ha podido observar la flexibilidad que tiene Bacula para adaptarse a una política puntual de backups. Aunque no todo son ventajas para este producto: Bacula tiene el inconveniente (o virtud para muchos administradores “de la vieja escuela”) de configurarse mediante ficheros de texto y sin un interfaz gráfico que facilite la tarea, salvo para realizar la monitorización. Además, tiene una configuración un poco engorrosa de entender al principio, convirtiéndolo en un producto no apto para usuarios noveles en sistemas Linux. Por otro lado, un administrador avanzado, en poco tiempo será capaz de realizar una configuración adaptada a sus necesidades, y sacará el máximo provecho de la potente herramienta bconsole para verificar o restaurar sus backups. Cabe reseñar que Bacula también dispone de clientes (File Daemons) para las distintas versiones de Windows, y por lo tanto se pueden realizar backups de estos sistemas sin problemas, siempre que se cuente con una máquina Linux para el Director y el Storage Daemon.
Sobre el autor Francisco Olcina Grande es Ingeniero Técnico en Informática de Gestión y cursa actualmente los estudios de Ingeniero Informático superior en la Universidad Carlos III de Madrid. Es experto en administración de sistemas y soluciones de alta disponibilidad basadas en software libre. En la actualidad trabaja realizando tareas de administración de sistemas en la misma universidad donde cursa sus estudios.
www.lpmagazine.org
17
seguridad Cuestión de imagen: distribución Ad|Quiere
Ad|Quiere: distribución
gratuita para imágenes forenses Francisco Lázaro
es@lpmagazine.org
En los comienzos de la Informática Forense los investigadores se limitaban a copiar los archivos que les podían servir como evidencia. Si sospechaban que algunos de ellos habían sido borrados intentaban recuperarlos con 'undelete' -aquel misterioso comando que solo conocían los gurús autodidactas del MS-DOS-. La búsqueda de carácteres se llevaba a cabo con el Norton Disk Editor. No pocas veces sorprendimos de este modo al legendario Viernes 13 agazapado en las interioridades de nuestro sistema.
18
T
odo ello con el ordenador en marcha, trabajando sobre el soporte de datos y sin estándares de ningún tipo. La cadena de custodia solo existía para entidades físicas como revólveres o manchas de sangre. Por aquel entonces pocos pensaban que las leyes de la criminología y el principio de Locard, por no hablar de los conceptos del derecho, fuesen aplicables a cosas tan abstractas como software, archivos de ordenador o conexiones de red. Semejante modo de hacer las cosas ya no es admisible ante un tribunal. En la actualidad la adquisición de evidencia electrónica se somete a rigurosos métodos creados por los propios investigadores. En el análisis post-mortem de un soporte de datos (disco duro, diskette, llave USB, unidad ZIP, CD, DVD, iPod, etc.), el primer paso para un trabajo forense de calidad consiste en obtener una imagen en bitstream que incluya no solamente toda la información visible del sistema, sino también archivos borrados, espacio sin asignar en disco, huecos entre particiones e incluso zonas de acceso restringido por el fabricante (p. ej. HPA y DCO). Los sistemas de archivos deben montarse en modo de solo lectura, mediante writeblockers o recursos software. Se calculan hashes y sumas de verificación -normalmente MD5 y SHA- para el disco duro y su imagen. Una vez comprobada la coincidencia entre las cifras correspondientes a una y a otro, el soporte físico será precintado y todas las operaciones de búsqueda y análisis se realizarán sobre la imagen adquirida, con herramientas validadas y una minuciosa documentación. Nuestro objetivo consiste en obtener evidencia de calidad que pueda servir para presentar como prueba ante un tribunal. Como muy pronto se tendrá ocasión de ver, en el trabajo del investigador forense todo es cuestión
LiNUX+ 9/2010
de imagen. Naturalmente no nos referimos a la mera apariencia ni a esa arma letal de la consultoría moderna que es el ataque blablah, sino a las imágenes binarias obtenidas por herramientas informáticas que funcionan a bajo nivel.
Objetivos
El presente artículo comienza hablando de la prueba electrónica y la capacitación del perito informático forense. Acto seguido se examinará la distribución Ad|Quiere, un proyecto colaborativo de la empresa blueliv y AEDEL (Asociación Española de Evidencias Electrónicas). Finalmente se expondrá un ejemplo práctico para demostrar cómo Linux puede engarzarse en complejas cadenas de operaciones que aparentemente no conocen límites entre plataformas y sistemas operativos: con una tarjeta SCSI de segunda mano comprada en un desguace y la herramienta Linen -incluida en la distribución de AEDEL-, intentaremos adquirir el disco duro de un antiquísimo
Figura 1. Ad|Quiere mostrando el escritorio GNOME y la estructura de menús característica de Ubuntu
seguridad Cuestión de imagen: distribución Ad|Quiere
Listado 1. Detección de la tarjeta ADAPTEC y el disco duro SCSI ubuntu@ubuntu:~$ dmesg | grep SCSI [
0.893947] SCSI subsystem initialized
[
3.302476] sd 0:0:0:0: [sda] Attached SCSI disk
[
3.324475] sd 0:0:1:0: [sdb] Attached SCSI disk
[
9.636078] scsi2 : Adaptec AIC79XX PCI-X SCSI HBA DRIVER, Rev 3.0
[
9.636082]
<Adaptec 29320A Ultra320 SCSI adapter>
[
9.636084]
aic7901: Ultra320 Wide Channel A, SCSI Id=7, PCI 33 or 66MHz, 512 SCBs
[
13.383938] sd 2:0:0:0: [sdc] Attached SCSI disk
Listado 2. Volcado de cadenas de texto de la imagen binaria con 'strings' ubuntu@ubuntu:~$ strings imagen_macintosh.E01 > resultado.txt ubuntu@ubuntu:~$ cat resultado.txt | less ........................................................................ ........................................................................ ................ Líneas sumprimidas .................................... ........................................................................ ........................................................................ A fin de poder importar texto, el correspondiente filtro de conversiones debe hallarse en el mismo lugar en el que se guarda el programa QuarkXPress. La funci Convertir comillas convertir las comillas, los strofos y los dobles guiones (", ' y --) a sus equivalentes tipogr ficos ( , `, ). El tipo de comillas que ser n sustituidas depender de la selecci n que se realice en el cuadro de di logo Preferencias de la aplicaci n. La funci Incluir hojas de estilo determina si las definiciones de hojas de estilo personalizadas se importan con el texto desde documentos MS Word y Marcas XPress, y si se realiza la conversi n de marcas de estilo XPress incluidas en un fichero de texto ASCII. ........................................................................ ........................................................................ ................ Líneas sumprimidas .................................... ........................................................................ ........................................................................
ordenador Macintosh, obteniendo a partir de él una imagen a bajo nivel en el formato EWF de EnCase para ser utilizada por esta conocida suite forense de Guidance Software Inc (California), de la cual se sirven autoridades judiciales, departamentos de policía y agencias de seguridad de numerosos países.
Valoración de las pruebas electrónicas
Para un informático la obtención de evidencia digital no plantea mayor dificultad que la que pueda presentarse a la hora de hacer un backup: conectar el disco, encender la máquina, introducir comandos y esperar que el sistema termine. Pero el ámbito jurídico, al cual va destinada la evidencia, no se rige
www.lpmagazine.org
19
seguridad Cuestión de imagen: distribución Ad|Quiere
por la mentalidad lineal del ingeniero, sino por los alambicados conceptos del derecho. El destino de toda prueba, ya sea convencional o electrónica, es ser presentada ante un tribunal, y la validez jurídica de aquella dependerá de las circunstancias en que haya sido conseguida. Pruebas físicas pueden ser el disco duro, archivos de registro, un informe pericial e incluso huellas dactilares. Estas evidencias son llevadas al proceso por personas que después tienen que explicarlas y hacer valer su carácter probatorio en relación con los hechos juzgados. Por sí misma la prueba física, es decir, el objeto evidencial hallado en el lugar de los hechos, no sirve para demostrar nada. La fuerza probatoria no se manifiesta hasta que intervienen las personas que hallaron la evidencia o aquellas que han de explicarla en relación con la causa que se juzga. Existe una estrecha relación entre la prueba física (disco duro, log del sistema, mensaje de correo electrónico, volcado de memoria, etc.) y la prueba personal (intervención del perito forense ante el juez). El carácter probatorio de una evidencia, ya sea electrónica o de cualquier otro tipo, depende de la profesionalidad con que la misma haya sido obtenida y de la actuación de la persona encargada de explicarla en el proceso.
Cualificación del experto
El juez comprueba minuciosamente la presentación de las pruebas ante el tribunal y los métodos empleados en la consecución de las mismas. Pierde credibilidad quien aporta sus pruebas de manera inadecuada, realizando afirmaciones rebatibles o divagando caprichosamente sobre la evidencia y su significado. Esto puede hacer que la prueba quede invalidada en el proceso. Por consiguiente la integridad y la credibilidad de las personas constituyen elementos esenciales de la prueba. La persona que presenta las pruebas es tan importante como la prueba en sí. Un informe impecable se puede echar a perder por la exposición inadecuada del mismo, por ejemplo, hablando de meras suposiciones como si fuesen hechos irrefutables. Por el contrario una intervención profesional, acompañada de una minuciosa documentación y alegaciones objetivas, será de gran ayuda a la hora de presentar pruebas electrónicas delante de un tribunal. Es precisamente en la obtención de la evidencia digital donde las buenas prácticas han de observarse con mayor rigor. El
Figura 2. Consola bash. Obsérvese en la parte de abajo la detección de una tarjeta SCSI con un disco duro conectado
20
punto de partida de la Informática Forense -al menos en lo que respecta a los análisis post mortem- lo constituye la imagen en bitstream del medio sospechoso. No estamos recuperando una tesis doctoral ni fotos de las vacaciones perdidas por una imprudencia del usuario, sino participando en un negocio jurídico que puede tener graves repercusiones cuando lo que se juzga son delitos penales. La pericia técnica no basta. Aquí de lo que se trata es de preservar objetos evidenciales, mantener la cadena de custodia y realizar duplicados exactos resistentes a las sumas de verificación y los argumentos de la parte contraria.
Ad|Quiere: proyecto colaborativo
AEDEL y blueliv, entidades promotoras de AdQuiere, que aspira a ser la primera distribución forense de Linux para la comunidad de habla hispana, comienzan su proyecto colaborativo incluyendo en la versión preliminar (0.8) dos importantes herramientas para duplicaciones forenses: (GNU) AIR y Linen. Esta última, como se ha dicho, permite realizar imágenes en el formato EWF de EnCase Forensics para ser analizadas por el conocido software de investigación policial de la empresa Guidance. Ad|Quiere v. 0.8 es una distribución basada en Ubuntu que además del software mencionado incorpora herramientas nativas de Linux para la realización de imágenes y firmas digitales. Está configurada para reconocer automáticamente discos externos USB y volcar en ellos el resultado de las adquisiciones. A tal efecto dispone de ayudas paso a paso que en el caso de Linen permiten realizar la adquisición de un soporte de datos por cualquier persona que posea conocimientos elementales de informática, lo cual facilita la división del trabajo en las investigaciones forenses. AEDEL y blueliv quieren ir más allá y próximamente pondrán a punto una versión 1.0. Ad|Quiere 0.8 es por lo tanto un modelo de partida puesto a disposición del público en forma de TO-DO colaborativo. Previamente a la liberación de la versión 1.0 se tiene previsto publicar en la página de AEDEL (http://aedel.es) una entrada en la que se especificarán las nuevas características de Ad|Quiere 1.0, resultantes de la incorporación de sugerencias y cambios propuestos por los asociados, profesionales y usuarios en general.
Ad|Quiere en acción
Ad|Quiere se descarga desde la página web de AEDEL en forma de imagen ISO para grabar en un CD. Basada en Ubuntu, su
Figura 3. Navegador de archivos
LiNUX+ 9/2010
seguridad Cuesti贸n de imagen: distribuci贸n Ad|Quiere
www.lpmagazine.org
21
seguridad Cuestión de imagen: distribución Ad|Quiere
sobre la configuración del hardware y del sistema operativo en formato XML, que después puede ser enviado a una dirección de correo electrónico. Lo único que se echa en falta es el programa dd_rescue, una utilidad que permite realizar imágenes de discos duros con sectores defectuosos. Sirva esto como sugerencia a los desarrolladores para que la incluyan en la versión 1.0.
AIR y Linen
Figura 4. Pantalla principal de la herramienta de duplicación AIR
manejo resulta fácil e intuitivo. Lo primero que se ve después del arranque es el escritorio y la estructura de menús típica del entorno de ventanas GNOME. Ad|Quiere configura la red en el arranque. Si disponemos de un router ADSL con DHCP habilitado o un módem de cable la salida a Internet es inmediata. Ad|Quiere no solamente es una plataforma forense, también sirve para navegar por la web sin dejar rastros en el ordenador y como herramienta para llevar a cabo tareas de mantenimiento y reparación. Ad|Quiere dispone de herramientas nativas Linux para duplicados forenses e investigación, entre ellas fdisk, dd, grep, find y la suite The Sleuth Kit de Brian Carrier. También incluye Gparted (“Administration → Partition Editor”) y el sistema de gestión de etiquetas Tomboy. La configuración del teclado se lleva a cabo del mismo modo que para cualquier otra distribución del tipo Ubuntu: seleccionando en “Preferencias del sistema” la lengua de Cervantes y dando de baja el layout USA. De este modo no tendremos que privarnos de nuestra apreciada eñe ni andar probando teclas para encontrar barras, puntos, arrobas, símbolos del euro y demás. Una utilidad muy interesante para el experto que desee conocer a fondo el sistema que está tratando de adquirir es “System Testing”, la cual permite obtener un informe detallado
La duplicación de soportes constituye una operación crucial en Informática Forense, y resultaba obligado que Ad|Quiere comenzara por aquí: situando las herramientas de adquisición forense AIR y Linen en lo más visible del escritorio. AIR es un front-end para dd, el comando para operaciones a bajo nivel más poderoso de todos los tiempos. Para los pocos usuarios de GNU Linux que aun no hayan oido hablar de él: se trata de una especie de pinza multiherramienta para bytes, un programa antiquísimo creado a finales de los años 60, pero que en la actualidad forma parte de la práctica totalidad de sistemas basados en Unix: BSD, Solaris, Linux e incluso Apple OSX. A propósito, algo que pocos conocen: también existe una versión de dd para Windows. Linen, por su parte, tiene un gran interés para departamentos de policía científica y agencias de seguridad, donde es frecuente utilizar para la investigación forense el programa En Case de la empresa Guidance Software, el cual funciona sobre plataformas Windows. EnCase se ha hecho popular por su extraordinaria potencia y el hecho de estar homologado por autoridades judiciales de todo el mundo. Con Linen, que no es otra cosa que una versión para Linux del propio software de adquisición de Guidance, podemos obtener imágenes binarias de discos duros y otros soportes de datos en el formato EWF utilizado por EnCase.
Adquisición forense para dummies
Un tutorial confeccionado por los expertos de blueliv nos acompaña a lo largo del proceso. Lo primero que se nos pide es que conectemos un disco duro externo a través de uno de los puertos USB del ordenador objetivo, por supuesto con capacidad suficiente para admitir la imagen del soporte que se tiene previsto adquirir. Si el medio de destino no tiene un sistema de archivos FAT32, imprescindible para el output de Linen, habrá que formatearlo con cualquiera de las utilidades incluidas en Ad|Quiere, por ejemplo Gparted. Para adquirir volúmenes grandes Linen trocea la imagen en archivos de un tamaño especificado por el usuario dentro de los límites tolerados por EnCase. Recuérdese que 4 GB es el ma-
Figura 5. Un paso previo imprescindible: formatear el disco de destino con un sistema de archivos FAT32
22
Figura 6. Gparted: detección, creación, eliminación y formateo de particiones
LiNUX+ 9/2010
seguridad Cuestión de imagen: distribución Ad|Quiere
yor tamaño de archivo admitido por una partición FAT32. Linen permite extraer los hashes y comprimir los datos si no disponemos de espacio suficiente en el volumen de destino. Esta última opción puede suponer un incremento de tiempo considerable.
Paleontología informática
Podríamos probar Ad|Quiere/Linen copiando nuestra partición de arranque, una llave USB o la tarjeta de memoria de una cámara digital. Pero esto es pedir a Linux demasiado poco. ¿Qué habría sido de Hércules si en vez de limpiar los establos del rey Augias desviando un río se hubiera limitado a certificar su condición de suelo antiguo contaminado? Pensando en algún reto más ambicioso nuestra vista se posa sobre el objeto más vetusto del laboratorio, un disco duro SCSI del año 1993, perteneciente a un ordenador Macintosh, que hasta la fecha no hemos podido examinar porque todo lo que tenemos por aquí son arquitecturas Intel e interfaces IDE/SATA. Lo hemos estado utilizando como pisapapeles, pero ahora es el momento de plantearse una interesante pregunta: ¿Podríamos, con la ayuda de Linux, adquirir una imagen binaria de este fósil informático? Suponiendo que lo consigamos hay otra dificultad: no tenemos nada que nos permita navegar por sistemas de archivos HFS (propios de los ordenadores Apple). Podríamos recurrir a herramientas de data carving para extraer material y analizarlo después en nuestra estación de trabajo, pero la mayor parte de los archivos de mediados de los años noventa son demasiado antiguos para que su firma -la secuencia de caracteres inicial correspondiente a cada tipo de archivo, también denominada “número mágico”- esté incluída en el archivo /usr/share/file/ magic. Además los archivos HFS y Apple plantean otros problemas que dificultan la búsqueda con Foremost o Scalpel. Podremos, eso sí, examinar la imagen con un editor hexadecimal y buscar cadenas de caracteres y expresiones regulares. Otra posibilidad consiste en adquirir el disco con Linen y llevar la imagen a una plataforma equipada con el software de Guidance. EnCase reconoce particiones HFS y HFS+. Aunque probablemente no muestre los archivos en su formato original -para ello necesitaría tener una colección de plug-ins muy amplia-, al menos podremos listarlos y examinar el contenido a través de visores de texto y otras herramientas incrustadas.
Conectando el hardware
En una tienda de material informático de segunda mano adquirimos por 10 € una tarjeta SCSI marca ADAPTEC ASC-29320A junto con un cable de conexión de 50 pines y el terminador (necesario para cerrar toda cadena de dispositivos SCSI). He aquí otra antigualla que ya casi nadie usa. Pero aquí nos va a ser de gran utilidad. Insertamos la controladora en una de las ranuras de expansión PCI del ordenador, enchufamos al disco duro el cable de datos y a una de las tomas sobrantes de la fuente de alimentación y arrancamos con el CD-live de Ad|Quiere dentro del lector -regrabadora de DVDs convencional de la marca LG-. Una vez iniciado el sistema, abrimos en el escritorio una consola bash y comprobamos que tanto el interfaz SCSI como el disco duro han sido detectados correctamente: ubuntu@ubuntu:~$ dmesg | grep SCSI
La salida aparece en el listado 1. Otra de las ventajas de Linux es que no necesitamos instalar drivers para este tipo de componentes. Basta colocar la tarjeta controladora y encender el ordenador. El Live-Cd de Ad|Quiere -al igual que la mayor parte de las distribuciones Linux- la reconoce de inmediato. La conexión del disco duro SCSI también puede verificarse a través del Partition Editor, iniciándolo con el menú de GNOME o llamándolo desde la consola: ubuntu@ubuntu:~$ sudo gparted
Aparte de dar algunas cifras relativas al tamaño del soporte, el editor de particiones poco más nos dice, ya que no está preparado para detectar particiones HFS. Pero eso tampoco es necesario para poder adquirir el disco duro con Linen o herramientas nativas de Linux.
Realización de la imagen
El manejo de Linen, con su espartano interfaz diseñado originariamente para funcionar con diskettes autoarrancables de MS-DOS, dista de ser intuitivo, por lo que antes se recomienda leer el tutorial de AEDEL. Al iniciar el programa lo primero que se pide al usuario es que conecte el medio de destino, que co-
Figura 7. Linen solicitando conexión del disco de destino antes de volcar la imagen
Figura 8. Si falta algo, lo podemos instalar desde el repositorio de software
www.lpmagazine.org
23
seguridad Cuestión de imagen: distribución Ad|Quiere
Figura 9. Interfaz principal de EnCase después de cargar una imagen
Figura 10. Archivos de un volumen HFS vistos a través de EnCase. Obsérvense los respectivos forks (extensión – resource)
mo se ha dicho antes deberá estar formateado con un sistema de archivos FAT32. Una vez ejecutado el paso anterior se muestra la pantalla principal de Linen. La adquisición es autoguiada, con mensajes de ayuda e indicaciones que van mostrándose en la parte izquierda de la ventana. Para pasar de una etapa a otra no hay más que pulsar con la flecha del ratón sobre los botones “Next” o “Back”. Un detalle importante: a la hora de seleccionar el medio de destino no debemos pasar por alto que nuestro soporte FAT32 está montado en el directorio /media. Es necesario escribir la ruta completa (/media/scd), de lo contrario Linen se atascará y no habrá adquisición. Nuestro disco duro SCSI tiene una capacidad de 160 MB. Han leído bien: megabytes, no gigas. Hoy nos puede parecer irrisorio, pero en 1993 este era un volumen más que respetable. En él cabían todas las aplicaciones punteras de la época para ordenadores Apple: MacWrite, QuarkXPress, las Utilidades Norton y un largo etcétera de software de altas prestaciones gráficas, dejando todavía mucho espacio para documentos y archivos. Valga esto a modo de reflexión sobre la forma en que los paquetes de software -sobre todo software propietario- tienden a crecer acaparando todo el volumen disponible en disco sin que ello se traduzca en un incremento proporcional de utilidad para el usuario.
Análisis de la imagen
24
nos de herramientas nativas del sistema o instalando software adicional con “Add/Remove Applications”; segundo, trasladar la imagen binaria a nuestra estación de trabajo Linux. Una operación de tallado de archivos (data carving) llevada a cabo con Foremost nos permite recuperar algunos archivos gráficos de contenido trivial: logotipos, figuritas de ejemplo para hojas de cálculo y presentaciones, etc. Todo en JPG y GIF. Más no se puede hacer, como no seamos unos linces en la lectura de código hexadecimal. Las herramientas de tallado de archivos, como Foremost y Scalpel, funcionan mediante la detección de firmas características de los diferentes tipos de archivos. Las secuencias de caracteres iniciales utilizadas en 1994 -y menos en un entorno como el Mac- no figuran en el archivo de configuración de los programas de data carving. Muy probablemente tampoco las hallaremos en el archivo /usr/ share/file/magic. Todavía hay algunas cosas que podemos hacer con esta imagen, por ejemplo examinarla a través de un editor hexadecimal. Más práctico resulta extraer cadenas de texto mediante el comando strings, muy utilizado en Informática Forense para el análisis de binarios y ejecutables: ubuntu@ubuntu:~$ strings imagen_macintosh.E01 > resultado.txt
Una vez terminada la adquisición habrá finalizado la tarea de Ad|Quiere v. 0.8, que fue diseñada para hacer precisamente esto: imágenes forenses. Ahora tenemos dos opciones: primero, seguir utilizando Ad|Quiere para interpretar los datos, sirviéndo-
El resultado es un archivo sin estructura de 37 megabytes, con líneas de código y texto procedente de archivos del sistema operativo, programas, menús de ayuda, documentos del usuario y otros jeroglíficos, por cuyo interior no resulta fácil
Figura 11. Disco SCSI procedente de un MacIntosh antediluviano
Figura 12. Tarjeta SCSI ADAPTEC utilizada en la adquisición del Mac
LiNUX+ 9/2010
seguridad Cuestión de imagen: distribución Ad|Quiere
orientarse. Como muestra se pueden ver algunas líneas de texto en el listado 2, que nos permiten comprobar que en este ordenador MacIntosh hubo una versión del conocido software de autoedición QuarkXPress. Pero en el interior de este limaco hay cientos de miles de líneas. Lo que podamos descubrir dependerá de nuestra habilidad para realizar búsquedas creativas y sobre todo de nuestra paciencia.
Visualización con EnCase
Habiendo realizado nuestra adquisición a través de Linen, lo interesante sería tener acceso a una estación de trabajo equipada con EnCase. Por fortuna uno de mis conocidos trabaja como jefe de seguridad informática para una gran empresa, y en su departamento utilizan el programa de Guidance para auditorías e investigaciones internas. No hay otra posibilidad, ya que este carísimo software solo está al alcance de clientes institucionales. Me pongo en contacto con mi amigo, que accede a mi ruego con dos condiciones: no mencionar el nombre de la empresa y que le haga llegar un ejemplar de conformidad de mi artículo. El examen fue rápido, por tratarse de una imagen de solo 160 MB que cabe de sobra en un CD. EnCase reconoció al instante la adquisición realizada con Linen y pronto pudimos ver el árbol de directorios Macintosh, junto con gran número entradas correspondientes al sistema operativo, aplicaciones y documentos archivados en una carpeta con el rótulo harto explicativo de “Clientes”. Como era de esperar, EnCase no mostró el formato original de los documentos, pero a través de su interfaz de gestión de casos y su visor de texto en bruto pudimos ver el contenido. En la Figura 10 se aprecian las dos entradas típicas para cada archivo. Esta es la estructura característica del sistema HFS, con dos forks para cada archivo (no confundir con los forks de programación en C que hacen referencia a la bifurcación de procesos). En el mundo Apple el término fork significa un flujo de datos en disco. Cada archivo consta generalmente de dos -aunque pueden ser más-, uno para el contenido, y otro para informaciones diversas que permiten abrirlo por la aplicación correspondiente). No entramos en detalles, pues aunque la imagen binaria de este disco Mac no contiene datos personales de su antiguo propietario, sí hay en él muchos documentos de trabajo
En la red • • •
•
Página web de AEDEL: http://aedel.es/ Página web de blueliv: http://www.blueliv.com/ Tutorial Ad|Quiere: http://aedel.es/wp-content/uploads/2010/04/ tutorial_adquiere_v_0_8_v_1.pdf Linux y las herramientas forenses de segunda generación: http://www.dfrws.org/2009/proceedings/ p34-ayers.pdf
y gran cantidad de correspondencia comercial. Tras el análisis el archivo fue borrado del ordenador y el CD destruido. En mi laboratorio hice lo mismo eliminando todas las copias de la imagen adquirida con Linen.
Conclusiones
Una vez terminado el experimento me sentí satisfecho, no por haber alcanzado mi objetivo -hackear el disco duro de un ordenador fallecido hace lustros- sino por la valiosa lección aprendida acerca de la potencia y versatilidad de Linux en el campo de la investigación forense, asi como su capacidad para funcionar como agente de enlace entre las más variadas arquitecturas y sistemas operativos. Comenzamos con un disco SCSI procedente de un ordenador Macintosh; después utilizamos Linux para adquirirlo sobre una plataforma Intel, obteniendo como resultado una imagen EWF que finalmente un potente software para investigaciones forenses que corre bajo Windows es capaz de abrir y analizar. No se necesitan más argumentos a favor de la capacitación forense del sistema del pingüino. Destacan sobre todo las ventajas del software libre frente al propietario -disponibilidad del código fuente que hace inviables las objeciones legales relativas a la existencia de defectos ocultos de programación. También se habla de Linux como posible plataforma -por ejemplo implementado en sistemas Beowulf- para hacer frente a los retos futuros de la investigación forense: delincuencia organizada, redes distribuidas, cloud computing, dispositivos móviles de gran potencia, casos complejos y ramificados, tratamiento de montajes RAID y discos duros con capacidades en el rango de los Terabytes. Volviendo a esa “cuestión de imagen” del principio: el investigador forense está obligado a realizar duplicados binarios de calidad y mantener la cadena de custodia: cumplimiento estricto de la ley, adquisición de soportes en modo lectura, evitar que las particiones se monten por error, sumas de verificación, etc. Sin esto no podrán sostenerse adecuadamente su informe ni sus alegaciones ante el juez. Ahora que la era del ladrillo parece llegar a su fin en España, viene bien un símil arquitectónico: todo edificio precisa de buenos cimientos y una buena solera de hormigón. De lo contrario el salitre y la humedad del subsuelo acscenderán por los muros hinchando el revoque de las paredes y corrompiendo toda la estructura de la construcción. Algo parecido le puede suceder a nuestros casos si no partimos desde una base sólida.
Para saber más • • •
Lluis Muñoz Sabaté: “Introducción a la Probática” – Bosch Editor / ESADE, 2008 Alexander Geschonneck: “ComputerForensik” – dpunkt.verlag, 2008 Ryan R. Kubasiak, Sean Morrissey y otros: “Mac OS X, Ipod and Iphone Forensics / Analysis DVD Toolkit”, Syngress Publishing, 2009
www.lpmagazine.org
25
soluciones para empresas Virtualización en Entornos Corporativos
Virtualización en Entornos Corporativos Marcos Blanco Galán
es@lpmagazine.org
La virtualización ha dejado de ser una inversión de futuro, su evolución y consolidación en los últimos años la convierten en una clara necesidad para aumentar la competitividad de la empresa. Reducción de costes de operación y mantenimiento, optimización de recursos hardware, eficiencia energética, seguridad y alta disponibilidad son sólo algunas características que hacen de la virtualización el aliado perfecto en entornos corporativos.
E
l presente artículo se centra en las ventajas y aportaciones de la virtualización en entornos corporativos. Antes de entrar en materia, recordaremos algunos conceptos básicos sobre esta tecnología y veremos cómo la evolución de los sistemas de información han hecho de la virtualización una tendencia en la empresa. A continuación, expondremos una serie de consideraciones y recomendaciones para desplegar de manera efectiva una infraestructura virtual. En último lugar, presentaremos algunas de las principales soluciones de virtualización de servidores existentes basadas en tecnologías Linux.
Conceptos básicos
La virtualización es un término a la orden del día. Su origen se remonta a los años 60, con el sistema de paginación del IBM M44/44X, una máquina física experimental capaz de simular múltiples máquinas virtuales IBM 7044. Aunque se trata de un concepto muy amplio, la virtualización se asocia, generalmente, con la abstracción de recursos, ya sean hardware o software. Tomando esta idea como base, las soluciones de virtualización han ido experimentando una gran evolución en los últimos años gracias a los avances en el campo de la arquitectura de computadores y la aportación de ideas innovadoras. Cuando hablamos de virtualización, es importante distinguir entre virtualización de recursos y virtualización de plataforma. La virtualización de recursos se caracteriza por aislar los servicios del soporte físico que los provee. Un claro ejemplo es el almacenamiento virtual usado en redes de almacenamiento SAN (Storage Area Network). En esencia, la virtualización de recursos permite agrupar varios recursos para que sean percibidos como uno único o, por el contrario, dividir un recurso en varios recursos independientes. La virtualización de plataforma, sobre la que nos centraremos en este artí-
26
LiNUX+ 9/2010
culo, hace necesario introducir el concepto de máquina virtual. Una máquina virtual es, básicamente, un entorno computacional sobre el cual es posible ejecutar un software huésped, habitualmente un sistema operativo. La virtualización de plataforma puede lograrse aplicando diferentes técnicas: emulación hardware, paravirtualización, virtualización completa, virtualización a nivel de sistema operativo, etc. En la actualidad, el tipo de virtualización de plataforma más recurrido es la virtualización completa, cada vez más extendida en entornos empresariales para la consolidación de servidores. La teoría sobre virtualización no es objeto de este artículo, no obstante, al final se proporcionan enlaces de interés para ampliar conocimientos.
Virtualizar se ha convertido en una necesidad
Durante las décadas de los 80 y 90, la virtualización perdió peso cuando las aplicaciones cliente-servidor y los equipos x86 económicos establecieron el uso de modelos distribuidos. En lugar de centralizar y compartir mediante el modelo de computadora central (mainframe), las organizaciones optaron por aprovechar el
Figura 1. Infraestructura de servidores virtuales
soluciones para empresas Virtualización en Entornos Corporativos
bajo coste de los sistemas distribuidos. La amplia adopción de Windows y la emergencia de Linux como sistemas operativos de servidor en los años 90, convirtieron a los servidores x86 en estándar de facto. El alto crecimiento de implementaciones de servidores y escritorios originaron problemas operacionales y de infraestructura de TI: •
•
•
•
•
Bajo aprovechamiento de la infraestructura: según estudios de la consultora internacional IDC, las implementaciones típicas de servidores x86 logran una utilización media de entre un 10% y un 15% de la capacidad total. Una práctica muy habitual en las organizaciones consiste en ejecutar una aplicación por servidor para evitar el riesgo de que las vulnerabilidades de una aplicación afecten a la disponibilidad de otra aplicación ubicada en el mismo servidor. Incremento de los costes de la infraestructura física: los costes operativos para dar soporte al crecimiento de infraestructuras físicas han aumentado a ritmo constante. La mayor parte de las infraestructuras informáticas son críticas para el negocio y deben permanecer operativas en todo momento, lo cual genera gastos adicionales de consumo energético, refrigeración e instalación que no varían con los niveles de utilización. Incremento de los costes de gestión de TI: a medida que la infraestructura tecnológica es más compleja, aumenta el nivel de especialización de la formación y la experiencia necesaria del personal que gestiona las infraestructuras. Los recursos humanos dedicados al mantenimiento de servidores físicos suponen un coste muy elevado para las organizaciones. Insuficiente recuperación ante fallos y desastres: las paradas inesperadas de aplicaciones en servidores críticos y la falta de acceso a escritorios de usuario final pueden afectar gravemente a la actividad de la empresa. La amenaza de ataques de seguridad o la ocurrencia de desastres naturales acentúan todavía más la importancia de velar por la continuidad del negocio. Mantenimiento elevado de escritorios de usuario final: la gestión eficiente de los escritorios corporativos plantea un gran desafío. Aplicar y controlar políticas de acceso y seguridad sin perjudicar la capacidad del usuario es una tarea muy costosa y compleja. El correcto mantenimiento de los escritorios requiere la aplicación constante de parches y actualizaciones que garanticen la seguridad y el buen funcionamiento de los sistemas en todo momento.
La virtualización, aplicada a las infraestructuras de las Tecnologías de la Información, es sinónimo de vanguardia en la optimización
Figura 2. Menú principal de Citrix XenServer
de gestión de recursos, seguridad, escalabilidad, mantenibilidad y facilidad de administración. Es con el cambio de siglo, cuando vuelve a tomar fuerza gracias a los avances en el campo de la arquitectura de computadores con el anuncio de las extensiones VT (Virtualization Technology) de Intel en 2004 y Pacífica de AMD en 2005 para microprocesadores x86. En el apartado de software también se experimenta una importante evolución, ya que se consolidan soluciones para crear máquinas virtuales con plena funcionalidad y estabilidad.
Servidores virtuales en entornos corporativos
La virtualización de servidores es una tendencia creciente en los departamentos de TI, tanto en el sector público como en el privado. En los últimos años, las compañías han comenzado a implantar diferentes soluciones de virtualización como respuesta al problema del crecimiento desorbitado que experimentan los Centros de Proceso de Datos (CPDs). Este hecho, unido principalmente al bajo aprovechamiento real de la infraestructura, los elevados costes de mantenimiento y la insuficiente protección ante desastres, hacen de la virtualización una solución ideal en este tipo de entornos. A continuación, se describen algunas de las ventajas y aportaciones más significativas de la virtualización de servidores en entornos corporativos. •
•
•
Ahorro en adquisición y mantenimiento de hardware: si se planifica bien, la virtualización puede significar un importante ahorro económico en la adquisición de servidores. Al reducir el número de equipos físicos, el mantenimiento también se simplifica considerablemente y con ello la posibilidad de fallos en el hardware. El aprovechamiento de la capacidad reduce el coste total de operación (TCO) y mejora a mediano plazo el retorno de inversión realizada (ROI). Según IDG, por cada 100 servidores virtualizados, se calcula que es posible ahorrar en torno a medio millón de dolares. Ahorro energético: en la actualidad, las empresas de TI están muy concienciadas con las cuestiones medioambientales (Green IT). Una infraestructura informática corporativa basada en virtualización de servidores, además de reducir el consumo eléctrico de los equipos físicos, reducirá el gasto en aclimatación del espacio donde se alojan los equipos. Ahorro de espacio: en locales con poco espacio para alojar un CPD, muy habitual en PYMES, la virtualización es capaz de aplicar una escala de reducción aproximada 1:4, es decir, cuatro servidores virtualizados por cada servidor físico, lo que supone un ahorro del 75% en espacio. Se ha calculado que
Figura 3. Administración de Proxmox VE, dos nodos en clúster
www.lpmagazine.org
27
soluciones para empresas Virtualización en Entornos Corporativos
•
•
•
•
esta escala podría aumentar hasta 1:10 (90% de ahorro) en caso de contar con servidores físicos de altas prestaciones. Por otra parte, los servidores antiguos de gran tamaño pueden ser sustituidos progresivamente por otros más pequeños y potentes capaces de ejecutar varias máquinas virtuales. Facilidad de gestión: las soluciones existentes actualmente permiten diseñar infraestructuras de virtualización en red, ofreciendo la posibilidad de acceder a las herramientas de administración y monitorización de máquinas virtuales desde un único punto de red, o incluso, desde cualquier equipo conectado a Internet mediante acceso vía web. Separación de entornos: al igual que el modelo organizativo de la empresa debe estructurarse para una fácil coordinación y gestión, el sistema informático debe reflejar una estructura adecuada para ofrecer los servicios que demanda la empresa. En este sentido, la virtualización permite implementar de forma separada y segura entornos virtuales dentro de la misma infraestructura física. Facilidad para migrar entornos: el diseño estándar de máquinas virtuales facilita el traslado de las mismas de una máquina física a otra. Soluciones de virtualización existentes en el mercado soportan ya operaciones de migración “en caliente”, es decir, sin necesidad de detener las máquinas virtuales en ejecución y, por lo tanto, sin dejar de ofrecer servicio a los usuarios o clientes finales. Como característica de valor añadido, en entornos muy grandes los ingenieros pueden desarrollar modelos de virtualización en red con balanceo dinámico de carga, dando lugar a una infraestructura de máquinas virtuales distribuidas capaces de garantizar la calidad del servicio. Rápida recuperación: la migración de máquinas virtuales permite recuperar un sistema virtualizado en cuestión de segundos, minutos u horas, frente a los días o semanas que podría suponer la recuperación de un equipo físico. Se recomienda que el Plan de Recuperación ante Desastres (PRD) contemple la realización de copias de seguridad del entorno virtual al completo o, al menos, de los componentes más críticos. De esta forma, la puesta en marcha después de una avería o desastre sería tan sencilla como importar y ejecutar nuevamente las máquinas virtuales almacenadas en backup. Adicionalmente, también puede resultar interesante la replicación lógica de máquinas virtuales en un centro de contingencia remoto, preparadas para entrar en funcionamiento y dar continuidad al servicio ante la caída de máquinas físicas y/o lógicas locales.
Consideraciones antes de implantar virtualización
Todo cambio tecnológico implica una serie de aspectos y consideraciones a tener en cuenta antes de proceder a su implantación, especialmente, cuando éstos afectan a componentes críticos que sustentan la operativa de la empresa. Disponer de varios sistemas virtualizados en un único servidor físico puede dificultar las labores de mantenimiento. Si las máquinas virtuales que aloja el servidor son críticas para garantizar la continuidad del negocio, resultará complicado encontrar el momento adecuado para apagarlas y realizar la
28
tarea de mantenimiento. Por ello, se recomienda contar con una buena planificación, o incluso, estudiar la opción de migrar temporalmente las máquinas virtuales a otro servidor físico para mantener activos los servicios. Adicionalmente, con el propósito de evitar la proliferación de máquinas virtuales, se recomienda valorar la necesidad de crear nuevas máquinas virtuales, así como comprobar periódicamente la existencia de posibles máquinas virtuales en desuso una vez implantada la infraestructura virtual. Trabajar con máquinas virtuales también implica la necesidad de hacer un replanteamiento en cuanto a disponibilidad y asignación de espacio en disco. En un entorno virtualizado es necesario hacer copias de seguridad, realizar pruebas con máquinas virtuales y otras operaciones que requieren una cantidad elevada de espacio en disco para almacenamiento. Tampoco hay que perder de vista que el diseño del entorno de virtualización está íntimamente ligado a las necesidades de la empresa. La implementación y gestión eficiente de la infraestructura de virtualización puede ser compleja y requerir ingenieros con una base formativa muy específica. Pese a que las soluciones de virtualización actuales son capaces de hacer funcionar por completo un sistema operativo, hay que tener presente ciertas limitaciones, especialmente, cuando se busca potencia de procesamiento gráfico elevada o de otros elementos del sistema que exijan alta disponibilidad o acceso directo a sus recursos. Aunque los sistemas operativos más comunes usados en la actualidad están soportados por las principales soluciones de virtualización, todavía existen algunos sistemas incompatibles o con soporte inestable. Estos inconvenientes hacen que en determinados escenarios no sea posible o no interese recurrir a la virtualización. Por otro lado, la virtualización de servidores no obliga a tener que virtualizar todos los elementos de la infraestructura, existirán ciertos elementos que, por determinados motivos, no deban o no puedan ser virtualizados.
Despliegue de la infraestructura virtual
Implantar una solución de virtualización en un entorno corporativo requiere una serie de pasos planificados que, posteriormente, deberán ser ejecutados de forma adecuada para garantizar el éxito. Un despliegue incorrecto puede acarrear un efecto negativo y causar verdaderos estragos en la organización. En esta sección se proponen algunas recomendaciones a tener en cuenta en el proceso de migración. La primera recomendación consiste en no dejarse cegar por el ansia de reducir costes cuanto antes y empezar a obtener beneficios; es imprescindible asegurarse de lo que se está haciendo en todo momento y tratar de anticipar posibles implicaciones de cada acción. El proceso de despliegue ha de ser gradual, monitorizando en todo momento los resultados y controlando las incidencias que surjan en el camino. Para determinar con exactitud qué aplicaciones deben ser virtualizadas, es requisito indispensable tener una visión global de la carga de trabajo actual que soportan los servidores de la organización. Generalmente, son candidatas a ser virtualizadas aquellas aplicaciones que se ejecutan sobre un entorno web o servidores de aplicaciones. Las aplicaciones sensibles a niveles
LiNUX+ 9/2010
soluciones para empresas Virtualización en Entornos Corporativos
de prestaciones requeridos, a diferencia de las anteriores, pueden no ser buenas candidatas. En el transcurso de esta actividad se reunirá información sobre el hardware y software existente en el centro de datos y, con los datos de uso de los servidores, se generará un informe de utilización de hardware, identificando cargas de trabajo y servidores infrautilizados. Para que el análisis de la carga de trabajo sea consistente y fiable, éste deberá haberse realizado durante un periodo de tiempo más o menos amplio, de lo contrario, los valores obtenidos podrían ser puntuales y poco representativos. En la búsqueda de la mejor combinación entre sistemas reales y virtualizados, se recomienda ser prudente e implementar los escenarios uno a uno. Antes de la puesta en servicio, cada máquina virtual será probada a fondo para evitar posibles sobrecargas. De esta forma, es posible asegurar la capacidad de los sistemas, prever futuras necesidades y, en definitiva, evitar sorpresas inesperadas que se traduzcan en soluciones costosas. La mayoría de las herramientas disponibles actualmente para gestionar máquinas virtuales soportan únicamente un tipo de hypervisor o monitor de máquina virtual. En entornos donde conviven varias soluciones de virtualización (Xen, KVM,...), sería interesante disponer de una única herramienta que permita crear, buscar y mover máquinas virtuales entre el entorno real y virtual. Gracias al aprovisionamiento dinámico, la virtualización permite ajustar la potencia de proceso a la demanda real. Así, por ejemplo, sería posible establecer un umbral para que cuando una aplicación crítica superase el 80% de carga, se levantase automáticamente un servidor de apoyo. La gestión eficiente de los recursos permite a las organizaciones diseñar centros de datos alineados con las necesidades reales del negocio. La virtualización no es un esfuerzo puntual. La demanda de recursos y las cargas de trabajo cambian con el tiempo, siendo necesario un reajuste periódico para mantener el centro de datos en el óptimo nivel de funcionamiento. En este sentido, las herramientas de monitorización juegan un papel muy importante, ya que proporcionan una visión del estado actual y ayudan a prever cambios a futuro. Asimismo, conviene que la monitorización sea lo más amplia y global posible respecto a la infraestructura. En último lugar, tampoco hay que olvidar la probabilidad de ocurrencia de fallos. Los servidores, ya sean físicos o virtuales, deberán estar respaldados por una política de backup. En el caso de la virtualización, como ya se ha visto anteriormente, los entornos de trabajo pueden ser fácilmente recuperables con un esfuerzo reducido. No obstante, conviene recordar una vez más
Enlaces de interés • • • • • •
Virtual Linux (IBM developerWorks): http://www.ibm.com/ developerworks/library/l-linuxvirt/index.html “The Business Value of Virtualization”: http://www.vmware. com/files/pdf/solutions/Business-Value-Virtualization.pdf Citrix XenServer: http://www.citrix.com/xenserver/overview Proxmox VE: http://www.proxmox.com/products/proxmox-ve Wiki de Proxmox VE: http://pve.proxmox.com/wiki Parallels Virtuozzo Containers: www.parallels.com/ products/virtuozzo/
la importancia de disponer de copias de seguridad para poder garantizar la continuidad del negocio ante daños y averías.
Soluciones de virtualización para entornos corporativos
A continuación, presentamos algunas de las principales soluciones de virtualización de servidores basadas en tecnologías Linux. Cualquiera de ellas podría ser candidata a implantarse en un entorno corporativo. Citrix XenServer: en octubre de 2007, la multinacional Citrix Systems adquirió XenSource, empresa que durante años impulsó el movimiento Open Source entorno a Xen como alternativa válida y robusta frente a la solución propietaria VMware. En la actualidad, Citrix ha incorporado Xen en su gama de productos. Xen soporta paravirtualización y virtualización completa. Entre las principales características destacan su alto rendimiento con mínima sobrecarga (entre 0,1% y 3%), soporte SMP (hasta 32 procesadores), extensión de dirección física (PAE), soporte para extensiones hardware de virtualización x86, migración de máquinas virtuales en caliente y administración centralizada a través de XenCenter. Proxmox Virtual Environment: Proxmox VE es una solución completa de virtualización desarrollada y mantenida por Proxmox Server Solutions GmbH. Soporta las tecnologías de virtualización KVM (virtualización completa) y OpenVZ (virtualización a nivel de sistema operativo). En el caso de OpenVZ, los recursos asignados a las máquinas virtuales pueden modificarse en tiempo real sin necesidad de reiniciar el sistema. Una ventaja añadida de Proxmox VE es la posibilidad de utilizar plantillas para instalar máquinas virtuales en cuestión de minutos. La administración centralizada se realiza a través de interfaz web, permitiendo su acceso desde cualquier equipo conectado a Internet. Otras características avanzadas son la posibilidad de clustering, la migración en caliente de máquinas virtuales entre diferentes nodos, la definición de medios de almacenamiento externo (iSCSI o NFS) y la realización de backups de máquinas virtuales en caliente. En resumen, Proxmox VE puede definirse como una solución de virtualización simple, potente, intuitiva y 100% Open Source. Parallels Virtuozzo Containers: solución propietaria de virtualización de la empresa Parallels Inc., disponible para sistemas operativos Linux, Windows y Mac OS X. Basado en OpenVZ, incluye características avanzadas como la migración en caliente, clustering, asignación dinámica de recursos y realización de backups. Desde el panel de control, los clientes pueden acceder a todas estas funcionalidades y administrar sus dominios de manera centralizada.
Sobre el autor Marcos Blanco Galán es Experto en sistemas Linux y soluciones Open Source. Coordinador de Certificación y Calidad del Software en CESJE (Junta de Extremadura). Jefe de Proyectos en el Centro Internacional de Referencia Linux (CIRL) y la Cátedra Telefónicade la Universidad de Extremadura. Doctorando en Tecnologías Informáticas. Más información en http://es.linkedin.com/in/ mblancogalan.
www.lpmagazine.org
29
soluciones para empresas Seguridad en la PYME
Consejos Prácticos en Seguridad TI Josías Galván Reyes
es@lpmagazine.org
Este artículo tiene como objetivo ofrecer consejos prácticos a las problemáticas comunes relacionadas a la seguridad de las tecnologías de información, detectadas en las PYMES, donde los ambientes heterogéneos son una realidad recurrente. No profundizamos en el tema de seguridad informática, ya hay bastantes documentos al respecto, y muchos especializados en las diversas áreas que comprende este tema. Tampoco se habla de las ventajas o desventajas del software libre versus software propietario, ya que también se ha debatido bastante al respecto.
S
in profundizar en terminología teórica, se presentan consejos y herramientas de software libre que auxilian en estas tareas. Desgraciadamente la experiencia indica que es más cómodo "vivir en la ignorancia", que enfrentar un tema aparentemente "complicado" e “incómodo”, por lo que les invito a involucrarse. El tema de la seguridad TI es un tema que por su importancia, para la continuidad de la operación de las empresas, tiene que ser considerado por empresarios, directores, gerentes, profesionales TI y todo los involucrados del negocio.
Software Libre, Software No Libre, Software Pirata y Privacidad
Cuando se habla de los riesgos del software ilegal, uno de los elementos importantes a mencionar es el siguiente: Muchas veces, el software que se adquiere “pirata” es software que ha sido alterado por gente sumamente experta, que ha logrado eliminar los mecanismos de protección que el mismo software presenta para salvaguardar la propiedad intelectual del producto... me pregunto: ¿si esas personas que alteraron la seguridad del software no tendrán "otros intereses" o no querrían "aprovechar" la oportunidad de incluir en el software pirata "programas o herramientas" que posteriormente les permitan acceder a las computadoras de otros usuarios, o de otras empresas? ¿o usar software pirata como camuflaje para robar información empresarial, bancaria, legal, biológica, militar, etc.? Y sí, en efecto. Los detractores del software libre, mencionan esta problemática inherente al código abierto, ya que no hay una “empresa reconocida” que garantice tal o cual producto, debilidad que se
30
LiNUX+ 9/2010
convierte en fortaleza, cuando las motivaciones de la comunidad de desarrollo del software libre son diferentes y cuando el código fuente de los programas está a la vista y al escrutinio de tantas personas. Es por ello siempre importante, determinar que el software que usamos provenga de una fuente confiable. Asegurarnos de haber descargado el software del sitio del proveedor o fabricante o comunidad de software libre, para ello nos podemos apoyar en realizar la verificación de las sumas de integridad MD5 (http://es.wikipedia.org/wiki/Md5sum) o SHA1 (http://es.wikipedia.org/wiki/Sha1sum). Estos son algoritmos especiales que toman como entrada un texto o un archivo completo, y generan una cadena de caracteres única. Entonces, si la cadena de caracteres publicada en la página del proveedor, es la misma que la generemos de nuestro archivo descargado, tenemos el archivo genuino, ejemplo en la Figura 1.
Cajas de Arena
Sin embargo, muchas veces nos vemos obligados a descargar algún programa de dudosa procedencia, e instalarlo. Cuantas veces hemos tenido que “formatear nuestras computadoras”, debido a que se han “llenado de basura” o “se ha corrompido la configuración”, debido a la multitud de programas que instalamos y desinstalamos. Para evitar estas situaciones, existen herramientas que permiten “aislar” cualquier actividad que realice un programa sobre nuestra computadora. Entre estos tenemos Sandboxie y Altiris Software Virtualization Solution (SVS, ahora parte de Symantec). Dependiendo de la necesidad, inclusive podemos crear una “computadora virtual” dentro de nuestra compu-
soluciones para empresas Seguridad en la PYME
tadora, y ahí hacer todas las pruebas que necesitemos, para este tema VirtualBox o VMWare son programas que emulan ser una computadora donde podemos definir memoria, discos duros, e instalar algún sistema operativo, arrancarlo, apagarlo, etc. Sumamente útiles si queremos probar alguna distribución de Linux, sin tener que formatear nuestra computadora. Completadas nuestras pruebas, simplemente borramos la “computadora virtual”, y nuestra computadora seguirá intacta.
La Importancia de las Actualizaciones
Si algo caracteriza al software libre es la velocidad con la que se encuentran y resuelven las vulnerabilidades que llegasen a aparecer en los programas. Es por ello muy recomendable realizar, con alguna frecuencia, la actualización de los programas y de los sistemas operativos. Cada sistema operativo, provee sus mecanismos distintos para la realización de las actualizaciones. Solamente una advertencia: en algunos escenarios es recomendado “probar” primero, la realización de las actualizaciones, en otra computadora que no sea la que usen directamente los usuarios en producción, porque la experiencia dicta, que algunas actualizaciones alteran las configuraciones personalizadas y/o la compatibilidad con algunos dispositivos de hardware. Una vez probado que las actualizaciones disponibles no afectarán nuestros sistemas en producción, las podemos aplicar en todas las computadoras de nuestros usuarios.
Virus, Antivirus, Firewalls
Hay múltiples productos antivirus en el mercado, para diferentes necesidades y tamaño de empresas. Antivirus que se instalan directamente en los servidores que manejan los correos electrónicos y las comunicaciones o en las computadoras de los usuarios (con la correspondiente carga que representan). Para protección de toda la red, existen soluciones integrales de software libre que además de proveer protección, permiten el filtrado de contenido, balancear el uso de los recursos, etc. La empresa “Endian” ofrece su “Community Firewall”, para aquellos profesionales TI que quieran probar una solución completa de cortafuegos para nuestra red. Para protección de computadoras personales “Filseclab Personal Firewall Professional Edition for Windows”, a pesar de no ser el más intuitivo para los usuarios finales, es muy útil para que los profesionales TI sepan qué programas y hacia dónde envían información a Internet. La configuración se puede definir, y se puede replicar en las computadoras de los usuarios. En el tema de antivirus, ClamAV se ha destacado para la protección de nuestros servidores, Kapersky nos presenta un
Figura 1. Típica descarga del software libre MySQL, con su suma MD5
antivirus para terminales de trabajo Linux y servidores, mientras que Avira ofrece buena protección para Windows y AVG inclusive ofrece un disco de rescate (basado en Linux), para desinfectar computadoras con Windows.
Navegación Anónima
Aunque no necesariamente sea de las cosas que utilizaremos en el día a día para proteger la infraestructura TI de nuestra empresa, existen dos herramientas sumamente interesantes para la protección de nuestra privacidad en la red: •
•
FreeNet es un proyecto que nos permite conectarnos a una red encriptada de computadoras que comparten información. Tor es otra herramienta de software libre que nos permite navegar en la red a través de otras computadoras, a fin de que nuestras consultas viajen por otros caminos, y mantenernos anónimos.
Estas herramientas son muy útiles en países donde la libertad de expresión está siendo truncada por los gobiernos y/o los proveedores de servicios de Internet.
Manejo de Contraseñas
En un mundo TI ideal, sólo habría una contraseña que identifique al usuario, y que a través de esta autentificación se pudiera acceder a todos los servicios disponibles en la infraestructura TI. Sin embargo, la realidad en las PYMES es otra. A veces se requiere tener una contraseña para cada servicio: una para el correo electrónico, una para el sistema de nómina, una para el sistema de producción, una para acceder a los bancos, una para la mensajería instantánea, etc. Tanto el software libre como las soluciones no libres ofrecen mecanismos y estrategias para simplificar estos escenarios, por ejemplo la autentificación a través de directorios como LDAP, Active Directory, etc. Pero como dice el dicho, "la cadena se rompe por el eslabón más débil"... y en la seguridad TI, el eslabón más débil algunas veces es el usuario y las contraseñas que utiliza. Desde acciones irresponsables como dejarlas escritas en un "pedazo de papel" pegadas al monitor, hasta usar contraseñas tan sencillas que cualquier persona cercana al usuario puede adivinarlas. Hay muchos mecanismos que nos ayudan a evitar el problema de la administración de contraseñas, sin embargo muchos implican esfuerzos y cambios en la infraestructura TI que usualmente no son aceptados. Como alternativa, casi siempre recomiendo el uso de "Claves Físicas". Le llamo "Claves Físicas" a las contraseñas que generan los usuarios, a través del movimiento "aleatorio", pero "repetitivo" de las manos sobre el teclado. En vez de verbalizar una palabra, la idea es generar una contraseña escribiendo caracteres aleatorios, pero que para el usuario correspondan a un movimiento familiar sobre el teclado, algo repetitivo que puedan recordar como movimiento de las manos, no como una palabra. Ventajas: generas contraseñas no identificables con técnicas de diccionario, desventajas: requiere movimiento rápido de la mano, y representa un enfoque diferente a lo que están acostumbrados los usuarios.
www.lpmagazine.org
31
soluciones para empresas Seguridad en la PYME
Encriptación
Encriptación es la codificación de nuestra información en un “dialecto” que no sea legible por terceros, al menos que compartamos la “contraseña” para “decodificarlo”. En las PYMES, se mueve mucha información sensible en equipos portátiles, lo cual se vuelve una vulnerabilidad si uno de estos equipos es robado o perdido. Suponga que le roban la laptop al director de finanzas. Este tipo de ataques es común y en el mejor de los casos el atacante solamente estará interesado en el hardware, formatearlo y revenderlo. Sin embargo, si la intención es extraer información, estamos en problemas. Una alternativa que tenemos es encriptar los discos duros, de tal manera que no sea posible leerlos a pesar de que no hayan sido borrados. TrueCrypt nos ofrece esta posibilidad, desde proteger “contenedor de archivos”, particiones, e inclusive el disco duro completo. También se aplica en la protección de memorias USB.
Respaldos
Casi nadie se acuerda de este tema, hasta que nos enfrentamos al problema de tener que recuperar desde un archivo hasta un equipo completo, pasando por servidores dañados, bases de datos "accidentalmente" borradas o alteradas, etc. Existen múltiples herramientas y estrategias para la realización de los respaldos, dependiendo de la plataforma, la infraestructura, las redes y demás. rsync es una herramienta efectiva en el manejo de detección de cambios y transferencias de información entre equipos remotos. Areca es una herramienta que nos permite la realización de respaldos completos, incrementales y diferenciales. También podemos optar por la nueva generación de servicios de almacenamiento en línea como SpiderOak. Recordemos que los respaldos deben de ser almacenados en una ubicación física diferente a donde se encuentran los equipos respaldados.
La Red Inalámbrica
En términos sencillo, el “router” es ese aparatito que nos da nuestro proveedor de servicios de Internet para que podamos conectar a la red nuestras computadoras. Muchas veces las configuraciones de fábrica no traen activados los parámetros de seguridad, por lo que vale la pena revisar la documentación o solicitar apoyo de un profesional en TI.
Figura 2. Ejemplo de los niveles de protección que permite filtrar OpenDNS
32
Tenemos que verificar que para utilizar nuestra red inalámbrica nos pida una contraseña. Muchas veces, tenemos computadoras desconocidas en nuestra red local, e incluso el consumo de nuestro ancho de banda por personas que se “meten” a nuestra red, esto la mayoría de las veces, debido a que nuestra red inalámbrica no cuenta con la protección mínima. Además, hay que estar pendientes de las actualizaciones que se liberen para nuestros routers, ya que muchas veces nos proveen de mejores protecciones y/o mayor rendimiento de nuestra conexión a Internet. No olvidemos lo crítico que es verificar que nuestras computadoras y/o routers tengan cerrados todos los puertos, y solamente abrir aquellos que, explícitamente, necesitemos usar.
Proteger el Acceso a Internet
Muchas veces, queremos prevenir que nuestra conexión a Internet se use para navegar en páginas que pongan en peligro nuestra red o que no sean apropiadas (por ejemplo para nuestros hijos pequeños). OpenDNS es un servicio de DNS que nos permite filtrar las páginas que son accesibles, a través de la clasificación de sus contenidos. El servicio es gratuito, y si se requiere un mayor control sobre el filtrado de las páginas, tiene un costo. Es altamente recomendado para escuelas y negocios ya que con una sencilla configuración del router por el que se “sale a Internet”, se protege toda la red. Este es un ejemplo de los niveles de protección que permite filtrar OpenDNS (Figura 2). También se puede personalizar, si se desea dar acceso o no a páginas en específico, todo desde un sencillo panel de configuración a través de Internet.
"Dumpster Dyving"
Muchas empresas exponen de manera inconsciente información sensible, a través de la basura: Estados de Cuenta, Cuentas Bancarias, Manuales Técnicos, Directorios, etc. “Dumpster Dyving” se trata de buscar entre la basura de la empresa, información sensible y/o que ayude a realizar ataques más elaborados, especialmente de los conocidos como "Ingeniería Social", técnica ampliamente utilizada en nuestros días para comprometer la integridad de las personas y las organizaciones. Un triturador o incinerador de basura, soluciona el problema. En el tema de la basura, también entra la manera en la que nos "aseguramos" que la información de un equipo que se "desecha" o "cambia de manos" sea correctamente limpiado. Suponga que un director de su empresa cambia de laptop, ha pasado la información de la laptop vieja a la laptop nueva, y ha formateado la laptop vieja. Sin embargo, actualmente existen múltiples herramientas que permiten recuperar y extraer información de discos duros aún y cuando estos hayan sido formateados. Para evitar este tipo de ataques, la mejor manera es sobrescribir la información en lugar de simplemente borrarla, existen herramientas que nos ayudan a sobrescribir ya sea un archivo, el espacio libre, hasta discos duros completos, ayudándonos a que sea sumamente complicado recuperar cualquier información. Entre estas herramientas tenemos Eraser y Wipe.
LiNUX+ 9/2010
soluciones para empresas Seguridad en la PYME
Seguridad Física
Al final del día, cualquier configuración de software y/o hardware se puede vulnerar, si los dispositivos están al alcance de las personas, que con un poco de conocimiento técnico, o un buen tiempo de investigación en la red, pueden encontrar el botón "reset". Es por eso que el acceso a servidores, routers, antenas, y demás dispositivos tiene que estar protegido, fuera del alcance de cualquier curioso que altere estos equipos causando caídas en los servicios. De la misma manera, los respaldos tienen que resguardarse en otra ubicación física de donde están los equipos respaldados. Suponga que exista algún daño físico en el área de servidores (por ejemplo un incendio o inundación), el respaldo siempre estará seguro en otra oficina, o en otra ciudad. En alguna ocasión tuvimos que (literalmente) "sellar" los gabinetes de las computadoras de escritorio, para evitar que el personal abriera los equipos, reiniciara el BIOS y/o extrajera partes de la computadora como memorias, unidades de disco, etc.
El Enemigo Interno
La seguridad es cultura
La seguridad no se puede confiar ni en un solo proveedor (empresa o herramienta) ni en una sola persona (el "encargado de sistemas"), la seguridad se aplica con diversas herramientas, en diferentes estrategias y con el apoyo de las personas, el trabajo conjunto dará sus resultados.
En la red • •
Por increíble que parezca, la mayoría de los ataques informáticos, las violaciones a la seguridad, el robo de contraseñas y la suplantación de identidades, entre otros problemas, se originan por los mismos usuarios de nuestra red. Esto sucede por malicia de los usuarios y/o como muestra de rebeldía hacía el personal TI, por la implantación de medidas de seguridad, que no son amablemente aceptadas por los usuarios, y que en muchos de los casos “sienten” que les han sido quitados “privilegios” como descargar música ilegal... En estos escenarios, la implantación de los mecanismos de seguridad TI, tiene que estar acompañada de un fuerte compromiso por la dirección de la empresa, y de la creación de una cultura de la importancia de la seguridad y lo que representa.
Políticas y Procedimientos
hemos hecho énfasis en las herramientas gratuitas o de software libre que nos permiten mejorar nuestros escenarios de "Seguridad TI", sin embargo, el uso de estas herramientas siempre será más efectivo si en nuestra empresa hemos definido claramente las políticas y procedimientos que involucren y creen una cultura de responsabilidad entre los usuarios.
Hay muchas definiciones alrededor de estos dos conceptos, de manera sencilla podemos entender a las políticas como el conjunto de lineamientos que establecen un orden, y los procedimientos son los mecanismos a través de los cuales logramos el cumplimiento de las políticas. En este artículo
• • • • • • • • • • • •
• • • • • Figura 3. Página web de OpenDNS
Areca http://www.areca-backup.org/ AVG http://www.avg.com/ie-en/avg-rescue-cd Avira http://www.free-av.com/ ClamAV http://www.clamav.net Endian Firewall http://www.endian.com/en/community/overview/ Eraser http://sourceforge.net/projects/eraser/ Filseclab Firewall http://www.filseclab.com/eng/products/firewall.htm FreeNet Project http://freenetproject.org/ Kaspersky http://www.kaspersky.com/sp/anti-virus_linux_workstation OpenDNS http://www.opendns.com/ rsync http://rsync.samba.org/ Sandboxie http://www.sandboxie.com SpiderOak https://spideroak.com Altiris SVS http://download.cnet.com/Software-Virtualization-SolutionSVS/3000-2651_4-10516806.html Tor Project http://www.torproject.org/ TrueCrypt http://www.truecrypt.org/ VirtualBox http://www.virtualbox.org VMWare http://www.vmware.com Wipe http://freshmeat.net/projects/ya-wipe/
www.lpmagazine.org
33
internet Dropbox
Dropbox: Mantén tus archivos sincronizados en la nube Joaquín Rincón
es@lpmagazine.org
Nunca he estado a favor de los servicios de Internet que forman la famosa “nube”, he tenido pésimas experiencias con algunos editores en línea, sin embargo, una vez que utilicé el servicio ofrecido por Dropbox (dropbox.com) , quedé enganchado literalmente.
34
D
ropbox es un servicio de alojamiento de archivos en Internet, el cual, una de sus principales ventajas, es ser multiplataforma. Olvídate de problemas al mantener actualizados tus archivos si en la escuela tienes que usar Windows, en tu casa prefieres GNU/ Linux, y tu mejor amig@ usa MacOS, son perfectamente compatibles. Este servicio, se ofrece en 3 diferentes versiones, según la capacidad de almacenamiento y precio. La opción básica “Basic”, que es gratuita, te ofrece de inicio 2GB de almacenamiento, con posibilidad de incrementarlo hasta los 8GB de capacidad. El servicio de pago, tiene las opciones “Pro 50” y “Pro 100” con 50 y 100 GB de capacidad respectivamente. El servicio de Dropbox te permite almacenar y sincronizar ficheros tanto en la nube, como en los ordenadores en que desees tenerlos con la posibilidad de acceder a ellos vía web. Además, te permite compartir cualquier carpeta con otros usuarios de Dropbox, lo cual lo hace un medio muy eficiente cuando quieres compartir archivos con algún amigo o compañero de la escuela o trabajo. Usándolo como herramienta para sincronizar nuestro trabajo hace que poco a poco dejemos de lado las memorias USB y tener la garantía de que en cualquier momento tendremos en cualquiera
de nuestros equipos la última versión de nuestro fichero. Ya no hay pretexto de no poder terminar una tarea en casa por haber olvidado copiar la última versión a la memoria USB. De igual manera, olvídate de saturar tu cuenta de correo electrónico (y de tus allegados) cuando tienes que enviar algún fichero a tus jefes o profesores de la escuela en cada molificación que realices. En el caso, de que no desees compartir una carpeta completa con algún conocido también existe la posibilidad de usar una carpeta pública (dentro de tu cuenta) y enviar únicamente el link de descarga del archivo que tienes que compartir. Como herramienta auxiliar a la sincronización se cuenta con el servicio de historial de cambios (30 días en la versión gratuita), con la cual, si cometes algún error y borras un fichero importante, basta con acceder al panel de control vía web para restaurar la versión original del archivo borrado accidentalmente. Actualmente en el mercado te podrás encontrar diferentes ofertas de servicios similares a Dropbox,
Figura 1. Logotipo de Dropbox
Figura 2. Carpeta creada en el Home e icono de notificación
LiNUX+ 9/2010
internet Dropbox Tabla 1. Comparativa de los servicios del mercado Proveedor
S.O.
Almacenamiento
Tamaño máximo de archivo
P2P
Página web
Dropbox
Linux, Windows, Mac y iPhone, Android, iPad
Gratis 2Gb con posibilidad de aumentar a 8GB
350MB vía web Sin límite usando el cliente.
Si
www.dropbox.com
Windows, Mac y iPhone, BlackBerry, Android, Win Mobile, Symbian.
Gratis 2GB
No especifica en la web
Si
www.sugarsync.com
Ubuntu One – Canonical (se encuentra en fase Beta)
Linux
Gratis 2GB
No especifica en la web
No especifica en la web
one.ubuntu.com
ZumoDrive
Windows, Mac, Linux, asi como iPhone, Android y Palm
No especifica en la web
No especifica en la web
www.zumodrive.com
SugarSync
Pago 50, 100GB
Pago 30, 60, 100 y 250GB
Pago 100GB Gratis 1Gb con posibilidad de aumentar a 2GB Pago 10-500GB
algunos en estado Beta como el ofrecido por Canonical, Ubuntu One, y otros con características muy interesantes como SugarSync. En la Tabla 1 se muestra una comparativa de los servicios consultados.
De los anteriores servicios, tuve la oportunidad de usar un “breve” tiempo Ubuntu One, lamentablemente, los ficheros que puse de prueba en la carpeta para sincronizar, desaparecieron misteriosamente en una nube borrascosa de
PUBLICIDAD
www.lpmagazine.org
35
internet Dropbox
Listado 1. Puedes administrar Dropbox vía consola jrinconr@Lyoko:~$ dropbox -help Dropbox command-line interface commands: status get current status of the dropboxd help provide help
puburl get public url of a file in your dropbox stop stop dropboxd
start start dropboxd filestatus get current sync status of one or more files ls list directory contents with current sync status autostart automatically start dropbox at login
Figura 3. Interfaz del administrador web de Dropbox
internet. Está en fase beta, lo probé recién anunciado y no lo he vuelto a tocar, así que en la actualidad no sé si mejoraron el servicio. Pero la recomendación es buscar aquella opción que se adapte más a sus necesidades tanto de dispositivos a sincronizar, sistemas operativos y lo más importante, el costo a invertir en un espacio en la nube para guardar nuestros ficheros. Continuemos con Dropbox...
compartidas y el estatus de las invitaciones que hayas realizado (ver Figura 3). En la opción de administración de la cuenta, podrás ver cuanto espacio te queda disponible así como cuanto espacio dedicas a archivos personales y compartidos. También encontrarás información de los ordenadores a los que está vinculada tu cuenta indicando cuando fue la última sincronización en cada equipo (Figura 4).
Instalación y administración
Recomendaciones
Figura 4. Panel de administración vía web.
Figura 5. Tutorial de inicio en el sitio web
Dropbox puede ser instalado vía repositorios o descargándolo desde la página oficial del proyecto (https://www.dropbox.com/ downloading), siendo esta última opción la que recomiendan los desarrolladores. Una vez instalado y ejecutado por primera vez, te pedirá identificarte en el sistema o crear una cuenta nueva. Realizado este proceso, en la carpeta home se crea una carpeta llamada Dropbox, y un icono de notificación que te indica el estado de la sincronización (Figura 2). Dentro de la carpeta Dropbox puedes crear nuevas carpetas e ir agregando archivos hasta llegar al límite establecido en tu cuenta. Dropbox te permite administrarlo vía consola con unos cuantos comandos, que pueden ser consultados solicitando ayuda en la terminal (Listado 1). Vía web puedes administrar de igual forma todos los archivos que están contenidos en la carpeta Dropbox, además de conocer el historial de actividades recientes, las carpetas
36
La forma en que puedes incrementar el espacio de tu cuenta gratuita hasta los 8GB de capacidad es, en primer lugar, seguir el tutorial de inicio (Figura 5) con el cual ganas 250 MB, posteriormente por cada amigo que invites y éste abra una cuenta y vincule al menos una máquina, ganarás otros 250 MB hasta llegar al límite de 8GB. Finalmente, recordar que vía web podrás encontrar foros de ayuda por si tienes más dudas al respecto y la información de la página oficial no es suficiente. Y, como recomendación final, TEN SIEMPRE UN RESPALDO FÍSICO DE TUS DATOS, no dejes a la nube la responsabilidad de guardar tus datos importantes, que nunca se sabe si el día de mañana amaneceremos sin Internet o si nuestro proveedor dejó de funcionar o que por una mala sincronización pierdes información valiosa. Para más información visita: www.dropbox.com.
LiNUX+ 9/2010
Pรกginas recomendadas
www.diariolinux.com
www.elguille.info
www.gatolinux.blogspot.com
www.opensourcespot.org
www.hispabyte.net
www.linuxdata.com.ar
www.linuxhispano.net
www.pillateunlinux.wordpress.com
www.usla.org.ar
www.mundopc.net
www.picandocodigo.net
www.linuxuruguay.org
programación Acceso a BBDD MySQL usando PHP
Acceso a BBDD MySQL usando PHP Diego J. García
es@lpmagazine.org
Desde hace varios años los creadores de páginas web no se dan por satisfechos con una simple página en HTML sino que además le añaden algún lenguaje de programación de scripts para generar páginas dinámicas en el servidor. Al profundizar en el dinamismo de las páginas con lenguajes de script se hace más y más necesaria la dinamización de los propios contenidos. Una forma de solucionar este problema es añadiendo una base de datos de la cual recoger la información insertada por los diferentes usuarios.
U
n ejemplo claro es el registro automático de los usuarios en nuestra web. Para ello se necesitarán varios formularios de acceso a tal información, al menos uno de alta, uno de búsqueda – lista de resultados, uno de modificación, uno de ficha. Con estos formularios accediendo a una o varias tablas de la Base de datos se consigue un acceso dinámico a los contenidos.
Usuario CHAR(16),
Requisitos
Formulario de alta
Password CHAR(40), FechaAlta DATE, HoraAlta TIME, Sexo CHAR(1));
Para el acceso se usará un usuario llamado “usrlpmagazine” y password “pwdlpmagazine”.
Para realizar los ejemplos prácticos indicados en este artí- Para iniciar el alta de un registro en la web se utilizará culo se han utilizado los siguientes elementos:. un formulario HTML compuesto por los campos que queramos que sean registrados en la base de datos por • Formularios HTML, parte del usuario. • PHP 5, En el ejemplo se crea una página web muy simple en • MySQL 5, la que se incluyen únicamente los controles necesarios • Apache 2.2. para la ejecución del mismo. El lector puede incluir más campos en la base de datos y en el formulario así como Preparación de la base de datos mejorar el aspecto gráfico de este formulario y de los siEl objetivo principal de este tutorial es implementar en guientes utilizando un diseño acorde a las características PHP los accesos a una Base de Datos MySQL. Todos estos de su web. accesos se entenderán mejor si se ve la tabla de la base de Al rellenar el formulario el usuario pulsará el botón datos de ejemplo utilizada. Enviar y se enviarán los datos a la página de destino La base de datos usada se llama “MIWEB” y se crea “alta2.php” con la instrucción SQL: Cuando se ejecuta la página alta2.php es cuando realmente se realiza el alta en la base de datos por ello CREATE DATABASE MIWEB; contiene las instrucciones de conexión a la base de datos y la consulta que inserta. La tabla corresponde al registro de usuarios en nuestra web, se llamará “PERSONAS” y se crea usando la ins- Formulario de modificación trucción SQL: Para realizar el formulario de modificación se puede utilizar el formulario de alta al que se le añadirán los atributos CREATE TABLE USUARIOS( “value” de los campos para incluir en ellos como valores IdPersona INTEGER UNSIGNED AUTO_INCREMENT NOT por defecto los valores de la base de datos del usuario en NULL PRIMARY KEY, cuestión. Si en lugar de incluir este código en el HTML Nombre CHAR(100), se incluyera en una tabla, capa, texto, … tendríamos una
38
LiNUX+ 9/2010
programación Acceso a BBDD MySQL usando PHP
ficha o un texto que se rellenaría dinámicamente en función del usuario seleccionado. Para que este formulario se rellene dependiendo de este usuario se necesita incluir código PHP en el código HTML. En el código del formulario podemos observar que existe una línea en la que aparece el siguiente código:
registros, se utiliza una lista en la que se marcan los registros que se quieren eliminar y se pulsa sobre el botón de borrado. En el ejemplo que se propone, se va a utilizar un cuadro de texto en el que se pueda introducir el identificador correspondiente y un botón que al pulsarlo acceda al borrado en la base de datos del registro asociado a tal identificador. Para trasladar el ejemplo a un formulario como los indicados anteriormente solamente hay que tener en cuenta <form action="modifica2.php" method="POST"> que debemos recoger un identificador del registro que se desea eliminar. Es importante controlar que este identificador no haga referencia Si analizamos el código vemos que los datos del formulario se van a elementos que no se desean borrar. a enviar al fichero modifica2.php que es el que está indicado en la Al igual que se ha hecho en los formularios de inserción y en etiqueta action, con lo que tendremos que crear un nuevo archivo el de modificación se va a usar un archivo que será el que realice la con este nombre el código que va a realizar la modificación sobre la operación de borrado. Este fichero se llamará borra2.php pues es el base de datos. fichero que se ha incluido en la etiqueta “action” del formulario.
Formulario de borrado
Formulario de búsqueda
En la mayoría de las webs no se utiliza un formulario de borrado Cuando queremos buscar información en una base de datos debemos, propiamente dicho. Para acceder al borrado de cualquier dato de una en primer lugar, elegir los datos por los que se quiere buscar. tabla lo más normal es añadir un botón en el formulario de modificaExisten diferentes formas de formularios de búsqueda de datos ción o en la ficha. En algunos casos, cuando se quieren borrar varios en función de las necesidades de búsqueda: Listado 1.1. Código HTML del formulario de alta <html> <body> <h2 align="center">Alta de Usuarios</h2> <form action="alta2.php" method="POST"> <table align="center" border=1 cellspacing=0> <tr> <td>Nombre: </td> <td><input type="text" name="txtNombre"></td> </tr> <tr> <td>Usuario: </td> <td><input type="text" name="txtUsr"></td> </tr> <tr> <td>Password: </td> <td><input type="password" name="txtPwd"></td> </tr> <tr> <td>Sexo: </td> <td> Hombre:<input type="radio" name="rdoSexo" value="M"> Mujer: <input type="radio" name="rdoSexo" Value="F"> </td> </tr> <tr> <td colspan=2 align="center"> <input type="submit" value="Enviar" name="alta"> </td> </tr> </form> </body> </html>
www.lpmagazine.org
39
programación Acceso a BBDD MySQL usando PHP
•
•
•
Se elige un campo de la base de datos por el que buscar. En el formulario se incluye este campo y a partir de éste se utiliza el texto que produce para introducirlo en la consulta SQL. Es la forma más fácil de crear el formulario y además la más sencilla de programar. Se puede crear un formulario que contenga varios campos por los que buscar agregándoles a cada uno de ellos un “radiobutton” en el que se pueda seleccionar de forma dinámica el campo por el que se quiere buscar. La única diferencia con el anterior es que en el código de la búsqueda debemos incluir las comparaciones necesarias para saber cual es el campo por el que se está buscando en la base de datos. Mucho más flexible aunque un poco más complejo es la posibilidad de incluir varios campos de búsqueda a la vez. Este formato no sería problema siempre que se quiera buscar por todos los campos. El problema viene cuando se dejan campos vacíos en los que el usuario no introduzca nada. Lo normal es que en la base de datos se busque por los campos que cumplen todos los elementos rellenos y no busque por los elementos que no se han rellenado y aquí radica la diferencia con los anteriores pues hay que “indicarle” mediante SQL a la base de datos que no busque por estos campos, sea cual sea el contenido de los mismos en los registros.
•
•
Más flexible todavía aunque puede ser mucho más complejo para el usuario es usar una mezcla de los anteriores usando cada uno de los campos por los que buscar y añadiéndoles un “checkbox” a cada uno indicando si queremos buscar por ese campo o no, de forma que podamos buscar consultas del tipo “Devuélveme todos los registros que cumplan los criterios marcados y además este campo esté vacío”. Es el más complejo pero a la vez el más completo de todos. Se pueden incluir muchas combinaciones extra, como buscar la palabra exacta, cualquiera de las palabras, si un valor es mayor, menor, igual, etc..., en función de las necesidades de los usuarios que van a manejar el formulario de búsquedas, aunque tanto el caso anterior como cualquiera de las combinaciones posibles que lleven una complejidad añadida, se suelen incluir en búsquedas avanzadas pues suelen llevar una dificultad añadida en el manejo de la aplicación web.
Para el ejemplo mostrado, se ha decidido crear un formulario del segundo tipo descrito anteriormente, es decir el de varios campos entre los que se escoge uno para realizar la búsqueda. Viendo el formulario de búsqueda podemos observar el nombre que debe llevar el fichero sobre el que se va a realizar la búsqueda
Listado 1.2. Código PHP de ejecución del alta en la base de datos <?php // 1) Conexión al servidor mysql . En primer lugar se sitúa el host donde se //
sitúa la base de datos y a continuación el usuario y el password con
//
los que nos vamos a conectar
$conexionBBDD=mysql_connect('localhost','usrlpmagazine','pwdlpmagazine') or die(mysql_error()); // 2) Elección de la base de datos "MIWEB" mysql_select_db('MIWEB',$conexionBBDD) or die(mysql_error()); // 3) Creación de la cadena SQL necesaria para realizar la inserción del usuario //
al recoger los datos se usa el vector $_POST que es el encargado de
//
recoger los datos del formulario
$sql_insercion = 'INSERT INTO USUARIOS(Nombre,Usuario,Password,FechaAlta,HoraAlta,Sexo) VALUES('; $sql_insercion .= '"' . htmlentities($_POST['txtNombre']) . '",'; $sql_insercion .= '"' . htmlentities($_POST['txtUsr']) . '",'; $sql_insercion .= '"' . htmlentities($_POST['txtPwd']) . '",'; $sql_insercion .= "CURDATE(),"; $sql_insercion .= "CURTIME(),"; $sql_insercion .= '"' . htmlentities($_POST['rdoSexo']) . '");'; // 4) Ejecución de la inserción mysql_query($sql_insercion) or die(header("location: error.php?error=no_insertado"));
// 5) Obtención del ID primary key que se acaba de insertar $idInsertado=mysql_insert_id(); // 6) Cierre de la conexión con la base de datos mysql_close($conexionBBDD); //7) Envío directo a la página de modificación header("location: modifica.php?id=$idInsertado");
40
LiNUX+ 9/2010
programación Acceso a BBDD MySQL usando PHP
Listado 2.1a. Código HTML-PHP del formulario del modificación <html> <body> <h2 align="center">Modificaci&oacute;n de Usuarios</h2> <form action="modifica2.php" method="POST"> <?php // 1) Se crean 3 variables sin texto que se usarán para los valores por defecto $Nombre=''; $Usuario=''; $Sexo=''; // 2) En primer lugar se comprueba si se ha pasado algún valor a través de la //
URL mediante la función array_key_exists que comprueba si un array tiene
//
un índice concreto
if(array_key_exists('id',$_GET)){ // 3) Al igual que en el caso del alta, nos conectamos a la base de datos //
para poder buscar al usuario en cuestión
$conexionBBDD=mysql_connect('localhost','usrlpmagazine','pwdlpmagazine') or die(mysql_error()); // 4) Tras una conexión correcta, accedemos a la base de datos "MIWEB" mysql_select_db('MIWEB',$conexionBBDD) or die(mysql_error()); // 5) Realizamos una búsqueda en la base de datos donde nos muestren el usuario //
que tiene el identificador parado como parámetro $rs_usuario=mysql_query("SELECT Nombre,Usuario,Sexo FROM USUARIOS WHERE IdPersona=" . $_GET['id'])
or die(mysql_error()); // 6) Tras almacenar en la variable $rs_usuario el resultado de la consulta //
anterior comprobamos si nos ha devuelto algún registro y si es así lo
//
almacenamos en las variables que hemos creado al principio if(mysql_num_rows($rs_usuario)>0){
$Nombre=mysql_result($rs_usuario,0,"Nombre"); $Usuario=mysql_result($rs_usuario,0,"Usuario"); $Sexo=mysql_result($rs_usuario,0,"Sexo");
} } ?> <table align="center" border=1 cellspacing=0> <tr> <td>Nombre: </td> <td><input type="text" name="txtNombre" value="<?php // 7) Como hemos recogido el nombre en una variable ya sea nulo u obtenido de la //
base de datos ahora lo ponemos por defecto en el campo correspondiente echo $Nombre;?>"></td>
</tr> <tr> <td>Usuario: </td> <td><input type="text" name="txtUsr" value="<?php // 8) Igual que hemos hecho con el nombre hacemos ahora con el usuario echo $Usuario;?>"></td> </tr> <tr> <td>Sexo: </td> <td>Hombre:<input type="radio" name="rdoSexo" value="M" <?php // 9) Indicamos el valor que había sido seleccionado en el radiobutton en //
función del valor de la variable $Sexo
if($Sexo=='M') echo 'checked';?>>
Mujer: <input type="radio" name="rdoSexo" Value="F" <?php </tr>
if($Sexo=='F') echo 'checked';?>></td>
www.lpmagazine.org
41
programación Acceso a BBDD MySQL usando PHP
Listado 2.1b. Código HTML-PHP del formulario del modificación <tr> <td colspan=2 align="center"> <input type="hidden" value="<?php echo $_GET['id']?>" name="id"> <input type="submit" value="Enviar" name="modificacion"></br> <a href="busqueda.php">Ir a la B&uacute;squeda</a> </td> </tr> </table> </form> </body> </html>
Listado 3.1. Código HTML del formulario de borrado <html> <body> <h2 align="center">Borrado de Usuarios</h2> <form action="borra2.php" method="POST"> <table align="center" border=1 cellspacing=0> <tr> <td>Borrar persona n&deg;: </td> <td><input type="text" name="txtIdPersona"></td> </tr> <tr> <td colspan=2 align="center"> <input type="submit" value="Borrar" name="borrado"></br> <a href="busqueda.php">Ir a la B&uacute;squeda</a> </td> </tr> </table> </form> </body> </html>
Listado 3.2. Código PHP de la ejecución del borrado <?php // 1) Conexión al servidor mysql. En primer lugar se situa el host donde se //
sitúa la base de datos y a continuación el usuario y el password con
//
los que nos vamos a conectar
$conexionBBDD=mysql_connect('localhost','usrlpmagazine','pwdlpmagazine') or die(mysql_error()); // 2) Elección de la base de datos "MIWEB" mysql_select_db('MIWEB',$conexionBBDD) or die(mysql_error()); // 3) Creación de la cadena SQL necesaria para realizar el borrado de los //
datos del usuario que obtendremos del vector $_POST que es el encargado de
//
recoger los datos del formulario de borrado
$sql_borrado = 'DELETE FROM USUARIOS WHERE idPersona='. $_POST['txtIdPersona']; // 4) Ejecución deL borrado mysql_query($sql_borrado) or die(header("location: error.php?error=no_borrado")); // 5) Cierre de la conexión con la base de datos mysql_close($conexionBBDD); //6) Envío directo a la página de búsqueda de usuarios header("location: busqueda.php"); ?>
42
LiNUX+ 9/2010
programación Acceso a BBDD MySQL usando PHP
de los datos y que va a ser el encargado de construir la consulta SQL se quieran incluir, mostrar o editar y por tanto la estructura de los a partir de los datos enviados en función del campo elegido para accesos a la base de datos no es necesario modificarla pues las modibuscar. ficaciones habría que hacerlas en las consultas SQL que se ejecutan en cada mysql_query. Conclusión Aparte de las consultas SQL que habrá que modificar en función De los códigos mostrados anteriormente se pueden extraer los rasgos de la consulta que se quiere hacer en la BBDD, también hay que decir básicos de la programación sobre PHP del acceso a una base de datos que este código PHP es una estructura a la que se le deben añadir MySQL. Estos códigos son fácilmente extrapolables a las necesida- diferentes elementos para su puesta en producción en una aplicación des del lector pues a partir de cada uno de los ejemplos podemos para el público. En los ejemplos mostrados se debe atender a que se implementar búsquedas, altas, bajas y modificaciones. La adaptación debería ampliar el código incluyendo funciones que protejan nuestros dependerá de la estructura de la base de datos y de los datos que datos de accesos indebidos, es decir funciones de seguridad. Entre Listado 4.1. Código HTML de búsqueda eligiendo el campo de filtrado en tiempo de ejecución <html> <body> <h2 align="center">B&uacute;squeda de Usuarios</h2> <form action="busqueda2.php" method="POST">
<table align="center" border=1 cellspacing=0> <tr> <td colspan=3>Buscar por:</td> </tr> <tr> <td><input type="radio" name="rdoBusca" value="I"></td> <td>Identificador: </td> <td><input type="text" name="txtIdUsuario" value=""></td> </tr> <tr> <td><input type="radio" name="rdoBusca" value="N"> </td> <td>Nombre: </td> <td><input type="text" name="txtNombre" value=""></td> </tr> <tr> <td><input type="radio" name="rdoBusca" value="U"></td> <td>Usuario: </td> <td><input type="text" name="txtUsr" value=""></td> </tr> <tr> <td><input type="radio" name="rdoBusca" value="S"></td> <td>Sexo: </td> <td>Hombre:<input type="radio" name="rdoSexo" value="M"> Mujer: <input type="radio" name="rdoSexo" Value="F"></td> </tr> <tr> <td colspan=3 align="center"> <input type="submit" value="Enviar" name="modificacion"> </td> </tr> </form> </body> </html>
www.lpmagazine.org
43
programación Acceso a BBDD MySQL usando PHP
Listado 4.2a. Código PHP de la búsqueda y listado de registros de la BBDD <?php // 1) Conexión al servidor mysql . En primer lugar se situa el host donde se //
sitúa la base de datos y a continuación el usuario y el password con
//
los que nos vamos a conectar
$conexionBBDD=mysql_connect('localhost','usrlpmagazine','pwdlpmagazine') or die(mysql_error()); // 2) Elección de la base de datos "MIWEB" mysql_select_db('MIWEB',$conexionBBDD) or die(mysql_error()); // 3) En primer lugar deberemos conformar la consulta SQL //
que vamos a realizar a la Base de Datos
$strSQL="SELECT IdPersona,Nombre, Usuario, Sexo FROM USUARIOS"; // 4) A la consulta se le va a incluir la clausula correspondiente //
a la selección que haya hecho en el formulario.
//
Si no se hubiera seleccionado nada no se incluiría ningún
//
filtrado de datos y por tanto se mostrarían todos los registros
switch ($_POST['rdoBusca']){ case 'I':
case 'N':
case 'U':
case 'S':
}
$strSQL .= " WHERE IdPersona='" . $_POST['txtIdUsuario'] . "'"; break;
$strSQL .= " WHERE Nombre like '%" . $_POST['txtNombre'] . "%'"; break;
$strSQL .= " WHERE Usuario='" . $_POST['txtUsr'] . "'"; break;
$strSQL .= " WHERE Sexo='" . $_POST['rdoSexo'] . "'"; break;
// 5) Ejecución de la búsqueda sobre la base de datos $rsUsuarios=mysql_query($strSQL) or die("location: error.php?error=no_buscado"); ?> <html> <h2 align="center">Lista de Usuarios</h2> <body> <table align="center" border=1 cellspacing=0> <tr> <td> <b>Nombre</b> </td> <td> <b>Usuario</b> </td> <td> <b>Sexo</b> </td> <td> <b>Modificar</b> </td>
44
LiNUX+ 9/2010
programación Acceso a BBDD MySQL usando PHP
Listado 4.2b. Código PHP de la búsqueda y listado de registros de la BBDD </tr> <?php // 6) Creamos el listado completo de la tabla con los resultados //
obtenidos en la búsqueda a la base de datos con un bucle
for($i=0;$i<mysql_num_rows($rsUsuarios);$i++){ //
Para cada registro de la base de datos creamos su
//
equivalente en la tabla que queremos mostrar echo "<tr>"; echo "<td>";
//En el mismo orden que los titulos mostramos cada dato echo mysql_result($rsUsuarios,$i,"Nombre"); echo "</td>"; echo "<td>"; echo mysql_result($rsUsuarios,$i,"Usuario"); echo "</td>"; echo "<td>"; //
En el caso del campo Sexo escribimos el texto en
//
función del valor que tuviera en la Base de Datos if(mysql_result($rsUsuarios,$i,"Sexo")=='M') else
echo "Masculino"; echo "Femenino";
echo "</td>"; echo "<td>"; echo "<a href=\"modifica.php?id=" . mysql_result($rsUsuarios,$i,"IdPersona") . "\">Editar</a>"; echo "</td>"; echo "</tr>"; } ?> <tr> <td colspan=4> <a href="busqueda.php">Ir a la B&uacute;squeda</a> </td> </tr> </table> </body> </html>
estas funciones se debería comprobar el acceso con autenticación de usuario, protección ante la inyección SQL, autorización de páginas, separación de funciones en librerías, creación de sesiones, protecciones solicitadas por el usuario de la misma, etc..., elementos que no se han incluido pues el objetivo principal ha sido generar las estructuras de acceso a una BBDD para mayor comprensión de las mismas. También es conveniente indicar que el aspecto y accesibilidad de las páginas es muy importante para el usuario final, por lo que es interesante incluir código de script de navegador como javascript y crear páginas CSS cuyas clases modelen la parte visible de la web. La unión de código PHP con estos elementos constituye una herramienta muy potente para las páginas que se generan dinámicamente en función de los datos contenidos en una BBDD.
Sobre el autor Diego J. García es Ingeniero Técnico de Informática, actualmente profesor de formación profesional en el IES Pedro Mercedes de Cuenca. Anteriormente ha trabajado como jefe de los departamentos de “Administración y Gestión de Bases de Datos” y “Desarrollo” en los cuales, durante varios años, dirigió y programó diferentes portales privados utilizados como aplicaciones distribuidas en diferentes lenguajes entre los que se encuentran PHP y MySQL.
www.lpmagazine.org
45
música y Linux CheapSounD
CheapSounD: Chiptunes, LoFi,
Soundtrackers, 8-bits Bands y otras rarezas Lino García Morales
es@lpmagazine.org
CheapSound (al igual que en el artículo Linux SmartCheap. Construcción desde la nada, publicado en LiNUX+ 7/2010, www.lpmagazine.org, pp.37-43) es un juego fonético entre Cheap/Chip juega con los conceptos barato/[circuito integrado] en una clara alusión al sonido producido por tecnología electrónica pero no por cualquiera sino por aquella relacionada con los vídeo juegos y, más en concreto, con el chip SID (Sound Interface Device) 6581/8580 de MOS Technology y toda la revolución estética que supuso.
S
ID es un sintetizador/generador de efectos de sonido compatible con la familia de microprocesadores 65XX (incorporado en los ordenadores domésticos CBM-II, Commodore 64, Commodore 128 y Commodore MAX Machine de Commodore) que provee un control amplio y preciso de la frecuencia, color de tono (contenido armónico) y dinámica (volumen) pero, lo que es más importante, una circuitería de control especializada que minimiza la programación, facilitando el uso en vídeo juegos e instrumentos musicales de bajo coste. Fue uno de los primeros chips de sonido incluido en un ordenador doméstico antes de la revolución del sonido digital. El chip SID fue creado por el ingeniero Robert Yannes, que más tarde fundó la compañía de sintetizadores llamada Ensoniq. Junto con el chip VIC-II, el chip SID fue indispensable en hacer el ordenador C64 el ordenador más vendido en la historia de los ordenadores y es parcialmente acreditado por iniciar la demoscene: subcultura informática que llegó a su auge en la era de los microprocesadores de 16 bits (la Atari ST y la Amiga), aunque las demos ya habían aparecido en computadoras de 8 bits como la Commodore 64 y la ZX Spectrum.
Figura 1. SID (Sound Interface Device) 6581
46
LiNUX+ 9/2010
Vivimos en la Edad de Oro de los Medios Muertos Bruce Sterling
¿Por qué hablar de toda esta cacharrería obsoleta en tiempos tan sofisticados para la producción de música digital? ¿Tiene sentido? La respuesta es sí y es que, como afirma Sterling, vivimos en la edad de oro de los medios muertos y este renacimiento se debe a la reinvención de los medios obsoletos. Estas acciones son una forma de resistencia cultural en contra de la obsolescencia planificada, de la búsqueda de lo nuevo sin valorar el pasado, de los mitos, en definitiva, de una cultura “comercial”. La obsolescencia “incorporada” afecta a la inmensa mayoría de los bienes de consumo con estrategias que animan al consumidor a comprar algo que ya tienen para seguir a la moda, para estar al día, en definitiva para continuar siendo propietario de algo que funciona tecnológicamente avanzado (véase el artículo Soluciones sostenibles. Tecnologías para el desarrollo humano, publicado en LiNUX+ 6/2010, www.lpmagazine.org, pp.36-42). Matteo Bittanti lo define de la siguiente manera: “lo que para unos es un vertedero para otros es la isla del tesoro”. Los creadores perturban las estrategias adoptadas por los fabricantes de juegos poniendo al descubierto el
Figura 2. Commodore 64
música y Linux CheapSounD
Figura 3. Uno de los vídeo juegos más populares en los inicios: Space Ivaders
potencial sin explotar del hardware desechado haciendo de lo retro algo totalmente nuevo. Como escribió Colson Whitehead el leitmotiv es: “El fallo es lo que guía la evolución; la perfección no ofrece ningún estímulo para mejorar”, el fallo de uno es la perfección del otro. La Figura 4. Otro video juego: Pacman música chip (cheapsound?) es el mensaje. reproducción, pero dotó a aquellos procesadores de un sintetizador substractivo, hardware de muy bajo coste y flexible. SID no tuvo un Chiptunes claro competidor hasta 1985 cuando llegó al mercado la Nintendo Este término designa la música compuesta mediante hardware de Entertaiment System (NES); aún así las reglas de “juego” seguían audio pero, no cualquiera, sino empleando aquellos microchips de siendo diferentes: la Commodore 64 era un ordenador doméstico antiguos ordenadores domésticos y consolas de vídeo juegos. La y el nuevo NES estrictamente una consola de vídeo juegos. A finarelación con los vídeo juegos es evidente pero no hace referencia les de los 80s los jugadores europeos se inclinaban por ordenaexclusivamente, según Kevin Driscoll y Joshua Díaz, a las bandas dores domésticos programables como la Atari ST, el Amiga y las sonoras o a las composiciones musicales de vídeo juegos. máquinas compatibles IBM PC frente a consolas de vídeo juegos Los juegos informáticos se introdujeron en la privacidad del hogar cerradas como la NES, Game Boy y Sega Genesis. a principios de los ochenta después de que los juegos digitales arcade habían proporcionado la única experiencia informática a cualquier Trackers gente de a pie. Sin embargo, los ordenadores no fueron orientados En 1987, Karstein Obarski diseñó una herramienta gráfica para que inicialmente al mundo del vídeo juego y sus capacidades de repro- le asistiera en sus labores de composición para su ordenador Amiga ducción de audio eran muy limitadas a diferencia de las máquinas A500: The Ultimate SoundTracker. La novedad de esta herramienta recreativas arcade hechas a medida. La inclusión del SID junto con era que presentaba los 4 canales de sonido del ordenador en forma un chip de gráficos en el Commodore 64 marcó una gran diferencia de un rollo de piano vertical (metáfora que correspondía eleganterespecto a la arquitectura Atari en cuanto a flexibilidad para la progra- mente con la estructura en bucle común prácticamente a todas las mación de gráficos y sonido. Era posible programarlo directamente subrutinas de reproducción de música del chip SID) a la vez que en lenguaje de máquina del 6502. proveía la posibilidad de programar música sin saber programar. Programar al SID no era simple, de hecho los “compositores” Todas las herramientas de tracking posteriores heredaron esa tenían no sólo que escribir la música sino también el software de estructura conceptual de los patrones en bucle SID de Hubbard.
Figura 5. SoundTracker: Ventana principal con la vista de las pistas
Figura 6. SoundTracker: Vista del Editor de Instrumentos
www.lpmagazine.org
47
música y Linux CheapSounD
Figura 8. SoundTracker: Información de los Módulos
Figura 7. SoundTracker: Vistas del Editor de Sonido (muestras)
Los trackers tenían otras características no menos importantes: se distribuían gratuitamente y, al contrario de lo que sucedía con los formatos MIDI (que sólo contenían la notación musical) adjuntaban en sus formatos, tanto los patrones como las muestras de una canción (formato MOD). Este diseño en base a patrones sigue siendo muy popular (en definitiva, como señaló Schaeffer, la música es cualquier cosa que se repite) y la inclusión de las muestras de audio permitía que la música se escuchase igual, independientemente de la capacidad de sonido del ordenador (algo que no pudo conseguir el MIDI). Esta filosofía de los trackers le acercó a la comunidad del software libre y, posteriormente, a Linux. La Figura 3 muestra algunas vistas del programa SoundTracker (http://www.soundtracker.org/). La evolución de los trackers ha permitido el empleo de controladores (como teclados USB), conexión con otros programas (vía Jack, por ejemplo) y, como Figura 9. Sintetizador substractivo HyperSID con todas las capacidades del chip no podía ser de otra manera, la producción de sonido 8-bits mediante SID C64 más nuevas características controlado MIDI ya no sólo mediante la emulación software de SID sino a través de una herramienta mucho más versátil: el sampler.
Emuladores
Un sampler es un sintetizador por tabla de ondas. Su funcionamiento es lo más parecido a un grabador doméstico. Si se aumenta la velocidad de reproducción de una cinta sube el tono (como el sonido pitufo) y se baja todo lo contrario. El sampler (muestreador en castellano) graba digitalmente trozos de sonidos en lo que denomina tabla de ondas y luego las reproduce a velocidad variable para conseguir todos los tonos. En los inicios (teniendo en cuenta la gran cantidad de memoria que ocupan muestras de sonido de alta calidad) utilizaban muy pocas muestras y, con ellas, se las arreglaban para satisfacer Figura 10. Librería de sonido de 8 bits comercializada por Sony una tesitura mucho más amplia pero hay sonidos que, cerca de una quinta de distancia tonal, sufren una degradación tonal inadmisible (debido principalmente a la distorsión de sus formantes). Con el tiempo ha llegado incluso a utilizarse el disco duro en lugar de la RAM Listado 1. Patrón de muestra extraído de Monty on the Run, de Hubbard (Gremlin Graphics, 1985). A cada número hexadecimal le corresponde una serie de bits que indican diversas características de la nota a reproducir, como la duración, instrumento, tono, efecto, etc. [2.8] ptn=34* byt $03,$4a,$03,$4a,$a3,$f8,$48,$03 byt $4a,$03,$4a,$03,$4a,$a3,$f8,$48 byt $03,$4a,$ff
48
Figura 11. Algunos juguetes y artefactos intervenidos (I)
LiNUX+ 9/2010
música y Linux CheapSounD
y, sin restricciones de espacio, las muestras pueden ser de altísima calidad (24 bits, 96 KHz, por ejemplo) y todas las que se necesiten; incluso más de una muestra para cada nota (teniendo en cuenta la sutil variación del timbre respecto la dinámica). Una vez llegado a este punto surge una paradoja. El uso de muestras 8-bits o LoFi para estas nuevas tecnologías. Esta capacidad de emulación permite retornar a una cultura desde otra perspectiva puramente estética. Ahora el chiptunes es posible sin el SID, ni los quebraderos de cabeza que suponía programarlo en la C64 que, dicho sea de paso, es difícil encontrar ya alguna en perfectas condiciones y mantenerla a pleno rendimiento después de tres décadas.
Circuit Bending
Lo que traduciré como intervención creativa de circuitos es una “técnica” para crear nuevos instrumentos musicales o visuales, y generadores de sonido a partir de cortocircuitar las pistas de dispositivos electrónicos de bajo voltaje como efectos de guitarra con pilas, juguetes para niños y pequeños sintetizadores digitales. Basado sobre todo en el azar y la espontaneidad, estas intervenciones se han asociado comúnmente con la música del ruido, a pesar de que ya muchos músicos contemporáneos más convencionales y grupos musicales se han atrevido a experimentar con ella. Por lo general desmantela la máquina y le añade componentes como interruptores y potenciómetros que alteran el circuito a ¿voluntad? Ese tipo de intervenciones es igualmente una actitud militante hacia la obsolescencia en la medida en que recicla las funciones para las que fueron diseñados los objetos a los que se dirige. El dispositivo Speak and Spell, de Texas Instruments, (Figura 11) es
uno de los principales objetos de intervención. Estos experimentos, mucho más dependientes del azar, no son sólo una forma atrevida de acercarse a la tecnología, sino una manera desinhibida, sin complejos, de entender la creación. Los resultados no son demasiado armónicos pero comparten determinados aspectos de la ideología punk, en una estética postpunk, como una instrumentación llevada a lo esencial y una lógica de “hazlo tú mismo” a la que agregaría “y comparte”.
Conclusiones
Como dijo Marshall McLuhan “la obsolescencia jamás supuso el fin de nada. No es más que el principio”. La "era de oro" de los chiptunes fue desde mediados de los 80 hasta principio de los 90, cuando estos chips eran el único modo de reproducir música en los ordenadores. Una vez asesinados, muertos, obsoletos, asistimos a una segunda "era de oro", la de los medios muertos, a su resurrección. Los chiptunes no son exclusivos de la generación game boy. Son cada vez más los artistas y creadores que lo incorporan a sus proyectos. Prueba de ello es la exposición PLAY-LIST, Jugando con juegos, música, arte; que organizó el Centro de Arte y Creación Industrial de Gijón: LABoral, entre diciembre de 2009 y mayo de 2010. El espíritu libre de esta música no sólo está presente en sus herramientas y raíces sino también en la distribución de su producción. Son muchos los sitios en Internet desde donde es posible descargar gratuitamente estas creaciones, frutos, como apunta Benjamin Well, de una reinvención tecnológica, un acto de resistencia creativa que abre nuevos caminos para el arte y la cultura popular.
Sobre el autor Lino García Morales es Graduado en Ingeniería en Control Automático, Máster en Sistemas y Redes de Comunicaciones y Doctor por la Universidad Politécnica de Madrid. Ha sido profesor en el Instituto Superior de Arte de la Habana, la Universidad Pontificia “Comillas” y la Universidad Meléndez Pelayo. Actualmente es profesor titular de la Escuela Superior de Arte y Arquitectura y de la Escuela Superior Politécnica de la Universidad Europea de Madrid y Coordinador del Grado en Arte Electrónico y Digital. Artista y científico, lidera un grupo de
Figura 12. Algunos juguetes y artefactos intervenidos (II)
investigación transdisciplinar en la intersección Arte, Ciencia y Tecnología. Ha disfrutado de Becas por la Agencia Española de Cooperación Internacional, FUNDESCO, el Consejo Superior de Investigaciones Científicas (CSIC) y la Universidad Politécnica de Madrid.
Enlaces de interés
Figura 13. Algunos juguetes y artefactos intervenidos (III)
• • • • •
SID: http://es.wikipedia.org/wiki/SID Cheaptunes: http://es.wikipedia.org/wiki/Chiptune 8bitpeople: http://www.8bitpeoples.com/ RushJet1: http://nsf.4x86.com/ HyperSID: http://www.hypersynth.com/hypersid.html
• •
SoundTracker: http://www.soundtracker.org/ PLAY-LIST: http://www.laboralcentrodearte.org/exhibitions/ show/116
www.lpmagazine.org
49
opinión “¿Café? No, gracias”, respondió el servidor DNS
“¿Café? No, gracias”, respondió el servidor DNS
H Fernando de la Cuadra, director de Educación de Ontinet.com, distribuidor en exclusiva de las soluciones de seguridad de ESET en España
50
ace algún tiempo, con un gran amigo, pensamos en escribir una pequeña novela de terror, pero de “terror informático”. Estaría basada en la caída globalizada de Internet un día de estos. Sí, eso es poco probable, no es tan fácil hacer que todos (¡todos!) los servidores se caigan a la vez, pero caramba, era una novela, ¿no? No obstante, intentando que tuviera algún punto de verosimilitud, decidimos que ya que tirar todos los servidores de Internet es complejo, bastaría con tirar solamente 13: los que soportan el sistema DNS, los llamados “DNS root”. Estas 13 máquinas son las que se encargan de “llevar la lista” de direcciones IP y sus correspondientes nombres de dominio. Cierto es que hay muchos más que solo 13, ya que tienen réplicas, pero esos 13 son los grandes y de ellos dependen los demás. Cualquier modificación que se haga en esos 13 servidores DNS afecta al comportamiento del resto de sistemas, con lo que un ataque contra ellos supondría el desastre que andábamos buscando para la novela. Puestos a investigar, descubrimos que la mejor manera de atacarlos, la más sencilla, la más barata y con más éxito era tirar un poco de café encima de la placa (o placas) base de los sistemas. Y no acabamos de ponernos de acuerdo en cómo hacerlo, así que la novela sigue pendiente. Si estás leyendo esto, José Manuel, a ver qué día quedamos y nos ponemos en serio. El caso es que estos 13 servidores han dado un paso adelante muy grande para mejorar la seguridad de los usuarios de Internet. Desde mediados del mes de julio pasado, los servidores DNS incorporan un sistema de firma digital mediante el cual se certifica que la dirección IP obtenida al hacer la consulta de un nombre de dominio es cierta. ¿Qué ventajas tiene esto? Para mi novela pocas, pero hay dos fundamentales. Una el fabuloso negocio que ha hecho la empresa que gestiona esas firmas digita-
LiNUX+ 9/2010
les, seguro que sus acciones han subido muchos puntos y sus directivos se pueden ir de vacaciones donde les dé la gana. Y la otra, que es un paso adelante en la seguridad de La Red. Las técnicas de pharming (basadas precisamente en engaños a la hora de convertir nombres de dominio en IP) tienen en este sistema de firmas un pequeño enemigo, hay avances en el intento de frenarlas. Desgraciadamente, que 13 grandes servidores tengan implementado un nuevo sistema de seguridad no significa que, de nuevo, todo el monte sea orégano. El pharming utiliza el fichero “hosts” de cada PC, de manera que hasta que el sistema “baje” a los ordenadores de los usuarios queda mucho, muchísimo tiempo. Y lo que es más grave, el pharming afecta a todos los sistemas, independientemente de qué sistema operativo utilicen. He visto sistemas Linux con ese fichero de hosts modificado por culpa de una imprudencia del usuario que lo gestionaba (me niego a llamarle administrador). Ese usuario estaba convencido de que no le iba a pasar nada, ya que usaba Linux. “Eso solo le pasa a los usuarios de Windows”, debía pensar, y así le fue. Que 13 servidores tengan instalado un sistema muy seguro para evitar fraudes en la resolución de nombres de dominio no quiere decir que debamos abrir botellas de cava para celebrarlo y decidir que el mundo se ha arreglado. Es un avance importante, sí, pero nos queda mucho tiempo hasta que lo disfrutemos. Viene a ser como cuando en los años 70 se hablaba de un dispositivo llamado “airbag”, que hasta más de 30 años después no se vio generalizado. Y a pesar de eso, sigue muriendo gente en la carretera. La confianza excesiva puede ocasionar problemas muy gordos, así que no nos confiemos y sigamos protegiéndonos de los códigos maliciosos, del pharming y de las tazas de café sobre las placas base. Porque la novela la escribo, eso sí que es seguro.