Zaszyfrowane zdalne kopie zapasowe za pośrednictwem Rsync?

13

W moim domu prowadzę mały, skromny serwer CentOS, aby wykonywać kopie zapasowe itp. Mój przyjaciel po drugiej stronie miasta również prowadzi mały skromny serwer w swoim domu do podobnych celów. Myśleliśmy o tym, aby używać serwerów nawzajem do tworzenia zdalnych / zewnętrznych kopii zapasowych.

Zasadniczo każdy z nas kupiłby zewnętrzny dysk twardy do przechowywania w domach innych, połączony z serwerami innych. Następnie każda konfiguracja zaplanowała rsync, aby przepchnąć odpowiednie dane z jednego serwera na zewnętrzny dysk twardy na drugim serwerze. W większości dość proste.

Jednak ważną rzeczą (przynajmniej dla mnie) jest szyfrowanie danych. Chcę przechowywać moje dane na zewnętrznym dysku twardym na serwerze znajomych. Ale nie chcę, aby mój przyjaciel (lub ktokolwiek, kto uzyskuje dostęp do serwera mojego przyjaciela) mógł czytać zawartość zewnętrznego dysku twardego.

Jakie jest najlepsze podejście do tego? Czy możesz użyć programu rsync do wysyłania danych na zaszyfrowany dysk twardy i w jakiś sposób przekazać hasło wraz z danymi, których używa do zapisu po dotarciu do serwera?

Jake Wilson
źródło

Odpowiedzi:

9

Spojrzałbym na Duplicity.

Duplikat wykona pełne i przyrostowe kopie zapasowe i przeniesie je przy użyciu Rsync, ftp, sftp, etcetc.

Duplikat używa GPG do szyfrowania kopii zapasowych i używa plików sygnatur, a co nie.

Używam go do tworzenia kopii zapasowych moich serwerów e-mail i jest to fantastyczny, jeden prosty plik wsadowy.

oczywiście bezpłatny i łatwy w użyciu.

strona podręcznika : http://duplicity.nongnu.org/duplicity.1.html

mam nadzieję że to pomoże.

Luc

Luma
źródło
wow, kołysanie duplikatem i jest super łatwe do cofnięcia i przywrócenia. Dzięki za podpowiedź!
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/ [email protected]:backup/

## unmount encrypted virtual copy of local data :
fusermount -u ~/.tmp_encrypted_data/
Thor
źródło
Wow, nigdy wcześniej nie słyszałem o EncFS. To NIESAMOWITE, biorąc pod uwagę, że mam 200 GB do synchronizacji w chmurze z laptopa z dyskiem 240 GB.
Mark K Cowan
To rozwiązanie wydaje się bardziej optymalne niż warianty duplikatu lub rsyncrypto. To po prostu prosta synchronizacja zaszyfrowanej (wirtualnej) wersji twoich plików. Właśnie tego wymagałem w mojej sytuacji. Problemem z podwójnością jest DUŻA pełna kopia zapasowa. Problem z rsyncrypto to wymóg kopii twoich danych. EncFS po prostu szyfruje go, gdy rsync odczytuje dane ..: D
gamecreature
1

Oto mój skrypt zapasowy oparty na odpowiedzi Thora (nadal ważny kilka lat później!). Dodaje kopiowanie pliku .encfs6.xml zgodnie z potrzebami do późniejszego odszyfrowania (niepotrzebne w 2011 roku?), Tworzenie tymczasowego folderu do szyfrowanego montowania i odczytywanie hasła szyfrowania z pliku (do automatycznego skryptowania):

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

W moim przypadku konfiguruję codzienną kopię zapasową laptopa i małych serwerów na zewnętrznym dysku USB podłączonym lokalnie. Chcę zaszyfrować kopię zapasową na wypadek, gdyby pewnego dnia dysk zniknął wraz z niektórymi poufnymi danymi.

bandaangosta
źródło
0

Rozwiązanie takie jak opisane powyżej wymaga wysłania klucza szyfrującego na komputer znajomego. Jeśli uznamy twojego przyjaciela za „niezaufaną stronę”, właśnie wysadziłeś swoje zabezpieczenia (może on przechwycić klucz i odczytać twoje dane).

Jeśli chcesz mieć pewność, że znajomy nie może odczytać twoich kopii zapasowych, musisz zaszyfrować pliki przed ich wysłaniem (np. Zrób tarball, zaszyfruj go gpglub podobnie, a następnie zsynchronizuj) i nigdy nie dawaj mu klucza (lub wystarczającej ilości zwykły tekst do inżynierii wstecznej klucza).
Zauważ, że zrobienie tego neguje korzyści delta (oszczędność przepustowości) wynikające z używania rsync: Zaszyfrowany plik zmieni się zasadniczo za każdym razem, gdy tworzysz kopię zapasową, więc prawdopodobnie będziesz za każdym razem kopiował całą zawartość.

voretaq7
źródło
2
to jest dobre w Duplicity, szyfruje je przed opuszczeniem komputera, ale jest w pełni zdolne do tworzenia przyrostowych kopii zapasowych poprzez czytanie podpisów / list zmian i co nie, dlatego mu to zasugerowałem. Pierwsza kopia zapasowa zajmie dużo czasu, ale potem będzie dobrze, gdy będziesz kontynuować, zachowując niezły poziom bezpieczeństwa.
Luma,
0

rsyncrypto został napisany właśnie w tym celu. Pozwala to wykorzystać algorytm rsync do kopiowania w trybie delta podczas lokalnego szyfrowania danych i zdalnego przechowywania zaszyfrowanych obiektów blob.

Należy jednak pamiętać, że rsyncrypto stanowi kompromis między bezpieczeństwem a wydajnością.

FD
źródło
Po krótkim spojrzeniu na działanie rsyncrypto jestem raczej przerażony pomysłem, aby ktokolwiek go używał. Chciałbym zobaczyć opinię renomowanego kryptografa na temat tego podejścia, zanim zaufałem któremuś z moich danych.
womble