Backup Jarak Jauh Terenkripsi melalui Rsync?

13

Saya menjalankan server CentOS kecil sederhana di rumah saya untuk cadangan misc, dll. Teman saya di sisi lain kota juga menjalankan server kecil sederhana di rumahnya untuk tujuan yang sama. Kami telah mempermainkan ide menggunakan server satu sama lain untuk melakukan backup jarak jauh / luar kantor.

Pada dasarnya, kita masing-masing akan membeli hdd eksternal untuk disimpan di rumah satu sama lain, terhubung ke server satu sama lain. Kemudian, kita masing-masing akan mengatur rsync dijadwalkan untuk mendorong data yang sesuai dari satu server ke hdd eksternal di server lain. Cukup mudah untuk sebagian besar.

Namun, satu hal yang penting (setidaknya bagi saya) adalah enkripsi data. Saya ingin menyimpan data saya di hdd eksternal di server teman saya. Tetapi saya tidak ingin teman saya (atau siapa pun yang mengakses server teman saya) dapat membaca apa yang ada di hdd eksternal.

Apa pendekatan terbaik untuk ini? Bisakah Anda menggunakan rsync untuk mengirim data ke drive hdd terenkripsi dan entah bagaimana meneruskan kata sandi bersama dengan data yang digunakan untuk menulisnya setelah mencapai server?

Jake Wilson
sumber

Jawaban:

9

Saya akan melihat Duplicity.

Duplicity akan melakukan backup penuh dan inkremental dan mentransfernya menggunakan Rsync, ftp, sftp, dan sebagainya.

Duplicity menggunakan GPG untuk mengenkripsi cadangan dan menggunakan file tanda tangan dan apa yang tidak.

Saya menggunakannya untuk membuat cadangan server email saya dan itu fantastis, satu file batch sederhana.

gratis tentunya dan mudah digunakan.

halaman manual: http://duplicity.nongnu.org/duplicity.1.html

semoga ini membantu.

Luc

Luma
sumber
wow batu bermuka dua dan sangat mudah untuk kembali dan memulihkan. Terima kasih atas petunjuknya!
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
sumber
Wow, saya belum pernah mendengar tentang EncFS sebelumnya. Ini LUAR BIASA, mengingat saya memiliki 200GB untuk melakukan sinkronisasi ke cloud dari laptop dengan disk 240GB.
Mark K Cowan
Solusi ini tampaknya lebih optimal daripada varian duplikat atau rsyncrypto. Ini hanya rsync sederhana dari versi terenkripsi (virtual) dari file Anda. Itulah yang diperlukan dalam situasi saya. Masalah dengan duplikat adalah cadangan penuh BESAR. Masalah dengan rsyncrypto adalah persyaratan salinan data Anda. EncFS hanya mengenkripsi ketika rsync membaca data ..: D
gamecreature
1

Berikut ini skrip cadangan saya berdasarkan jawaban Thor (masih berlaku beberapa tahun kemudian!). Itu menambahkan menyalin file .encfs6.xml sesuai kebutuhan untuk dekripsi nanti (tidak diperlukan pada 2011?), Membuat folder sementara untuk mount terenkripsi dan membaca kata sandi enkripsi dari file (untuk skrip otomatis):

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

Dalam kasus saya, saya menyiapkan cadangan harian laptop dan server kecil ke drive USB eksternal yang terhubung secara lokal. Saya ingin mengenkripsi cadangan jika drive hilang suatu hari, bersama dengan beberapa data sensitif.

bandaangosta
sumber
0

Solusi seperti yang Anda gambarkan di atas memerlukan pengiriman kunci enkripsi Anda ke mesin teman Anda. Jika kami menganggap teman Anda sebagai "situs tidak tepercaya", Anda baru saja merusak keamanan Anda (ia dapat mengambil kunci dan membaca data Anda).

Jika Anda ingin memastikan teman Anda tidak dapat membaca cadangan Anda, Anda harus mengenkripsi file sebelum Anda mengirimnya (misalnya membuat tarball, mengenkripsi dengan gpgatau serupa, kemudian rsync lebih), dan tidak pernah memberinya kunci (atau cukup plaintext untuk merekayasa balik kunci).
Perhatikan bahwa melakukan hal ini meniadakan manfaat delta (penghematan bandwidth) menggunakan rsync: File yang dienkripsi akan berubah secara substansial setiap kali Anda membuat cadangan, jadi Anda mungkin akan menyalin seluruh hal itu setiap waktu.

voretaq7
sumber
2
itulah yang baik tentang Duplicity, mengenkripsi sebelum meninggalkan komputer tetapi sepenuhnya mampu melakukan backup tambahan dengan membaca tanda tangan / daftar perubahan dan apa yang tidak, itu sebabnya saya menyarankan itu kepadanya. Cadangan pertama akan memakan waktu lama tetapi setelah itu ia akan baik untuk pergi sambil mempertahankan tingkat keamanan yang bagus.
Luma
0

rsyncrypto telah ditulis tepat untuk tujuan ini. Ini memungkinkan Anda untuk meningkatkan algoritma delta-copy rsync sambil mengenkripsi data Anda secara lokal dan menyimpan gumpalan terenkripsi dari jarak jauh.

Namun, perlu diingat bahwa rsyncrypto membuat tradeoff antara keamanan dan kinerja.

FD
sumber
Setelah melihat sekilas bagaimana rsyncrypto bekerja, saya agak takut pada gagasan siapa pun yang menggunakannya. Saya ingin melihat pendapat ahli kriptografi terkemuka tentang pendekatan ini sebelum saya mempercayai data saya.
womble