通过Rsyncencryption的远程备份?

我在我家运行一台小型的CentOS服务器,用于其他备份等。我镇上另一边的朋友也在他的家里为了类似的目的而运行一个小型的服务器。 我们一直玩弄使用eachothers服务器做远程/异地备份的想法。

基本上,我们每个人都会购买一个外部硬盘来存储在他们家里,连接到其他服务器上。 然后,我们将设置计划的rsync将相应的数据从一台服务器推送到另一台服务器上的外部硬盘。 大部分都很简单。

但是,有一点很重要(至less对我来说)是数据encryption。 我想将我的数据存储在我的朋友服务器上的外部硬盘上。 但我不希望我的朋友(或任何访问我朋友的服务器的人)能够读取外部硬盘上的内容。

什么是最好的办法呢? 你可以使用rsync发送数据到一个encryption的硬盘驱动器,并以某种方式传递一个密码,以及它用来写入数据,一旦它到达服务器?

我会看看Duplicity。

Duplicity会进行完整和增量备份,并使用Rsync,ftp,sftp,etcetc来传输它们。

Duplicity使用GPG来encryption备份并使用签名文件,而不是。

我用它来备份我的电子邮件服务器,这真是太棒了,一个简单的batch file。

当然自由,易于使用。

手册页: http : //duplicity.nongnu.org/duplicity.1.html

希望这可以帮助。

吕克

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

像上面描述的解决scheme需要将您的encryption密钥发送给您的朋友的机器。 如果我们认为你的朋友是一个“不受信任的网站”,那么你刚刚吹嘘自己的安全(他可以捕获密钥并读取你的数据)。

如果你想确定你的朋友不能读取你的备份,你必须发送文件之前encryption这些文件(例如,制作一个tarball,用gpg或类似的方法encryption,然后rsync),而不要给他钥匙(或者足够的明文可以对密钥进行反向工程)。
请注意,这样做会否定使用rsync的增量收益(带宽节省):每次进行备份时,encryption文件都会发生相当大的变化,因此您可能每次都会复制整个文件。

rsyncrypto已经完全为此目的而编写。 它允许您利用rsync的增量复制algorithm,同时在本地encryption数据并远程存储encryption的数据块。

但是请记住,rsyncrypto在安全和性能之间进行权衡。