在此过程中,将配置增量传播。此过程使用以下配置参数:
领域名称 = 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
开始之前
主机已配置为使用 DNS。有关交换主 KDC 服务器的具体命名说明,请参见交换主 KDC 服务器与从 KDC 服务器。
您必须承担 root 角色。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
按照如何安装 KDC 软件包中的说明操作。
有关此文件的说明,请参见 krb5.conf(4) 手册页。
在本示例中,管理员更改了 default_realm、kdc 和 admin_ 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 }
有关此文件的说明,请参见 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 }
kdb5_util 命令可以创建 KDC 数据库。此外,使用 –s 选项时,该命令会在启动 kadmind 和 krb5kdc 守护进程之前,创建一个用于向自己验证 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
# 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
填充后,/etc/krb5/kadm5.acl 文件必须包含所有获许管理 KDC 的主体名称。
kws/admin@EXAMPLE.COM *
通过前一项,EXAMPLE.COM 领域中的 kws/admin 主体可以修改 KDC 中的主体和策略。缺省主体项是一个型号 (*),此字符可匹配所有 admin 主体。该项可能存在安全风险。修改文件以显式列出每个 admin 主体及其权限。有关更多信息,请参见 kadm5.acl(4) 手册页。
可以根据需要添加任意数目的 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) 手册页。
kdc1 # svcadm enable -r network/security/krb5kdc kdc1 # svcadm enable -r network/security/kadmin
kdc1 # /usr/sbin/kadmin -p kws/admin Enter password: xxxxxxxx kadmin:
基于 Kerberos 的应用程序(例如 kprop)使用 host 主体将更改传播到从 KDC。也可以通过使用网络应用程序(如 ssh),将该主体用于提供对 KDC 服务器的安全远程访问。请注意,当主体实例为主机名时,无论名称服务中的域名是大写还是小写,都必须以小写字母指定 FQDN。
kadmin: addprinc -randkey host/kdc1.example.com Principal "host/kdc1.example.com@EXAMPLE.COM" created. kadmin:
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:
编辑 kadm5.acl 文件以向 clntconfig 主体授予执行 kclient 安装任务所需的足够特权。
# pfedit /etc/krb5/kadm5.acl ... clntconfig/admin@EXAMPLE.COM acdilm
通过将 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:
kadmin: quit
要使验证成功通过,每个时钟都必须处于 krb5.conf 文件的 libdefaults 部分中定义的缺省时间之内。有关更多信息,请参见 krb5.conf(4) 手册页。有关网络时间协议 (Network Time Protocol, NTP) 的信息,请参见同步 KDC 与 Kerberos 客户机的时钟。
要提供冗余性,请确保至少安装了一个从 KDC 服务器。按照如何使用 kdcmgr 配置从 KDC或如何手动配置从 KDC 服务器中的说明操作。