我正在考虑使用云服务来备份我客户的一个网站。
我(客户)的主要关注点是(按重要性降序排列)
- 保护 IP(商业机密、源代码)、用户帐户详细信息等
- 服务提供商提供的正常运行时间保证(以最大限度地减少网络服务器停机时间)
- 成本
- 上传/下载速度
理想情况下,我想要没有长期联系的服务(即我更喜欢一种“现收现付”的服务)
我还想避免供应商锁定,在这种情况下几乎不可能转移到其他服务。
我想要一些关于以下方面的一般指导方针:
- 如何选择服务提供商
- 谁是该领域的主要参与者
- 推荐使用的软件:备份/恢复/和上传/下载已保存/恢复的文件
服务器软件要么是 Ubuntu 要么是 Debian(我可能会发布一个关于将哪个操作系统作为服务器的问题——我已经熟悉 Ubuntu)
任何不包括在客户端使用所有者持有的密钥进行加密的解决方案都不会满足第一个规定的要求(IP 保护/安全性)——服务器端的任何黑客攻击都会泄露未加密的数据。这排除了拥有密钥的云同步系统,例如 Dropbox。
为了避免在网站服务器上托管所有重要的加密密钥,这也可能在某些时候被黑客入侵,这就是我要做的:
第 1 步:服务器 (1) 从 (2) 中提取备份,因此大多数网站服务器的黑客攻击都不会破坏备份。此时进行加密。
步骤 2:服务器 (1) 将加密的备份推送到 (3),以便进行异地备份。如果备份在步骤 1 中被加密,您可以只使用本地 rsnapshot 树的 rsync 镜像到远程系统。
所有各种主机的安全性都很重要,因此应根据客户端的安全配置文件进行调整,即分析威胁、风险、攻击向量等。Ubuntu Server 是一个不错的开始,因为它有频繁的安全更新 5年,但所有服务器都需要注意安全性。
此设置提供 2 个独立备份,其中一个可以是高可用性云存储服务,以拉取模式运行,因此网站上的大多数攻击无法同时破坏备份,并且它使用经过验证的开源工具,需要很多管理。
由于此设置使用标准 SSH 和 rsync,因此应该更容易选择具有正确正常运行时间保证、强大安全性等的合适提供商。您不必锁定长期合同,并且如果备份服务有灾难性失败,你仍然有一个本地备份,可以很容易地切换到另一个备份服务。
在软件方面,考虑使用非对称加密和哑接收器(非云方法)的增量备份的重复性。
我总是告诉我的客户,最好、最便宜和最有效的备份解决方案是您自己构建的,用于您自己的目的。
当我为我的客户构建系统时,我使用 rsync 和 SSH 密钥来处理 serverA 和 serverB 之间的身份验证,其中 serverA 包含要备份的数据。归档和 rsync 数据的命令包含在一个 bash 脚本中,该脚本位于一个不可通过 Web 访问的目录中,由 cron 每 H 小时调用一次(每天 24 小时,等等)
备份服务器 serverB 仅用于备份。我总是建议我的客户使用非常长的密码和 SSH 密钥身份验证,以允许下载备份和备份。有时,我的客户需要将备份保存 D 天,所以我编写了一些脚本来处理它(从活动备份目录中获取数据,应用时间戳,添加到另一个目录中的存档)。
对于小型企业/产消者,我推荐亚马逊的 Storage Service。
以及“提供身份验证机制以确保数据免受未经授权的访问”的相当模糊的保证
虽然 bluenovember 在 S3 上走上了正轨,但亚马逊的系统并不是真正的直接备份解决方案,它是一个原始数据存储解决方案,仍然需要使用前端系统进行备份,无论是几个 API 调用还是一个完整的备份管理套件。像JungleDisk Server Edition这样的东西,它在后端使用 S3,但提供更好的接口用作备份解决方案,可能会更好。
此外,JungleDisk 将为您提供内置加密,无论您计划如何连接到 S3/“云”,都需要添加一些内容。他们也有一些非常不错的 Linux 客户端软件。
我喜欢将备份存储在 Amazon AWS 中,我使用免费工具s3cmd ( http://s3tools.org/s3cmd )
它可以很容易地安装(Debian:apt-get install s3cmd)。
您只需要一个 Amazon AWS 帐户即可将文件存储在 S3 上。然后一个简单的命令可以运行您的备份,甚至是增量备份或作为同步解决方案,例如:
确保你运行
首先输入您的 AWS 凭证。