
| AIX 6 加密文件系统配置指南(下) | |||||||||||||||||||||||||||||
| 摘自: IBM developerWorks China 被阅读次数: 61 | |||||||||||||||||||||||||||||
由 yangyi 于 2008-05-08 19:20:43 提供 | |||||||||||||||||||||||||||||
2008 年 2 月 28 日 上篇 中我们介绍了 EFS 的组成结构、对文件或目录的加密和解密以及对用户和组的管理。通过对上篇的学习,对 EFS 有了基本的了解,接下来将向大家介绍 EFS 的加密继承、密钥库的管理以及加密文件的备份与恢复等操作,进一步了解 EFS。
加密继承,就是新创建的文件或目录自动继承了其父目录或文件系统的加密属性,而不需要重新进行加密操作。加密继承包含对目录继承和文件系统的继承,下面将依次对他们进行讲解。 目录继承就是对目录而言,目录内新建立的文件或目录自动继承了父目录的继承。本指南的上篇已经演示对目录进行加密后,新创建的文件自动被加密的例子,这里不在赘述文件对加密目录的继承。如果新创建的目录是位于加密目录里面,则新目录自动继承加密目录的加密属性。 下面将演示目录的继承,具体参看如下操作: 图表 1 目录加密继承
从上图的演示中可以看到,用户 blue 在其加密目录 blue 内新创建了 blue_sub_dir 目录。blue_sub_dir 目录自动继承了父目录 blue 的加密属性。在 blue_sub_dir 目录内创建了 blue_sub_file 文件,而 blue_sub_file 自动继承了其目录的加密属性。blue 用户移动加密目录 blue 到 home 目录,由于 home 逻辑卷没有启用 EFS 加密属性,因此移动失败。 注意: 加密文件或目录的复制和移动操作只能在加密文件系统内或相互之间进行,不要把加密文件或目录复制(移动)到非加密文件系统。 EFS 是针对 JFS2 文件系统设计的,只有在逻辑分区启用 EFS 加密属性,分区内将支持对文件或目录的加密操作。如果对整个分区进行了加密,分区内所有新创建的文件或目录将自动被加密,无需重新对文件或目录进行加密。如果用户想解除某个文件(目录)的加密属性,是需要手动运行“efsmgr –d(D)”命令来解除即可。 下面将演示文件系统的加密继承,具体操作如下图所示: 图表 2 文件系统的加密
从上图可以看出,要对文件系统的进行加密操作,首先需要分区内 JFS2 的 EFS 属性是开启状态,运行“efsmgr –s –E /efs_bak”命令启用 /efs_bak 分区的文件系统加密继承。 在上面演示中,在 /efs_bak 分区内,root 用户创建的加密 blue 目录,解除 blue 目录的加密属性后,更改 blue 目录的属主为 blue 用户和 staff 组,blue 用户对 blue 目录进行加密,并复制了 /efs/blue/blue_sub_dir 目录到 /efs_bak/blue 目录中;可以看到成功复制了 blue_sub_dir 目录,并不改变其加密属性。 同样的,如果要取消文件系统的加密属性,可是使用“efsmgr –s –D /efs_bak”命令取消 /efs_bak 分区的加密属性。具体的演示如下图所示: 图表 3 文件系统的解密
从以上演示可以看出,解除文件系统的加密状态后,分区内的文件或文件夹将保留原来的加密状态,新创建的文件或文件夹将自动继承文件系统新的特性。
EFS 密钥库的管理和维护是加密文件系统的重要组成部分,以下我们将讲解 EFS 密钥库的管理模式以及密钥的管理。 EFS 的密钥库有两种方式进行管理,分别是 Root Admin 模式和 Root Guard 模式,这两种模式分别表示 root 用户具有全部访问权限和受限访问的权限。无论哪种方式,root 用户都不能直接通过 su 命令来获取加密文件的访问。
在这种模式下,root 用户被授予 EFS 的特殊密码访问身份,对系统文件有完全的访问权限。Root Admin 模式为 AIX 的系统管理提供了更好的灵活性,此模式也是在 JFS2 文件系统上启用加密文件系统的默认模式。 在 Root Admin 模式下,EFS 特殊密钥的访问仅授予已授权的用户(root 用户或具有 RBAC aix.security.efs 权限的用户)。被授权的用户可以重新设置用户的密码、重新生成其密钥以及添加和删除访问密钥库等权限。
root 用户受限模式是 EFS 管理模式的可选模式。这种模式下,root 用户可以重置用户的登陆密码,但不能重新设置用户的密钥库密码。root 用户不可能替代用户(使用 su 命令)和继承用户的密钥库,但可以创建和删除用户和组本身。root 用户无法获取用户和组的密钥的访问权限。 Root Guard 模式虽然可提供更高的安全性。但它也带来另外一个问题,如果用户的密码丢失,root 用户将不能重设用户密钥库密码。虽然用户可以重新生成密钥库的密码,但加密文件由于使用的旧密钥库,将拒绝访问的用户。 使用“efsenable –a –m guard”命令来启用 EFS 的 Root Guard 模式,参数“-m”后跟 root 将启用 Root Admin 模式, EFS 默认启用的模式是 Root Admin 模式。 在 EFS 环境中,用户的密钥库是在设定用户密码后自动产生,用户的私钥存储在用户的密钥库中,公钥被加密添加到文件属性中,任何用户都可以查看,但只有拥有私钥的用户才能解开加密文件。 如果用户密钥库的密码和登陆密码是相同的(这是 AIX 6 默认设置),用户登陆 AIX 系统后,将自动打开密钥库。如果是用户更改了登陆密码,此时登陆密码和密钥库的密码不同了,需要运行“efskeymgr –o ksh”命令来装入密钥库。
在每个用户或组内都包含 .lock 文件,lock 文件的作用是当对密钥库进行操作时,维护用户密钥和组密钥完整性。lock 文件是通过控制目录的权限,来保证密钥的安全性。默认情况下,各个目录或文件只有 root 用户才有读写权限,其他用户或组只有对密钥库进行操作时才能更新 lock 文件。 当用户更新其密钥时,lock 文件限释放的步骤如下:
实际操作中上面步骤执行过程是非常迅速的,我们只是把它分列开来说明。
EFS 的密钥格式使用的是 PKCS #12 标准,PKCS#12 是“个人信息交换语法”标准,它描述了将用户公钥、私钥、证书和其他相关信息打包的语法。可以将 x.509 证书和证书对应的私钥打包,并进行交换。 在 AIX 6 中可以运行“efskeymgr -e <filename>”命令连带私钥一起导出到指定文件,并设置口令保护,导出来的文件就是按 PKCS 12# 的格式打包的。 用户或组的密钥库默认存放位置如下: 表格 1 密钥库
以下我们将演示如何导出 EFS 密钥的过程。 图表 4 导出密钥
从上图中可以看到,blue 用户导出了 EFS 的密钥库到加密文件 blue_file,在导出前需要设置口令保护密钥。使用 openssl 命令查看 blue_file 的 EFS 的私钥信息时,需要输入这个密码,Openssl 安装包可以在 AIX 6 的扩展 CD 中安装。 blue 用户的私钥信息如下: 图表 5 私钥信息
从上图可以看出,输出了相关加密信息和证书信息后,列出了 blue 用户的私有密钥的内容。 EFS 的加密文件的公钥格式是 x.509 证书标准。EFS 的加密文件的公钥格式是 x.509 证书标准。X.509 证书由用户公共密钥和用户标识符组成。此外还包括版本号、证书序列号、CA 标识符、签名算法标识、签发者名称、证书有效期等信息,目前这一标准的最新版本是 x.509 v3。 以下我们将演示导出的公钥密钥的过程: 图表 6 导出公钥
在导出过程中,首先需要在 openssl 命令模式下把密钥文件以 PKCS #12 格式导出,并保存为 blue_1 文件,然后运行“/usr/linux/bin/openssl x509 –in blue_1 –pubkey -noout”命令导出公钥的信息。
备份和恢复是系统管理最基本的工作之一,主要包含 rootvg 数据备份以及用户数据备份。AIX 提供了 backup 命令和 restore 命令来备份和恢复文件或文件系统数据。对于加密文件需要配合使用“-Z”参数与命令一起来备份和恢复加密文件。也可使用 tar 命令备份加密文件,需添加“-Z”参数,在恢复时,不需要“-Z”参数,这里不在详述使用 tar 命令的备份和恢复加密文件。 对于 EFS 加密文件系统的来说,通常有效的备份应该包含如下内容:
以上列出的内容都是最基本的,如果缺少或忘记备份某项内容,将可能导致用户数据丢失或数据不可用。 备份 EFS 加密文件系统时,可使用 backup 命令和“-Z”参数来备份加密文件和加密文件的元数据。除了备份加密数据文件外,还需要备份用户和组的密钥库,密钥库存放位置如 表格 1 密钥库 。 我们将分别模拟两个场景来讲解对加密文件数据备份操作;
在移除密钥库进程的环境下,对加密文件 efs_file 和普通文件 none_efs_file 进行备份的操作,并备份 blue 用户和 staff 组的密钥库。 具体操作步骤如下图所示: 图表 7 备份加密文件
efs_file 是加密文件,none_efs_file 是普通文件,blue 用户使用“efskeymgr –c ksh”命令移除已加载密钥库,“efskeymgr –v”命令显示当前进程中无可用的密钥库,运行“ls *file | backup –ivZf /tmp/blue_archive”命令备份这两个文件,生成了备份文件 blue_archive。 使用 cat 命令查看备份文件 blue_archive 的内容,可以看到前面是一些乱码信息,这些乱码就是加密文件 efs_file 产生的;后面是列出了普通 none_efs_file 文件的内容。 图表 8 查看备份内容
注:图中的加密部分的乱码未完全列出。 接下来我们来备份 blue 用户的密钥库,备份用户密钥库的操作只有 root 用户有权限,其他用户只有更改自己密钥的权限。具体操作如下: 图表 9 备份用户和组密钥库
由于用户的密钥库非加密文件,在备份时不需要使用“-Z”参数,由上图可以看到,我们很容易的备份出了 blue 用户和 staff 组的密钥库,备份的文件分别为:blue_keystore 和 staff_keystore。
一个用户备份再备份文件时,无意的备份了另外用户的加密文件,是否可以备份,具体操作如下: 图表 10 配备用户数据
blue 用户已授予 user2 可以访问加密文件 blue_file,blue_file 文件存放在 blue 用户的 work 目录。在目录内还有另外两个文件,一个是加密文件 encrypted_file,一个是普通文件 clear_file,并且 user2 不能访问加密文件 encrypted_file。User2 使用 backup 命令备份了 work 目录的所有以 file 结尾的文件,备份的文件名为 user2_archive。 注: 备份的文件也可以设置为加密文件,但一般不推荐对备份文件的文件进行加密。如果密钥更改或丢失,可能无法打开备份文件而丢失数据。 恢复 EFS 加密文件或文件系统,就是从 backup 命令备份的文件中恢复加密文件或从 tar 包中恢复。在恢复加密文件时,需要保证目标的文件系统已启用 EFS 加密属性。在恢复加密文件或文件系统时,需要注意以下几点:
以上四项内容是在恢复加密文件时需要确认的前提。 下面将根据备份的两个场景来恢复加密文件。
在无密钥库载入的环境中,恢复备份的加密文件。 具体操作如下: 图表 11 恢复加密文件
将 图表 7 备份加密文件 blue_archive 复制到 blue 用户的 work 目录,使用“restore –xvf”命令恢复加密文件 efs_file 和非加密文件 none_efs_file。恢复后,两个文件各自的属性没有改变。本次操作只对数据文件进行恢复,由于 blue 用户没有更改其密钥,无需恢复。
以 root 用户身份备份其他用户的加密文件,然后恢复被删除的加密文件。 具体操作如下: 图表 12 恢复加密文件
通常文件数据的备份都是由 root 用户来完成备份的,root 用户备份了 blue 用户的加密文件 blue_file,blue 用户无意删除了加密文件 blue_file。root 用户使用 restore 命令从备份文件 blue_archive_by_root 恢复了 blue 用户的加密文件 blue_file。
root 用户提前备份了用户的密钥库,用户备份了目标文件,随后用户更新了密钥库并删除了旧的密钥库,在 root 用户的帮助下恢复加密文件的过程。 具体操作如下: 图表 13 备份加密文件
root 用户备份了 blue 用户和 staff 组的密钥库,blue 用户使用“efskeymgr –R RSA_1024”更新了密钥库的加密算法,用户的密钥库也随之更新。blue 用户查看当前密钥库的信息,可以看到旧的密钥库 RSA_2048 存在用户的密钥库中,并被标识为“deprecated”状态,一般不建议删除这个密钥。如果删除了这个密钥,可能会导致无法访问加密文件。 下面将演示用户 blue 删除旧的密钥库,root 用户恢复其加密文件的过程。 图表 14 删除旧的密钥
Blue 用户更新了密钥库的加密规则,原来使用的 RSA_2048,更新后,使用的是 RSA_1024 规则。随后 blue 用户删除 blue_file 文件,运行“efskeymgr – D ”命令删除了旧的密钥(RSA_2048 加密规则的密钥),重新加载 blue 用户的密钥库,可以看到当前密钥库中只有新的密钥信息。 下面演示 blue 用户从备份文件中恢复加密文件后,无法访问加密文件,恢复密钥库后可以正常读取加密文件 blue_file 的过程。 图表 15 恢复密钥库
blue 用户登陆 AIX 系统,访问加密文件 blue_file,拒绝其访问;这是因为加密文件 blue_file 是使用旧加密规则 RSA_2048 加密,如果要打开,需使用 blue 用户旧密钥解密。root 用户首先使用 backup 命令备份 blue 用户现有的密钥库,然后恢复其旧密钥库。blue 用户重新加载密钥库后,可以正常的读取 blue_file 的内容。
通过以上示例的讲解,大家对加密文件系统(EFS)有了进一步的了解,这里模拟的场景可以为 AIX 系统管理员提供使用 EFS 的参考。EFS 加密文件系统有效的保护了用户数据的安全,增强了 AIX 6 文件系统的安全性。 学习
讨论
| |||||||||||||||||||||||||||||