JavaScript is required to for searching.
跳过导航链接
退出打印视图
Trusted Extensions 管理员规程     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  Trusted Extensions 管理概念

2.  Trusted Extensions 管理工具

3.  Trusted Extensions 管理员入门(任务)

4.  Trusted Extensions 系统上的安全要求(概述)

5.  在 Trusted Extensions 中管理安全要求(任务)

6.  Trusted Extensions 中的用户、权限和角色(概述)

7.  在 Trusted Extensions 中管理用户、权限和角色(任务)

8.  Trusted Extensions 中的远程管理(任务)

9.  Trusted Extensions 和 LDAP(概述)

10.  在 Trusted Extensions 中管理区域(任务)

Trusted Extensions 中的区域

Trusted Extensions 中的区域和 IP 地址

区域和多级别端口

Trusted Extensions 中的区域和 ICMP

全局区域进程和有标签区域

Trusted Extensions 中的区域管理实用程序

管理区域(任务列表)

如何显示就绪或正在运行区域

如何显示挂载的文件的标签

如何对通常在有标签区域中不可见的文件进行回送挂载

如何禁用较低级别文件的挂载

如何从有标签区域共享 ZFS 数据集

如何使文件可以从有标签区域重新设置标签

如何为 NFSv3 Over udp 配置多级别端口

如何为区域创建多级别端口

11.  在 Trusted Extensions 中管理和挂载文件(任务)

12.  可信网络(概述)

13.  在 Trusted Extensions 中管理网络(任务)

14.  Trusted Extensions 中的多级别邮件(概述)

15.  管理有标签打印(任务)

16.  Trusted Extensions 中的设备(概述)

17.  管理 Trusted Extensions 的设备(任务)

18.  Trusted Extensions 审计(概述)

19.  Trusted Extensions 中的软件管理(任务)

A.  Trusted Extensions 管理快速参考

B.  Trusted Extensions 手册页列表

索引

管理区域(任务列表)

以下任务列表说明了特定于 Trusted Extensions 的区域管理任务。本图同时也指出了在 Trusted Extensions 中执行的常见过程;与它们在 Oracle Solaris 系统中的执行一样。

任务
说明
参考
查看所有区域。
在任何标签查看由当前区域支配的区域。
查看挂载的目录。
在任何标签查看由当前标签支配的目录。
允许一般用户查看 /etc 文件。
回送可以挂载全局区域中的目录或文件,缺省情况下,在有标签区域是无法看到该目录或文件。
防止一般用户从较高级别标签查看较低级别的起始目录。
缺省情况下,可以从较高级别区域看到较低级别目录。禁用一个较低级别区域的挂载时,会禁用所有较低级别区域的挂载。
配置区域以允许对文件的标签进行更改。
有标签区域的特权有限。缺省情况下,有标签区域无权允许授权用户重新为文件设置标签。可以修改区域配置以添加该特权。
将文件或目录移入有标签区域,或从有标签区域移出。
通过更改文件标签来更改其安全级别。
《Trusted Extensions User’s Guide》中的"How to Move Files Between Labels in Trusted CDE"
将 ZFS 数据集附加到一个有标签区域,然后将该数据集共享。
在有标签区域挂载具有读/写权限的 ZFS 数据集,然后以只读形式与较高级别区域共享该数据集。
配置新区域。
在一个当前尚未用作本系统区域标签的标签下创建一个区域。
请参见《Trusted Extensions Configuration Guide》中的"Name and Label the Zone"

然后,按照初始设置团队用于创建其他区域的过程进行操作。有关步骤,请参见《Trusted Extensions Configuration Guide》中的"Creating Labeled Zones"

为应用程序创建多级别端口。
多级别端口用于需要多级别输入进入一个有标签区域的程序。
解决 NFS 挂载和访问问题。
调试挂载和区域可能出现的一般访问问题。
删除有标签区域。
将有标签区域从系统中完全删除。

如何显示就绪或正在运行区域

此过程会创建一个 shell 脚本,以显示当前区域以及当前区域配置的所有区域的标签。

开始之前

您必须具有全局区域中的 "System Administrator"(系统管理员)角色。

  1. 使用可信编辑器创建 getzonelabels 脚本。

    有关详细信息,请参见如何在 Trusted Extensions 中编辑管理文件

    提供脚本的路径名,例如 /usr/local/scripts/getzonelabels

  2. 添加以下内容,然后保存文件:
    #!/bin/sh
    #
    echo "NAME\t\tSTATUS\t\tLABEL"
    echo "====\t\t======\t\t====="
    myzone=`zonename`
    for i in `/usr/sbin/zoneadm list -p` ; do
            zone=`echo $i | cut -d ":" -f2`
            status=`echo $i | cut -d ":" -f3`
            path=`echo $i | cut -d ":" -f4`
            if [ $zone != global ]; then
                    if [ $myzone = global ]; then
                            path=$path/root/tmp
                    else
                            path=$path/export/home
                    fi
            fi
            label=`/usr/bin/getlabel -s $path |cut -d ":" -f2-9`
            if [ `echo $zone|wc -m` -lt 8 ]; then
                    echo "$zone\t\t$status\t$label"
            else
                    echo "$zone\t$status\t$label"
            fi
    done
  3. 在全局区域中测试脚本。
    # getzonelabels
    NAME            STATUS          LABEL
    ====            ======          =====
    global          running         ADMIN_HIGH
    needtoknow      running         CONFIDENTIAL : NEED TO KNOW
    restricted      ready           CONFIDENTIAL : RESTRICTED
    internal        running         CONFIDENTIAL : INTERNAL
    public          running         PUBLIC

    从全局区域运行时,脚本显示所有就绪或正在运行区域的标签。下面是从缺省 label_encodings 文件创建的区域的全局区域输出:

示例 10-1 显示所有就绪或正在运行区域的标签

在下面的示例中,用户在内部区域中运行 getzonelabels 脚本。

# getzonelabels
NAME            STATUS          LABEL
====            ======          =====
internal        running         CONFIDENTIAL : INTERNAL
public          running         PUBLIC

如何显示挂载的文件的标签

此过程创建一个 shell 脚本,以显示当前区域的已挂载文件系统。从全局区域运行时,该脚本显示每个区域中所有已挂载文件系统的标签。

开始之前

您必须具有全局区域中的 "System Administrator"(系统管理员)角色。

  1. 使用可信编辑器创建 getmounts 脚本。

    有关详细信息,请参见如何在 Trusted Extensions 中编辑管理文件

    提供脚本的路径名,例如 /usr/local/scripts/getmounts

  2. 添加以下内容,然后保存文件:
    #!/bin/sh
    #
    for i in `/usr/sbin/mount -p | cut -d " " -f3` ; do
            /usr/bin/getlabel $i
    done
  3. 在全局区域中测试脚本。
    # /usr/local/scripts/getmounts
    /:      ADMIN_LOW
    /dev:   ADMIN_LOW
    /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
    /zone/restricted/export/home:   CONFIDENTIAL : RESTRICTED
    /proc:  ADMIN_LOW
    /system/contract:       ADMIN_LOW
    /etc/svc/volatile:      ADMIN_LOW
    /etc/mnttab:    ADMIN_LOW
    /dev/fd:        ADMIN_LOW
    /tmp:           ADMIN_LOW
    /var/run:       ADMIN_LOW
    /zone/public/export/home:  PUBLIC
    /root:          ADMIN_LOW

示例 10-2 显示 Restricted(受限)区域中文件系统的标签

一般用户从有标签区域运行时,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/gfaden:   CONFIDENTIAL : RESTRICTED

如何对通常在有标签区域中不可见的文件进行回送挂载

利用此过程,指定有标签区域中的用户可以查看缺省情况下未从全局区域导出的文件。

开始之前

您必须具有全局区域中的 "System Administrator"(系统管理员)角色。

  1. 停止要更改配置的区域。
    # zoneadm -z zone-name halt
  2. 回送挂载文件或目录。

    例如,允许普通用户查看 /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

    注 - 某些文件不为系统使用,所以回送挂载它们没有任何影响。例如,Trusted Extensions 软件不会检查有标签区域中的 /etc/dfs/dfstab 文件。有关更多信息,请参见从有标签区域共享文件


  3. 启动区域。
    # zoneadm -z zone-name boot

示例 10-3 回送挂载 /etc/passwd 文件

此示例中,安全管理员希望允许测试人员和编程人员检查他们的本地口令是否已经设置。停止 sandbox(沙箱)区域后,其配置为回送挂载 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"(系统管理员)角色。

  1. 停止要更改配置的区域。
    # zoneadm -z zone-name halt
  2. 配置区域,防止查看较低级别文件。

    从区域删除 net_mac_aware 特权。

    # zonecfg -z zone-name
     set limitpriv=default,!net_mac_aware
     exit
  3. 重新启动区域。
    # zoneadm -z zone-name boot

示例 10-4 防止用户查看较低级别文件

在此示例中,安全管理员希望防止一个系统中的用户被混淆。因此,用户只能查看其正在工作的标签的文件。从而,安全管理员可以阻止查看所有较低级别文件。在该系统中,用户无法看到公用文件,除非用户以 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(公共)区域运行这些命令。

如何从有标签区域共享 ZFS 数据集

在此过程中,要在有标签区域中挂载一个具有读/写权限的 NFS 数据集。因为所有命令都在全局区域中执行,全局区域管理员可以对向有标签区域添加 ZFS 数据集进行控制。

有标签区域至少要处于 "ready"(就绪)状态下才能共享数据集。区域可以处于 "running"(正在运行)状态。

开始之前

要以数据集配置区域,首先停止该区域。

  1. 创建 ZFS 数据集。
    # zfs create datasetdir/subdir

    数据集的名称可以包括目录,例如 zone/data

  2. 在全局区域中,停止有标签区域。
    # zoneadm -z labeled-zone-name halt
  3. 设置数据集的挂载点。
    # zfs set mountpoint=legacy datasetdir/subdir

    如果挂载点与有标签区域相对应,设置 ZFS 的 "mountpoint"(挂载点)属性时会设置挂载点的标签。

  4. 将数据集作为文件系统添加到区域中。
    # 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

    通过将数据集作为文件系统而添加,会在解释 dfstab 文件之前在区域中的 /data 处挂载该数据集。此步骤可以确保不会在引导区域之前挂载数据集。具体来说,区域引导,挂载数据集,然后解释 dfstab 文件。

  5. 共享数据集。

    将数据集文件系统的项添加到 /zone/labeled-zone-name/etc/dfs/dfstab 文件。此项还使用 /subdir 路径名。

    share  -F nfs  -d "dataset-comment"  /subdir
  6. 引导有标签区域。
    # zoneadm -z labeled-zone-name boot

    引导区域后,将自动挂载数据集,作为标签为 labeled-zone-namelabeled-zone-name 区域中的读/写挂载点。

示例 10-5 从有标签区域共享和挂载 ZFS 数据集

在此示例中,管理员将一个 ZFS 数据集添加到 needtoknow 区域,然后共享数据集。数据集 zone/data 当前被指定到 /mnt 挂载点。Restricted(受限)区域中的用户可以查看该数据集。

首先,管理员停止区域。

# zoneadm -z needtoknow halt

因为数据集当前被指定到不同的挂载点,管理员要删除之前的指定,然后设置新的挂载点。

# zfs set zoned=off zone/data
# zfs set mountpoint=legacy 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

接下来,管理员修改 /zone/needtoknow/etc/dfs/dfstab 文件以共享数据集,然后引导 needtoknow 区域。

## Global zone dfstab file for needtoknow zone
share  -F nfs  -d "App Data on ZFS"  /data
# zoneadm -z needtoknow boot

现在,可以访问该数据集了。

Restricted(受限)区域(支配 needtoknow 区域)中的用户可以通过更改到 /data 目录来查看挂载的数据集。从全局区域的角度看,他们使用挂载数据集的完整路径。在此示例中,machine1 是包括有标签区域的系统的主机名。管理员将此主机名指定给非共享 IP 地址。

# cd /net/machine1/zone/needtoknow/root/data

故障排除

如果尝试从较高级别标签访问数据集时返回错误找不到无此类文件或目录,管理员必须通过运行 svcadm restart autofs 命令来重启自动挂载程序服务。

如何使文件可以从有标签区域重新设置标签

此过程是用户可以重新为文件设置标签的先决条件。

开始之前

您必须具有全局区域中的 "Security Administrator"(安全管理员)角色。

  1. 停止要更改配置的区域。
    # zoneadm -z zone-name halt
  2. 配置区域以启用标签重新设置。

    向区域添加适当特权。Windows 特权允许用户使用拖放和剪切粘贴操作。

    • 要启用降级,请向区域添加 file_downgrade_sl 特权。
      # zonecfg -z zone-name
       set limitpriv=default,win_dac_read,win_mac_read,win_dac_write,
       win_mac_write,win_selection,file_downgrade_sl
       exit
    • 要启用升级,请向区域添加 sys_trans_labelfile_upgrade_sl 特权。
      # zonecfg -z zone-name
       set limitpriv=default,win_dac_read,win_mac_read,win_dac_write,
       win_mac_write,win_selection,sys_trans_label,file_upgrade_sl
       exit
    • 要同时启用升级和降级,则需要向区域添加全部三个特权。
      # zonecfg -z zone-name
       set limitpriv=default,win_dac_read,win_mac_read,win_dac_write,
       win_mac_write,win_selection,sys_trans_label,file_downgrade_sl,
       file_upgrade_sl
       exit
  3. 重新启动区域。
    # zoneadm -z zone-name boot

    对于允许重新设置标签的用户和进程要求,请参见 setflabel(3TSOL) 手册页。要授权用户重新为文件设置标签,请参见如何允许用户更改数据的安全级别

示例 10-6 允许从内部区域升级

在此示例中,安全管理员希望允许系统上的授权用户升级文件。通过允许用户升级信息,管理员使他们能够在更高的安全级别保护这些信息。在全局区域中,管理员运行以下区域管理命令。

# zoneadm -z internal halt
# zonecfg -z internal
 set limitpriv=default,sys_trans_label,file_upgrade_sl
 exit
# zoneadm -z internal boot

现在,授权用户可以从 Internal(内部)区域将 Internal(内部)信息升级到 Restricted(受限)。

示例 10-7 允许从 Restricted(被限制)区域降级

在此示例中,安全管理员希望允许系统上的授权用户将文件降级。因为管理员不向区域添加 Windows 特权,授权用户不能使用文件管理器来重新为文件设置标签。要重新为文件设置标签,用户可以使用 setlabel 命令。

通过允许用户降级信息,管理员允许较低安全级别的用户访问文件。在全局区域中,管理员运行以下区域管理命令。

# zoneadm -z restricted halt
# zonecfg -z restricted
 set limitpriv=default,file_downgrade_sl
 exit
# zoneadm -z restricted boot

现在,授权用户可以使用 setlabel 命令,从 Restricted(被限制)区域将 Restricted(被限制)信息降级到 Internal(内部)或 Public(公共)。

如何为 NFSv3 Over udp 配置多级别端口

此过程用于启用通过 udp 的 NFSv3 向下读取挂载。Solaris Management Console 用于添加 MLP。

开始之前

您必须具有全局区域中的 "Security Administrator"(安全管理员)角色。

  1. 启动 Solaris Management Console。

    有关详细信息,请参见如何使用 Solaris Management Console 管理本地系统

  2. 选择 "Files"(文件)工具箱。

    工具箱的标题包括 Scope=Files, Policy=TSOL

  3. 配置区域和 MLP。
    1. 导航到 "Trusted Network Zones"(可信网络区域)工具。
    2. 双击全局区域。
    3. 为 UDP 协议添加多级别端口:
      1. 单击 "Add for the Multilevel Ports for Zone's IP Addresses"(为区域的 IP 地址添加多级别端口)。
      2. 键入端口号 2049,然后单击 "OK"(确定)。
    4. 单击 "OK"(确定)保存设置。
  4. 关闭 Solaris Management Console。
  5. 更新内核。
    # tnctl -fz /etc/security/tsol/tnzonecfg

如何为区域创建多级别端口

在有标签区域中运行的应用程序需要多级别端口 (Multilevel Port, MLP) 来与区域通信时,使用此过程。在此过程中,一个 Web 代理与区域进行通信。Solaris Management Console 用于添加 MLP。

开始之前

您必须具有全局区域中的 "Security Administrator"(安全管理员)角色。有标签区域必须存在。有关详细信息,请参见《Trusted Extensions Configuration Guide》中的"Creating Labeled Zones"

  1. 启动 Solaris Management Console。

    有关详细信息,请参见如何使用 Solaris Management Console 管理本地系统

  2. 选择 "Files"(文件)工具箱。

    工具箱的标题包括 Scope=Files, Policy=TSOL

  3. 向计算机列表添加代理主机和网络服务主机。
    1. 在 "System Configuration"(系统配置)下,导航到 "Computers and Networks"(计算机和网络)工具。
    2. 在 "Computer"(计算机)工具中,单击 "Action"(操作)菜单并选择 "Add Computer"(添加计算机)。
    3. 为代理主机添加主机名和 IP 地址。
    4. 保存更改。
    5. 为网络服务主机添加主机名和 IP 地址。
    6. 保存更改。
  4. 配置区域和 MLP。
    1. 导航到 "Trusted Network Zones"(可信网络区域)工具。
    2. 选择有标签区域。
    3. 在 "MLP Configuration for Local IP Addresses"(本地 IP 地址的 MLP 配置)部分中指定适当的端口/协议字段。
    4. 保存更改。
  5. 对于区域,通过完成以下步骤来定制模板:
    1. 导航至 "Security Templates"(安全模板)工具。

      单击 "Action"(操作)菜单,选择 "Add Template"(添加模板)。

    2. 使用主机名作为模板名称。
    3. 指定 CIPSO 作为 "Host Type"(主机类型)。
    4. 使用区域的标签作为 "Minimum Label"(最小标签)和 "Maximum Label"(最大标签)。
    5. 将区域标签指定给 "Security Label Set"(安全标签集合)。
    6. 选择 "Hosts Explicitly Assigned"(明确指定的主机)选项卡。
    7. 在 "Add an Entry"(添加项)部分中,添加于区域关联的 IP 地址。
    8. 保存更改。
  6. 关闭 Solaris Management Console。
  7. 启动区域。
    # zoneadm -z zone-name boot
  8. 在全局区域中,为新地址添加路由。

    例如,如果区域具有共享 IP 地址,执行以下操作:

    # route add proxy labeled-zones-IP-address
    # route add webservice labeled-zones-IP-address