金阊oracle服务器,配置 KDC 服务器

配置 KDC 服务器

安装 Kerberos 软件之后,必须配置 KDC 服务器。配置一个主 KDC 服务器和至少一个从 KDC 服务器可以提供颁发凭证的服务。这些凭证是 Kerberos 服务的基础,因此在尝试其他任务之前必须安装 KDC。

主 KDC 服务器与从 KDC 服务器之间最大的差别是,只有主 KDC 服务器可以处理数据库管理请求。例如,更改口令或添加新主体必须在主 KDC 服务器上完成。然后可以将这些更改传播到从 KDC 服务器。从 KDC

服务器和主 KDC 服务器都可以生成凭证。此功能可在主 KDC 服务器无法响应时提供冗余性。

表 21-1 配置 KDC 服务器(任务列表)

任务

说明

参考

配置主 KDC。

使用自动化过程为领域配置并构建主 KDC 服务器和数据库,这对于脚本来说非常有用。

使用交互式进程为领域配置并构建主 KDC 服务器和数据库,此种方法适用于大部分安装。

对于较为复杂的安装,需要使用手动过程为领域配置并构建主 KDC

服务器和数据库

通过使用手动过程并将 KDC 配置为使用 LDAP,为领域配置并构建主 KDC 服务器和数据库

配置从 KDC 服务器。

使用自动化过程为领域配置并构建从 KDC 服务器,这对于脚本来说非常有用。

使用交互式进程为领域配置并构建从 KDC 服务器,此种方法适用于大部分安装。

对于较为复杂的安装,需要使用手动过程为领域配置并构建从

KDC 服务器

刷新 KDC 服务器上的主体密钥。

更新 KDC 服务器上的会话密钥,以使用新的加密类型。

如何自动配置主 KDC

在 Oracle Solaris 11 发行版中,使用下列过程可以自动配置主 KDC。成为管理员,或者承担已指定给 Kerberos 服务器管理配置文件的角色或用户名。

有关更多信息,请参见如何获取管理权限。

创建 KDC。

运行 kdcmgr 实用程序创建 KDC。您需要提供主密钥口令和管理主体的口令。kdc1# kdcmgr -a kws/admin -r EXAMPLE.COM create master

Starting server setup

---------------------------------------

Setting up /etc/krb5/kdc.conf

Setting up /etc/krb5/krb5.conf

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:

Re-enter KDC database master key to verify:

Authenticating as principal root/admin@EXAMPLE.COM with password.

WARNING: no policy specified for kws/admin@EXAMPLE.COM; defaulting to no policy

Enter password for principal "kws/admin@EXAMPLE.COM":

Re-enter password for principal "kws/admin@EXAMPLE.COM":

Principal "kws/admin@EXAMPLE.COM" created.

Setting up /etc/krb5/kadm5.acl.

---------------------------------------------------

Setup COMPLETE.

kdc1#

如何交互配置主 KDC

在 Oracle Solaris 发行版中,使用下列过程可以交互配置主 KDC。成为管理员,或者承担已指定给 Kerberos 服务器管理配置文件的角色或用户名。

有关更多信息,请参见如何获取管理权限。

创建 KDC。

运行 kdcmgr 实用程序创建 KDC。您需要提供主密钥口令和管理主体口令。kdc1# kdcmgr create master

Starting server setup

---------------------------------------

Enter the Kerberos realm: EXAMPLE.COM

Setting up /etc/krb5/kdc.conf

Setting up /etc/krb5/krb5.conf

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:

Re-enter KDC database master key to verify:

Enter the krb5 administrative principal to be created: kws/admin

Authenticating as principal root/admin@EXAMPLE.COM with password.

WARNING: no policy specified for kws/admin@EXAMPLE.COM; defaulting to no policy

Enter password for principal "kws/admin@EXAMPLE.COM":

Re-enter password for principal "kws/admin@EXAMPLE.COM":

Principal "kws/admin@EXAMPLE.COM" created.

Setting up /etc/krb5/kadm5.acl.

---------------------------------------------------

Setup COMPLETE.

kdc1#

示例 21-1 显示 KDC 服务器的状态

kdcmgr status 命令可用于显示有关主或从 KDC 服务器的信息。

如何手动配置主 KDC 服务器

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

领域名称 = EXAMPLE.COM

DNS 域名 = example.com

主 KDC = kdc1.example.com

admin 主体 = kws/admin

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

开始之前

该过程要求将主机配置为使用 DNS。有关交换主 KDC 服务器的具体命名说明,请参见交换主 KDC 服务器与从 KDC 服务器。成为主 KDC 服务器上的超级用户。

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

需要更改领域名称和服务器名称。有关此文件的完整说明,请参见 krb5.conf(4) 手册页。kdc1 # cat /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://download.oracle.com/docs/cd/E23824_01/html/821-1456/aadmin-23.html

}

在此示例中,default_realm、kdc、admin_server 行和所有 domain_realm 项都已被更改。此外还会编辑定义 help_url 的行。

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

编辑 KDC 配置文件 (kdc.conf)。

需要更改领域名称。有关此文件的完整说明,请参见 kdc.conf(4) 手册页。kdc1 # cat /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

}

在此示例中,realms 部分的领域名称定义被更改。而且,在 realms 部分,添加了用于启用增量传播和选择主 KDC 服务器将在日志中保留的更新数的行。

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

使用 kdb5_util 命令创建 KDC 数据库。

kdb5_util 命令可以创建 KDC 数据库。此外,使用 -s 选项时,该命令会在启动 kadmind 和 krb5kdc 守护进程之前,创建一个用于向自己验证 KDC 的存储文件。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:

Re-enter KDC database master key to verify:

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

填充后,/etc/krb5/kadm5.acl 文件应包含所有获许管理 KDC 的主体名称。kws/admin@EXAMPLE.COM *

通过该项,EXAMPLE.COM 领域中的 kws/admin 主体可以修改 KDC 中的主体或策略。缺省安装包括一个星号 (*),以匹配所有的 admin 主体。此缺省安装可能会造成安全风险,因此,包括一个所有 admin 主体的列表会更安全。有关更多信息,请参见 kadm5.acl(4)

手册页。

启动kadmin.local命令并添加主体。

接下来的子步骤会创建 Kerberos 服务使用的主体。kdc1 # /usr/sbin/kadmin.local

kadmin.local:向数据库添加管理主体。

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

Enter password for principal kws/admin@EXAMPLE.COM:

Re-enter password for principal kws/admin@EXAMPLE.COM:

Principal "kws/admin@EXAMPLE.COM" created.

kadmin.local:

创建 kiprop 主体。

kiprop 主体用于授权来自主 KDC 服务器的更新。kadmin.local: addprinc -randkey kiprop/kdc1.example.com

Principal "kiprop/kdc1.example.com@EXAMPLE.COM" created.

kadmin.local:

退出 kadmin.local。

您已经为后续步骤添加了所有需要的主体。kadmin.local: quit

启动 Kerberos 守护进程。kdc1 # svcadm enable -r network/security/krb5kdc

kdc1 # svcadm enable -r network/security/kadmin

启动 kadmin 并添加更多的主体。

此时,您可以使用图形化 Kerberos 管理工具添加主体。为此,必须使用之前在此过程中创建的一个 admin 主体名称登录。不过,为简便起见,给出了以下命令行示例。kdc1 # /usr/sbin/kadmin -p kws/admin

Enter password:

kadmin:创建主 KDC 服务器 host 主体。

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

Principal "host/kdc1.example.com@EXAMPLE.COM" created.

kadmin:

可选创建 kclient 主体。

kclient 实用程序在 Kerberos 客户机安装期间使用该主体。如果您没有计划使用此实用程序,则不需要添加该主体。kclient 实用程序的用户需要使用该口令。kadmin: addprinc clntconfig/admin

Enter password for principal clntconfig/admin@EXAMPLE.COM:

Re-enter password for principal clntconfig/admin@EXAMPLE.COM:

Principal "clntconfig/admin@EXAMPLE.COM" created.

kadmin:

将主 KDC 服务器的 host 主体添加到主 KDC 服务器的密钥表文件。

通过将主机主体添加到密钥表文件,允许应用服务器(如 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.

Entry for principal host/kdc1.example.com with kvno 3, encryption type ArcFour

with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.

Entry for principal host/kdc1.example.com with kvno 3, encryption type DES cbc mode

with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.

kadmin:

退出 kadmin。kadmin: quit

可选使用 NTP 或其他时钟同步机制同步主 KDC 服务器的时钟。

安装和使用网络时间协议 (Network Time Protocol, NTP) 并非必须的。但是,要成功进行验证,每个时钟必须遵守 krb5.conf 文件的 libdefaults 部分中定义的缺省时间。有关 NTP 的信息,请参见同步 KDC 与 Kerberos 客户机的时钟。

配置从 KDC 服务器。

要提供冗余性,请确保至少安装了一个从 KDC 服务器。有关具体说明,请参见如何手动配置从 KDC 服务器。

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

使用以下过程配置 KDC 以使用 LDAP 数据服务器。

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

领域名称 = EXAMPLE.COM

DNS 域名 = example.com

主 KDC = kdc1.example.com

目录服务器 = dsserver.example.com

admin 主体 = kws/admin

LDAP 服务的 FMRI = svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1

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

开始之前

该过程也要求将主机配置为使用 DNS。为使性能更佳,请在同一台服务器上安装 KDC 和 LDAP 目录服务。此外还应运行目录服务器。下面的过程适用于运行 Sun Directory Server Enterprise Edition 7.0

发行版的服务器。成为 KDC 上的超级用户。

配置主 KDC 以使用 SSL 访问目录服务器。

以下步骤将 Oracle Solaris 发行版 KDC 配置为使用 Directory Server 自签名证书。如果证书已过期,请按照"管理自签名证书"中的说明来续订证书。在目录服务器上,导出自签名目录服务器证书。# /export/sun-ds6.1/ds6/bin/dsadm show-cert -F der /export/sun-ds6.1/directory2 \ defaultCert > /tmp/defaultCert.cert.der

在主 KDC 上,导入目录服务器证书。# pktool setpin keystore=nss dir=/var/ldap

# chmod a+r /var/ldap/*.db

# pktool import keystore=nss objtype=cert trust="CT" infile=/tmp/defaultCert.certutil.der \

label=defaultCert dir=/var/ldap

在主 KDC 上,测试 SSL 是否可以正常运行。

此示例假设 cn=directory manager 条目具有管理特权。/usr/bin/ldapsearch -Z -P /var/ldap -D "cn=directory manager" \ -h dsserver.example.com -b "" -s base objectclass='*'

Subject:

"CN=dsserver.example.com,CN=636,CN=Directory Server,O=Example Corporation

注意,CN=dsserver.example.com 条目应该包含全限定主机名,而不是简短版本。

如有需要,填充 LDAP 目录。

向现有架构中添加 Kerberos 架构。# ldapmodify -h dsserver.example.com -D "cn=directory manager" -f /usr/share/lib/ldif/kerberos.ldif

在 LDAP 目录中创建 Kerberos 容器。

向 krb5.conf 文件中添加下列各项:定义数据库类型。

添加项来定义 realms 部分的 database_module。database_module = LDAP

定义数据库模块。[dbmodules] LDAP = { ldap_kerberos_container_dn = "cn=krbcontainer,dc=example,dc=com" db_library = kldap ldap_kdc_dn = "cn=kdc service,ou=profile,dc=example,dc=com" ldap_kadmind_dn = "cn=kadmin service,ou=profile,dc=example,dc=com" ldap_cert_path = /var/ldap ldap_servers = ldaps://dsserver.example.com }

在 LDAP 目录中创建 KDC。

以下命令创建 krbcontainer 及其他几个对象。还会创建 /var/krb5/.k5.EXAMPLE.COM 主密钥存储文件。# kdb5_ldap_util -D "cn=directory manager" create -P abcd1234 -r EXAMPLE.COM -s

存储 KDC 绑定标识名 (Distinguished Name, DN) 口令。

当 KDC 绑定到 DS 时会使用这些口令。KDC 会根据其使用的访问类型使用不同的角色。# kdb5_ldap_util stashsrvpw "cn=kdc service,ou=profile,dc=example,dc=com"

# kdb5_ldap_util stashsrvpw "cn=kadmin service,ou=profile,dc=example,dc=com"

添加 KDC 服务角色。创建一个内容如下的 kdc_roles.ldif 文件:dn: cn=kdc service,ou=profile,dc=example,dc=com

cn: kdc service

sn: kdc service

objectclass: top

objectclass: person

userpassword: test123

dn: cn=kadmin service,ou=profile,dc=example,dc=com

cn: kadmin service

sn: kadmin service

objectclass: top

objectclass: person

userpassword: test123

在 LDAP 目录中创建角色项# ldapmodify -a -h dsserver.example.com -D "cn=directory manager" -f kdc_roles.ldif

为 KDC 相关角色设置 ACL。# cat << EOF | ldapmodify -h dsserver.example.com -D "cn=directory manager"

# Set kadmin ACL for everything under krbcontainer.

dn: cn=krbcontainer,dc=example,dc=com

changetype: modify

add: aci

aci: (target="ldap:///cn=krbcontainer,dc=example,dc=com")(targetattr="krb*")(version 3.0;\

acl kadmin_ACL; allow (all)\

userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";)

# Set kadmin ACL for everything under the people subtree if there are

# mix-in entries for krb princs:

dn: ou=people,dc=example,dc=com

changetype: modify

add: aci

aci: (target="ldap:///ou=people,dc=example,dc=com")(targetattr="krb*")(version 3.0;\

acl kadmin_ACL; allow (all)\

userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";)

EOF

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

需要更改领域名称和服务器名称。有关此文件的完整说明,请参见 krb5.conf(4) 手册页。kdc1 # cat /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://download.oracle.com/docs/cd/E23824_01/html/821-1456/aadmin-23.html

}

在此示例中,default_realm、kdc、admin_server 行和所有 domain_realm 项都已被更改。此外还会编辑定义 help_url 的行。

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

编辑 KDC 配置文件 (kdc.conf)。

需要更改领域名称。有关此文件的完整说明,请参见 kdc.conf(4) 手册页。kdc1 # cat /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

}

在此示例中,realms 部分的领域名称定义被更改。而且,在 realms 部分,添加了用于启用增量传播和选择主 KDC 服务器将在日志中保留的更新数的行。

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

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

填充后,/etc/krb5/kadm5.acl 文件应包含所有获许管理 KDC 的主体名称。kws/admin@EXAMPLE.COM *

通过该项,EXAMPLE.COM 领域中的 kws/admin 主体可以修改 KDC 中的主体或策略。缺省安装包括一个星号 (*),以匹配所有的 admin 主体。此缺省安装可能会造成安全风险,因此,包括一个所有 admin 主体的列表会更安全。有关更多信息,请参见 kadm5.acl(4)

手册页。

启动kadmin.local命令并添加主体。

接下来的子步骤会创建 Kerberos 服务使用的主体。kdc1 # /usr/sbin/kadmin.local

kadmin.local:向数据库添加管理主体。

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

Enter password for principal kws/admin@EXAMPLE.COM:

Re-enter password for principal kws/admin@EXAMPLE.COM:

Principal "kws/admin@EXAMPLE.COM" created.

kadmin.local:

退出 kadmin.local。

您已经为后续步骤添加了所有需要的主体。kadmin.local: quit

可选配置 Kerberos 服务的 LDAP 相关项。

如果 LDAP 和 KDC 服务器运行在同一台主机上,且 LDAP 服务以 SMF FMRI 配置,则添加 Kerberos 守护进程对

LDAP 服务的依赖性。如果 LDAP 服务重新启动,此依赖性将重新启动 KDC 服务。添加对 krb5kdc 服务的依赖性。# svccfg -s security/krb5kdc

svc:/network/security/krb5kdc> addpg dsins1 dependency

svc:/network/security/krb5kdc> setprop dsins1/entities = \

fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1"

svc:/network/security/krb5kdc> setprop dsins1/grouping = astring: "require_all"

svc:/network/security/krb5kdc> setprop dsins1/restart_on = astring: "restart"

svc:/network/security/krb5kdc> setprop dsins1/type = astring: "service"

svc:/network/security/krb5kdc> exit

添加对 kadmin 服务的依赖性。# svccfg -s security/kadmin

svc:/network/security/kadmin> addpg dsins1 dependency

svc:/network/security/kadmin> setprop dsins1/entities =\

fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1"

svc:/network/security/kadmin> setprop dsins1/grouping = astring: "require_all"

svc:/network/security/kadmin> setprop dsins1/restart_on = astring: "restart"

svc:/network/security/kadmin> setprop dsins1/type = astring: "service"

svc:/network/security/kadmin> exit

启动 Kerberos 守护进程。kdc1 # svcadm enable -r network/security/krb5kdc

kdc1 # svcadm enable -r network/security/kadmin

启动 kadmin 并添加更多的主体。

此时,您可以使用 GUI Kerberos 管理工具添加主体。为此,必须使用之前在此过程中创建的一个 admin 主体名称登录。不过,为简便起见,给出了以下命令行示例。kdc1 # /usr/sbin/kadmin -p kws/admin

Enter password:

kadmin:创建主 KDC 服务器 host 主体。

基于 Kerberos 的应用程序(如 klist 和 kprop)使用 host 主体。挂载通过验证的 NFS 文件系统时,客户机使用该主体。请注意,当主体实例为主机名时,无论名称服务中的域名是大写还是小写,都必须以小写字母指定 FQDN。kadmin: addprinc -randkey host/kdc1.example.com

Principal "host/kdc1.example.com@EXAMPLE.COM" created.

kadmin:

可选创建 kclient 主体。

kclient 实用程序在 Kerberos 客户机安装期间使用该主体。如果您没有计划使用此实用程序,则不需要添加该主体。kclient 实用程序的用户需要使用该口令。kadmin: addprinc clntconfig/admin

Enter password for principal clntconfig/admin@EXAMPLE.COM:

Re-enter password for principal clntconfig/admin@EXAMPLE.COM:

Principal "clntconfig/admin@EXAMPLE.COM" created.

kadmin:

将主 KDC 服务器的 host 主体添加到主 KDC 服务器的密钥表文件。

将主机主体添加到密钥表文件会允许自动使用该主体。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.

Entry for principal host/kdc1.example.com with kvno 3, encryption type ArcFour

with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.

Entry for principal host/kdc1.example.com with kvno 3, encryption type DES cbc mode

with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.

kadmin:

退出 kadmin。kadmin: quit

可选使用 NTP 或其他时钟同步机制同步主 KDC 服务器的时钟。

安装和使用网络时间协议 (Network Time Protocol, NTP) 并非必须的。但是,要成功进行验证,每个时钟必须遵守 krb5.conf 文件的 libdefaults 部分中定义的缺省时间。有关 NTP 的信息,请参见同步 KDC 与 Kerberos 客户机的时钟。

配置从 KDC 服务器。

要提供冗余性,请确保至少安装了一个从 KDC 服务器。有关具体说明,请参见如何手动配置从 KDC 服务器。

如何自动配置从 KDC

在 Oracle Solaris 发行版中,使用下列过程可以自动配置从 KDC。成为管理员,或者承担已指定给 Kerberos 服务器管理配置文件的角色或用户名。

有关更多信息,请参见如何获取管理权限。

创建 KDC。

运行 kdcmgr 实用程序创建 KDC。您需要提供主密钥口令和管理主体的口令。kdc2# kdcmgr -a kws/admin -r EXAMPLE.COM create -m kdc1 slave

Starting server setup

---------------------------------------

Setting up /etc/krb5/kdc.conf

Setting up /etc/krb5/krb5.conf

Obtaining TGT for kws/admin ...

Password for kws/admin@EXAMPLE.COM:

Setting up /etc/krb5/kadm5.acl.

Setting up /etc/krb5/kpropd.acl.

Waiting for database from master...

Waiting for database from master...

Waiting for database from master...

kdb5_util: Cannot find/read stored master key while reading master key

kdb5_util: Warning: proceeding without master key

Enter KDC database master key:

---------------------------------------------------

Setup COMPLETE.

kdc2#

如何交互配置从 KDC

使用以下过程交互配置从 KDC。成为管理员,或者承担已指定给 Kerberos 服务器管理配置文件的角色或用户名。

有关更多信息,请参见如何获取管理权限。

创建 KDC。

运行 kdcmgr 实用程序创建 KDC。您需要提供主密钥口令和管理主体的口令。kdc1# kdcmgr create slave

Starting server setup

---------------------------------------

Enter the Kerberos realm: EXAMPLE.COM

What is the master KDC's host name?: kdc1

Setting up /etc/krb5/kdc.conf

Setting up /etc/krb5/krb5.conf

Obtaining TGT for kws/admin ...

Password for kws/admin@EXAMPLE.COM:

Setting up /etc/krb5/kadm5.acl.

Setting up /etc/krb5/kpropd.acl.

Waiting for database from master...

Waiting for database from master...

Waiting for database from master...

kdb5_util: Cannot find/read stored master key while reading master key

kdb5_util: Warning: proceeding without master key

Enter KDC database master key:

---------------------------------------------------

Setup COMPLETE.

kdc2#

如何手动配置从 KDC 服务器

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

领域名称 = EXAMPLE.COM

DNS 域名 = example.com

主 KDC = kdc1.example.com

从 KDC = kdc2.example.com

admin 主体 = kws/admin

开始之前

必须配置主 KDC 服务器。要了解交换从 KDC 服务器的具体说明,请参见交换主 KDC 服务器与从 KDC 服务器。成为主 KDC 服务器上的超级用户。

在主 KDC 服务器上,启动 kadmin。

必须使用在配置主 KDC 服务器时创建的一个 admin 主体名称登录。kdc1 # /usr/sbin/kadmin -p kws/admin

Enter password:

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

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

Principal "host/kdc2.example.com@EXAMPLE.COM" created.

kadmin:

在主 KDC 服务器上,创建 kiprop 主体。

kiprop 主体用于授权来自主 KDC 服务器的增量传播。kadmin: addprinc -randkey kiprop/kdc2.example.com

Principal "kiprop/kdc2.example.com@EXAMPLE.COM" created.

kadmin:

退出 kadmin。kadmin: quit

在主 KDC 服务器上,编辑 Kerberos 配置文件 (krb5.conf)。

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

.

.

[realms]

EXAMPLE.COM = {

kdc = kdc1.example.com

kdc = kdc2.example.com

admin_server = kdc1.example.com

}

在主 KDC 服务器上,向 kadm5.acl 添加 kiprop 项。

通过此项,主 KDC 服务器可以接收对 kdc2 服务器的增量传播请求。kdc1 # cat /etc/krb5/kadm5.acl

*/admin@EXAMPLE.COM *

kiprop/kdc2.example.com@EXAMPLE.COM p

在主 KDC 服务器上,重新启动 kadmind 以使用 kadm5.acl 文件中新的项。kdc1 # svcadm restart network/security/kadmin

在所有的从 KDC 服务器上,从主 KDC 服务器复制 KDC 管理文件。

需要在所有的从 KDC 服务器上执行该步骤,因为主 KDC 服务器已经更新了每个 KDC 服务器需要的信息。可以使用 ftp 或类似的传输机制从主 KDC 服务器获取以下文件的副本:

/etc/krb5/krb5.conf

/etc/krb5/kdc.conf

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

需要在所有从 KDC 服务器上更新此信息。kdc2 # cat /etc/krb5/kpropd.acl

host/kdc1.example.com@EXAMPLE.COM

host/kdc2.example.com@EXAMPLE.COM

在所有的从 KDC 服务器上,确保未填充 Kerberos 访问控制列表文件 kadm5.acl。

未修改的 kadm5.acl 文件类似如下示例:kdc2 # cat /etc/krb5/kadm5.acl

*/admin@___default_realm___ *

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

在新的从 KDC 服务器上,更改 kdc.conf 中的某个项。

使用定义 sunw_dbprop_slave_poll 的项替换 sunw_dbprop_master_ulogsize 项。该项将轮询时间设为两分钟。kdc1 # cat /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

}

在新的从 KDC 服务器上,启动 kadmin 命令。

必须使用在配置主 KDC 服务器时创建的一个 admin 主体名称登录。kdc2 # /usr/sbin/kadmin -p kws/admin

Enter password:

kadmin:使用 kadmin 将从 KDC 服务器的主机主体添加到从 KDC 服务器的密钥表文件中。

该项可使 kprop 及其他基于 Kerberos 的应用程序正常工作。请注意,当主体实例为主机名时,无论名称服务中的域名是大写还是小写,都必须以小写字母指定 FQDN。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.

Entry for principal host/kdc2.example.com with kvno 3, encryption type ArcFour

with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.

Entry for principal host/kdc2.example.com with kvno 3, encryption type DES cbc mode

with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.

kadmin:

将 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.

Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type ArcFour

with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.

Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type DES cbc mode

with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.

kadmin:

退出 kadmin。kadmin: quit

在新的从 KDC 服务器上,启动 Kerberos 传播守护进程。kdc2 # svcadm enable network/security/krb5_prop

在新的从 KDC 服务器上,使用 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:

可选在新的从 KDC 服务器上,使用 NTP 或其他时钟同步机制同步主 KDC 服务器时钟。

安装和使用网络时间协议 (Network Time Protocol, NTP) 并非必须的。但是,要成功进行验证,每个时钟必须遵守 krb5.conf 文件的 libdefaults 部分中定义的缺省时间。有关 NTP 的信息,请参见同步 KDC 与 Kerberos 客户机的时钟。

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

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

当票证授予服务 (Ticket Granting Service, TGS) 主体仅具有 DES 密钥时(在 Solaris 10 发行版之前创建的 KDC

服务器即为这种情况),该密钥会将票证授予票证 (Ticket Granting Ticket, TGT) 会话密钥的加密类型限制为 DES。如果某个 KDC 更新到支持其他更强加密类型的发行版,管理员可能会希望为该 KDC 生成的所有会话密钥使用这种更强的加密。但是,如果现有的 TGS

主体没有刷新其密钥使之包括新的加密类型,TGT 会话密钥仍会继续限制为 DES。以下过程会刷新密钥,以便可以使用其他的加密类型。刷新 TGS 服务主体密钥。kdc1 % /usr/sbin/kadmin -p kws/admin

Enter password:

kadmin: cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM

示例 21-2 从主服务器刷新主体密钥

如果以 root 身份登录到 KDC 主服务器,您可以通过以下命令刷新 TGS 服务主体:kdc1 # kadmin.local -q 'cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值