在 Oracle® Solaris 11.2 中管理 Kerberos 和其他验证服务

退出打印视图

更新时间: 2014 年 9 月
 
 

如何手动配置主 KDC 服务器

    在此过程中,将配置增量传播。此过程使用以下配置参数:

  • 领域名称 = EXAMPLE.COM

  • DNS 域名 = example.com

  • 主 KDC = kdc1.example.com

  • admin 主体 = kws/admin

  • 联机帮助 URL = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html


    注 -  将 URL 调整为指向联机帮助的位置,如gkadmin GUI中所述。

开始之前

主机已配置为使用 DNS。有关交换主 KDC 服务器的具体命名说明,请参见交换主 KDC 服务器与从 KDC 服务器

您必须承担 root 角色。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  1. 安装 KDC 软件包。

    按照如何安装 KDC 软件包中的说明操作。

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

    有关此文件的说明,请参见 krb5.conf(4) 手册页。

    在本示例中,管理员更改了 default_realmkdcadmin_ server 行以及所有 domain_realm 项,并编辑了 help_url 项。

    kdc1 # pfedit /etc/krb5/krb5.conf
    ...
    [libdefaults]
    default_realm = EXAMPLE.COM
    
    [realms]
    EXAMPLE.COM = {
    kdc = kdc1.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
    }

    注 -  如果必须与旧版 Kerberos 系统通信,您可能需要限制加密类型。有关限制加密类型所涉及的问题的说明,请参见Kerberos 加密类型
  3. 在 KDC 配置文件 (kdc.conf) 中指定领域。

    有关此文件的说明,请参见 kdc.conf(4) 手册页。

    在本示例中,管理员不但更改了领域名称定义,而且更改了增量传播和日志记录缺省值。

    kdc1 # pfedit /etc/krb5/kdc.conf
    [kdcdefaults]
    kdc_ports = 88,750
    
    [realms]
    EXAMPLE.COM = {
    profile = /etc/krb5/krb5.conf
    database_name = /var/krb5/principal
    acl_file = /etc/krb5/kadm5.acl
    kadmind_port = 749
    max_life = 8h 0m 0s
    max_renewable_life = 7d 0h 0m 0s
    sunw_dbprop_enable = true
    sunw_dbprop_master_ulogsize = 1000
    }

    注 -  如果必须与旧版 Kerberos 系统通信,您可能需要限制加密类型。有关限制加密类型所涉及的问题的说明,请参见Kerberos 加密类型
  4. 使用 kdb5_util 命令创建 KDC 数据库。

    kdb5_util 命令可以创建 KDC 数据库。此外,使用 –s 选项时,该命令会在启动 kadmindkrb5kdc 守护进程之前,创建一个用于向自己验证 KDC 的存储文件。有关更多信息,请参见 kdb5_util(1M)kadmind(1M)krb5kdc(1M) 手册页。

    kdc1 # /usr/sbin/kdb5_util create -s
    Initializing database '/var/krb5/principal' for realm 'EXAMPLE.COM'
    master key name 'K/M@EXAMPLE.COM'
    You will be prompted for the database Master Password.
    It is important that you NOT FORGET this password.
    Enter KDC database master key:/** Type strong password **/
    Re-enter KDC database master key to verify: xxxxxxxx

    提示  -  如果此步骤失败,请验证 KDC 主体是否用其 FQDN 标识。
    # getent hosts IP-address-of-KDC
    IP-address-of-KDC kdc/** This entry does not include FQDN **/
    然后将该 FQDN 添加为 /etc/hosts 文件中的第一个 KDC 项,例如:
    IP-address-of-KDC kdc.kdc-principal.example.com kdc

  5. 编辑 Kerberos 访问控制列表文件 (kadm5.acl)。

    填充后,/etc/krb5/kadm5.acl 文件必须包含所有获许管理 KDC 的主体名称。

    kws/admin@EXAMPLE.COM   *

    通过前一项,EXAMPLE.COM 领域中的 kws/admin 主体可以修改 KDC 中的主体和策略。缺省主体项是一个型号 (*),此字符可匹配所有 admin 主体。该项可能存在安全风险。修改文件以显式列出每个 admin 主体及其权限。有关更多信息,请参见 kadm5.acl(4) 手册页。

  6. 向数据库添加管理主体。

    可以根据需要添加任意数目的 admin 主体。至少必须添加一个 admin 主体,这样才能完成 KDC 配置过程。此示例中添加了 kws/admin 主体。可以用适当的主体名称替代 "kws"。

    kadmin.local: addprinc kws/admin
    Enter password 
    for principal kws/admin@EXAMPLE.COM:/** Type strong password **/
    Re-enter password 
    for principal kws/admin@EXAMPLE.COM: xxxxxxxx
    Principal "kws/admin@EXAMPLE.COM" created.
    kadmin.local: 

    有关更多信息,请参见 kadmin(1M) 手册页。

  7. 启动 Kerberos 守护进程。
    kdc1 # svcadm enable -r network/security/krb5kdc
    kdc1 # svcadm enable -r network/security/kadmin
  8. 启动 kadmin 并添加更多的主体。
    kdc1 # /usr/sbin/kadmin -p kws/admin
    Enter password: xxxxxxxx
    kadmin:
    1. 创建主 KDC host 主体。

      基于 Kerberos 的应用程序(例如 kprop)使用 host 主体将更改传播到从 KDC。也可以通过使用网络应用程序(如 ssh),将该主体用于提供对 KDC 服务器的安全远程访问。请注意,当主体实例为主机名时,无论名称服务中的域名是大写还是小写,都必须以小写字母指定 FQDN。

      kadmin: addprinc -randkey host/kdc1.example.com
      Principal "host/kdc1.example.com@EXAMPLE.COM" created.
      kadmin: 
    2. (u53ef选) 创建 kclient 主体。

      kclient 实用程序在 Kerberos 客户机安装期间使用该主体。如果您没有计划使用此实用程序,则不需要添加该主体。kclient 实用程序的用户需要使用该口令。有关更多信息,请参见 kclient(1M) 手册页。

      kadmin: addprinc clntconfig/admin
      Enter password for principal clntconfig/admin@EXAMPLE.COM:/** Type strong  password **/
      Re-enter password for principal clntconfig/admin@EXAMPLE.COM: xxxxxxxx
      Principal "clntconfig/admin@EXAMPLE.COM" created.
      kadmin: 

      注 -  保存此口令并将其存储在安全位置。
    3. 将特权添加到 clntconfig/admin 主体。

      编辑 kadm5.acl 文件以向 clntconfig 主体授予执行 kclient 安装任务所需的足够特权。

      # pfedit /etc/krb5/kadm5.acl
      ...
      clntconfig/admin@EXAMPLE.COM  acdilm 
    4. 将主 KDC 的 host 主体添加到主 KDC 的密钥表文件。

      通过将 host 主体添加到密钥表文件,应用服务器(如 sshd)可自动使用该主体。

      kadmin: ktadd host/kdc1.example.com
      Entry for principal host/kdc1.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/kdc1.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/kdc1.example.com with kvno 3, encryption type Triple DES cbc
      mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    5. 退出 kadmin
      kadmin: quit
  9. 使用 NTP 或其他机制将此系统的时钟与该领域中的其他时钟同步。

    要使验证成功通过,每个时钟都必须处于 krb5.conf 文件的 libdefaults 部分中定义的缺省时间之内。有关更多信息,请参见 krb5.conf(4) 手册页。有关网络时间协议 (Network Time Protocol, NTP) 的信息,请参见同步 KDC 与 Kerberos 客户机的时钟


    注 -  主 KDC 不能是 NTP 服务器。如果未安装 NTP 服务器,请在安装 NTP 服务器后返回到主 KDC,并将主 KDC 配置为 NTP 服务器的一个客户机。
  10. 配置从 KDC。

    要提供冗余性,请确保至少安装了一个从 KDC 服务器。按照如何使用 kdcmgr 配置从 KDC如何手动配置从 KDC 服务器中的说明操作。