用 duplicity 加密备份 Xen 虚拟机

在我们的 VPS 计划中有备份的附加服务,我们的数据中心能提供多种专业存储备份服务,为了降低成本我们选择的是最简单的 FTP 服务器,大家都知道 FTP 不安全,密码都可以 sniffer 到,把文件直接放在上面毫无秘密可言,太危险,为了保护我们客户的数据和隐私我们决定使用加密工具把虚拟机加密后再备份到 FTP 上,这样就算别人进入到我们的 FTP 服务器也什么都 “看” 不见,也无法删除、修改文件,数据都是 GPG 加密的,还有这个 FTP 服务器只有我们数据中心的人才能访问,与外界隔绝。所以这样既满足了我们备份需求又帮我们大大的降低了成本,如果使用数据中心的专业存储的话成本会高得惊人,那我们就无法提供10美元以下的 VPS 了。

Duplicity 是一个是我们正在用的加密备份工具,采用 rsync 算法和类库实现增量备份,并用 gpg 对数据包加密和签名,支持本地、远程、ftp, ssh/scp, rsync, Amazon S3 等多种存储方式和介质。

首先安装 duplicity:

# yum install duplicity

生成一个 gpg key:

$ gpg --gen-key

$ gpg --list-keys

我们把所有的 Xen 虚拟机镜像都放在一个目录里,然后备份本机的 /home/vpsee/xen 目录到远程机器 172.16.39.2 的 /backup/xen 目录,这样的备份是经过加密的,在远程机器的 /backup/xen 下看不到任何东西:

$ duplicity --encrypt-key="D2CDC262" /home/vpsee/xen/ \ 
ftp://user:pass@172.16.39.2/backup/xen/

从远程机器 172.16.39.2 的 /backup/xen 目录恢复到本地的 /home/vpsee/restore/ 目录:

$ mkdir /home/vpsee/restore
$ duplicity --encrypt-key="D2CDC262" \
ftp://user:pass@172.16.39.2/backup/xen/ /home/vpsee/restore/

同样的道理,我们也可以用 scp 来替代 ftp 完成备份的传输,备份操作:

# duplicity --encrypt-key="D2CDC262" /home/vpsee/xen/  \
scp://user:pass@172.16.39.2/backup/xen/

恢复操作:

# mkdir /home/vpsee/restore
# duplicity --encrypt-key="D2CDC262" \
scp://user:pass@172.16.39.2/backup/xen  /home/vpsee/restore/
GnuPG passphrase:

删除远程机器上的备份:

# duplicity cleanup ftp://user:pass@172.16.39.2/backup/xen
GnuPG passphrase:

评论 (2 Comments)

  1. 不考慮用implicit FTPS嗎?

  2. 想问下,你的系统版本号及YUM配置情况

发表评论