配置 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'

金阊oracle服务器,配置 KDC 服务器相关推荐

  1. docs邮箱服务器,配置邮箱服务器属性

    配置邮箱服务器属性 05/20/2011 本文内容 **适用于:**Exchange Server 2010 **上一次修改主题:**2009-08-27 若要在组织中配置邮箱服务器,可以使用 Exc ...

  2. 测试mysql连接服务器,配置云服务器的mysql连接,navicat测试远程连接

    配置云服务器的mysql连接,navicat测试远程连接 配置云服务器的mysql连接,navicat测试远程连接 检查一下云系统的更新 yum -y update 下载安装包 rpm -ivh ht ...

  3. 虚拟sntp服务器,配置NTP服务器

    利用internetNTP服务器同步Linux虚拟机-NTP服务器,然后再使用Linux虚拟机-NTP服务器同步物理主机-NTP客户端.Linux虚拟机既充当internet-NTP的客户端,又充当物 ...

  4. CentOS 7.1云服务器 配置FTP服务器vsftpd

    在root权限下,通过如下命令安装Vsftp: yum install vsftpd 使用rpm命令即可查看是否已经安装vsftpd: rpm -qa|grep vsftpd 在启动vsftpd服务之 ...

  5. 安装VMware,创建虚拟化服务器,配置虚拟化服务器网络,linux安装Mysql

    1. 生产服务器一般是什么操作系统 部署到服务器时服务器的操作系统 windows server(收费 性能是没有linux好的) Linux(开源 免费) 2. Linux Linux并不是一个操作 ...

  6. 配置 KDC 主服务器

    原文地址:http://hi.baidu.com/rlee1984/blog/item/800db813382e95015baf5343.html 配置 KDC 主服务器 2007-09-14 15: ...

  7. Redis配置主从服务器

    主从概念 redis主从可以在同一台电脑上配置,也可以在不同电脑商进行配置. 如果不在同一台电脑上配置,需要保证两台电脑能连接通信. 一个master可以拥有多个slave,一个slave又可以拥有多 ...

  8. 配置SSH服务器到ARM开发板中使用

    本例中所使用的硬件平台是GEC6818 ARM开发板 SSH_config.tar.bz下载 链接:https://pan.baidu.com/s/12xqy3ZxhBEjNm8lGQ0ZjAA 提取 ...

  9. oracle中间键配置,Oracle Exalogic中间件云服务器简介及产品配置特点(2)

    Oracle Exalogic中间件云服务器 -- 软硬件结合的优化平台 目前,企业所面临的应用挑战大多集中在异构环境.复杂的多层应用以及现有环境的低利用率等.于是,企业开始根据实际业务需求和投资情况 ...

  10. 阿里云服务器与堡垒机搭建Oracle数据库(配置多个实例)以及数据库导入、导出

    很少配置数据库服务器吧 第一个oracle数据库安装的时候还安装成了桌面类数据库哈哈 这几次踩坑踩了也不少个人感觉重要的就是搭配好oracle服务器之后配置本地服务与暴露端口.首先云服务器必须要去云平 ...

最新文章

  1. 深度学习的强大应用,且看如何用神经网络给可爱的圆滚滚们发对象!
  2. IL语言之.ctor
  3. php中的var_dump()方法的详细说明
  4. SilverFoxServer出炉!!
  5. 数据库-数据类型介绍
  6. C++实现剔除不能识别的非ASCIII、非中文字符
  7. 混沌工程详细介绍——Netflix持续交付实践探寻
  8. springboot使用mybatis_使用springboot+mybatis数据库存储服务化
  9. 项目中的一个技术方案替换历程(surfaceview+fragment 变成悬浮窗window)
  10. opencv 矫正图片
  11. [English] notes
  12. Python 安装modules问题及import问题
  13. SGD和带momentum的SGD算法
  14. Visual Studio下载安装编写C语言
  15. 肝细胞肝癌复发前后CD3高表达T淋巴细胞的变化
  16. 深入理解LCD之寄存器配置
  17. 网易人工智能事业部:“悄无声息”再捞金!
  18. 3DMAX 隐藏显示物体的快捷键
  19. numpy函数:arange(),reshape()用法,
  20. 【CuteJavaScript】GraphQL真香入门教程

热门文章

  1. 【复杂网络社团发现】Gephi绘制网络图
  2. 评《宁可放弃五十万也要逼你去读书》,作者来自另外一个星球?
  3. 基因编辑最新研究进展(2022年4月)
  4. 2019 东北四省赛部分题解 The 13th Chinese Northeast Collegiate Programming Contest
  5. 微博和微信公众号营销区别
  6. 留学背景提升是投机取巧走“捷径”?还是脚踏实地,仰望星空?
  7. 兰州大学第一届『飞马杯』程序设计竞赛
  8. 安全防御(四)--- 恶意软件及其特征、分类、免杀技术,反病毒技术,反病毒网关工作过程及其配置
  9. 在51cto开博补充篇_为何叫~静水流深~
  10. PE格式之千里追踪输入表