跳过导航链接 | |
退出打印视图 | |
Trusted Extensions 配置和管理 Oracle Solaris 11 Information Library (简体中文) |
第 1 部分Trusted Extensions 的初始配置
3. 将 Trusted Extensions 功能添加到 Oracle Solaris(任务)
5. 为 Trusted Extensions 配置 LDAP(任务)
8. Trusted Extensions 系统上的安全要求(概述)
9. 执行 Trusted Extensions 中的常见任务(任务)
10. Trusted Extensions 中的用户、权限和角色(概述)
11. 在 Trusted Extensions 中管理用户、权限和角色(任务)
12. Trusted Extensions 中的远程管理(任务)
13. 在 Trusted Extensions 中管理区域(任务)
Trusted Extensions 中的区域和 IP 地址
14. 在 Trusted Extensions 中管理和挂载文件(任务)
16. 在 Trusted Extensions 中管理网络(任务)
17. Trusted Extensions 和 LDAP(概述)
18. Trusted Extensions 中的多级别邮件(概述)
20. Trusted Extensions 中的设备(概述)
21. 管理 Trusted Extensions 的设备(任务)
23. Trusted Extensions 中的软件管理(参考)
由 Trusted Extensions 扩展的 Oracle Solaris 接口
Trusted Extensions 中更为严厉的安全缺省值
按字母顺序排列的 Trusted Extensions 手册页
以下任务列表说明了特定于 Trusted Extensions 的区域管理任务。此任务列表还提供了指向 Trusted Extensions 中执行的常见操作过程(就像在 Oracle Solaris 系统中的执行一样)的链接。
|
开始之前
您必须具有全局区域中的 "System Administrator"(系统管理员)角色。
此时 GUI 中将显示区域的名称、状态和标签。
# zoneadm list -v ID NAME STATUS PATH BRAND IP 0 global running / ipkg shared 5 internal running /zone/internal labeled shared 6 public running /zone/public labeled shared
输出不会列出区域的标签。
此过程创建一个 shell 脚本,以显示当前区域的已挂载文件系统。从全局区域运行时,该脚本显示每个区域中所有已挂载文件系统的标签。
开始之前
您必须具有全局区域中的 "System Administrator"(系统管理员)角色。
提供脚本的路径名,例如 /usr/local/scripts/getmounts。
#!/bin/sh # for i in `/usr/sbin/mount -p | cut -d " " -f3` ; do /usr/bin/getlabel $i done
# /usr/local/scripts/getmounts /: ADMIN_HIGH /dev: ADMIN_HIGH /system/contract: ADMIN_HIGH /proc: ADMIN_HIGH /system/volatile: ADMIN_HIGH /system/object: ADMIN_HIGH /lib/libc.so.1: ADMIN_HIGH /dev/fd: ADMIN_HIGH /tmp: ADMIN_HIGH /etc/mnttab: ADMIN_HIGH /export: ADMIN_HIGH /export/home: ADMIN_HIGH /export/home/jdoe: ADMIN_HIGH /zone/public: ADMIN_HIGH /rpool: ADMIN_HIGH /zone: ADMIN_HIGH /home/jdoe: ADMIN_HIGH /zone/public: ADMIN_HIGH /zone/snapshot: ADMIN_HIGH /zone/internal: ADMIN_HIGH ...
示例 13-1 显示被限制区域中文件系统的标签
一般用户从有标签区域运行时,getmounts 脚本显示该区域中所有已挂载文件系统的标签。在已经为缺省 label_encodings 文件中的每个标签创建了区域的系统中,以下是 restricted 区域的输出样例:
# /usr/local/scripts/getmounts /: CONFIDENTIAL : RESTRICTED /dev: CONFIDENTIAL : RESTRICTED /kernel: ADMIN_LOW /lib: ADMIN_LOW /opt: ADMIN_LOW /platform: ADMIN_LOW /sbin: ADMIN_LOW /usr: ADMIN_LOW /var/tsol/doors: ADMIN_LOW /zone/needtoknow/export/home: CONFIDENTIAL : NEED TO KNOW /zone/internal/export/home: CONFIDENTIAL : INTERNAL USE ONLY /proc: CONFIDENTIAL : RESTRICTED /system/contract: CONFIDENTIAL : RESTRICTED /etc/svc/volatile: CONFIDENTIAL : RESTRICTED /etc/mnttab: CONFIDENTIAL : RESTRICTED /dev/fd: CONFIDENTIAL : RESTRICTED /tmp: CONFIDENTIAL : RESTRICTED /var/run: CONFIDENTIAL : RESTRICTED /zone/public/export/home: PUBLIC /home/jdoe: CONFIDENTIAL : RESTRICTED
利用此过程,指定有标签区域中的用户可以查看缺省情况下未从全局区域导出的文件。
开始之前
您必须具有全局区域中的 "System Administrator"(系统管理员)角色。
# zoneadm -z zone-name halt
例如,允许普通用户查看 /etc 目录中的文件。
# zonecfg -z zone-name add filesystem set special=/etc/filename set directory=/etc/filename set type=lofs add options [ro,nodevices,nosetuid] end exit
# zoneadm -z zone-name boot
示例 13-2 回送挂载 /etc/passwd 文件
此示例中,安全管理员希望允许测试人员和编程人员检查他们的本地口令是否已经设置。停止沙箱区域后,其配置为回送挂载 passwd 文件。然后,重新启动区域。
# zoneadm -z sandbox halt # zonecfg -z sandbox add filesystem set special=/etc/passwd set directory=/etc/passwd set type=lofs add options [ro,nodevices,nosetuid] end exit # zoneadm -z sandbox boot
缺省情况下,用户可以查看较低级别文件。删除 net_mac_aware 特权,以防止从特定区域查看所有较低级别文件。有关 net_mac_aware 特权的说明,请参见 privileges(5) 手册页。
开始之前
您必须具有全局区域中的 "System Administrator"(系统管理员)角色。
# zoneadm -z zone-name halt
从区域删除 net_mac_aware 特权。
# zonecfg -z zone-name set limitpriv=default,!net_mac_aware exit
# zoneadm -z zone-name boot
示例 13-3 防止用户查看较低级别文件
在此示例中,安全管理员希望防止一个系统中的用户被混淆。因此,用户只能查看其正在工作的标签的文件。从而,安全管理员可以阻止查看所有较低级别文件。在该系统中,用户无法看到公用文件,除非用户以 PUBLIC 标签工作。此外,用户只能在区域的标签对文件进行 NFS 挂载。
# zoneadm -z restricted halt # zonecfg -z restricted set limitpriv=default,!net_mac_aware exit # zoneadm -z restricted boot
# zoneadm -z needtoknow halt # zonecfg -z needtoknow set limitpriv=default,!net_mac_aware exit # zoneadm -z needtoknow boot
# zoneadm -z internal halt # zonecfg -z internal set limitpriv=default,!net_mac_aware exit # zoneadm -z internal boot
因为 PUBLIC 是最低级别标签,安全管理员不对 PUBLIC 区域运行这些命令。
在此过程中,要在有标签区域中挂载一个具有读/写权限的 NFS 数据集。因为所有命令都在全局区域中执行,全局区域管理员可以对向有标签区域添加 ZFS 数据集进行控制。
有标签区域至少要处于 "ready"(就绪)状态下才能共享数据集。区域可以处于正在运行状态。
开始之前
要为区域配置数据集,必须首先停止该区域。您必须在全局区域中承担 root 角色。
# zfs create datasetdir/subdir
数据集的名称可以包括目录,例如 zone/data。
# zoneadm -z labeled-zone-name halt
# zfs set mountpoint=legacy datasetdir/subdir
如果挂载点与有标签区域相对应,设置 ZFS 挂载点属性时会设置挂载点的标签。
# zfs set sharenfs=on datasetdir/subdir
# zonecfg -z labeled-zone-name # zonecfg:labeled-zone-name> add fs # zonecfg:labeled-zone-name:dataset> set dir=/subdir # zonecfg:labeled-zone-name:dataset> set special=datasetdir/subdir # zonecfg:labeled-zone-name:dataset> set type=zfs # zonecfg:labeled-zone-name:dataset> end # zonecfg:labeled-zone-name> exit
通过将数据集作为文件系统进行添加,会在区域的 /data 处挂载数据集。此步骤可以确保不会在引导区域之前挂载数据集。
# zoneadm -z labeled-zone-name boot
引导区域后,将自动挂载数据集,作为标签为 labeled-zone-name 的 labeled-zone-name 区域中的读/写挂载点。
示例 13-4 从有标签区域共享和挂载 ZFS 数据集
在此示例中,管理员将一个 ZFS 数据集添加到 needtoknow 区域,然后共享数据集。数据集 zone/data 当前被指定到 /mnt 挂载点。被限制区域中的用户可以查看该数据集。
首先,管理员停止区域。
# zoneadm -z needtoknow halt
因为数据集当前被指定到不同的挂载点,管理员要删除之前的指定,然后设置新的挂载点。
# zfs set zoned=off zone/data # zfs set mountpoint=legacy zone/data
然后,管理员共享该数据集。
# zfs set sharenfs=on zone/data
接下来,在 zonecfg 交互式接口中,管理员明确将数据集添加到 needtoknow 区域。
# zonecfg -z needtoknow # zonecfg:needtoknow> add fs # zonecfg:needtoknow:dataset> set dir=/data # zonecfg:needtoknow:dataset> set special=zone/data # zonecfg:needtoknow:dataset> set type=zfs # zonecfg:needtoknow:dataset> end # zonecfg:needtoknow> exit
接下来,管理员引导 needtoknow 区域。
# zoneadm -z needtoknow boot
现在,可以访问该数据集了。
支配 needtoknow 区域的 restricted 区域中的用户可以通过转到 /data 目录来查看挂载的数据集。从全局区域的角度看,他们使用挂载数据集的完整路径。在此示例中,machine1 是包括有标签区域的系统的主机名。管理员将此主机名指定给非共享 IP 地址。
# cd /net/machine1/zone/needtoknow/root/data
故障排除
如果尝试从较高级别标签访问数据集时返回错误找不到或无此类文件或目录,管理员必须通过运行 svcadm restart autofs 命令来重启自动挂载程序服务。
开始之前
必须停止您要配置的区域。您必须具有全局区域中的 "Security Administrator"(安全管理员)角色。
# /usr/sbin/txzonemgr &
对于允许重新设置标签的用户和进程要求,请参见 setflabel(3TSOL) 手册页。要授权用户重新为文件设置标签,请参见如何允许用户更改数据的安全级别。
示例 13-5 阻止从 internal(内部)区域降级
在此示例中,安全管理员希望在以前用于降级文件的系统上阻止降级 CNF: INTERNAL USE ONLY(CNF:仅供内部使用)文件。
管理员使用 "Labeled Zone Manager"(有标签区域管理器)停止 internal(内部)区域,然后从 internal(内部)区域菜单中选择 "Deny Relabeling"(拒绝重新设置标签)。