Hilo de los Backups | Cómo prepararlos y restaurarlos

Zireael

Introducción

A raíz de un hilo de spyro512, he pensado que es oportuno enseñar la importancia de los backups. Es por ello por lo que me he decidido a crear este hilo a modo de guía para poner salvo nuestros datos y, en caso de que sea necesario, proceder a restaurarlos.

Ojo, no soy ningún experto pero veo interesante compartir lo que conozco con la comunidad.

Raid no es backup

Un raid solamente te va a mitigar la perdida en caso de que falle alguno de los discos, pero, ¿Qué pasaría si todos los discos fallaran de golpe? Nos quedaríamos sin nuestros datos. Por lo tanto, debemos disponer siempre de copias de seguridad de nuestros datos.

Principio Básico

Nos vamos a basar en la archiconocida regla del 3-2-1. 

3-2-1-1-0-1-1024x797.jpg

Para ello, vamos a disponer de 3 copias de nuestra información (incluyendo la original), en dos medios diferentes y una de ellas en un punto geográfico diferente al nuestro.

No es necesario seguir al pie de la letra esta regla pero sí que deberíamos disponer de al menos dos copias de seguridad de nuestros datos almacenando una de ellas en la nube.

Cómo empezar

Para empezar, deberíamos elegir dónde vamos a guardar la copia remota. En esta guía vamos a utilizar Backblaze B2 puesto que ofrece un precio muy competitivo y son transparentes a la hora de mostrar los fallos de sus discos.

Podemos elegir el servicio cloud que queramos para realizar el backup, tan solo hemos de asegurarnos que el software que utilicemos sea compatible.

Qué software utilizar

Al igual que servicios cloud, existen infinidad de programas destinados a realizar copias de seguridad, algunos de pago y otros gratuitos. Debéis de pensar que a la hora de elegir el software debéis fiaros, sobre todo, en la fiabilidad del mismo. No solamente a la hora de realizar la copia sino, también, a la hora de restaurar los archivos.

Si disponemos de un NAS con software propietario como puede ser Synology o Qnap, podemos utilizar el software que ofrecen para realizar el backup o la solución aquí detallada. De nuevo, debemos usar un software con el que nos sintamos cómodos y sepamos utilizar.

Yo, tras haber probado HyperBackup y duplicati, me quedo con Restic. Es un programa opensource y que tiene muy buena reputación en la comunidad. Es algo complicado de utilizar debido a que es necesario de utilizar una consola de comandos, pero una vez configurado funciona de lujo.

Podemos instalar restic de diferentes maneras según el entorno en el que nos encontremos, en mi caso linux. 

Para ello iremos a la página oficial de restic y descargaremos la última versión que sea óptima para nuestro sistema. 

Configuración de Backblaze

En primer lugar haremos una cuenta en Backblaze.

Después, en el panel tendremos que crear un Bucket. Esto es el espacio donde vamos a almacenar nuestros datos. 

imagen.png

Lo crearemos privado para que no pueda ser accesible, deshabilitaremos el cifrado y el object lock. Del cifrado se encargará el propio Restic.

Una vez creado, le daremos a Configuración del ciclo de vida y pondremos Guardar solo la última versión del archivo.

Posteriormente, iremos a Application Keys y crearemos una nueva key para el bucket que hemos creado.  Deberemos permitir el acceso únicamente al bucket en cuestión y damos a guardar.

imagen.png

Una vez se haya creado aparecerá la key id y la applicationKey, hay que apuntar estos datos pues no se pueden volver a consultar.

Ya hemos terminado con Backblaze. Ahora toca seguir con la configuración de Restic.

Configuración de Restic

En primer lugar, deberemos conectarnos via SSH a nuestra máquina. Si no sabéis cómo hacerlo, por lo general es nombre_usuario:IP. No obstante, tenéis una muy buena guía para configurar las keys hecha por @hda

Después descargaremos el binario correspondiente a nuestro OS desde la web oficial de Restic.

 wget <url>
 7z x <file> 

Una vez tengamos el binario, crearemos dos ficheros en /etc.

 nano /etc/restic-env 

Dentro del fichero copiaremos lo siguiente:

 export AWS_ACCESS_KEY_ID=<B2_KEY_ID>
 export AWS_SECRET_ACCESS_KEY=<B2_ApplicationKey>
 export RESTIC_REPOSITORY=<url_bucket/bucket_name>
 export RESTIC_PASSWORD_FILE=/etc/restic-password  

Guardamos y creamos el siguiente archivo: 

 nano /etc/restic-password 

Dentro escribiremos la contraseña para nuestro backup. Ojo, si perdemos esta contraseña perderemos el acceso a nuestros archivos. Os recomiendo generar una contraseña con un gestor de contraseñas como Bitwarden. Aquí podéis leer más.

Acto seguido damos permisos para que los archivos puedan ser leídos por el user que corra el servicio de restic.

  chown root:root /etc/restic-env
  chown root:root /etc/restic-password
  chmod 700 /etc/restic-env
  chmod 700 /etc/restic-password  

Después actualizamos para poder activar los cambios

 source /etc/restic-env 

Finalmente inicialicemos el repositorio.

 source /etc/restic-env
 restic -r s3:<url_bucket/bucket_name> init 

Backup

Restic nos permite hacer backups indicando los paths de los que queremos hacer backups o leyendo los mismos de un archivo.

Yo recomiendo esto último y así podemos automatizar el backup de una forma más sencilla.

<path_restic> -r s3:<url_bucket/bucket_name> backup  --verbose  --files-from <path_to>/include.txt 

El archivo include.txt puede incluir archivos o la ruta absoluta a los directorios.

Cuando corramos el comando saldrá información del backup.

imagen.png

Lo mismo cuando acabe el backup nos dirá los posibles fallos y/o warnings, junto con los cambios realizados.

imagen.png

Fuentes

Restic

Backblaze

3-2-1

En construcción...
En los próximos días ampliaré para la restauración y más temas derivados de restic

31
hda

Se agradece un hilo como este. Realmente la gente no suele ser consciente de la importancia de los backups, o por lo menos no lo es hasta que no pierde cosas importantes. En mi caso sucedió cuando se fueron 6 Tb. Y se debe hacer hincapié en que una nube de sincronización tipo Dropbox, gdrive, OneDrive, pCloud, etc., NO SUPONE UNA COPIA DE SEGURIDAD.

Ahora mismo tengo raid 1 en los datos originales y raid 1 en el NAS donde hago la copia de seguridad. Quiero un lugar externo geográficamente donde copiarlo todo (probablemente otro NAS en casa de mi hermana o de un amigo). Y por último una nube tipo backblaze. Nota: comentar sobre backblaze que es un servicio competitivo. Fácil si tienes que recuperar un archivo o pocos archivos puntuales. Si necesitas recuperar un volumen grande, entonces pagas porque te manden el/los disco/s a casa.

La principal razón de hacerme con un NAS fue para backup, el primer paso. Así que está muy relacionado con este hilo. Dejo por aquí el enlace por si pudiese ser de utilidad. Ojo que lo monté hace un par de años y puede estar algo obsoleto.

Una cosa interesante, por comentar, son los snapshots. Es decir, más allá de que se hagan copias de seguridad, puede ser atractivo que estas sean en tiempos diferentes. En mi caso:

Guardo copia para cada día de los últimos siete. Para cada semana de las últimas cuatro. Para cada mes de los últimos doce, y para cada año de los últimos 5. Esto me permite revertir al estado deseado en caso de ser necesario.

De nuevo gracias por el hilo, @Zireael. Considero importante que la gente cobre noción sobre lo relevante de guardar con seguridad su vida y producto digital, muchos no son conscientes.


PD: Te acabo de proponer este hilo como noticia para el subforo. A ver qué opinan los mods y sub-admines :)

5 3 respuestas
spyro512

ah qué cabrón, encima haciendo sangre

3
alfema

Es algo antiguo, pero los conceptos son los mismos: The Tao of backup.

Zireael

#2

#2hda:

. Si necesitas recuperar un volumen grande, entonces pagas porque te manden el/los disco/s a casa

Es una opción que te dan, pero no la veo viable para Europa porque hay que pagar las taxes correspondientes, además del envío y los usbs.

Desde que cambiaron el precio de 5$ a 6$ han quitado el precio por descarga siempre y cuando no descargues el tamaño de lo almacenado x 3. No obstante, si se utiliza otro CDN, la descarga siempre es gratuita.

Sobre las snapshots, irá en el apartado de restaurar :)

1
Yekale7

Buena aportación #1 . Justo he hecho algo idéntico en local, pero con https://github.com/ad-on-is/resticity que es una delicia tener una GUI.

3
nerkaid
#2hda:

Dropbox, gdrive, OneDrive, pCloud, etc., NO SUPONE UNA COPIA DE SEGURIDAD

¿Por qué no supone una copia de seguridad? Tengo chorrocientas auditorías pasadas y lo hemos presentado siempre ante el auditor como la parte de backup de los usuarios sin ningún problema, al menos a nivel corporativo.

Si es porque "si lo borras en local lo borras en cloud también", en el cloud te queda papelera e historial de archivos, desde ambos sitios puedes recuperar todo durante 3 meses. Luego a nivel de almacenamiento a largo plazo del dato, puedes aguantar contenidos de usuarios eliminados hasta 10 años, mucho más de lo que permite/recomienda el RGPD.

1 respuesta
hda

#7 estaré confundido, entonces. Mi mayor preocupación, por ejemplo, es si me cifran la carpeta y esta se sincroniza. Entiendo que, según comentas, todos estos servicios de nube tienen actividado por defecto un servicio en el que te guardan copias/históricos de tus documentos; por lo que podrías recuperarlos. Tendría mucho sentido. ¿Es así? Si es así la única otra pega sería la de capacidad; y ahí ver qué te sale más rentable.

2 respuestas
autlos

Sólo tengo dos cosas importantes: contratos/nóminas y fotos de los perros. Y si pierdo lo primero me da igual.

Así que para guardar fotos de perros con 1 local / 1 externo / 1 Drive voy sobrado.

Se qué hacéis backup los demás?

2 respuestas
GaN2

#2 Tienes servicios PaaS rollo AWS S3, Azure Blob Storage, GCS Buckets, B2 Blaze y similares que se pueden usar con sincronización que si sirven para backups. Ademas puedes hacer replicación a otro destino dentro del mismo Cloud o diferente para tener redundancia, o poner una politica de retención que evite que se puedan borrar datos. Opciones hay y son igual de validas como un backup a un disco duro USB, otra NAS, etc.

#8 Va a depender de la plataforma que uses, aplicación para hacer backups, etc. GDrive y Dropbox funcionan bastante diferente a como funcionaria una herramienta de backup mas profesional con destino AWS S3 por ejemplo, no hay una sincronización constante de ficheros y que te comprometan el ultimo backup (por ejemplo con encriptación) no quiere decir que el resto vaya a tener el mismo problema.

1 1 respuesta
D4rKiTo

Yo soy de esos raritos y uso borgbackup en vez de restic u otras opciones más conocidas.

hda

#10 muchas gracias por tu comentario.

Muchas veces he pensado si es mejor tirar de backblaze (que si no recuerdo mal tira de S3) o montarlo tú mismo en S3. Creo que leí por Reddit que el ahorro no era demasiado (hacerlo en S3) y la comodidad suficiente (tirar por backblaze).

1 respuesta
EiNh4nDeR

me sumo a la pregunta de #9, ya que yo también guardo bastante poco en local, y luego para documentos importantes, la verdad que uso Drive.

soy un puto desastre humano y algo se me escapa?

PD: Gracias por el hilo, muy interesante.

1 respuesta
hda

#9 #13 venga, os respondo yo, pero por algo específico. Me cito a mí mismo de un texto que puse hace algo más de dos años:

(...) [T]uve la desgracia de perder 5.5 Tb de datos. Por suerte conservo en copias de seguridad un 95% de los más sensibles e importantes, tales como mi tesis doctoral, los cursos de la carrera, mis libros terminados y en proceso, varios proyectos de código, etc. Sin embargo, he perdido todo lo "no importante", que ha sido mucho. Ahora que está perdido uno piensa y evalúa aquello que considera "importante".

hda, 2022

Lo primero es que si tenía el 95% de "lo importante" con copia de seguridad fue porque en 2008 hube perdido 400 Gb. Y aquella hostia me hizo ver lo fundamental de hacer copias de seguridad de las cosas "importantes".

Ahora bien, de los 5.5 Tb perdidos, habría unos 5 Tb de cosas que yo categorizaba como insuficientemente importantes. Y son cosas que ahora ya no están. Ahora que ya no están me doy cuenta de que muchas sí eran importantes. Por ponerte un ejemplo notorio, he perdido algo tan "poco importante" como antiguos audios de wasap que tuve con mi madre. Ella falleció hace exactamente un año. Pues claro que me hubiese gustado conservarlos.

En aquel hilo que cito continuo con:

Por ejemplo, he perdido todos los programas de Podcast que hice allá en 2007 para la escena española del Counter Strike Source del momento [4], así como todas las fotografías de los torneos en los que he competido. Además, he perdido todo el vault de las fotografías hechas con mi cámara digital, audios del 2002, archivos que venían del 486 de mi niñez, toda la carpeta del FP de DAI (2007-09), y un muy largo etcétera. Lo dicho, al desvanecerse todo esto uno evalúa de otro modo qué considera como "datos importantes".

hda, 2022

Siendo más concreto con tu pregunta, a día de hoy hago copias incrementales y snapshots de todos mis dispositivos, de mi ordenador de trabajo, de mis ordenadores portátiles, del teléfono móvil; y de las mismas cosas de mi pareja. Al ser copias incrementales en realidad solo se van guardando los deltas de información (el cambio de estado entre el momento t y el t+1) por lo que es muy eficiente. Recomiendo mi hilo sobre cómo me monté un NAS para backup si os interesa más el detalle.

De forma paralela, desde que hago esto, hace dos años, he de decir que me ha ocurrido en algunas ocasiones eso de borrar, modificar o guardar sin querer algun documento, perdiendo parte de trabajo; y cómo poder recuperarlo gracias a los snapshots automatizados diarios. Cuando esto ocurre es muy gratificante sentir la seguridad de haber invertido en este sistema.

1 1 respuesta
carracho

Yo uso: https://duplicity.gitlab.io/ (que usa librsync). Incrementales cada día y completas todas las semanas.

Luego, en su día estuve usando https://syncthing.net/ con buenos resultados... pero mi rpi de aquellas se ahogaba un poco. He de montarlo de nuevo en el N100 a ver que tal tira.

1
nerkaid

#8 Al menos OneDrive sí, va guardando versiones de los ficheros por lo que ante una encriptación se quedaría guardadas las versiones antes de encriptar y posteriormente encriptada. Habría que ver la retención de estos ficheros en el historial, pero vaya, si no recuerdo mal era algo así como 30 días o 100 versiones mínimo.

1 2 respuestas
AikonCWD

#16 Es tal y como dices. Y por ello existen ransomwares que realizan 500 modificaciones para reventar el historial de versiones.

https://phishingtackle.com/articles/microsoft-cloud-versioning-is-the-victim-of-ransomware-attacks/

Another way is to use automated programmes to edit files 502 times, which is more than the 500-version restriction in OneDrive. While this method is “noisier” and may cause some warnings, but it is still a viable alternative.

Nosotros tuvimos que tirar de soporte de Microsoft para restaurar un site de Sharepoint. El proceso fue horrible y la experiencia nefasta. No teníamos el site completamente encriptado, solo algunas bibliotecas, y Microsoft dijo que solo podían recuperar el site completo (machacando las bibliotecas no afectadas). Tuvimos que hacer backup de las bibliotecas sanas, restaurar todo el site y volcar las bibliotecas previamente salvadas. Un porrón de horas perdidas porque no son capaces de afinar con una restauración selectiva.

En resumen: Los servicios cloud (al menos el de Microsoft), no lo recomiendo como una solución segura contra pérdida de datos.

1 2 respuestas
hda

#16 también entiendo que sobre todo te refieres a soluciones de nivel corporativo, ¿no? Supongo que los tiers de nivel corporativo de las nubes de sincronización dispondrán de estas características. Ojo, que hablo sin saber.

1 respuesta
AikonCWD

#18 re-lee bien mi comentario, porque yo opino lo contrario a Nerkaid. No lo recomiendo ni a nivel personal ni sobretodo empresarial.

1 respuesta
hda

#19 se me saltó tu cita xD

1 respuesta
AikonCWD

#20 Yo te propongo otra solución.

Usa los servicios cloud pero no en tiempo real. No tengas el cliente de onedrive/gdrive activo. En su lugar consigue (o programa, con chatgpt lo tienes en pocas horas y sin saber programar) un script que dejarás como tarea programada para mover tus ficheros a una cuenta de onedrive/gdrive, por ejemplo cada viernes. O bajo demanda (que cada viernes te salga el popup para lanzar el backup).

De esta manera tienes un sistema de backups en la nube bajo demanda y bajo control. La sync en tiempo real va un poco en contra con el espíritu de los backups.

Luego puedes, usando otra cuenta, tener tu cliente cloud y usar la syncronización en tiempo real contra la nube. Al final tendrás 2 cuentas, la que usas para sync y la que usas para backup.

No se si me explico XD

1 respuesta
newfag

Gracias por el contenido, interesante.

nerkaid

#17 https://learn.microsoft.com/en-us/microsoft-365/solutions/ransomware-protection-microsoft-365?view=o365-worldwide

Versioning

Microsoft 365 retains a minimum of 500 versions of a file by default and can be configured to retain more.

Files Restore

A complete self-service recovery solution for SharePoint and OneDrive that allows administrators and end users to restore files from any point in time during the last 30 days.

To minimize the burden on your security and IT helpdesk staff, train your users on Files Restore.

For OneDrive and SharePoint files, Microsoft can roll back to a previous point in time for up to 14 days if you are hit by a mass attack.

Por lo que veo el mínimo ahora son 500 versiones para Microsoft 365, aparte tienes restauración a puntos temporales hasta 14 días independiente al número de versiones, yo lo veo más que razonable para los datos de usuario.

Para los datos de aplicaciones y demás si tenemos backups a servidores locales que no tiran de la cabina y luego offsite a un blob storage en cloud al que se conecta solo durante las subidas, pero vaya, esto para los datos de chorrocientos usuarios que guardan 95% de morralla y 5% de documentos importantes, de los cuales la mitad están replicados en algun site de la empresa lo veo matar moscas a cañonazos.

GaN2

#12 Backblaze me parece mejor para temas de backup que S3. O Wasabi

#17 Pero el problema en ese caso no es del medio que has usado para hacer backups, es de la herramienta que gestiona los backups. S3, Blob Storage o GCS Bucket son simplemente un medio como podría ser un disco con una interfaz por encima, para gestionar los backups necesitas otra cosa.

Y coincido en tu comentario de #21, la sincronización de ficheros tiene muchísimos problemas y es mejor hacer backups regulares

1
EiNh4nDeR

#14 Gracias por responder, es siempre interesante ver otro punto de vista. Posiblemente yo tenga otra percepción de aquello realmente importante (vaya por delante que nunca he vivido el perder la información que voy arrastrando) , pero respeto totalmente la tuya.

danao

Yo todo tema de fotos lo metía a google photos, me parece la ostia el servicio la verdad.

Ahora, ya tuvieron un problema que se corrompieron algunas de ellas aunque las recuperaron

batulfo

BRTFS + timeshift. Mano de santo tú, me ha salvado de más de una.

7 días después
Vandalus

#1 en veeam habéis visto hoy lo del parche de seguridad kb4581 y el parche 12.1.2?

sabéis con seguridad si los hardened linux y los backup proxy también se deben actualizar?

1 respuesta
AikonCWD

#28 Aquí dejo info al respecto: https://www.bleepingcomputer.com/news/security/veeam-warns-of-critical-backup-enterprise-manager-auth-bypass-bug/

Yo por suerte no implemento veeam porque a parte que no me gusta, es caro. Así que me ahorro el patching-task de esta semana xd.

1

Usuarios habituales

  • AikonCWD
  • danao
  • EiNh4nDeR
  • GaN2
  • nerkaid
  • hda
  • Zireael