Chinaunix首页 | 论坛 | 博客
  • 博客访问: 513107
  • 博文数量: 294
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 4260
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-23 06:10
文章分类

全部博文(294)

文章存档

2011年(1)

2008年(293)

我的朋友

分类: 服务器与存储

2008-06-23 07:12:37

关于数据安全,目前更多的谈论的是备份和容灾。大多数企业设立了多重数据保护机制给那些宝贵的数据加上了一层又一层的防护,但是这样就真的安全了么?存储安全的疏漏五花八门,其中技术含量最高的是黑客侵入,最没有技术含量,但是却频繁发生的是失窃。只注重业务连续性,不注意数据安全的备份方式有点象重兵守城,却无人看库的保护方式。

    存储安全指在数据保存上确保完整、可靠和有效调用,既包括存储设备自身的可靠性和可用性(设备安全),也包括保存在存储设备上数据的逻辑安全(应用安全)。由于存储厂商已经在设备安全、安全厂商已经在网络安全方面都下了不少的功夫,但还有相当多的安全细节需要引起重视。备份加密就是其中一个有效的手段。

    现在很多备份软件都提供加密功能,因此如何应用这些备份软件进行加密备份变得十分重要。本文将重点讲述如何用Veritas NBU实现数据加密备份。在介绍具体操作前,我们先来看一些相关概念:

关于加密的相关概念
    DES加密算法与密码文件
    DES加密算法是一个国际标准算法,据说当密码长达512位时,一个人穷尽一生也无法破解。对于加密/解密,并不是我专长。但需要知道的是,生成加密文件所使用的密码,决定了加密文件的最终状态。因此,在相同计算机上生成的加密文件,可以分给不同的计算机来使用。这使得我们得到了一个穿越防火墙的极好办法。这个问题在后面还会有叙述。

    密钥的长度
    40位,56位,128位都是不同的密钥长度。很明显,选择长度越大的密钥则破解难度越高。在Netbackup 5.0中提供了40和56两种密钥。而5.1则增加了128位密钥。在6.0则再次增加了256位密钥。

    密码
    在创建密码文件时,需要输入一个密码。请注意,这并不是加密算法的密码,因此没必要把他设定到256位。这个密码决定了密码文件中的数据,而密码文件才最后生成DES密码。

    加密备份的设定
    在策略中,可以选择加密还是不加密。同时,还有一个CRYPT_OPTION参数在起作用。
    当CRYPT_OPTION的值为allow的时候,策略选择加密或者不加密都可以通过
    当CRYPT_OPTION的值为required的时候,策略必须选择加密才能通过
    当CRYPT_OPTION的值为denied的时候,策略则不能进行加密备份

    恢复的过程
    服务器首先根据映像确认该备份是否被加密。然后,服务器连接客户端的bpcd启动恢复。加密与解密过程都是在客户端上完成的,服务器本身不参与数据的加密与解密。因此,不管是备份还是恢复,其数据流都是被加密的。

    加密备份与恢复的理论过程
    当主服务器根据日程表发起备份后,bpcd接受备份发起指令后,利用密码文件为即将发送的数据加密。因此,从客户端到服务器的数据流是已经加密的。而服务器端则完全按照标准的方法来保存加密数据流。而当得到恢复请求后,服务器端不会进行解密处理,而是直接将数据发送给客户端。当客户端收到数据后,再通过密码文件对数据进行解密。因此,恢复的数据流也同样是加密的。

详细安装过程
    首先必须在主服务器上安装ENCRYPTION组件。这个组件存在于DB Option光盘上。属于Add ON软件。ENCRYPTION组件需要单独License,没有Tier级别限制。

    标准安装过程
    1。以root身份登录主服务器
    2。确认License
    3。将DB Option光盘放入光驱
    4。切换至光盘目录
    5。执行安装脚本
    ./install
    在提示版本时,回答y
    6。集群环境必须在每个节点上各自执行
    7。在客户端安装ENCRYPTION软件

    推送软件的过程
    bpinst命令并不是一个专门用于加密的安装命令。他适用于几乎所有的NetBackup软件的安装。ENCRYPTION会指示bpinst命令去推送加密软件,而其实在windows客户端,这一步是不需要的。因为Windows版本的NetBackup一旦安装,就包括了所有DB Agent和AddON软件。

    推送软件的同时,可以设定密码。但我个人不推荐这样做。因为这样做不仅命令非常长,且并不是非常有利于保护密码。

    推送密码
    bpkeyutil命令可以向客户端推送密码文件。密码文件存在于客户端上,是为客户端加密提供算法的。在windows环境里,密码文件位于VERITAS_DIR\netbackup\var\keyfile.dat。关于这一点,手册中指明的路径是错误的,要注意。在Unix环境里,密码文件位于/usr/openv/netbackup/keyfile。

    在5.1文档中,推送密码的命令是bpkeyfile,在6.0文档中,推送密码的命令是bpkeyutil。而其实,5.1也一样是bpkeyutil命令推送密码。bpkeyfile我总是失败,不知道是bug还是其他什么原因。

    推送密码的命令:bpkeyutil -client 客户端名。

加密备份的注意事项

    大部分应用NetBackup加密的用户,都会有非常严格的安保措施,对防火墙的控制也非常严格。而bpkeyutil并不使用bpcd或者vnetd这些端口,具体使用什么端口,在手册中没有说明。即便知道,我们也不得不要求用户多开放一个端口。而一旦密码文件推送成功,这个端口就没有作用了。给用户留下这样一个无用端口,是会引起很多不必要的问题的。

    解决的办法其实很简单。我在与主服务器同网段的机器中找了一个客户端,用bpkeyutil命令向其推送密码,密码生成后,将其改名。再推送其他密码文件。他们的区别就是推送时设定的密码。然后将这些密码文件复制到目标客户端的相应位置上,密码文件就算推送完成了。这样就可以完全绕过那个我们不必要知道的端口。

    保护密码文件
    密码文件是加密备份与恢复所必需的钥匙。一旦被人取道,则很有可能被人非法恢复用户的备份。因此,密码文件的安全性是非常重要的。在Unix环境中,可以通过修改访问权限的方法来保护。在Windows环境中,则一定要注意密码文件所在分区的访问权限。

    重要警告
    密码文件的生成密码是具有历史性的。如果你中途修改过密码文件的密码,那么,你就必须记住包括原先密码在内的所有密码。因为,一旦密码文件遗失,你需要重建密码文件的时候,要根据该密码文件的历史,重新输入所有密码,才能生成对应的密码文件。

    保护密码
    密码文件的生成依赖于密码。因此,VERITAS建议将密码写在纸上,装入信封,并封入保险柜内。当然,根据用户数据安全级别的不同,我们可以采用很多方法来保护这些密码的秘密,不一定非得这样大动干戈。

阅读(795) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~