任何不包含在客户端使用所有者拥有的密钥进行加密的解决方案,都无法满足第一个规定的要求(IP保护/安全性)-服务器端的任何黑客行为都会泄露未加密的数据。这排除了拥有密钥的云同步系统,例如Dropbox。
为了避免将所有重要的加密密钥托管在网站的服务器上(有时也可能被黑客入侵),我将这样做:
- 客户自己站点上的内部备份服务器-具有用于其他两个服务器的加密密钥和SSH密钥
- 托管网站的服务器-可能是网络托管人
- 云备份服务器或服务
步骤1:服务器(1)从(2)中提取备份,因此大多数网站服务器黑客都不会破坏备份。此时将进行加密。
- 我会通过基于密钥的登录方式在SSH上使用rsnapshot,因为它对 Web主机和内部备份服务器的要求最低-除非您要备份的数据库很大,否则它的带宽效率非常高,并且可以存储网站的多个版本,并处理旧备份的清除。
- 加密可以通过任何文件到文件工具(例如GPG)来完成,将rsnapshot树复制到另一棵树上;或者您可以在第二步使用重复性,从而节省磁盘空间。
- 从备份服务器“拉”很重要-如果主服务器(2)具有备份服务器的密码/密钥,黑客可以并且有时会在黑客入侵主服务器后删除备份(请参阅下文)。真正高级的黑客可以安装木马SSH二进制文件,这可能会破坏备份服务器,但是对于大多数公司而言,这种可能性较小。
步骤2:服务器(1)将加密的备份推送到(3),以便进行非现场备份。如果备份是在步骤1中加密的,则可以仅使用本地rsnapshot树的rsync镜像到远程系统。
- 口是心非将是一个不错的选择直接加密和备份加密rsnapshot树到远程服务器。Duplicity的功能与rsnapshot有所不同,使用GPG加密的tar存档,但是它在远程主机上提供备份加密,并且仅在该主机上需要SSH(或者它可以使用Amazon S3)。Duplicity 不支持硬链接,因此,如果需要这样做(例如,对于完整的服务器备份),最好是脚本将rsnapshot树(确实支持硬链接)转换为tar文件(也许只是具有> 1个硬链接,该链接会很小),因此重复性可以备份tar文件。
- 由于远程服务器只是SSH主机(可能带有rsync),因此它可能是Web主机(但来自不同的托管服务提供商,并且在该国的其他地区),或者是提供rsync和/或SSH的云服务-请参阅尽管我不同意上述备份设置,但有关将rsync备份到云上的答案是对 bqbackup和rsync.net的推荐。
- 您可以将Amazon S3用作具有双重功能的远程服务器,这将为您提供非常好的可用性,尽管大型备份的成本可能更高。
- 远程加密备份的其他选项是Boxbackup(还不成熟,有一些不错的功能)和Tarsnap(基于Amazon S3的商业云服务,具有简单的命令行界面,良好的重复数据删除和非常彻底的加密)。
- JungleDisk可能是一个选择,但过去我对它们没有很好的经验,并且它们的加密存在一些问题(来自Tarsnap作者)。
所有主机的安全性都很重要,因此应对其进行调整以满足客户端的安全性,即分析威胁,风险,攻击媒介等。Ubuntu Server的启动并不坏,因为它经常更新5个安全性。年,但是在所有服务器上都需要注意安全性。
此设置提供2个独立的备份,其中一个可以是高可用性的云存储服务,以拉动模式运行,因此对网站的大多数攻击都无法同时破坏备份,并且它使用了久经考验的开源工具,不会需要很多管理。
- 独立备份至关重要,因为黑客确实确实有时会在黑客入侵网站的同时删除所有备份-在最近的情况下,黑客摧毁了4800个网站,其中包括通过黑客入侵Web托管环境而不是网站来备份。另请参阅此答案和此答案。
- 使用rsnapshot还原非常容易-每个快照树中每个备份的文件都有一个文件,因此只需使用Linux工具查找文件,然后rsync或将它们重新发送回网站即可。如果由于某些原因无法使用现场备份服务器,则只需使用重复性即可从云备份服务器还原它们-或可以使用GPG,rdiff和tar等标准工具来还原备份。
由于此设置使用标准的SSH和rsync,因此应更容易地选择合适的具有正常运行时间保证,强大安全性等的提供程序。您不必锁定冗长的合同,并且如果备份服务具有灾难性如果出现故障,您仍然具有本地备份,并且可以轻松切换到另一个备份服务。