JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:安全性服务     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

第 2 部分系统、文件和设备安全性

2.  管理计算机安全性(概述)

3.  控制对系统的访问(任务)

4.  控制对设备的访问(任务)

5.  使用基本审计报告工具(任务)

6.  控制对文件的访问(任务)

7.  使用自动安全性增强工具(任务)

第 3 部分角色、权限配置文件和特权

8.  使用角色和特权(概述)

9.  使用基于角色的访问控制(任务)

10.  基于角色的访问控制(参考)

11.  特权(任务)

12.  特权(参考)

第 4 部分加密服务

13.  Oracle Solaris 加密框架(概述)

14.  Oracle Solaris 加密框架(任务)

15.  Oracle Solaris 密钥管理框架

第 5 部分验证服务和安全通信

16.  使用验证服务(任务)

17.  使用 PAM

18.  使用 SASL

19.  使用 Oracle Solaris 安全 Shell(任务)

20.  Oracle Solaris 安全 Shell(参考)

第 6 部分Kerberos 服务

21.  Kerberos 服务介绍

22.  规划 Kerberos 服务

23.  配置 Kerberos 服务(任务)

24.  Kerberos 错误消息和故障排除

25.  管理 Kerberos 主体和策略(任务)

管理 Kerberos 主体和策略的方法

SEAM Tool

SEAM Tool 的等效命令行

SEAM Tool 修改的唯一文件

SEAM Tool 的打印和联机帮助功能

在 SEAM Tool 中处理大型列表

如何启动 SEAM Tool

管理 Kerberos 主体

管理 Kerberos 主体(任务列表)

自动创建新的 Kerberos 主体

如何查看 Kerberos 主体列表

如何查看 Kerberos 主体属性

如何创建新的 Kerberos 主体

如何复制 Kerberos 主体

如何修改 Kerberos 主体

如何删除 Kerberos 主体

如何设置缺省值以创建新的 Kerberos 主体

如何修改 Kerberos 管理特权

管理 Kerberos 策略

管理 Kerberos 策略(任务列表)

如何查看 Kerberos 策略列表

如何查看 Kerberos 策略属性

如何创建新的 Kerberos 策略

如何复制 Kerberos 策略

如何修改 Kerberos 策略

如何删除 Kerberos 策略

SEAM Tool 参考

SEAM Tool 面板说明

以受限 Kerberos 管理特权使用 SEAM Tool

管理密钥表文件

管理密钥表文件(任务列表)

如何将 Kerberos 服务主体添加至密钥表文件

如何从密钥表文件中删除服务主体

如何显示密钥表文件中的密钥列表(主体)

如何临时禁用对主机上的服务的验证

26.  使用 Kerberos 应用程序(任务)

27.  Kerberos 服务(参考)

第 7 部分Oracle Solaris 审计

28.  Oracle Solaris 审计(概述)

29.  规划 Oracle Solaris 审计

30.  管理 Oracle Solaris 审计(任务)

31.  Oracle Solaris 审计(参考)

词汇表

索引

管理密钥表文件

提供服务的每台主机都必须包含名为 keytab(密钥表)的本地文件,keytab 是“key table”的缩写。密钥表包含相应服务的主体,称为服务密钥。服务使用服务密钥向 KDC 进行自我验证,并且只有 Kerberos 和服务本身知道服务密钥。例如,如果您有基于 Kerberos 的 NFS 服务器,则该服务器必须具有包含其 nfs 服务主体的密钥表文件。

要将服务密钥添加至密钥表文件,应使用 kadminktadd 命令,将相应的服务主体添加至主机的密钥表文件。由于要将服务主体添加至密钥表文件,因此该主体必须已存在于 Kerberos 数据库中,以便 kadmin 可验证其存在。在主 KDC 上,密钥表文件的缺省位置为 /etc/krb5/kadm5.keytab。在提供基于 Kerberos 的服务的应用服务器上,密钥表文件的缺省位置为 /etc/krb5/krb5.keytab

密钥表类似于用户的口令。正如用户保护其口令很重要一样,应用服务器保护其密钥表文件同样也很重要。应始终将密钥表文件存储在本地磁盘上,并且只允许 root 用户读取这些文件。此外,绝不要通过不安全的网络发送密钥表文件。

还有一种特殊情况需要将 root 主体添加至主机的密钥表文件。如果希望 Kerberos 客户机用户挂载基于 Kerberos 的 NFS 文件系统(要求与超级用户等效的权限),则必须将客户机的 root 主体添加至客户机的密钥表文件。否则,每当用户要使用 root 权限挂载基于 Kerberos 的 NFS 文件系统时,即使正在使用自动挂载程序,也必须以 root 身份使用 kinit 命令来获取客户机 root 主体的凭证。


注 - 设置主 KDC 时,需要将 kadmindchangepw 主体添加至 kadm5.keytab 文件。


可用于管理密钥表文件的另一个命令是 ktutil 命令。使用此交互式命令,可在没有 Kerberos 管理特权的情况下管理本地主机的密钥表文件,因为 ktutil 不会像 kadmin 那样与 Kerberos 数据库交互。因此,将主体添加至密钥表文件后,可使用 ktutil 来查看密钥表文件中的密钥列表,或临时禁用对服务的验证。


注 - 使用 kadmin 中的 ktadd 命令更改密钥表文件中的主体时,将生成一个新的密钥并将其添加至密钥表文件。


管理密钥表文件(任务列表)

任务
说明
参考
将服务主体添加至密钥表文件。
使用 kadminktadd 命令将服务主体添加至密钥表文件。
从密钥表文件中删除服务主体。
使用 kadminktremove 命令从密钥表文件中删除服务。
显示密钥表文件中的密钥列表(主体列表)。
使用 ktutil 命令来显示密钥表文件中的密钥列表。
临时禁用对主机上的服务的验证。
此过程可以快速地临时禁用对主机上的服务的验证,而不需要 kadmin 特权。

使用 ktutil 从服务器的密钥表文件中删除服务主体之前,应将原始密钥表文件复制到一个临时位置。如果要再次启用该服务,请将原始密钥表文件复制回其相应的位置。

如何将 Kerberos 服务主体添加至密钥表文件

  1. 确保 Kerberos 数据库中已存在该主体。

    有关更多信息,请参见如何查看 Kerberos 主体列表

  2. 成为需要将主体添加至其密钥表文件的主机的超级用户。
  3. 启动 kadmin 命令。
    # /usr/sbin/kadmin
  4. 使用 ktadd 命令将主体添加至密钥表文件。
    kadmin: ktadd [-e enctype] [-k keytab] [-q] [principal | -glob principal-exp]
    -e enctype

    覆盖 krb5.conf 文件中定义的加密类型列表。

    -k keytab

    指定密钥表文件。缺省情况下,使用 /etc/krb5/krb5.keytab

    -q

    显示简要信息。

    principal

    指定要添加至密钥表文件的主体。可以添加以下服务主体:hostrootnfsftp

    -glob principal-exp

    指定主体表达式。与 principal-exp 匹配的所有主体都将添加至密钥表文件。主体表达式的规则与 kadminlist_principals 命令的规则相同。

  5. 退出 kadmin 命令。
    kadmin: quit

示例 25-16 将服务主体添加至密钥表文件

在以下示例中,kadmin/kdc1.example.comchangepw/kdc1.example.com 主体被添加至主 KDC 的密钥表文件。对于该示例,密钥表文件必须是在 kdc.conf 文件中指定的文件。

kdc1 # /usr/sbin/kadmin.local
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.example.com changepw/kdc1.example.com
Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode
          with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab.
Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode
          with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab.
Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type Triple DES cbc
          mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab.
Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type ArcFour
          with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab.
Entry for principal kadmin/kdc1.example.com with kvno 3, encryption type DES cbc mode
          with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab.
Entry for principal changepw/kdc1.example.com with kvno 3, encryption type AES-256 CTS
          mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab.
Entry for principal changepw/kdc1.example.com with kvno 3, encryption type AES-128 CTS
          mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/kadm5.keytab.
Entry for principal changepw/kdc1.example.com with kvno 3, encryption type Triple DES cbc
          mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/kadm5.keytab.
Entry for principal changepw/kdc1.example.com with kvno 3, encryption type ArcFour
          with HMAC/md5 added to keytab WRFILE:/etc/krb5/kadm5.keytab.
Entry for principal changepw/kdc1.example.com with kvno 3, encryption type DES cbc mode
          with RSA-MD5 added to keytab WRFILE:/etc/krb5/kadm5.keytab.
kadmin.local: quit

在以下示例中,denverhost 主体被添加至 denver 的密钥表文件,以便 KDC 可以验证 denver 的网络服务。

denver # /usr/sbin/kadmin
kadmin: ktadd host/denver.example.com
Entry for principal host/denver.example.com with kvno 3, encryption type AES-256 CTS
          mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal host/denver.example.com with kvno 3, encryption type AES-128 CTS mode
          with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal host/denver.example.com with kvno 3, encryption type Triple DES cbc mode
          with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal host/denver.example.com with kvno 3, encryption type ArcFour
          with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal host/denver.example.com with kvno 3, encryption type DES cbc mode
          with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
kadmin: quit

如何从密钥表文件中删除服务主体

  1. 成为包含必须从其密钥表文件中删除的服务主体的主机的超级用户。
  2. 启动 kadmin 命令。
    # /usr/sbin/kadmin
  3. 可选要显示密钥表文件中的当前主体(密钥)列表,请使用 ktutil 命令。

    有关详细说明,请参见如何显示密钥表文件中的密钥列表(主体)

  4. 使用 ktremove 命令从密钥表文件删除主体。
    kadmin: ktremove [-k keytab] [-q] principal [kvno | all | old ]
    -k keytab

    指定密钥表文件。缺省情况下,使用 /etc/krb5/krb5.keytab

    -q

    显示简要信息。

    principal

    指定要从密钥表文件删除的主体。

    kvno

    删除密钥版本号与 kvno 匹配的指定主体的所有项。

    all

    删除指定主体的所有项。

    old

    删除指定主体(具有最高密钥版本号的主体除外)的所有项。

  5. 退出 kadmin 命令。
    kadmin: quit

示例 25-17 从密钥表文件中删除服务主体

在以下示例中,从 denver 的密钥表文件中删除了 denverhost 主体。

denver # /usr/sbin/kadmin
kadmin: ktremove host/denver.example.com@EXAMPLE.COM
kadmin: Entry for principal host/denver.example.com@EXAMPLE.COM with kvno 3
  removed from keytab WRFILE:/etc/krb5/krb5.keytab.
kadmin: quit

如何显示密钥表文件中的密钥列表(主体)

  1. 成为包含密钥表文件的主机的超级用户。

    注 - 尽管可以创建由其他用户拥有的密钥表文件,使用密钥表文件的缺省位置需要 root 所有权。


  2. 启动 ktutil 命令。
    # /usr/bin/ktutil
  3. 使用 read_kt 命令将密钥表文件读入密钥列表缓冲区。
    ktutil: read_kt keytab
  4. 使用 list 命令显示密钥列表缓冲区。
    ktutil: list

    此时会显示当前的密钥列表缓冲区。

  5. 退出 ktutil 命令。
    ktutil: quit

示例 25-18 显示密钥表文件中的密钥列表(主体)

以下示例显示了 denver 主机的 /etc/krb5/krb5.keytab 文件中的密钥列表。

denver # /usr/bin/ktutil
    ktutil: read_kt /etc/krb5/krb5.keytab
    ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------
   1    5 host/denver@EXAMPLE.COM
    ktutil: quit

如何临时禁用对主机上的服务的验证

有时可能需要在网络应用服务器上,临时禁用对服务(如 rloginftp)的验证机制。例如,可能希望在执行维护过程时禁止用户登录到系统。使用 ktutil 命令,可以通过从服务器的密钥表文件中删除服务主体来完成此任务,而不需要 kadmin 特权。要再次启用验证,只需要将保存的原始密钥表文件复制回其原始位置。


注 - 缺省情况下,大多数服务都被设置为要求验证。如果某服务未设置为要求验证,则即使对该服务禁用验证,该服务仍然会运行。


  1. 成为包含密钥表文件的主机的超级用户。

    注 - 尽管可以创建由其他用户拥有的密钥表文件,使用密钥表文件的缺省位置需要 root 所有权。


  2. 将当前密钥表文件保存到临时文件。
  3. 启动 ktutil 命令。
    # /usr/bin/ktutil
  4. 使用 read_kt 命令将密钥表文件读入密钥列表缓冲区。
    ktutil: read_kt keytab
  5. 使用 list 命令显示密钥列表缓冲区。
    ktutil: list

    此时会显示当前的密钥列表缓冲区。请记下要禁用的服务的槽号。

  6. 要临时禁用主机的服务,请使用 delete_entry 命令从密钥列表缓冲区中删除特定的服务主体。
    ktutil: delete_entry slot-number

    其中,slot-number 指定要删除的服务主体的槽号,可使用 list 命令来显示它。

  7. 使用 write_kt 命令,将密钥列表缓冲区写入新的密钥表文件。
    ktutil: write_kt new-keytab
  8. 退出 ktutil 命令。
    ktutil: quit
  9. 移动新的密钥表文件。
    # mv new-keytab keytab
  10. 如果要重新启用该服务,请将临时(原始)密钥表文件复制回其原始位置。

示例 25-19 临时禁用主机上的服务

在以下示例中,临时禁用了 denver 主机上的 host 服务。要重新启用 denver 上的主机服务,应将 krb5.keytab.temp 文件复制到 /etc/krb5/krb5.keytab 文件。

denver # cp /etc/krb5/krb5.keytab /etc/krb5/krb5.keytab.temp
denver # /usr/bin/ktutil
    ktutil:read_kt /etc/krb5/krb5.keytab
    ktutil:list
slot KVNO Principal
---- ---- ---------------------------------------
   1    8 root/denver@EXAMPLE.COM
   2    5 host/denver@EXAMPLE.COM
    ktutil:delete_entry 2
    ktutil:list
slot KVNO Principal
---- ---- --------------------------------------
   1    8 root/denver@EXAMPLE.COM
    ktutil:write_kt /etc/krb5/new.krb5.keytab
    ktutil: quit
denver # cp /etc/krb5/new.krb5.keytab /etc/krb5/krb5.keytab