我有一台 Linux 和一台 FreeBSD 计算机,两台计算机都已加密(分别为 LUKS 和 geli)。我想知道如何制作也已加密且两台计算机均可读取的备份(这样如果其中一台计算机出现故障,我可以使用另一台计算机快速恢复数据)。
不幸的是,机器人 LUKS 和 geli 似乎是各自系统的内核模块,从未移植到各自的系统中。从 BSD/Linux 兼容文件系统上的几种威胁来看,制作可同时读取的未加密备份似乎非常困难(ext2 显然是允许这样做的文件系统的唯一选项)。
因此,我的想法是在 Linux 的 KVM 中设置一个虚拟 FreeBSD,它将能够读取和写入 geli 加密的外部磁盘,并将数据传输到 Linux 的 LUKS 加密文件系统内未加密的虚拟 ext2 卷(反之亦然)。然而,这似乎非常复杂,而且感觉并不是正确的做法。
有没有更好/更简单/更可取的方法?或者上面解释的方法目前是最好的选择?
谢谢;我很感激对此事的任何想法。
答案1
让我们建立几个假设。如果这些假设不正确,请发表评论。
- 您运行具有不同操作系统且可能具有不同平台的机器。
- 你以 2 台机器(Linux 和 FreeBSD)为例进行描述
- 你的机器使用加密文件系统
- 您想要创建数据备份,并希望这些备份也加密
- 您希望能够从任何参与存档的平台访问这些加密备份中的数据
(添加注释以区分加密形式)
您提到您希望能够从幸存的机器访问其他系统数据。一种方法是将未加密的备份存储在本地机器的加密文件系统上。另一种方法是将加密的备份存储在本地机器的非加密文件系统上。我建议将加密的备份存储在非加密的文件系统上。
不过,顺便说一句,加密备份总是存在一个问题: - 你真的需要小心使用密钥 - 部分损坏通常会导致整个备份丢失
我的建议:使用
创建两台机器均可访问的一个或多个容器的备份。
为了将所有内容保留在您的 LAN 内,您可以:
- 在两台主机上创建一个“备份”文件系统,用于存储加密的备份“包”。它不需要是加密文件系统,因为存储在其上的备份“包”(brackup 称之为“块”)将被加密
- 导出这些文件系统(例如使用 NFS),然后分别将其挂载到其他主机上
- 当您创建备份时,将其转储到本地文件系统,然后将其镜像到另一台主机上的 NFS 挂载目录。这具有很好的副作用,即拥有备份文件的两个实例。
您的服务器上现在将拥有以下文件系统:
在 tux(您的 Linux 机器)上:
/dev/foo / # encrypted filesystem
/dev/bar /tuxdump # unencrypted filesystem, local backup
beastie:/daemondump /daemondump # NFS backup destination
在 beastie 上,您的 FreeBSD 机器:
/dev/flurb / # encrypted filesystem
/dev/baz /daemondump # unencrypted filesystem, local backup
tux:/tuxdump /tuxdump # NFS backup destination
根据您需要备份的数据量,您还可以考虑使用异地容器,任何云提供商都可以这样做。我目前正在尝试配置我的 S3 容器,以便将旧内容移至 Glacier,从价格上看,这看起来非常有前景。
答案2
答案3
TrueCrypt 应该可以在 Linux 和 FreeBSD 下工作。虽然我通常只在 Windows 下使用 TrueCrypt,而没有亲自尝试过 FreeBSD Truecrypt。YMMV。
答案4
您可以使用普通方式将您机器的文件备份rsync
到其他机器的硬盘上。由于您无论如何都在使用本地加密,因此它使用本地系统加密进行加密,并且传输由 TLS 保护。更新速度很快,您可以坚持使用久经考验的加密和备份机制。
如果你只需要备份某个不受信任的系统上的文件,那么普通的 GPG 对我来说就足够了。我使用 python 自动执行了一些加密和 FTP 传输,它已经运行良好两年了。