这是一个合理的方式来设置安全备份吗? 可以改进吗?

  1. 在正在备份的机器上:
    在具有要备份内容的生产Linux VM上创build有限特权帐户。
    • 帐户将有权访问一个单一的直接[例如/家庭/备份],只允许通过密钥的SSH。
    • 帐户将被chrooted到/ home / backup目录。
    • 帐户将被限制在shell [rssh]
    • 帐户将通过AllowUsers备份@ [备份虚拟机IP地址]
  2. 在正在备份的机器上
    root生成备份时,将它们放置在限制特权帐户可以访问的地方,并将其限制到有限特权帐户。
    • 根帐户将有权访问encryption密码/密钥。 此密钥的副本将存在于开发人员/系统pipe理员和/或USB密钥驱动器上。 假设是一个妥协的系统pipe理员/开发机器=拧。 他们能够键入密钥密码的input并获得密钥的副本。
    • 根帐户生成备份 – >压缩备份 – >encryption备份 – >移动备份到/home/backup/current.tar.bz2 – > chown备份:备份
  3. 在收集备份的机器上
    在所有生产计算机上为备份帐户提供SSH密钥,并将源计算机的/home/backup/current.zip复制到本地计算机。
    • 没有encryption/解密信息。
    • 备份虚拟机访问仅限于其机器上的sysadmin / dev ssh密钥。

要备份的信息不是非常敏感的[公共/私人对话,正在备份的服务的帐户密码等]。 这不是什么像信用卡,健康信息等

我相信备份过程的其余部分[恢复,备份频率等]的function令我满意。

在这种情况下,当您的异地备份由第三方存储时,您应该使用公钥encryption。

这样,备份的机器只有自己的公钥,因此只能创build备份。 您可以将私钥脱机存储,并仅用于恢复。

像Bareos这样的备份解决scheme已经支持公钥encryption,或者可以很容易地将其与GPG集成到现有的设置中。

你的设置看起来非常稳固 – 尽pipe我真的是备份软件的主要支持者。

我会根据Bacula(和/或BaReOS)为您提供以下大纲:

  1. 在正在备份的机器上
    安装Bacula代理,并configuration特定于计算机的encryption证书。
    (解密密钥不需要存储在这些机器上,因为它只是用于恢复。)
    您的备份将以与任何“正常”Bacula备份相同的方式启动,并将使用指定的证书进行encryption。

  2. 在Bacula Director请求备份的机器
    根据您的组织configuration备份计划(完整和增量)。

  3. 在Bacula存储服务器上备份被写入的机器
    您不必做任何特殊的事情,但通常情况下,要么使存储服务器不在现场,要么使用rsync或同等方式将备份同步到异地。


这实际上等同于上面的大纲,只不需要SSH访问和cron作业。 另外,您还可以获得其他好处:

  • 攻击者很难破坏备份。
    访问正在备份的其中一台机器不允许删除/覆盖备份 – 这一切都由Director控制。

  • 攻击者很难破坏正在备份的机器。
    在脱机存储解密密钥的情况下,攻击者无法将数据恢复到正在备份的计算机上(备份将不会解密),因此即使他们有权访问Director,也无法命令还原。

  • 您的备份非常安全。
    由于它们在离开源机器之前已经被encryption(并且在还原期间仅在目标机器上被解密),所以抓取备份副本的人正在变得无法使用(encryption的)数据。 如果您的数据是敏感的,这更是一个问题,但这也意味着您的备份不能被篡改(因此,如果有人访问存储服务器,则不能用于将损坏/恶意数据恢复到您的服务器) 。

  • 你正在使用“真正的备份软件”
    当您需要“恢复我在星期四正在处理的文档”时,这非常有用 – 您可以在不需要提取(或复制)整个归档的情况下恢复一个文件。

不足之处? 备份代理需要以root身份运行(或者至less作为可以读取所有要备份的数据的用户)。 代理人是非常安全的,但总是有一个未知的缺陷存在,可能会提供一个可能的攻击途径。
保持在你的补丁之上,你应该没问题。