Modulado 3.0

if (bored) try { while ( ! ( this.succeed() )) } catch ( IhaveSoMuchTimeException e) {};

Archivos en la Categoría: Administración de sistemas

10 herramientas Open Source para realizar copias de seguridad de forma sencilla en Linux

Hacer copias de seguridad de nuestro sistema o de los archivos importantes que guardamos en nuestro ordenador es una tarea importante que muchos usuarios olvidan justo hasta el momento que ocurre un desastre. Por esa misma razón, he seleccionado 10 aplicaciones para linux sencillas de utilizar, con el objetivo de que cualquiera pueda tener a mano copias de respaldo en caso  de que algo malo ocurra.

La gran mayoría de estas imitan el sistema incremental que usa Time Machine de Apple, creando una copia de seguridad completa de lo que queremos guardar y posteriormente guardando copias de seguridad de los cambios realizados a partir de la última copia, permitiendo restaurar un fichero o varios seleccionando un punto en el tiempo. Las dos únicas aplicaciones de este listado que se diferencian son CloneZilla y Mondo Rescue. CloneZilla es un clon del famoso Norton Ghost y su función principal es crear crear imágenes completamente idénticas de un disco o una partición. Por otro lado, Mondo Rescue esta pensado como una utilidad para recuperación ante desastres, creando imágenes completas de todo el sistema. Para más información sólo tenéis que seguir los enlaces y mirar la documentación de cada una, realmente no tienen mucha complicación a la hora de configurar y demás historias, motivo por el cual me he ahorrado las descripciones y las características de cada una.

Por último me gustaría aclarar que el orden de la lista ha sido completamente involuntario, por lo que la calidad de las aplicaciones no van relacionadas con la posición en la que aparecen.

Benchmarks para MySQL

Desde el blog de Mark Callaghan podemos descargar los scripts que usa para la comprobación de rendimiento en code.google.com. Para quien no lo sepa, Mark lidera el equipo de ingeniería de MySQL en Google desde hace ya varios años.

Modelos Entidad Relación con Power Architect

Existe una gran oferta de herramientas Open Source para generar diagramas E-R. De las que conozco hoy he elegido Power Architect para dar un poco a conocer las características de esta gran herramienta. 

Desarrollada en Java y distribuida bajo licencia GPLv3, la convierte en una aplicación ideal si estás buscando una herramienta que sea multiplataforma, ya que está disponible para Linux, Windows y Mac OS X. Pero no es precisamente esta característica la que la hace destacable, es sobre todo que está diseñada para poder trabajar con diferentes Bases de datos: Oracle 8i, Oracle 9i, Oracle 10g, PostgreSQL, MySQL, SQL Server y DB2. 

Power Architect es algo más que una simple aplicación para generar diagramas E-R, pudiendo destacar la posibilidad de generar los scripts de creación de tablas, procedimientos, etc (Fordward Engineering) para los modelos de datos, recuperar dichos modelos de una base de datos existente, o dicho de otra forma, Ingeniería inversa (Reverse Engineering), analizar estructuras de datos entre diversos modelos de datos para ver las diferencias y similitudes, creación de perfiles, etc. Con lo cual, hablamos de una herramienta perfecta para DBAs (Administradores), analistas y diseñadores.

 

Para más información podéis visitar cualquiera de los siguientes enlaces:

Página de Power*Architect: http://www.sqlpower.ca/page/architect

Página del proyecto: http://code.google.com/p/power-architect/

Prestando atención a la seguridad de tu base de datos (MySQL)


sakila-security
Uno de los factores más importantes y al mismo tiempo uno de los factores que menos atención le prestamos es al tema de la seguridad. Normalmente, bien por desconocimiento,  por falta de tiempo, o incluso, por confiarnos demasiado, obviamos los factores de riesgo a los que nos enfrentamos por no hacer una pequeña parada y estudiar este punto.

En una sociedad como la de hoy en la que la información es poder, que menos que preocuparnos por el corazón que mueve toda la información sensible, nuestra base de datos.

MySQL a su vez se ha convertido en uno de los Sistemas Gestores de Bases de datos más usados actualmente, gracias a la buena cohesión con los CMS como WordPress o Drupal, con lo cual y al mismo tiempo, también ha crecido la oferta y la demanda de vulnerabilidades.

Hay administradores de sistemas que se preocupan poco de la seguridad -aunque por suerte estos son los menos-, normalmente están tan ocupados con que las cosas funcionen bien -o al menos conformarse con no recibir quejas y que simplemente funcione- que pasan un poco por encima esta parte del diseño. Al igual que cuando diseñamos una red, es un factor crucial hacer un estudio de las diferentes capas que pueden generar amenazas. Esto es, las posibles amenazas plausibles que pueden comprometer tanto el buen funcionamiento como la perdida parcial o total de los datos. Esto incluye obviamente, no solo ataques externos, si no además perdidas de datos a causa de una mala política en copias de seguridad. Por lo tanto, cuando hablamos de seguridad no sólo hay que tener en cuenta ataques externos causados por alguna vulnerabilidad en el software que usamos, también tenemos que ser capaces de prever fallos en el hardware, desastres como una inundación, un incendio, un robo, o un misil que navega con Windows Route y se ha desviado hacia tu servidor, etc. ¿Imagináis que los Datacenter donde albergáis vuestras webs, blogs y similares no tuvieran estas cosas en cuenta? Menudo caos.

Centrándonos un poco, hablando de seguridad, existen una serie de pautas a tener en cuenta que no podemos pasar por alto. Voy a enumerar las que a mi parecer me parecen más triviales, sacadas del manual de referencia de MySQL:

  • NUNCA hay que dar acceso a un usuario normal a la tabla mysql (excepto al usuario root de MySQL).
  • Estudiar el sistema de control de acceso, las declaraciones GRANT y REVOKE se usan para controlar dicho acceso a tu base de datos.
  • Comprueba que no puedes conectar a tu base de datos como root sin que te pida una contraseña. Por defecto, ninguna de las cuentas creadas por la instalación tienen contraseña, así que si no prestas atención tu sistema se verá comprometido.
  • La declaración SHOW GRANTS te ayuda a saber que tipo de acceso tiene cada cuenta y sobre qué lo tienen. Úsala para luego quitar accesos innecesarios con REVOKE.
  • Nunca almacenes contraseñas en texto plano.
  • Usa contraseñas difíciles de romper y educa a tus usuarios a no usar números, nombres o palabras fáciles de averiguar con ataques por fuerza bruta, diccionarios o tablas rainbow. Existen multitud de aplicaciones tanto para generarlas como para almacenarlas, así que no hay excusa.

Una ayuda importante en el planteamiento, es sin duda alguna el diseño de las vistas y sus correspondientes privilegios. Normalmente, cuando establecemos los privilegios sobre las tablas, sólo nos preocupamos precisamente de éstas y damos de lado a una gran herramienta para limitar el acceso a los datos, o al menos para controlar que tipo de datos almacenados en las tablas pueden ver los usuarios y cuales no. Una forma de hacer esto, es establecer que tipo de datos son públicos, cuales críticos y cuales privados. Con el uso de vistas, a través de selects, proyecciones y joins podemos crear vistas con las que filtraremos la información accesible para nuestros usuarios.

Crear una estructura jerárquica de usuarios con sus respectivos roles. Los más típicos son el administrador, los programadores, los operadores de datos y los usuarios. Lo mismo que un usuario no tiene por qué tener acceso a los procedimientos almacenados, un programador no tiene por qué tener acceso a los nombres y números de cuenta de los clientes. Ni los usuarios de la sección de Marketing por que tener acceso a las tablas de contabilidad. Limitar el acceso mediante una aplicación muchas veces no es la forma más correcta, en cambio, si además de una aplicación usamos una estructura bien definida de quién puede hacer qué con su cuenta y sobre qué tiene acceso, nos ahorraremos muchos problemas en un futuro.

Hacer un buen diseño lleva mucho tiempo y además requiere cierta experiencia y ciertos conocimientos. Existen muchas más cosas a tener en cuenta, como la instalación de firewalls, o situar la base de datos en una zona desmilitarizada, o el uso de filtros y/o aplicaciones para evitar ataques por inyección SQL, etc, etc, pero yo, no soy un experto y no puedo abarcar todos esos temas -no, sin antes documentarme-.

Como siempre me gusta repetir, existe una cantidad exquisita de documentación suelta por la red, ansiosa de ser leída. Como todo en la vida, la experiencia se adquiere con el tiempo y los conocimientos sólo tenemos que ir a buscarlos; pues no podemos pretender levantarnos de la cama un día diciendo “Tanque cárgame un curso de seguridad intensivo para MySQL, PostgreSQL y Oracle“, por que os puedo asegurar que ese día significará que estáis atiborrados de pastillas – y no precisamente rojas o azules-.

Foxmarks disponible para IE y Safari

Hace poco os hablaba de como sincronizar vuestros favoritos con una extensión de firefox llamada Foxmarks. Pues bien, desde el día 4 de Febrero Foxmarks anunció la disponibilidad de esta fantástica herramienta para los otros dos grandes del mercado de los navegadores web, Internet Explorer y Safari. 

Aunque estas versiones no están tan maduras como la versión para firefox (aun no se ha añadido soporte para sincronizar contraseñas) al menos la versión para Safari  ha superado el proceso de testeo (fase beta) y está disponible desde la sección de descarga junto con la versión Beta para IE.

Además, la versión de Safari incluye soporte para los iPhone. Así pues, los usuarios de iPhone también podréis disfrutar  de Foxmarks desde vuestros teléfonos.

Sincroniza tus Bookmarks con Foxmarks

1227234962Foxmarks es una extensión para el navegador Firefox que te permite tener una copia sincronizada de tus bookmarks. Lo mejor de esta extensión no es sólo tener una copia de seguridad de tus favoritos, es si no la posibilidad de acceder a ellos desde cualquier parte, bien sea desde la página web de Foxmarks o desde tu ordenador portátil (o cualquier otro ordenador del que dispongas tanto en casa como en el trabajo).

Además. Foxmarks te da la posibilidad de tener una copia sincronizada también de las contraseñas almacenadas en tu navegador de forma segura.

La instalación  es exactamente igual al resto de extensiones que existen para este navegador. Una vez instalado solo tendremos que crear una cuenta que será la que posteriormente usaremos para sincronizar nuestros favoritos en cada uno de los ordenadores donde instalemos Foxmarks.

Enlaces: Foxmarks | Descarga

Protege Mysql con GreenSQL

Dado que la gran mayoría de ataques que se producen a sitios web están relacionados con vulnerabilidades referentes a la inyección de sentencias SQL, toda precaución es poca a la hora de administrar nuestro sitio. La gran mayoría de las veces (y esto es un problema realmente importante a tener en cuenta) la raíz del problema radica en las propias aplicaciones web, que o bien por despiste de los programadores, o bien por deficiencias en su diseño e implementación, permiten a un usuario malicioso manipular mediante comandos SQL la información que se transmite desde la aplicacion web al servidor de la base de datos, obtieniendo, modificando e incluso destruyendo información legítima de la base de datos.

GreenSQL es un firewall que actua como protector frente a ataques de inyección SQL. Su funcionamiento es bien sencillo, su función principal es ejercer de proxy entre el servidor web (y su correspondiente aplicación) y la base de datos, analizando cada una de las consultas que se lanzan desde la aplicación a la base de datos; una vez ha sido validada este la manda hacia el servidor MySQL.

En la sección de descargas hay paquetes binarios para gran cantidad de distribuciones, CentOS, Debian, Ubuntu, Rhel, OpenSUSE, Fedora, Mandriva… Y por supuesto, si no hay binarios para tu distribución siempre puedes descargar e instalar a partir del código fuente.

Enlaces:

Para mas información acerca de su instalación: GreenSQL Howto.

Página de Descarga.

Gestiona tus contraseñas con PasswordSafe

Cualquier usuario medio hoy día tiene que lidiar con un número considerable de contraseñas, foros, blog, mensajería instantánea, correo, certificados digitales, cuentas ebay o Amazon, etc. Un error muy común para solucionar este problema es usar la misma contraseña para todo. Otros, usan papeles que pegan en sus escritorios (que la gran mayoría de las veces terminan extrapapelándose). Esto además de ser un problema serio de seguridad que puede comprometer tu información personal, es un mal hábito fácil de corregir.

Ventana principal
Ventana principal

PasswordSafe es una herramienta sencilla y muy práctica para almacenar, organizar e incluso generar contraseñas para tus cuentas de usuario de una forma segura. Por el momento sólo está disponible para Windows, aunque sé  que unos cuantos de sus desarrolladores están trabajando en una versión Java de PasswordSafe.

Esta herramienta usa una contraseña maestra para cifrar una pequeña base de datos que podremos almacenar en el dispositivo que deseemos, disco duro, llave USB… Además, con la última versión de PasswordSafe sus desarrolladores han añadido soporte para Yubikey. Yubikey es un dispositivo de autenticación USB que manda una clave diferente cada vez que se activa. De éste modo, con PasswordSafe podemos tener el nivel de seguridad que más nos convenga o se adecue a nuestras necesidades, pero principalmente, tendremos un control más exhaustivo de nuestras contraseñas, además de poder usar contraseñas mas seguras y fiables que nuestro número de teléfono, el nombre de nuestra novia o el del gato… ¿Alguien se siente identificado?

Enlace de descarga: PasswordSafe.

LVM: Ventajas sobre el particionado tradicional

Una de las maravillas de Linux (una de las principales razones por las que no cambio de sistema operativo) es seguramente LVM. Una de las características fundamentales de LVM es que podemos asignar uno o varios discos duros a formar parte de lo que en LVM se denomina un Grupo de Volúmenes Lógicos, en donde podemos definir (obviamente) Volúmenes Lógicos, que son para que nos entendamos, una distribución lógica del espacio de ese grupo de volúmenes (igual al particionado del disco duro), con la gran diferencia de que estos volúmenes pueden formar parte de un sólo disco duro o estar compuesto por varios.

Uno de los grandes inconvenientes de los iniciados en Linux es siempre el particionado del disco. A todos nos surgió la misma duda la primera vez que instalamos este sistema operativo: ¿Qué espacio he de asignarle a cada partición? Esta duda es fácil de responder teniendo en cuenta la cantidad de información que hay hoy día en la red, pero ¿que ocurriría si nos equivocamos y vemos que el particionado es deficiente? Esta es una de las grandes ventajas de usar LVM sobre el particionado tradicional, y es precisamente por eso por lo que distribuciones como Fedora usan LVM por defecto en la instalación. Entre sus muchas posibilidades, lo que hace más interesante a LVM es que podemos redimensionar a placer los volúmenes lógicos una vez creados. Existen herramientas como Partition Magic o Parted para redimensionar particiones, pero a mi gusto y aunque son herramientas muy potentes que pueden sacarte de un apuro en un momento dado, son tediosas y a veces algo inconsistentes. Otra de las grandes ventajas que tiene usar LVM es que podemos añadir discos duros a nuestros grupos de volúmenes, con lo cual, podemos ir agrandando nuestros volúmenes manteniendo nuestro sistema de ficheros como si sólo tuviéramos un disco duro en el equipo. Para entenderlo mejor, un volúmen podría ser la partición para el raiz (/ o root), o para los usuarios del sistema (/home), o incluso donde almacenamos las copias de seguridad (/opt/backup). Con LVM podemos distribuir nuestro sistema de ficheros a nuestro antojo, ya sea en un disco duro, una partición, o varios discos, usando RAID o no.

Es verdad que hace unos años usar LVM era algo bastante engorroso, sobretodo para una persona novel, pero hoy en día tenemos herramientas gráficas muy potentes para administrar nuestro sistema de ficheros con LVM. Una de estas herramientas es la que usa la distribución Fedora, system-config-lvm.

system-config-lvm
system-config-lvm

Como podéis observar en la imagen, se trata de un sistema de ficheros compuesto por dos discos duros en los que tenemos definidos tres volúmenes logicos: root, home y swap.

Aunque es una herramienta desarrollada principalmente para Fedora, está también disponible para Debian, Ubuntu y algún que otro sistema mas.

Así pues y para finalizar, si estáis pensando en hacer una instalación limpia de Linux (sea cual sea la distribución) mi recomendación es que os documentéis bien sobre LVM (tanto en la propia documentación de vuestra distribución favorita como la que hay suelta por la red) y le deis una oportunidad, ya que con el tiempo no os arrepentiréis.

Enlaces de interés:

LVM. Como instalar y configurar LVM en Ubuntu. | vía ubuntu-es.org

Understanding LVM |vía Guía de instalacion de Fedora 10 (Ingles)

Uso de LVM en Debian | vía esDebian.org

Cooliris 1.9: mucho más que una extensión para Firefox

Hace unos pocos días tuve el placer de descubrir una interesante aplicación, Cooliris. Cooliris está disponible tanto para firefox, como para safari, iexplorer e iphone.

Para que veáis la potencia de este visualizador os dejo un vídeo de youtube que habla por si sólo.