Backup remoti crittografati tramite Rsync?


13

Gestisco un piccolo server CentOS modesto a casa mia per backup errati, ecc. Il mio amico dall'altra parte della città gestisce anche un piccolo server modesto a casa sua per scopi simili. Abbiamo avuto l'idea di utilizzare i server di ciascuno per eseguire backup remoti / fuori sede.

Fondamentalmente, ognuno di noi comprava un hdd esterno da conservare nelle case di ognuno, collegato ai server di ognuno. Quindi, ogni installazione programmava rsync per inviare i dati appropriati da un server all'hdd esterno sull'altro server. Abbastanza semplice per la maggior parte.

Tuttavia, una cosa importante (almeno per me) è la crittografia dei dati. Voglio archiviare i miei dati sull'hdd esterno sul server dei miei amici. Ma non voglio che il mio amico (o chiunque acceda al server del mio amico) sia in grado di leggere ciò che è sul disco fisso esterno.

Qual è l'approccio migliore a questo? Puoi usare rsync per inviare dati a un'unità hdd crittografata e in qualche modo passare una passphrase insieme ai dati che usa per scriverli una volta che raggiunge il server?

Risposte:


9

Darei un'occhiata a Duplicity.

Duplicity eseguirà backup completi e incrementali e li trasferirà utilizzando Rsync, ftp, sftp, eccetc.

Duplicity utilizza GPG per crittografare i backup e utilizza i file delle firme e quant'altro.

Lo uso per il backup dei miei server di posta elettronica ed è fantastico, un semplice file batch.

gratuito e facile da usare.

pagina man: http://duplicity.nongnu.org/duplicity.1.html

spero che sia di aiuto.

Luc


stupisce la duplicità ed è semplicissimo da ripristinare e ripristinare. Grazie per il suggerimento!
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, non avevo mai sentito parlare di EncFS prima. Questo è FANTASTICO, dato che ho 200 GB da sincronizzare sul cloud da un laptop con un disco da 240 GB.
Mark K Cowan,

Questa soluzione sembra più ottimale delle varianti di duplicità o rsyncrypto. È solo una semplice sincronizzazione di una versione crittografata (virtuale) dei tuoi file. Questo è proprio ciò che è stato richiesto nella mia situazione. Il problema con la duplicità è il GRANDE backup completo. Il problema con rsyncrypto è il requisito di una copia dei tuoi dati. EncFS lo crittografa solo quando rsync legge i dati ..: D
gamecreature,

1

Ecco il mio script di backup basato sulla risposta di Thor (ancora valido diversi anni dopo!). Aggiunge la copia del file .encfs6.xml come necessario per la decrittografia successiva (non necessaria nel 2011?), La creazione di una cartella temporanea per il montaggio crittografato e la lettura della password di crittografia dal file (per lo script automatico):

#!/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

Nel mio caso, sto configurando un backup giornaliero del mio laptop e dei piccoli server su un'unità USB esterna connessa localmente. Voglio crittografare il backup nel caso in cui l'unità scompaia un giorno, insieme ad alcuni dati sensibili.


0

Una soluzione come quella sopra descritta richiede l'invio della chiave di crittografia alla macchina del tuo amico. Se consideriamo il tuo amico un "sito non attendibile", hai appena fatto saltare la tua sicurezza (può catturare la chiave e leggere i tuoi dati).

Se vuoi essere sicuro che il tuo amico non possa leggere i tuoi backup devi crittografare i file prima di inviarli (ad esempio crea un tarball, crittografalo con gpgo simili, quindi risincronizzalo) e non dargli mai la chiave (o abbastanza testo in chiaro per decodificare la chiave).
Notare che ciò annulla i vantaggi delta (risparmio di larghezza di banda) dell'uso di rsync: il file crittografato cambierà sostanzialmente ogni volta che si esegue un backup, quindi probabilmente si copierà tutto ogni volta.


2
questo è ciò che è bello di Duplicity, lo crittografa prima di lasciare il computer ma è pienamente in grado di fare backup incrementali leggendo firme / elenchi di modifiche e cosa no, ecco perché gliel'ho suggerito. Il primo backup richiederà molto tempo, ma dopo sarà in grado di procedere mantenendo un buon livello di sicurezza.
Luma,

0

rsyncrypto è stato scritto esattamente per questo scopo. Ti consente di sfruttare l'algoritmo di delta-copy di rsync crittografando i dati localmente e archiviando i BLOB crittografati in remoto.

Tuttavia, tieni presente che rsyncrypto fa un compromesso tra sicurezza e prestazioni.


Dopo aver dato una rapida occhiata a come funziona rsyncrypto, sono piuttosto terrorizzato all'idea che qualcuno lo usi. Mi piacerebbe vedere l'opinione di un crittografo rispettabile sull'approccio prima di fidarmi di tutti i miei dati.
Womble
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.