Copias de seguridad en sistemas Linux con Dar

Una decisión a la que nos enfrentamos a la hora de tener los datos respaldados es a la de qué herramienta utilizar para dicha tarea. Hasta ahora siempre he utilizado tar en mis máquinas para hacer las copias de seguridad, pero cuando el volumen de datos no son 500 MB, sino 12 GB, la cosa casca. El principal problema es que parece que tar no fue pensado para esto. El segundo es que tar es secuancial (¿Me permitís compararlo con una cinta de backup?) por lo que para descomprimir un fichero recorrerá todo el fichero hasta que lo encuentre. Este proceso son 2 horas y algo como mínimo, algo impensable a la hora de recuperar algo.

Por lo tanto, como me ha gustado tanto esta herramienta me dedicaré a explicar un poco como hacer unas copias de seguridad y como restaurar ficheros desde la misma, así como cifrar backups.

# dar -c /mnt/Backup/Backup_Completa -R /datos -s 4400M -D -P Temporal -y9 -Z “*.gz” -Z “*.zip”

La línea anterior llamará a dar para hacer una copia de seguridad del directorio /datos y guardando el fichero de backup como /mnt/Backup/Backup_Completa en trozos de 4400 MB. La backup estará comprimida con bzip2 con un índice de compresión de 9 (-y9), excluyendo de la compresión los ficheros zip y gz (Los ficheros serán incluidos pero no comprimidos). De esta backup se excluirá completamente el directorio /datos/Temporal, pero gracias a la opción -D se creará el directorio en la copia de seguridad, aunque este esté vacio.

La copia de seguridad tardará un buen tiempo, y una vez haya finalizado podemos comprobar que se ha creado correctamente utilizando el flag -t que se ocupa de comprobar el CRC de los ficheros.

# dar -t /mnt/Backup/Backup_Completa

Ahora que tenemos la copia de seguridad completa podemos continuar haciendo copias de seguridad diferenciales o incrementales. Yo, por mi parte, prefiero las diferenciales, que aunque ocupen más espacio, son más fáciles de restaurar pues tan solo necesitamos una copia de seguridad completa y la última diferencial. Dar nos facilita la tarea a la hora de hacer backups diferenciales con el flag -A que sirve para comparar los archivos originales con una copia de seguridad ya hecha con el fin de salvar solamente los ficheros modificados desde esa copia de seguridad.

# dar -c /mnt/Backup/Backup_Lunes -R /datos -s 4400M -D -P Temporal -y9 -Z “*.gz” -Z “*.zip” -A /mnt/Backup/Backup_Completa

Con esta línea hacemos lo mismo que lo que he explicado con la línea anterior, pero almacenando la copia diferencial con otro nombre y utilizando como copia de seguridad de referencia el fichero /mnt/Backup/Backup_Completa.

Hasta ahora si una copia de seguridad cae en malas manos la información sensible de la misma puede ser extraída por cualquiera, con lo que esto implica, por lo que cifraremos las copias de seguridad con Blowfish para curarnos en salud además de poder cumplir con la LOPD (Si no me equivoco, exige cifrar las backup). Aquí se nos presenta un problema, y es que si le pasamos a dar como parámetro el flag -K bf:Password cualquier usuario en la mayoría de las distribuciones podrá ver en plano la contraseña con tan solo ejecutar ps. Para no caer en este error sin renunciar al cifrado de las copias de seguridad automatizadas utilizaremos el fichero /root/.darrc que solo podrá ser leído por el usuario root y contendrá dos líneas:

-K bf:Password
-J bf:Password

La opción -K se ocupará de utilizar cifrado con Blowfish como algoritmo, y Password como contraseña cuando cree backups y descomprimamos backups. Por otro lado, la opción -J se ocupa de lo mismo, pero a la hora de comparar la backup. De hecho, recibiremos un aviso siempre que hagamos una copia de seguridad completa diciendonos que la opción -J solamente es útil si se utiliza con la opción -A, algo que en una copia de seguridad completa no se utiliza. Si deseamos en algún momento que estas opciones no se utilicen de forma implícita podemos utilizar la opción -N en la línea de comandos.

Hasta ahora hemos visto como crear copias de seguridad completas y diferenciales con determinadas opciones muy interesantes. Ahora explicaré como extraer ficheros de la copia de seguridad.

# dar -x /mnt/Backup/Backup_Completa -I Cadiz.avi -R /root/RESTORE

Esto extraerá de la backup /mnt/Backup/Backup_Completa el fichero que se llame Cadiz.avi en el directorio /root/RESTORE. Será muy rápido, pero existe un inconveniente y es que mediante este método se creará en el directorio /root/RESTORE todo el arbol de directorios vacío ensuciando el proceso de restauración. Es una buna opción si queremos recuperar todo tras un desastre, pero cuando queremos extraer solamente determinado fichero de una copia de seguridad a un directorio en concreto usaremos la opción -f que nos servirá para que el fichero Cadiz.avi se guarde directamente en /root/RESTORE. Por supuesto, si tenemos dos ficheros iguales en la copia de seguridad en diferentes directorios, nos preguntará si deseamos sobreescribirlo, ya que se extraerá en el mismo directorio con el mismo nombre. ¿Y si queremos extraer un directorio completo? Utilizaremos la opción -g indicándole como valor la ruta relativa de lo que queremos extraer. Imaginemos que queremos restaurar el directorio /datos/usuarios/manuel al completo, con todo su contenido. Como la backup se hace del directorio /datos utilizaremos la opción -g usuarios/manuel, por ejemplo. Se entiende ¿no?

# dar -x /mnt/Backup/Backup_Completa -g usuarios/manuel -R /root/RESTORE

Por último, si os ponéis a automatizar las copias de seguridad no olvidéis utilizar la opción -w, ya que si se desea sobreescribir las copias de seguridad diarias (conocidas como copias de seguridad hijo) nos preguntará si deseamos sobreescribir el fichero existente y no continuará hasta que no le facilitemos una respuesta.

Con lo explicado y un poco de bash podemos automatizar un proceso de backups creando una copia mensual completa, una completa semanal y diferenciales diarias basadas en la última semanal. Las copias una vez cifradas se pueden sacar de la empresa por si se incendiase o inundase, y aunque están cifradas y supuestamente están protegidas, la contraseña que utilicemos es lo único que las protege, por lo que debe ser fuerte.

Os recomiendo probarlo y que saquéis conclusiones vosotros mismos. Para más información la web oficial del proyecto.

Escrito por Gura 28.Nov.07 GNU/Linux, Sistemas Leer más Comentarios (7)

Voy ponete mirando pa Cuenca

Este fin de semana fuimos a Cuenca, pero sinceramente, me vine como fuí, sin saber qué significa el Voy a ponerte mirando para Cuenca o Tener el ojo mirando para Cuenca. Recuerdo habérselo preguntado a un taxista y me miró con cara extraña, como si le contase un chiste de Lepe a uno de Lepe.

Yo en principio no iba a ir por un malentendido, pero al final el Viernes a las cuatro de la tarde arreglé el tema del billete y a continuación llamé al hotel para cambiar una habitación doble por una triple.

El viaje lo hice con AutoRes a las seis y media de la tarde. Tras las dos horas y poco de viaje hasta Cuenca, salgo de la estación y ahí estaban Coto, Willie, Amy y Vicent, como no, flipando, excepto Coto que ya lo sabía. Llamamos a dos taxi y subimos al Hotel Cueva del Fraile, un poco a tomar por el culo, de tres estrellas por el que yo pagué un extra de 24 euros la noche. Luego vino Xuan, Irra, Elvira y Vero en coche, pararon en un chino (a.k.a. vendemos de todo) y trajeron pan, algo de comer, algo de cerveza y tal. Nos reunimos en una habitación, cenamos y comenzamos a jugar a la hora del poder, por lo que final fue muy deprimente en el 99,999% de los casos.

Al día siguiente nos levantamos como si no hubiésemos dormido y fuimos a ver el casco antiguo de Cuenca, comimos por allí, continuamos viendo el casco antiguo, subimos a un parador muy panchu, dimos una vuelta por la tarde y fuimos a cenar de tapeo a la Cervecería Pepe, donde nos trataron muy bien además de quedar como un pepe. La noche del Sábado nos la pasamos en la habitación del hotel jugando a las cartas. El Domingo recogimos, fuimos a comer, despedimos a Amy que tenía el bus a las dos y media, y a las cuatro y media cogimos el bus dirección Madrid, esta vez Willie, Coto y yo.

En fin, que excepto por algún que otro contratiempo el fin de semana fue descomunal. Próximo destino… ¿Logroño? ¿Casa rural en la Sierra de Madrid? Nos vemos, pero recordad una cosa, nunca pasa nada bueno después de las dos de la mañana.

Escrito por Gura 27.Nov.07 lost+found Leer más Comentarios (4)

Instalación de VMWare Server en Debian Etch sin X

En el curro hemos preparado una modesta máquina para virtualizar las máquinas failover que tenían poca carga. Mi sorpresa es que VMWare Server pedía librerías que no tenía instaladas, todas referentes a las X. Busqué por Google y como no, llegué a un foro de Ubuntu donde el tio se instalaba todo el sistema gráfico. Yo como soy algo maniático en estos aspectos estuve indagando hasta que instalé todo lo necesario para la configuración correcta de VMWare Server y utilización de la consola remota.

# apt-get install libx11-6 libxtst6 libxt6 libxrender1

Eso debería servir. Luego hace falta bajarse el cliente para conectar al servidor remotamente desde máquinas que no tienen el VMWare Server instalado, y que el servidor tenga inetd corriendo para que vmware-authd funcione y autentifique.

Lo único que queda es instalar VMWare Server en la máquina, pero eso está tan documentado que me da palo escribirlo. Espero que os sirva para no ensuciar el sistema (¿Qué narices hacen unas X y las respectivas fuentes en un servidor dedicado a la virtualización?).

Ahora busco una utilidad de backup para vmdk… y económica.

Un saludo.

Escrito por Gura 19.Nov.07 Debian, GNU/Linux, Sistemas Leer más Comentarios (6)

ROUTE target en IPTables

Se trata de un módulo no oficial para IPTables que hace más fácil y centralizada la gestión de rutas a host en un sistema linux. Una vez configurado nos permitirá reglas del tipo:

# iptables -A PREROUTING -t mangle -d 193.110.10.58 -j ROUTE –gw 10.0.0.257

Para echarlo a funcionar tendremos que parchear el kernel con patch-o-matic. Como los sources de Debian utilizan otra numeración al aplicar el parche nos fallará. La idea es bajarse los sources de la misma versión de iptables que nos ofrece debian y utilizando para el parcheo.

Instalamos las fuentes oficiales de Debian desde apt-get, que hará que sean más fáciles de mantener que las que nos bajemos de kernel.org, y alguna herramienta de compilación:

# apt-get install linux-source-2.6.18 gcc make ncurses-dev
# cd /usr/src
# tar -xjpf linux-source-2.6.18.tar.bz2
# ln -s linux-source-2.6.18 linux

Bajamos y descomprimimos las fuentes de IPTables:

# wget iptables-1.3.6.tar.bz2
# tar -xjpf iptables-1.3.6.tar.bz2

Bajamos y descomprimimos patch-o-matic:

# wget patch-o-matic-ng-20070728.tar.bz2
# tar -xjpf patch-o-matic-ng-20070728.tar.bz2
# cd /usr/src/patch-o-matic-ng-20070728

Si, es cierto, no es la versión más nueva que existe, pero el que las más nuevas no incluyen el módulo ROUTE. Es sospechoso y me preocupa algo (¿Por qué lo habrán quitado?), pero como ejemplo sirve.

Aplicamos el parche ROUTE indicandole que los sources de IPTables están en determinado directorio.

# IPTABLES_DIR=/usr/src/iptables-1.3.6 ./runme ROUTE

Ahora contestamos y. Nos dirá que el parche ha sido aplicado satisfactoriamente y que ahora es necesario compilar el kernel y los módulos.

Para ahorrar tiempo y desplegarlo más rápido en diferentes máquinas haremos un paquete deb del kernel.

Copiamos la antigua configuración del kernel precompilado de Debian

# cd /usr/src/linux
# make oldconfig

Instalamos las herramientas necesarias:

# apt-get install kernel-package

Desinstalamos el viejo kernel de Debian:

# apt-get remove –purge linux-image-2.6.18-5-686

Limpiamos el directorio de compilaciones previas si las hubiese:

# make-kpkg clean

Ahora compilamos de dos formas. La primera si necesitamos un paquete con los headers para algun driver como el de nVidia y demás. El segundo es el que he utilizado y servirá en la mayoría de los casos.

# make-kpkg –initrd kernel_image kernel_headers

o

# make-kpkg –initrd kernel_image

Podemos ahora desplegar este kernel precompilado por todas las debian que queramos utilizando dpkg:

# dpkg -i Kernel.deb

Como dije antes el target ROUTE parece que no ha sido incluido en versiones más nuevas de patch-o-matic. Quizá por estar descontinuado, fallar o por alguna otra razón. La verdad que no conozco la causa, pero lo que se puede hacer es utilizar iproute e iptables, para marcar los paquetes y darles salida por la puerta de enlace deseada.

Un saludo.

Escrito por Gura 12.Nov.07 Debian, GNU/Linux, Sistemas Leer más Comentarios (6)

Los videos del evento

Hace unas semanas asistí a el evento Asegurate de que está seguro en Getafe. Daniel Rubia, entre otros preguntaron como conseguir las PPT y como no, los vídeos. Hoy Chema nos ofrece los vídeos del evento.

Disfrutadlo

Escrito por Gura 11.Nov.07 lost+found Leer más Comentarios (2)

¿Y a ti? ¿Te gusta la carne?

Ayer tuve visita. Vino una amiga y sus amigos de Guipuzkoa, luego nos juntamos con unos gallegos y decidimos ir a cenar por ahí. La verdad que no sabía a dónde llevarles… no quería llevarles a cenar un plato combinado, el PATATUS quedó descartado pues a dos chavales las salsas no les gustaban, y el the WOK quizá fuese un poco especial en ese momento (El rollo oriental), por lo que me arriesgué y les llevé a la Parrilla El Gaucho, una parrilla argentina donde se come de puta madre. El trato fue muy bueno, la carne muy buena (reivindico, muy buena) y aunque no es precisamente barato mereció la pena haber comido allí

Entre otras cosas, comimos revuelto de setas, criollos, queso a la plancha, patata asada, solomillo, asado de tira, ojo de bife, milanesa napolitana, provoleta, cafe, chupito, etc.

Si os animáis a ir un día os dejo todos los datos:

Parrilla El Gaucho
C/ Tetuán, 34 (Cerca de la Plaza del Carmen)
Tlf.: 91 522 47 93

Pues nada, el consejo del colega Willie no defraudó, si quieres carne… un argentino. Y despues de cenar… tomarse unos copazos… o unas pintas de Guinness.

Club Virtual
C/ Ballesta, 12 (Cerca del Pans & Company de Gran Vía)
Abierto hasta las 6:30 0 7:00 (Aunque tengo salido de él más tarde algún dia)

Black Jack
C/ Principe, 11

Lamlei
C/ Principe, 20

Cervecería Irlandesa O`Neill`s
C/ Principe, 12

Por cierto, salir en grupo, entre otras, tiene una ventaja, y es que cuando se cuenta con 11 cabezas se puede negociar el precio del cubata a 3,50 euros… quien lo diría… en Madriz.

Ala, pa que no os quejéis. Y hoy también tengo cena… van a terminar conmigo.

Escrito por Gura 10.Nov.07 lost+found Leer más Comentarios (0)

Mañana… Security Day

Que semana más sabática. Hoy a ver si me voy por la noche a tomar unas Guinness al O`Neill`s, mañana Security Day por la mañana, trabajar por la tarde, el Jueves día normal, pero vienen unas amistades de Vitoria a la noche, y el Viernes fiesta en Madrid. Los ponentes del Security Day han cambiado un poco y así ha quedado la cosa:

Pinta muy bien :). Como podéis ver estará Chema, Jose Parada, volveré a ver a David Cervigón después de tanto tiempo, y conoceré a Daniel Matey (El Gran Sauron).

Y en la línea del tema de la seguridad os dejo con un artículo de Joseba Enjuto en raíz a esta noticia.

Bye.

Escrito por Gura 06.Nov.07 lost+found Leer más Comentarios (0)

Comparando SELinux con OpenBSD…

Estaba el otro día leyendo los feeds mientras veía los entrenamientos de F1 del gran premio de China y leí un título interesante: SELinux vs. OpenBSD se titulaba el artículo. Coño, a ver que cuentan…

Pues quieren comparar SELinux que es lo que es con OpenBSD que también es lo que es. Los argumentos son de lo mejorcito:

Os dejo un artículo que me gusta mucho ya que explica muy bien como funciona PaX (Parte de la suite GRSecurity para Linux, que aunque no tenga nada que ver con SELinux, es un elemento más en la fortificación de un sistemas Linux) y W^X de OpenBSD.

Vamos, que en mi opinión no es solamente qué se usa, sino cómo se usa y como de implementa, y en mi opinión Linux ofrece más herramientas para fortificar el sistema que un sistema OpenBSD y quien no quiera ver más allá de la calidad del código en mi opinión no está haciendo una buena evaluación de todo el rol. OpenBSD todos sabemos que tiene fallos. Pocos, pero ahí están y sus paquetes tambien tienen fallos, y los paquetes no son parte del core, luego no son auditados, luego la misma cagada que comete el devel de determinada aplicación de lo que sea en Linux, puede cometerlo en el paquete de OpenBSD (Si lo incluye, claro, y si tiene esa misma versión). Y digo yo… de que sirve tener un sistema base con un muy buen código si luego tu aplicación que escupe html o correo es vulnerable? Creo que es ahí donde entra PaX, SELinux, RSBAC, etc intentando que la explotación de la vulnerabilidad no sea tan fácil de llevar a cabo…

Esa es mi opinión. Un saludo.

Escrito por Gura 05.Nov.07 *BSD, GNU/Linux, OpenBSD, Sistemas, Software Leer más Comentarios (2)




Todo el contenido de este blog se ha publicado bajo una Licencia Creative Commons.