我目前正在“设计”我的个人(基于 Linux) IT,特别是备份。
我有几台服务器,它们会生成值得备份的数据(数据库、文件等),我想将这些数据放在一个中央备份位置(然后再在其他地方备份)。
目前我正在考虑安全问题:如果一台机器被拥有会发生什么?
最初我计划让所有系统使用同一个备份用户,但这会出现一个问题:如果其中一个客户端被拥有,他就可以更改任意其他备份数据。
我正在考虑为每个数据源创建一个备份用户。由于我拥有的数据源数量相当稳定,所以这对我来说不是问题。但是我感觉我违反了 DRY 原则:肯定有人已经想到了这个问题,我是否监督过任何企业/知名工具?或者我是否有完全不同的方法可以实现这一点?
答案1
使用擅长某一特定功能的工具来解决每个现实威胁。
拥有的备份目标危及所有源备份
- 加密并签名增量备份(例如表里不一+gnupg2)
- 备份目标不应存储其收到的数据的任何解密密钥
拥有一个来源的人可能会想要破坏其他来源的备份
- 用户分离(例如
chroot
每个源一个用户)
- 用户分离(例如
攻击者利用备份上传凭证破坏机器的旧备份
- 在备份目标上创建快照并恢复(例如lvm2,文件系统)
受感染的源尝试拒绝服务,从而阻止其他源备份
- 每台机器的磁盘空间限制(例如配额)
- 仅适用于转移方法的凭证(例如openssh
ForceCommand internal-sftp
)
受感染的源试图在恢复或备份期间导致管理员犯错
- 验证程序包括签名检查(gnupg2仅一步之遥
- 自动化减少人为错误的可能性
源和初始备份目标之间的备份可能会受到损害
- 通过相互认证的隧道进行传输(例如openssh)
答案2
Borg 备份使用中央存储库上的单个用户为每个客户端存储库提供。
您应该对所有静态备份进行加密,无论是操作系统/硬件级别还是存储库级别加密。
https://borgbackup.readthedocs.io/en/stable/deployment/central-backup-server.html#restrictions
答案3
我曾经在一个地方工作过,所做的事情与你所看到的类似。
我们有各种服务器(大部分是 Linux),它们都会将自身备份到中央服务器,大部分使用 NFS。我们的 CRM 系统是内部开发的,因此可以在必要时重建,并且它会每小时暂停一次并备份其数据库。主文件服务器每晚都会进行备份,无论是完整备份还是增量备份。
中央备份服务器连续运行 Crashplan 进行异地备份,并且我们每年将大约一次完整备份存档到另一个驱动器。
任何一台服务器被入侵都只会影响该服务器的备份,而不会影响档案或异地副本。如果备份服务器被入侵,则会影响所有“活动”备份,但不会影响档案和异地副本。我们并不担心服务器被入侵,但如果我们存储备份的驱动器出现问题,我们认为能够访问异地副本就足够了。