JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 11.1 管理:安全服务     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

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

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

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

4.  病毒扫描服务(任务)

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

6.  使用 BART 验证文件完整性(任务)

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

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

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

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

10.  Oracle Solaris 中的安全属性(参考信息)

第 4 部分加密服务

11.  加密框架(概述)

12.  加密框架(任务)

13.  密钥管理框架

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

14.  使用可插拔验证模块

15.  使用 安全 Shell

16.  安全 Shell(参考信息)

17.  使用简单验证和安全层

18.  网络服务验证(任务)

第 6 部分Kerberos 服务

19.  Kerberos 服务介绍

20.  规划 Kerberos 服务

21.  配置 Kerberos 服务(任务)

配置 Kerberos 服务(任务列表)

配置额外 Kerberos 服务(任务列表)

配置 KDC 服务器

如何自动配置主 KDC

如何交互配置主 KDC

如何手动配置主 KDC 服务器

如何配置 KDC 以使用 LDAP 数据服务器

如何自动配置从 KDC

如何交互配置从 KDC

如何手动配置从 KDC 服务器

如何刷新主服务器上的票证授予服务密钥

配置跨领域验证

如何建立层次化跨领域验证

如何建立直接跨领域验证

配置 Kerberos 网络应用服务器

如何配置 Kerberos 网络应用服务器

运行 FTP 时如何使用带有 Kerberos 的通用安全服务

配置 Kerberos NFS 服务器

如何配置 Kerberos NFS 服务器

如何创建凭证表

如何向凭证表中添加单个项

如何提供各领域之间的凭证映射

如何使用多种 Kerberos 安全模式设置安全的 NFS 环境

配置 Kerberos 客户机

配置 Kerberos 客户机(任务列表)

如何创建 Kerberos 客户机安装配置文件

如何自动配置 Kerberos 客户机

如何交互配置 Kerberos 客户机

如何为 Active Directory 服务器配置 Kerberos 客户机

如何手动配置 Kerberos 客户机

如何禁用票务授予票证的验证

如何以 root 用户身份访问受 Kerberos 保护的 NFS 文件系统

如何在 Kerberos 领域中配置用户自动迁移

如何配置帐户锁定

如何自动续订所有票证授予票证 (Ticket-Granting Ticket, TGT)

同步 KDC 与 Kerberos 客户机的时钟

交换主 KDC 服务器与从 KDC 服务器

如何配置可交换的从 KDC 服务器

如何交换主 KDC 服务器与从 KDC 服务器

管理 Kerberos 数据库

备份和传播 Kerberos 数据库

kpropd.acl 文件

kprop_script 命令

如何备份 Kerberos 数据库

如何恢复 Kerberos 数据库

如何在服务升级后转换 Kerberos 数据库

如何重新配置主 KDC 服务器以使用增量传播

如何重新配置从 KDC 服务器以使用增量传播

如何配置从 KDC 服务器以使用完全传播

如何验证 KDC 服务器是否已同步

如何手动将 Kerberos 数据库传播到从 KDC 服务器

设置并行传播

设置并行传播的配置步骤

管理存储文件

如何删除存储文件

如何使用新的主密钥

在 LDAP 目录服务器上管理 KDC

如何在非 Kerberos 对象类类型中混合 Kerberos 主体属性

如何在 LDAP 目录服务器上销毁领域

增强 Kerberos 服务器的安全性

如何限制对 KDC 服务器的访问

如何使用字典文件提高口令的安全性

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

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

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

25.  Kerberos 服务(参考信息)

第 7 部分在 Oracle Solaris 中审计

26.  审计(概述)

27.  规划审计

28.  管理审计(任务)

29.  审计(参考信息)

词汇表

索引

配置 Kerberos 客户机

Kerberos 客户机包括网络上需要使用 Kerberos 服务的所有主机(不是 KDC 服务器)。本节介绍有关安装 Kerberos 客户机的过程,以及关于使用 root 验证来挂载 NFS 文件系统的特定信息。

配置 Kerberos 客户机(任务列表)

以下任务列表涵盖有关设置 Kerberos 客户机的所有过程。每行都包含一个任务、关于执行该项任务的原因说明,以及指向该任务的链接。

任务
说明
参考
建立 Kerberos 客户机安装配置文件。
生成可用于自动安装 Kerberos 客户机的客户机安装配置文件。
配置 Kerberos 客户机。
手动安装 Kerberos 客户机。如果每个客户机安装都要求唯一的安装参数,请使用此过程。
自动安装 Kerberos 客户机。如果每个客户机的安装参数都相同,请使用此过程。
交互式安装 Kerberos 客户机。如果仅需更改少数几个安装参数,请使用此过程。
自动安装 Active Directory 服务器的 Kerberos 客户机。
允许客户机以 root 用户身份访问 NFS 文件系统。
在客户机上创建 root 主体,以便客户机可以挂载使用 root 访问权限共享的 NFS 文件系统。此外,还允许为客户机设置对 NFS 文件系统的非交互 root 访问权限,以便可以运行 cron 作业。
禁用颁发客户机票证授予票证 (Ticket Granting Ticket, TGT) 的 KDC 的验证。
允许在本地密钥表文件中没有存储主机主体的客户机跳过目的在于验证颁发 TGT 的 KDC 是否为颁发主机主体的服务器的安全检查。

如何创建 Kerberos 客户机安装配置文件

此过程创建可在安装 Kerberos 客户机时使用的 kclient 配置文件。使用 kclient 配置文件可以降低键入错误的可能性。此外,与交互式过程相比,使用该配置文件可以减少用户干预。

  1. 成为超级用户。
  2. 创建 kclient 安装配置文件。

    kclient 配置文件样例与以下内容类似:

    client# cat /net/denver.example.com/export/install/profile
    REALM EXAMPLE.COM
    KDC kdc1.example.com
    ADMIN clntconfig
    FILEPATH /net/denver.example.com/export/install/krb5.conf
    NFS 1
    DNSLOOKUP none

如何自动配置 Kerberos 客户机

开始之前

此过程使用安装配置文件。请参见如何创建 Kerberos 客户机安装配置文件

要完成此任务,您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

示例 21-8 使用命令行覆盖项自动配置 Kerberos 客户机

以下示例将覆盖在安装配置文件中设置的 DNSARGKDC 参数。

# /usr/sbin/kclient -p /net/denver.example.com/export/install/profile\
-d dns_fallback -k kdc2.example.com

Starting client setup
---------------------------------------------------

kdc1.example.com

Setting up /etc/krb5/krb5.conf.

Obtaining TGT for clntconfig/admin ...
Password for clntconfig/admin@EXAMPLE.COM: <Type the password>

nfs/client.example.com entry ADDED to KDC database.
nfs/client.example.com entry ADDED to keytab.

host/client.example.com entry ADDED to KDC database.
host/client.example.com entry ADDED to keytab.

Copied /net/denver.example.com/export/install/krb5.conf.

---------------------------------------------------
Setup COMPLETE.

client#

如何交互配置 Kerberos 客户机

此过程使用 kclient 安装实用程序而非安装配置文件。在 Oracle Solaris 11 发行版中,kclient 实用程序不仅提高了易用性,也提高了与 Active Directory 服务器协作的能力。有关更多信息,请参见如何为 Active Directory 服务器配置 Kerberos 客户机。有关在早期版本上运行 kclient 的示例,请参见示例 21-10

开始之前

要完成此任务,您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

示例 21-9 运行 kclient 安装实用程序

client# /usr/sbin/kclient

Starting client setup
---------------------------------------------------

Is this a client of a non-Solaris KDC ? [y/n]: n
        No action performed.
Do you want to use DNS for kerberos lookups ? [y/n]: n
        No action performed.
Enter the Kerberos realm: EXAMPLE.COM
Specify the KDC hostname for the above realm: kdc1.example.com

Note, this system and the KDC's time must be within 5 minutes of each other for
Kerberos to function. Both systems should run some form of time synchronization
system like Network Time Protocol (NTP).
Do you have any slave KDC(s) ? [y/n]: y
Enter a comma-separated list of slave KDC host names: kdc2.example.com

Will this client need service keys ? [y/n]: n
        No action performed.
Is this client a member of a cluster that uses a logical host name ? [y/n]: n
        No action performed.
Do you have multiple domains/hosts to map to realm ? [y/n]: y
Enter a comma-separated list of domain/hosts to map to the default realm: engineering.example.com, \
        example.com

Setting up /etc/krb5/krb5.conf.

Do you plan on doing Kerberized nfs ? [y/n]: y
Do you want to update /etc/pam.conf ? [y/n]: y
Enter a comma-separated list of PAM service names in the following format:
service:{first|only|optional}: xscreensaver:first
Configuring /etc/pam.conf.

Do you want to copy over the master krb5.conf file ? [y/n]: n
        No action performed.

---------------------------------------------------
Setup COMPLETE.

示例 21-10 在 Oracle Solaris 10 发行版中运行 kclient 安装实用程序

以下输出显示了 kclient 命令的运行结果。

client# /usr/sbin/kclient

Starting client setup
---------------------------------------------------

Do you want to use DNS for kerberos lookups ? [y/n]: n
        No action performed.
Enter the Kerberos realm: EXAMPLE.COM
Specify the KDC hostname for the above realm: kdc1.example.com

Setting up /etc/krb5/krb5.conf.

Enter the krb5 administrative principal to be used: clntconfig/admin
Obtaining TGT for clntconfig/admin ...
Password for clntconfig/admin@EXAMPLE.COM: <Type the password>
Do you plan on doing Kerberized nfs ? [y/n]: n

host/client.example.com entry ADDED to KDC database.
host/client.example.com entry ADDED to keytab.

Do you want to copy over the master krb5.conf file ? [y/n]: y
Enter the pathname of the file to be copied: \
/net/denver.example.com/export/install/krb5.conf

Copied /net/denver.example.com/export/install/krb5.conf.

---------------------------------------------------
Setup COMPLETE !
#

如何为 Active Directory 服务器配置 Kerberos 客户机

此过程使用 kclient 安装实用程序而非安装配置文件。

开始之前

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

  1. 可选启用针对客户机的 DNS 资源记录创建。
    client# sharectl set -p ddns_enable=true smb
  2. 运行 kclient 实用程序。

    -T 选项表示对 KDC 服务器类型的选择。在本例中,选择的是 Active Directory 服务器。

    client# kclient -T ms_ad

    缺省情况下,需要提供管理员主体的口令。

示例 21-11 使用 kclient 配置适用于 Active Directory 服务器的 Kerberos 客户机

以下输出显示了使用 ms_ad (Microsoft Active Directory) 服务器类型参数运行 kclient 命令的结果。此客户机将加入名为 EXAMPLE.COM 的 Active Directory 域。

client# /usr/sbin/kclient -T ms_ad

Starting client setup
---------------------------------------------------

Attempting to join 'CLIENT' to the 'EXAMPLE.COM' domain.
Password for Administrator@EXAMPLE.COM: <Type the password>
Forest name found: example.com
Looking for local KDCs, DCs and global catalog servers (SVR RRs).

Setting up /etc/krb5/krb5.conf

Creating the machine account in AD via LDAP.
---------------------------------------------------
Setup COMPLETE.
#

如何手动配置 Kerberos 客户机

此过程中使用以下配置参数:

开始之前

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

  1. 编辑 Kerberos 配置文件 (krb5.conf)。

    要从 Kerberos 缺省版本更改该文件,需要更改领域名称和服务器名称。还需要指定 gkadmin 帮助文件的路径。

    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults]
            default_realm = EXAMPLE.COM
    
    [realms]
            EXAMPLE.COM = {
            kdc = kdc1.example.com
            kdc = kdc2.example.com
            admin_server = kdc1.example.com
            }
    
    [domain_realm]
            .example.com = EXAMPLE.COM
    #
    # if the domain name and realm name are equivalent, 
    # this entry is not needed
    #
    [logging]
            default = FILE:/var/krb5/kdc.log
            kdc = FILE:/var/krb5/kdc.log
    
    [appdefaults]
        gkadmin = {
            help_url = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html

    注 - 如果要限制加密类型,可以设置 default_tkt_enctypesdefault_tgs_enctypes 行。请参阅使用 Kerberos 加密类型,了解关于限制加密类型的问题说明。


  2. 可选更改用于定位 KDC 的过程。

    缺省情况下,Kerberos 领域到 KDC 的映射按如下顺序确定:

    • krb5.confrealms 部分的定义

    • 通过在 DNS 中查找 SRV 记录。

    dns_lookup_kdcdns_fallback 添加到 krb5.conf 文件的 libdefaults 部分,可以更改此行为。有关更多信息,请参见 krb5.conf(4) 手册页。请注意,始终会首先尝试引用。

  3. 可选更改用于确定主机领域的过程。

    缺省情况下,主机到领域的映射按如下顺序确定:

    • 如果 KDC 支持引用,则 KDC 会通知客户机该主机属于哪个领域。

    • krb5.conf 文件中的 domain_realm 定义。

    • 主机的 DNS 域名。

    • 缺省领域。

    dns_lookup_kdcdns_fallback 添加到 krb5.conf 文件的 libdefaults 部分,可以更改此行为。有关更多信息,请参见 krb5.conf(4) 手册页。请注意,始终会首先尝试引用。

  4. 可选使用 NTP 或其他时钟同步机制将客户机时钟与主 KDC 服务器时钟同步。

    安装和使用网络时间协议 (Network Time Protocol, NTP) 并非必须的。但是,要成功进行验证,每个时钟必须与 KDC 服务器上的时间同步,最大时差不超过 krb5.conf 文件中 clockskew 关系定义的值。有关 NTP 的信息,请参见同步 KDC 与 Kerberos 客户机的时钟

  5. 启动 kadmin

    可以使用图形化 Kerberos 管理工具添加主体,如如何创建新的 Kerberos 主体所述。为此,必须使用在配置主 KDC 服务器时创建的一个 admin 主体名称登录。不过,以下示例说明如何使用命令行添加所需的主体。

    denver # /usr/sbin/kadmin -p kws/admin
    Enter password: <Type kws/admin password>
    kadmin: 
    1. 可选如果不存在用户主体,请创建一个。

      仅当尚未对与该主机关联的用户指定主体时,才需要创建用户主体。

      kadmin: addprinc mre
      Enter password for principal mre@EXAMPLE.COM: <Type the password>
      Re-enter password for principal mre@EXAMPLE.COM: <Type it again>
      kadmin: 
    2. 可选创建 root 主体,并将其添加到服务器的密钥表文件。

      如果客户机需要具有对使用 NFS 服务挂载的远程文件系统的 root 访问权限,则必须执行此步骤。如果需要非交互式 root 访问权限(如以 root 身份运行 cron 作业),也必须执行该步骤。

      如果客户机不需要对使用 NFS 服务挂载的远程文件系统的 root 访问权限,则可以跳过该步骤。root 主体应有两个组成部分,第二个部分是 Kerberos 客户机系统的主机名,以避免创建领域范围的 root 主体。请注意,当主体实例为主机名时,无论名称服务中的域名是大写还是小写,都必须以小写字母指定 FQDN。

      kadmin: addprinc -randkey root/client.example.com
      Principal "root/client.example.com" created.
      kadmin: ktadd root/client.example.com
      Entry for principal root/client.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 root/client.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 root/client.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 root/client.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal root/client.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    3. 创建 root 主体,并将其添加到服务器的密钥表文件。

      远程访问服务使用 host 主体来提供验证。如果密钥表文件中尚无凭证,此主体允许 root 获取凭证。

      kadmin: addprinc -randkey host/denver.example.com
      Principal "host/denver.example.com@EXAMPLE.COM" created.
      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:
    4. 可选将服务器的 NFS 服务主体添加到服务器的密钥表文件中。

      仅当客户机需要使用 Kerberos 验证访问 NFS 文件系统时才需要执行该步骤。

      kadmin: ktadd nfs/denver.example.com
      Entry for principal nfs/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 nfs/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 nfs/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 nfs/denver.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal nfs/denver.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    5. 退出 kadmin
      kadmin: quit
  6. 可选对 NFS 启用 Kerberos。
    1. /etc/nfssec.conf 文件中启用 Kerberos 安全模式。

      编辑 /etc/nfssec.conf 文件并删除位于 Kerberos 安全模式前面的 "#"。

      # cat /etc/nfssec.conf
       .
       .
      #
      # Uncomment the following lines to use Kerberos V5 with NFS
      #
      krb5            390003  kerberos_v5     default -               # RPCSEC_GSS
      krb5i           390004  kerberos_v5     default integrity       # RPCSEC_GSS
      krb5p           390005  kerberos_v5     default privacy         # RPCSEC_GSS
    2. 启用 DNS。

      如未启用 svc:/network/dns/client:default 服务,请启用它。有关更多信息,请参见 resolv.conf(4) 手册页。

    3. 重新启动 gssd 服务。
      # svcadm restart network/rpc/gss
  7. 如果您希望客户机自动续订 TGT 或警告用户 Kerberos 票证失效,请在 /etc/krb5/warn.conf 文件中创建一个相应项。

    有关更多信息,请参见 warn.conf(4)手册页。

示例 21-12 使用非 Solaris KDC 设置 Kerberos 客户机

Kerberos 客户机可以设置为与非 Solaris KDC 一起工作。在这种情况下,必须在 /etc/krb5/krb5.conf 文件的 realms 部分中包括一行。该行会更改客户机与 Kerberos 口令更改服务器通信时使用的协议。该行的格式如下:

[realms]
                EXAMPLE.COM = {
                kdc = kdc1.example.com
                kdc = kdc2.example.com
                admin_server = kdc1.example.com
                kpasswd_protocol = SET_CHANGE
        }

示例 21-13 主机和域名到 Kerberos 领域的映射的 DNS TXT 记录

@ IN SOA kdc1.example.com root.kdc1.example.com (
                                1989020501   ;serial
                                10800        ;refresh
                                3600         ;retry
                                3600000      ;expire
                                86400 )      ;minimum

                        IN      NS      kdc1.example.com.
kdc1                    IN      A       192.146.86.20
kdc2                    IN      A       192.146.86.21

_kerberos.example.com.             IN      TXT     "EXAMPLE.COM"
_kerberos.kdc1.example.com.        IN      TXT     "EXAMPLE.COM"
_kerberos.kdc2.example.com.        IN      TXT     "EXAMPLE.COM"

示例 21-14 Kerberos 服务器位置的 DNS SRV 记录

此示例分别为 KDC、admin 服务器和 kpasswd 服务器的位置定义记录。

@ IN SOA kdc1.example.com root.kdc1.example.com (
                                1989020501   ;serial
                                10800        ;refresh
                                3600         ;retry
                                3600000      ;expire
                                86400 )      ;minimum

                                   IN      NS      kdc1.example.com.
kdc1                               IN      A       192.146.86.20
kdc2                               IN      A       192.146.86.21

_kerberos._udp.EXAMPLE.COM         IN      SRV 0 0 88  kdc2.example.com
_kerberos._tcp.EXAMPLE.COM         IN      SRV 0 0 88  kdc2.example.com
_kerberos._udp.EXAMPLE.COM         IN      SRV 1 0 88  kdc1.example.com
_kerberos._tcp.EXAMPLE.COM         IN      SRV 1 0 88  kdc1.example.com
_kerberos-adm._tcp.EXAMPLE.COM     IN      SRV 0 0 749 kdc1.example.com
_kpasswd._udp.EXAMPLE.COM          IN      SRV 0 0 749 kdc1.example.com

示例 21-15 配置 Solaris 客户机来使用多主 KDC

Microsoft Active Directory Kerberos 服务提供了一个在多个主服务器上运行的 KDC。要使 Solaris 客户机能够更新信息,需要对 /etc/krb5/krb5.conf 中的 admin_serverkpasswd_server 声明进行更新,以列出所有服务器。此示例显示了如何允许客户机在由 kdc1kdc2 共享的 KDC 上更新信息。

[realms]
                EXAMPLE.COM = {
                kdc = kdc1.example.com
                kdc = kdc2.example.com
                admin_server = kdc1.example.com
                admin_server = kdc2.example.com
                }

如何禁用票务授予票证的验证

此过程禁用用于检查本地 /etc/krb5/krb5.keytab 文件中存储的主机主体的 KDC 是否即是颁发票证授予票证的 KDC 的安全检查。该检查目的在于防止 DNS 欺骗攻击。但是,对于某些客户机配置,主机主体可能不可用,因此需要禁用此项检查以允许客户机正常工作。以下是需要禁用此项检查的配置:

开始之前

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

如何以 root 用户身份访问受 Kerberos 保护的 NFS 文件系统

通过此过程,客户机可以使用 root ID 特权访问要求 Kerberos 验证的 NFS 文件系统。特别是,使用如下选项共享 NFS 文件系统时:-o sec=krb5,root=client1.sun.com

如何在 Kerberos 领域中配置用户自动迁移

没有 Kerberos 主体的用户可以自动迁移到现有 Kerberos 领域。可以使用正在使用的服务的 PAM 框架,通过在 PAM 配置文件中将 pam_krb5_migrate 模块堆叠在该服务的验证栈中实现迁移。

在此示例中,将配置 gdmother PAM 服务名称使其使用自动迁移。将使用以下配置参数:

开始之前

server1 设置为 EXAMPLE.COM 领域的 Kerberos 客户机。有关更多信息,请参见配置 Kerberos 客户机

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

  1. 检查是否存在 server1 的主机服务主体。

    server1keytab 文件中的主机服务主体用于向主 KDC 服务器验证该服务器。

    server1 # klist -k
    Keytab name: FILE:/etc/krb5/krb5.keytab
        KVNO Principal
        ---- ------------------------------------------------
           3 host/server1.example.com@EXAMPLE.COM
           3 host/server1.example.com@EXAMPLE.COM
           3 host/server1.example.com@EXAMPLE.COM
           3 host/server1.example.com@EXAMPLE.COM
  2. 更改 PAM 配置文件。
    1. 更新 gdm 服务的项。
      # cat /etc/pam.d/gdm
       .
       .
      
      auth definitive         pam_user_policy.so.1
      auth requisite          pam_authtok_get.so.1
      auth required           pam_dhkeys.so.1
      auth sufficient         pam_krb5.so.1
      auth requisite          pam_unix_auth.so.1
      auth required           pam_unix_cred.so.1
      auth optional           pam_krb5_migrate.so.1
    2. 可选如果需要,可强制立即更改口令。

      可以将新建 Kerberos 帐户的口令截止时间设置为当前时间(现在),以便强制立即更改 Kerberos 口令。要将截止时间设置为当前时间,请将 expire_pw 选项添加到使用 pam_krb5_migrate 模块的行中。有关更多信息,请参见 pam_krb5_migrate(5) 手册页。

      # cat /etc/pam.d/gdm
       .
       .
      auth optional           pam_krb5_migrate.so.1 expire_pw
    3. pam_krb5 模块添加到帐户栈。

      此添加操作使 Kerberos 中的口令失效,从而阻止访问。

      # cat /etc/pam.d/other
       .
       .
      #
      # Default definition for Account management
      # Used when service name is not explicitly mentioned for account management
      #
      account requisite       pam_roles.so.1
      account definitive      pam_user_policy.so.1
      account required        pam_krb5.so.1
      account required        pam_unix_account.so.1
      account required        pam_tsol_account.so.1
      #
    4. pam_krb5 模块添加到口令栈。

      此添加操作使得口令在到期时得到更新。

      # cat /etc/pam.d/other
       .
       .
      #
      # Default definition for Password management
      #
      password include        pam_authtok_common
      password sufficient     pam_krb5.so.1
      password required       pam_authtok_store.so.1
  3. 在主 KDC 服务器上,更新访问控制文件。

    以下项将为所有用户(root 用户除外)授予对 host/server1.example.com 服务主体的迁移和查询特权。务必将不应被迁移的用户在 kadm5.acl 文件中以 U 特权列出。这些项必须位于 permit all 或 ui 项之前。有关更多信息,请参见 kadm5.acl(4) 手册页。

    kdc1 # cat /etc/krb5/kadm5.acl
    host/server1.example.com@EXAMPLE.COM U root
    host/server1.example.com@EXAMPLE.COM ui *
    */admin@EXAMPLE.COM *
  4. 在主 KDC 服务器上,重新启动 Kerberos 管理守护进程。

    通过此步骤,kadmind 守护进程可以使用新的 kadm5.acl 项。

    kdc1 # svcadm restart network/security/kadmin
  5. 在主 KDC 服务器上,向 pam.conf 文件添加项。

    通过以下项,kadmind 守护进程可以使用 k5migrate PAM 服务来验证需要迁移的帐户的 UNIX 用户口令。

    # grep k5migrate /etc/pam.conf
    k5migrate        auth    required        pam_unix_auth.so.1
    k5migrate        account required        pam_unix_account.so.1

如何配置帐户锁定

示例 21-16 解锁锁定的主体

在下面的示例中,将解锁用户主体:

 /usr/sbin/kadmin -p kws/admin
Enter password: <Type kws/admin password>
kadmin: modify_principal -unlock principal

如何自动续订所有票证授予票证 (Ticket-Granting Ticket, TGT)

开始之前

您必须承担 root 角色。有关更多信息,请参见如何使用指定给您的管理权限

  1. 编辑警告配置文件。

    添加一个类似于以下内容的项,以在票证失效前 30 分钟续订 TGT,并且当续订成功或失败时,在用户终端上记录消息:

    # cat /etc/krb5/warn.conf
    * renew:log terminal 30m
  2. 重新启动服务。
    # svcadm restart network/security/ktkt_warn

示例 21-17 在服务器上配置 TGT 失效消息

以下示例显示了为 TGT 配置续订和消息系统的多种方法。

# cat /etc/krb5/warn.conf
#
# renew the TGT 30 minutes before expiration and send message to users terminal
#
gtb@EXAMPLE.COM renew:log terminal 30m
#
# send a warning message to a specific email address 20 minutes before TGT expiration
#
mre@EXAMPLE.COM mail 20m mre@example2.com
#
# renew the TGT 20 minutes before expiration and send an email message on failure
#
bricker@EXAMPLE.COM renew:log-failure mail 20m &
#
# catch-all: any principal not matched above will get an email warning
* mail 20m & 

示例 21-18 为用户配置 TGT 失效消息

除了在系统级别为每个用户配置一个项外,每个用户还可以配置一个名为 /var/user/$USER/krb-warn.conf 的单独的警告配置文件。例如:

% cat /var/user/gtb/krb-warn.conf
gtb@EXAMPLE.COM renew:log mail 30m &