我有一台 Raspberry Pi 4,想把它用作家里的备份服务器。现在我不确定该怎么做,我有一个连接到 Pi 的加密磁盘,我想使用 SSH 和 rsync 进行增量备份。但我应该将文件从笔记本电脑推送到 Pi 还是 Pi 应该从我的笔记本电脑中提取文件?
1. 拉
A)+笔记本电脑没有对备份的写访问权限,这样更安全
b)-pi 和加密但已安装的磁盘一直放在家里,有人可以通过物理访问来获取数据吗?
C)-与 1.b 类似,pi 需要完全访问我的笔记本电脑,这可能会损坏我的笔记本电脑上的某些东西,我会尝试使用 ssh 强制命令,这样它只能读取而不能写入
2. 推动
A)+只有我的笔记本电脑可以完全控制,磁盘密钥和 ssh 连接只在我的笔记本电脑上
b)-我可能会损坏备份,勒索软件或其他任何东西都可能损坏我的备份。我不确定我是否可以使用 ssh 强制命令来防止这种情况发生?!
答案1
在决定是否应该推送或拉取备份之前,我认为必须解决一些建议。
0.a 勒索软件攻击
如果备份程序仅保存数据的最新版本,而勒索软件将所有未加密的文件转换为加密版本,则在同步时,它可能会删除您的所有文件并替换为加密文件,因此如果您遭受勒索软件攻击,备份将无法恢复。要解决这个问题,您必须至少拥有 2 个版本,并在发生攻击或数据丢失/损坏时尽快暂停同步,以便保留文件的良好副本。
0.b 高效备份存储
我不知道您使用哪种 FS 作为备份存储,但(如果还没有)您可以尝试使用支持压缩和重复数据删除的解决方案,如 BTRFS 或 ZFS。这可能有助于减少备份占用空间,并使 2 个或更多版本的数据占用空间接近只有 1 个版本时的空间。
假设我的建议很好并且您愿意遵循,或者您找到了更好的想法来解决上述观察结果,我们可以继续讨论主要问题。
1. 拉
a) + 笔记本电脑没有对备份的写访问权限,这样更安全
事实上,暴露数据或访问数据的方式越少越好。这样做可以减少受到攻击的可能性。
b) - pi 和已加密但已安装的磁盘一直放在家里,有人可以通过物理访问来获取数据吗?
只要加密存储受密码保护,并且任何具有管理权限的帐户也需要密码,您就可能是安全的。每次启动时,您都需要重新输入密码来安装卷,以确保重新启动或外部访问不是获取数据的手段。
c)-与 1.b 类似,pi 需要完全访问我的笔记本电脑,它可能会损坏我的笔记本电脑上的某些东西,我会尝试使用 ssh 强制命令,这样它只能读取而不能写入
您可以专门为备份例程创建一个用户,并将其添加到笔记本电脑和 Pi 上的所需组中。此类用户将被添加到与笔记本电脑上的主要用户相同的组中,并且权限设置将允许其对用户拥有的所有内容进行 RO 访问。请注意,在不同的设备之间,可能需要同步此帐户的 UID,以便权限在设备之间保持一致。
2. 推动
a) + 只有我的笔记本电脑可以完全控制,磁盘密钥和 ssh 连接仅在我的笔记本电脑上
这会将 Pi 视为一个愚蠢但安全的存储,就像1a,访问数据的方式仅在一端。您不需要创建任何用户来执行此操作,因为在 ssh 上,您将使用 Pi 用户登录以执行所有操作。再次,1b是相关的并且值得推荐。
b) - 我可能会损坏备份,勒索软件或其他任何东西都可能损坏我的备份。我不确定我是否可以使用 ssh 强制命令来防止这种情况发生?!
如果你遵循建议0.a只要运行自动备份例程命令,就可以避免这两个问题。如果有人可以访问您的笔记本电脑,请确保 Pi 的密钥不会在没有密码的情况下暴露,这样如果您必须丢失某些东西,另一个仍然无法访问。
根据观察,我会选择推。执行起来不太复杂,如果您愿意,可以在多个设备上执行。如果发生数据丢失(损坏、勒索软件、破坏),备份程序将停止,确保备份中除了好的副本之外没有其他内容。
答案2
我同意@joaopedro 所说的大部分内容,但不同意他的结论。
我会选择 Pull 并使用 rsnapshot 而不是 rsync。Rsnapshot 允许增量快照(使用 rsync 和 ssh),这样您就可以轻松跟踪版本,以防有人以非预期的方式修改文件(想想 cryptolocker 类型的攻击),还可以更轻松地恢复子集。(您可以使用文件级工具,如 zfs、btrfs 或 lvs,但 rsync 轻量级、简单且与文件系统无关。(rsnapshot 使用符号链接并仅复制更改的文件,同时公开多个易于查看/复制的数据树)
如果使用 ssh 公钥,则拉取并不比推送更难实现。
使用拉动而不是推送,并使用单独的密钥和对 Pi 的有限访问,可以使拉动更加安全。让 Pi 从低用户级别帐户(以 root 或任何您可以安全逃脱的较低访问权限帐户连接到服务器)并且与默认的 Pu 登录用户帐户不同,可以进一步减少暴露。
请注意,理想情况下您应该进行多次备份、轮换和异地备份以覆盖您的基地。