Backups incrementales encriptados (GPG+ RSYNC + DOCKER) – Duplicity

Programación Comentarios desactivados en Backups incrementales encriptados (GPG+ RSYNC + DOCKER) – Duplicity

Los backups son considerados como una práctica básica para garantizar la integridad de los datos. No tenemos que confundir el uso de discos en modo RAID con los backups.

El uso de múltiples discos en modo RAID solo no servirá para garantizar que no haya cortes en el sistema que se ofrece. Es decir, los backups sirven para recuperar datos que se hayan podido perder y hay que recurrir a ellos en el peor de los casos.

En múltiples ocasiones se pretende mantener a salvo los datos que se guardan en el equipo del que se pretende realizar un backup, para esto se procede a encriptar el disco del equipo o el servidor en el que se encuentran los datos delicados.

Ya que estamos protegiendo los datos del sistema, es lógico también almacenar una copia de seguridad encriptada de los mismos datos.

Para esta funcionalidad se ha creado duplicity, este script nos permite enviar y almacenar los backups en un servidor encriptado mediante el uso de protocolos seguros (rsync, scp, sftp, etc…).

Los requerimientos serán tener instalado duplicity en el sistema desde donde pretendemos copiar los datos. También será necesario generar una key GPG que nos permitirá encriptar los backups en nuestro equipo.

Una vez encriptados en nuestro disco, debe ser enviado a un servidor remoto que admita la transferencia de archivos mediante alguno de los protocolos anteriormente mencionados.

En el caso de estar usando alguna distribución de Linux/GNU:

ArchLinux: pacman -Sy duplicity

Ubuntu/Debian: apt-get install duplicity

Centos/Fedora/RedHat: yum install duplicity

Antes de proceder a configurar duplicity en nuestro equipo configuraremos el servidor remoto. En mi caso estoy usando Docker, concretamente contenedor administrados por Swarm, ya que nos permite asignar recursos individuales a cada contenedor.

El primer paso será generar una imagen que admita conexiones entrantes mediante ssh, esto no permitirá transferir las copias incrementales mediante rsync o sftp.

El backup cuenta con una serie de pasos. Primero habría que crear una imagen que admita conexiones entrantes para poder transferir las copias incrementales

El siguiente paso será generar la imagen que será usada por el contenedor que tendrá almacenado los backups:

docker build -t aratech/personal-backups:0.0.1 .

A continuación,  se creará un servicio que será el encargado de administrar el contenedor que almacenará los backups. Antes de crear el servicio, necesitaremos crear en el servidor un directorio:

mkdir -p /var/backups/backups-personal

En mi caso la carpeta /var/backups está montado como LVM, de modo que me permite administrar el tamaño máximo de los datos de la unidad.

Para realizar el backup es necesario contar con un contenedor que almacene estas copias y a su vez crear un directorio en el servidor para el servicio

Para crear el servicio y limitar el uso de CPU, RAM y disco que podrá ser usado:

docker service create –name backups-personal –limit-memory 2048Mib –limit-cpu=2 –hostname backups-personal –mount type=bind,source=/var/backups/backups-personal,target=/var/backups/ -p 8000:22/tcp aratech/personal-backups:0.0.1 sh -c “/usr/sbin/sshd -D”

Ahora podríamos pasar a configurar el entorno cliente desde el que se realizarán las copias de seguridad, el primer paso sería generar una llave GPG:

gpg –gen-key

Para listar las keys disponibles:

gpg –list-keys

Ahora simplemente tendremos que ejecutar el siguiente comando para encriptar la copia de seguridad y ser subida al servidor. Por supuesto siempre modificando los parámetros que nos interesen:

PASSPHRASE=”MICONTRASENA” duplicity –encrypt-key MIKEYGPG /home/usuario/Documentos/ scp://USER@IP:PORT//var/backups

Author: Álex Serra

USO DE COOKIES

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Enviar un mail
Mandar un Whatsapp
Llamar por teléfono