Rsyncを介した暗号化されたリモートバックアップ?


13

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

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

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

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

回答:


9

重複性を見てみましょう。

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

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

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

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

マニュアルページ:http : //duplicity.nongnu.org/duplicity.1.html

お役に立てれば。

リュック


うわー、二重性を揺るがし、バックアップと復元の両方がとても簡単です。ヒントをありがとう!
ジェイクウィルソン

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/

うわー、以前EncFSについて聞いたことがありません。240GBのディスクを搭載したラップトップからクラウドに同期するために200GBあるので、これは素晴らしいです。
マークKコーワン

このソリューションは、重複またはrsyncryptoのバリアントよりも最適なようです。これは、ファイルの暗号化された(仮想)バージョンの単純なrsyncです。それがまさに私の状況で必要だったものです。重複の問題は、BIGフルバックアップです。rsyncryptoの問題は、データのコピーの要件です。EncFSは、rsyncがデータを読み取るときに暗号化するだけです。.:D
gamecreature

1

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ドライブに毎日バックアップします。ドライブいつか消えてしまった場合に備えて、機密データとともにバックアップを暗号化します。


0

上記のようなソリューションでは、暗号化キーを友人のマシンに送信する必要があります。友人を「信頼できないサイト」と見なすと、セキュリティが破られてしまいます(彼はキーをキャプチャしてデータを読み取ることができます)。

友人があなたのバックアップを読めないことを確実にしたいなら、あなたはそれらを送信するにファイルを暗号化しなければなりません(例えば、tarballを作り、それを使って暗号化してgpg、それからrsyncします)。キーをリバースエンジニアリングするためのプレーンテキスト)。
これを行うと、rsyncを使用することによるデルタの利点(帯域幅の節約)が無効になることに注意してください。


2
それはDuplicityの良いところです、それはコンピュータを離れる前にそれを暗号化しますが、署名/変更リストを読んで増分バックアップを完全に行うことができます。最初のバックアップには長い時間がかかりますが、その後、彼は素晴らしいレベルのセキュリティを維持したままでよいでしょう。
ルマ

0

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

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


rsyncryptoがどのように機能するかを簡単に見てきたので、私はそれを使用している人のアイデアにかなり恐れています。データを信頼する前に、このアプローチに関する評判の高い暗号学者の意見を聞きたいと思います。
ウォンブル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.