web-dev-qa-db-ja.com

Rsyncによる暗号化されたリモートバックアップ?

その他のバックアップなどのために、自宅で小さなささやかなCentOSサーバーを実行しています。町の反対側にいる友人も、同様の目的で自宅で小さなささやかなサーバーを実行しています。私たちはお互いのサーバーを使用してリモート/オフサイトのバックアップを行うという考えをいじっています。

基本的に、私たちはそれぞれ、お互いのサーバーに接続された、お互いの家に保存するための外部HDDを購入します。次に、セットアップごとにrsyncをスケジュールして、適切なデータを1つのサーバーから他のサーバーの外部HDDにプッシュします。ほとんどの場合、かなり簡単です。

ただし、(少なくとも私にとって)重要なことの1つは、データの暗号化です。友達のサーバーの外部HDDにデータを保存したい。しかし、私の友人(または私の友人のサーバーにアクセスする人)が外部HDDの内容を読み取れるようにしたくありません。

これに対する最善のアプローチは何ですか? rsyncを使用して暗号化されたHDDドライブにデータを送信し、サーバーに到達したときにデータの書き込みに使用するデータと一緒にパスフレーズを何らかの方法で渡すことができますか?

13
Jake Wilson

重複を見てみましょう。

Duplicityは完全バックアップと増分バックアップを実行し、Rsync、ftp、sftpなどを使用してそれらを転送します。

Duplicityは、GPGを使用してバックアップを暗号化し、署名ファイルなどを使用します。

私は電子メールサーバーをバックアップするためにそれを使用し、それは素晴らしい、1つの単純なバッチファイルです。

もちろん無料で使いやすいです。

manページ: http://duplicity.nongnu.org/duplicity.1.html

お役に立てれば。

リュック

9
Luma
## 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/
11
Thor

これがトールの回答に基づいた私のバックアップスクリプトです(数年後もまだ有効です!)。後の復号化に必要なファイル.encfs6.xmlのコピー(2011年には不要?)、暗号化されたマウント用の一時フォルダーの作成、ファイルからの暗号化パスワードの読み取り(自動スクリプト用)が追加されます。

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

私の場合、ローカルに接続された外部USBドライブにラップトップと小さなサーバーの毎日のバックアップを設定しています。ドライブ消える 1日といくつかの機密データを念頭に置いて、バックアップを暗号化したいと思います。

1
bandaangosta

上記のような解決策では、暗号化キーを友達のマシンに送信する必要があります。私たちがあなたの友人を「信頼できないサイト」と見なすと、あなたはあなたのセキュリティを破ったばかりです(彼はキーをキャプチャしてあなたのデータを読むことができます)。

友達がバックアップを読み取れないようにしたい場合は、ファイルを暗号化する必要がありますbeforeあなたはそれらを送信します(例えばtarballを作成し、gpgまたは類似のもので暗号化してからrsyncを実行します)、決してキー(またはキーをリバースエンジニアリングするのに十分な平文)を与えないでください。
これを行うと、rsyncを使用した場合の差分の利点(帯域幅の節約)が無効になることに注意してください。暗号化されたファイルは、バックアップを作成するたびに大幅に変更されるため、おそらくすべてを毎回コピーすることになります。

0
voretaq7

rsyncrypto は、まさにこの目的のために書かれています。データをローカルで暗号化し、暗号化されたブロブをリモートで保存しながら、rsyncのデルタコピーアルゴリズムを活用できます。

ただし、rsyncryptoはセキュリティとパフォーマンスのトレードオフになることに注意してください。

0
F D