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

退出打印视图

更新时间: 2014 年 9 月
 
 

如何手动配置从 KDC 服务器

    在此过程中,将配置新的名为 kdc2 的从 KDC 服务器。此外还会配置增量传播。此过程使用以下配置参数:

  • 领域名称 = EXAMPLE.COM

  • DNS 域名 = example.com

  • 主 KDC = kdc1.example.com

  • 从 KDC = kdc2.example.com

  • admin 主体 = kws/admin

开始之前

已配置主 KDC。要使该从服务器可交换,请按照如何交换主 KDC 服务器与从 KDC 服务器中的说明操作。

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

  1. 在主 KDC 服务器上,启动 kadmin

    必须使用在配置主 KDC 服务器时创建的一个 admin 主体名称登录。

    kdc1 # /usr/sbin/kadmin -p kws/admin
    Enter password: xxxxxxxx
    kadmin: 

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

    1. 在主 KDC 服务器上,向数据库中添加从 host 主体(如果尚未完成)。

      要使从 KDC 服务器正常工作,它必须有 host 主体。请注意,当主体实例为主机名时,无论名称服务中的域名是大写还是小写,都必须以小写字母指定 FQDN。

      kadmin: addprinc -randkey host/kdc2.example.com
      Principal "host/kdc2.example.com@EXAMPLE.COM" created.
      kadmin: 
    2. 在主 KDC 上,创建用于增量传播的主体。

      kiprop 主体用于授权来自主 KDC 服务器的增量传播。

      kadmin: addprinc -randkey kiprop/kdc2.example.com
      Principal "kiprop/kdc2.example.com@EXAMPLE.COM" created.
      kadmin:
    3. 退出 kadmin
      kadmin: quit
  2. 在主 KDC 上,编辑 Kerberos 配置文件 (krb5.conf)。

    需要为每个从 KDC 服务器添加一个项。有关此文件的说明,请参见 krb5.conf(4) 手册页。

    kdc1 # pfedit /etc/krb5/krb5.conf
    .
    .
    [realms]
    EXAMPLE.COM = {
    kdc = kdc1.example.com
    kdc = kdc2.example.com
    admin_server = kdc1.example.com
    }
  3. 在主 KDC 上,将 kiprop 项添加到 kadm5.acl

    通过此项,主 KDC 服务器可以接收对 kdc2 服务器的增量传播请求。

    kdc1 # pfedit /etc/krb5/kadm5.acl
    */admin@EXAMPLE.COM *
    kiprop/kdc2.example.com@EXAMPLE.COM p
  4. 在主 KDC 上,重新启动 kadmin 服务以使用 kadm5.acl 文件中的新项。
    kdc1 # svcadm restart network/security/kadmin
  5. 在所有从 KDC 上,从主 KDC 服务器复制 KDC 管理文件。

      每个从 KDC 必须包含有关主 KDC 服务器的最新信息。可以使用 sftp 或类似的传输机制从主 KDC 获取以下文件的副本:

    • /etc/krb5/krb5.conf

    • /etc/krb5/kdc.conf

  6. 在所有的从 KDC 服务器上,将主 KDC 服务器和每个从 KDC 服务器的项添加到数据库传播配置文件 kpropd.acl 中。

    需要在所有从 KDC 服务器上更新此信息。

    kdc2 # pfedit /etc/krb5/kpropd.acl
    host/kdc1.example.com@EXAMPLE.COM
    host/kdc2.example.com@EXAMPLE.COM
  7. 在所有的从 KDC 服务器上,确保未填充 Kerberos 访问控制列表文件 kadm5.acl

    未修改的 kadm5.acl 文件可能如以下示例所示:

    kdc2 # pfedit /etc/krb5/kadm5.acl
    */admin@___default_realm___ *

    如果该文件中包含 kiprop 项,请将其删除。

  8. 在新的从服务器上,在 kdc.conf 文件中定义其轮询间隔。

    sunw_dbprop_master_ulogsize 项替换为定义从服务器轮询间隔的项。以下项将轮询时间设置为两分钟:

    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_slave_poll = 2m
    }
  9. 在新的从 KDC 服务器上,启动 kadmin 命令。

    使用在配置主 KDC 时创建的 admin 主体名称之一登录。

    kdc2 # /usr/sbin/kadmin -p kws/admin
    Enter password: xxxxxxxx
    kadmin: 
    1. 使用 kadmin 将从 KDC 的 host 主体添加到从 KDC 的密钥表文件中。

      该项可使 kprop 命令及其他基于 Kerberos 的应用程序正常工作。请注意,当主体实例为主机名时,无论名称服务中的域名是大写还是小写,都必须以小写字母指定 FQDN。有关更多信息,请参见 kprop(1M) 手册页。

      kadmin: ktadd host/kdc2.example.com
      Entry for principal host/kdc2.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/kdc2.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/kdc2.example.com with kvno 3, encryption type Triple DES cbc
      mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    2. kiprop 主体添加到从 KDC 服务器的密钥表文件中。

      通过将 kiprop 主体添加到 krb5.keytab 文件,允许 kpropd 命令在启动增量传播时对其自身进行验证。

      kadmin: ktadd kiprop/kdc2.example.com
      Entry for principal kiprop/kdc2.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 kiprop/kdc2.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 kiprop/kdc2.example.com with kvno 3, encryption type Triple DES cbc
      mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    3. 退出 kadmin
      kadmin: quit
  10. 在新的从 KDC 服务器上,启动 Kerberos 传播守护进程。
    kdc2 # svcadm enable network/security/krb5_prop
  11. 在新的从服务器上,使用 kdb5_util 命令创建一个存储文件。
    kdc2 # /usr/sbin/kdb5_util stash
    kdb5_util: Cannot find/read stored master key while reading master key
    kdb5_util: Warning: proceeding without master key
    
    Enter KDC database master key: xxxxxxxx

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

  12. 使用 NTP 或其他机制将此系统的时钟与该领域中的其他时钟同步。

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

  13. 在新的从服务器上,启动 KDC 守护进程。
    kdc2 # svcadm enable network/security/krb5kdc

接下来的步骤

安装 NTP 服务器后返回到主 KDC,并将主 KDC 配置为 NTP 服务器的一个客户机。