Backup seguro y gratuito.
Siguiendo con mi post sobre servidores, una parte fundamental es la parte de backup, ya que siempre es importante estar preparados los desastres. Lo importante de los backups es la redundancia, y la seguridad. Nadie mas que nosotros tiene que poder ver nuestros backups.
Anteriormente mencione que Amazon S3 es una solución barata, muchas veces barata no es suficiente (especialmente si pagas a Amazon S3 una fortuna por otros sitios). Luego de pensar, y pensar en un medio de almacenamiento mas o menos seguro y gratis de ser posible, se ocurrió que tengo bastante espacio ocioso en mi gmail (65% para ser exacto). La única limitación es que el backup generado tiene que ser menor de 20MB. El único problema que ahora surge es que Google podría leer nuestros backups y ahí obtener valiosa información sobre nuestro sitio web, base de dato u otra cosa que este contenida en el backup,
Para solucionar ese problema podríamos usar encriptación, de manera que nadie pueda ver el contenido del archivo sin una clave.
Aqui les presento el script que yo utilizo para hacer los backups de mis servidores.
#!/bin/bash -x MAIL=foobar@gmail.com #Obviamente, no solo funciona con @gmail. SQL=/tmp/tables.sql DATE=`date '+%F'` # Password que es un MD5 # de un string que tiene la fecha, # cada dia, tiene un password unico echo "password con $DATE " > /tmp/foo PASS=`md5sum /tmp/foo | sed "s/ .*//g"` rm /tmp/foo # backup de mysql. mysqldump -u root --all-databases | bzip2 | openssl des3 -salt -k $PASS | dd of=$SQL # Ahora comprimimos tar cfj - /www/foobar.com | openssl des3 -salt -k $PASS | dd of=foobar.com-$DATE.bin # /etc tar cfj - /etc/ | openssl des3 -salt -k $PASS | dd of=etc-$DATE.bin # Ahora enviar los mails echo | mutt -s "[backup] $DATE foobar.com " $MAIL -a foobar.com-$DATE.bin echo | mutt -s "[backup] $DATE /etc" $MAIL -a etc-$DATE.bin echo | mutt -s "[backup] $DATE MySQL" $MAIL -a $SQL rm $SQL
Para restaurar el backup simplemente hay que ejecutar el siguiente script. Lo importante es proveer siempre la clave correcta, que cambia para cada día (utiliza la fecha). Sin la clave es literalmente imposible que recuperemos el contenido, de ahi la importancia de no olvidar la clave.
#!/bin/bash -x dd if=$1 |openssl des3 -d -k $3 | dd of=$2
Para restaurar el backup simplemente debe realizar lo siguiente:
$ restore archivo-encriptado archivo-salida-desencriptado clave
Si se preguntan cuan seguro es el encriptado?, pues la respuesta es suficiente para que yo ponga informacion real sobre una de mis tarjetas de creditos con algunos dolares (sobrantes del Google Summer of code) en un sitio de descarga para que la gente intente romper la seguridad. Si deseas intentar puedes bajarte de aqui.
Read more at Backup seguro y gratuito.
