Copias de seguridad remotas cifradas a través de Rsync?


13

Ejecuto un pequeño servidor CentOS modesto en mi casa para copias de seguridad misceláneas, etc. Mi amigo en el otro lado de la ciudad también ejecuta un pequeño servidor modesto en su casa para fines similares. Hemos estado jugando con la idea de usar los servidores de cada uno para hacer copias de seguridad remotas / externas.

Básicamente, cada uno compraría un disco duro externo para almacenar en los hogares de los demás, conectado a los servidores de los demás. Luego, cada configuración programaba rsync's para enviar los datos apropiados de un servidor al disco duro externo en el otro servidor. Bastante sencillo en su mayor parte.

Sin embargo, una cosa que es importante (al menos para mí) es la encriptación de datos. Quiero almacenar mis datos en el disco duro externo en el servidor de mis amigos. Pero no quiero que mi amigo (o cualquiera que acceda al servidor de mi amigo) pueda leer lo que está en el disco duro externo.

¿Cuál es el mejor enfoque para esto? ¿Puede usar rsync para enviar datos a una unidad de disco duro encriptada y de alguna manera pasar una frase de contraseña junto con los datos que usa para escribirla una vez que llega al servidor?

Respuestas:


9

Echaría un vistazo a Duplicity.

Duplicity realizará copias de seguridad completas e incrementales y las transferirá utilizando Rsync, ftp, sftp, etcetc.

Duplicity utiliza GPG para cifrar las copias de seguridad y utiliza archivos de firma y demás.

Lo uso para hacer una copia de seguridad de mis servidores de correo electrónico y es fantástico, un simple archivo por lotes.

gratis por supuesto y fácil de usar.

página de manual: http://duplicity.nongnu.org/duplicity.1.html

espero que esto ayude.

Luc


wow duplicidad rocas y es súper fácil de retroceder y restaurar. ¡Gracias por la pista!
Jake Wilson

11
## sync local unencrypted data to remote encrypted backups via rsync ..

## mount read-only encrypted virtual copy of unencrypted local data :
encfs --reverse --idle=60 -o ro ~/data/ ~/.tmp_encrypted_data/

## rsync push local encrypted virtual copy of data to remote encrypted copy :
rsync -ai --whole-file ~/.tmp_encrypted_data/ user@example.com:backup/

## unmount encrypted virtual copy of local data :
fusermount -u ~/.tmp_encrypted_data/

Wow, nunca había oído hablar de EncFS antes. Esto es INCREÍBLE, dado que tengo 200 GB para sincronizar a la nube desde una computadora portátil con un disco de 240 GB.
Mark K Cowan

Esta solución parece más óptima que las variantes duplicidad o rsyncrypto. Es solo una simple rsync de una versión encriptada (virtual) de sus archivos. Eso es justo lo que se requería en mi situación. El problema con la duplicidad es la GRAN copia de seguridad completa. El problema con rsyncrypto es el requisito de una copia de sus datos. EncFS simplemente lo encripta cuando rsync lee los datos ..: D
gamecreature

1

Aquí está mi script de respaldo basado en la respuesta de Thor (¡todavía válido varios años después!). Agrega la copia del archivo .encfs6.xml según sea necesario para el descifrado posterior (¿no es necesario en 2011?), La creación de una carpeta temporal para el montaje cifrado y la lectura de la contraseña de cifrado del archivo (para secuencias de comandos automáticas):

#!/bin/bash

SOURCE=/home/jortiz/Documents/
BACKUP=/media/jortiz/BAK-EXGD/backup_ALMA_E6520/Documents

SOURCE_ENC=$(mktemp -d /tmp/source_enc.XXXXXX)
echo "Created temporary folder $SOURCE_ENC ..."

## sync local unencrypted data to remote encrypted backups via rsync

# mount read-only encrypted virtual copy of unencrypted local data
encfs --extpass="cat /home/jortiz/.passbackup" --reverse --idle=60 -o ro $SOURCE $SOURCE_ENC

# rsync push local encrypted virtual copy of data to remote encrypted copy
rsync -ai --whole-file $SOURCE_ENC/ $BACKUP

# Copy encfs xml file to backup folder for later decryption
rsync -ai --whole-file $SOURCE/.encfs6.xml $BACKUP

# unmount encrypted virtual copy of local data
fusermount -u $SOURCE_ENC

echo "Removing temporary folder $SOURCE_ENC ..."
rmdir $SOURCE_ENC

En mi caso, estoy configurando una copia de seguridad diaria de mi computadora portátil y pequeños servidores en una unidad USB externa conectada localmente. Quiero cifrar la copia de seguridad en caso de que la unidad desaparezca algún día, junto con algunos datos confidenciales.


0

Una solución como la que describió anteriormente requiere enviar su clave de cifrado a la máquina de su amigo. Si consideramos que su amigo es un "sitio no confiable", acaba de violar su seguridad (él puede capturar la clave y leer sus datos).

Si quiere asegurarse de que su amigo no pueda leer sus copias de seguridad, debe cifrar los archivos antes de enviarlos (por ejemplo, hacer un tarball, cifrarlo con gpgo similar, luego rsync), y nunca darle la clave (o lo suficiente texto sin formato para realizar ingeniería inversa de la clave).
Tenga en cuenta que hacer esto niega los beneficios delta (ahorro de ancho de banda) de usar rsync: el archivo encriptado cambiará sustancialmente cada vez que realice una copia de seguridad, por lo que probablemente copiará todo el contenido cada vez.


2
eso es lo bueno de Duplicity, lo encripta antes de salir de la computadora, pero es totalmente capaz de hacer copias de seguridad incrementales leyendo firmas / listas de cambios y, lo que no, es por eso que se lo sugerí. La primera copia de seguridad llevará mucho tiempo, pero después de eso estará listo para continuar manteniendo un buen nivel de seguridad.
Luma

0

rsyncrypto ha sido escrito exactamente para este propósito. Le permite aprovechar el algoritmo de copia delta de rsync mientras encripta sus datos localmente y almacena los blobs encriptados de forma remota.

Sin embargo, tenga en cuenta que rsyncrypto hace una compensación entre seguridad y rendimiento.


Después de echar un vistazo rápido a cómo funciona rsyncrypto, estoy bastante aterrorizado ante la idea de que alguien lo use. Me gustaría ver la opinión de un criptógrafo de buena reputación sobre el enfoque antes de confiarle cualquiera de mis datos.
womble
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.