我在家里运行一个小型的 CentOS 服务器,用于各种备份等。我住在城镇另一边的朋友也在家里运行一个小型的服务器,用于类似目的。我们一直在考虑使用彼此的服务器进行远程/异地备份。
基本上,我们每个人都会购买一个外部硬盘,存储在对方的家中,并连接到对方的服务器。然后,我们每个人都会设置预定的 rsync,以将适当的数据从一台服务器推送到另一台服务器上的外部硬盘。大部分都很简单。
但是,有一件事很重要(至少对我来说)那就是数据加密。我想将数据存储在我朋友服务器上的外部硬盘上。但我不希望我的朋友(或任何访问我朋友服务器的人)能够读取外部硬盘上的内容。
最好的方法是什么?您可以使用 rsync 将数据发送到加密的硬盘驱动器,并以某种方式传递密码以及到达服务器后用于写入的数据吗?
答案1
我会看看表里不一.免费且易于使用。
Duplicity 将进行完整和增量备份,并使用 rsync、FTP、SFTP 等进行传输。
Duplicity 使用 GPG 加密备份并使用签名文件等等。
我用它来备份我的电子邮件服务器,它非常棒,一个简单的批处理文件。
答案2
警告 有人对 encfs 的安全问题表示担忧这安全审查。克里夫斯或者加密文件系统应该考虑##通过 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/
答案3
rsyncrypto正是为此目的而编写的。它允许您利用 rsync 的增量复制算法,同时在本地加密数据并远程存储加密的 blob。
但是,请记住 rsyncrypto 在安全性和性能之间做出了权衡。
答案4
像您上面描述的解决方案需要将您的加密密钥发送到您朋友的机器上。如果我们认为您的朋友是“不受信任的站点”,那么您的安全性就被破坏了(他可以获取密钥并读取您的数据)。
如果你想确保你的朋友无法读取你的备份,你必须加密文件前你发送他们(例如制作一个 tarball,用或类似工具加密gpg
,然后 rsync 过来),并且从不给他密钥(或足够的明文来逆向工程密钥)。
请注意,这样做会抵消使用 rsync 的增量优势(带宽节省):每次备份时,加密文件都会发生很大变化,因此每次你都可能复制整个文件。