我目前正在研究适用于我的 CentOS 网络服务器的最佳备份解决方案,并且我正在考虑使用 Tarsnap 或直接使用 Amazon S3。
我正在尝试弄清楚如何阻止黑客删除我的服务器内容和远程备份,最坏的情况是他获得对我的服务器的 root 访问权限,从而可以访问远程备份身份验证凭据。 (我完全理解拥有强密码和/或仅强制执行基于密钥的 SSH 身份验证以及其他一般最佳实践安全性的重要性。但有时会发生一些事情,可能存在 Linux 漏洞或主机 VPS 级别的漏洞,或者其他或多或少不受我控制的事情。)
我知道 Tarsnap 和 Amazon S3 都具有只写用户权限,但问题是我还需要自动备份修剪/轮换。是否可以设置其中任何一项服务(或可能是其他服务)以禁止删除 2 天以内的备份生成?这将给我两天的缓冲时间来注意到我被黑客入侵并阻止黑客删除我最新的数据生成。
或者还有其他想法吗?非常感谢!
答案1
从根本上来说,您的问题在一定程度上因从主机推送备份而不是从主机中拉出备份而加剧。
您可以修复该问题,此外还可以从物理上(或逻辑上,如果需要)拔下中央备份主机上的备份卷。
我确实有将备份推送到 S3 的机器,但这些 S3 存储桶使用版本控制,因此攻击者推送错误的备份不是问题(并且使用的 api 密钥没有删除对象的权限,只能添加它们)。我使用 boto 修剪旧备份,因为不允许同时进行版本控制和存储桶生命周期)。
任何“激励”都不会起作用,这些人并不关心您的数据。
答案2
好吧,我最终选择了 Duplicity,因为它有自己的 Amazon S3 界面。我通过 IAM 创建了一个 Amazon S3 用户,该用户仅具有获取和放置对象的有限权限。我使用 Duplicity 选项--full-if-older-than
每 7 天创建一个新的完整备份。然后,我制定了一个自动 S3 生命周期策略,将超过 10 天的对象移动到 Glacier。然后,辅助规则会从 Glacier 中删除超过 102 天的对象(我添加了一些额外的冗余,以确保我不会在 90 天之前被 Glacier 提前删除费用所困扰)。因此,这将为我提供 80 多天的 Glacier 备份(一旦删除了最旧的完整备份,其子增量将仍然存在几天,但将不再有效),以及 S3 中另外 10 天的最新备份。通过差异更新和压缩,我的每日备份大小非常小,因此它应该非常经济。
感谢大家的帮助和建议。