跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

IBM Network Authentication Service KDC 配置,第 3 部分: 使用 LDAP 在 AIX 上配置一个从 KDC

配置 IBM NAS 从 KDC,使用 LDAP 数据库作为 AIX 上的后端存储

Sandeep Ramesh Patil , 高级软件工程师, IBM
SandeepRamesh Patil 的照片
Sandeep Ramesh Patil 是 IBM India Software Labs 的高级软件工程师。在过去七年里,他一直为 IBM 工作,主要研究包括 DCE、SARPC 在内的分布式技术,以及安全产品,例如 IBM Network Authentication Services (IBM Kerberos)。目前,他正在为 IBM Network Authentication Service 开发新的特性并实现安全相关的 RFC 及其产品支持。Sandeep 拥有印度 Pune 大学的计算机科学与工程学学士学位。
(An IBM developerWorks Master Author)
Vipin Rathor, 系统软件工程师, IBM
http://www.ibm.com/developerworks/i/p-vrathor.jpg
Vipin Rathor 已经在 IBM India Software Lab 工作了两年,目前主要从事 IBM Network Authentication Service (IBM Kerberos) 的支持和开发活动。他的研究领域主要包括 Kerberos 和 LDAP 集成、网络安全、身份验证协议和 PKI。
(An IBM developerWorks Contributing Author)

简介: 本系列 共三个部分,前两个部分介绍了如何在 IBM® Network Authentication Service (NAS) 主 KDC 和从 KDC 中配置遗留数据库,以及如何将从 KDC 升级为主 KDC。本文将在此基础上更进一步,演示如何为 Kerberos 从 KDC 配置 LDAP 数据库并解释这样做的理由。

查看本系列更多内容

发布日期: 2009 年 4 月 09 日
级别: 中级 其他语言版本: 英文
访问情况 : 2674 次浏览
评论: 


简介

这个 共分三部分的系列教程 的前两个部分围绕存储身份验证数据的遗留方法,针对性地介绍了 IBM Network Authentication Service (IBM NAS) 从 KDC 的配置。最近,轻量型目录访问协议(Lightweight Directory Access Protocol,LDAP)目录被广泛用于存储访问频繁但不常进行修改的数据。Kerberos 身份验证数据就非常适合存储到 LDAP 中。

将 Kerberos 身份验证数据存储到 LDAP 中非常方便,并且也有助于遗留环境的迁移,比如将基于 IBM Distributed Computing Environment(IBM DCE 或 Distributed File System)的应用程序迁移到更新的受支持环境中,比如基于 IBM NAS (AIX NFS V4 - Network File System Version 4) 的应用程序。为了迎合这些需求,IBM NAS 提供了一种 LDAP 插件,该插件可以方便地将用户身份验证信息存储到 LDAP 数据库中。

本文旨在帮助面临以下情形的管理员:现有 IBM NAS 域在使用 LDAP 作为后端数据库的情况下运行,并计划扩展管理操作以对身份验证请求实现负载平衡。本文详细解释了在 IBM NAS 从 KDC 中使用 LDAP 目录的配置步骤,以及如何配置客户机以使用从 KDC 来帮助减轻负载。

为何使用 LDAP 目录?

LDAP 目录是应用最广泛的企业解决方案,用于存储被频繁引用但很少修改的静态数据。Kerberos 数据包含这类静态数据,因此使用 LDAP 目录保存 Kerberos 数据非常方便和实用。

  • 理由:
    1. 标准协议:

      LDAP 是一种行业标准,能够存储任何类型的数据。它附带了多种标准模式,得到了各种应用程序的广泛支持。

    2. 控制对敏感数据的访问:

      LDAP 可以方便地存储敏感数据并可以更精确地控制这些数据,包括控制数据访问的方式和访问者。因此,LDAP 是存储网络身份验证数据的最佳选择。

  • 优点:
    1. 使用集中式服务器存储数据。
    2. 基于事务的系统:

      LDAP 是一种基于事务的系统;任何成功的操作都会导致生成即时的 “活动” 数据。

    3. 配置从 KDC 时,不需要将数据从主 KDC 传播到从 KDC。
    4. 自动索引的数据:

      在使用 IBM 目录服务器作为 LDAP 目录为 IBM NAS 存储数据时,IBM NAS 将自动对数据执行索引,确保可以更快地检索需要的数据记录。

    5. 迁移遗留系统(比如 DCE)并将身份验证数据传递给 IBM NAS。这种典型的场景常常用于客户希望从 DCE/DFS 迁移到 NFS V4 时。要了解有关 DCE 迁移的更多信息,请参考 DCE Replacement Strategies Redbook(参见 参考资料)。

为了利用以上这些优点,IBM NAS V1.4 提供了对某种 LDAP 目录插件的支持。通过使用这种插件,可以在以下几种场景使用 LDAP 配置 IBM NAS:

  • 在 IBM NAS 服务器目录中使用 LDAP:

    这一内容在文章 “IBM Network Authentication Service KDC and administration servers discovery using LDAP for AIX”(参见 参考资料)中做了阐述。

  • 使用 LDAP 目录存储 Kerberos 数据

    可以配置 IBM NAS 主 KDC 和从 KDC,以使用 LDAP 目录。要获得使用 LDAP 作为后端数据库对 IBM NAS 主 KDC 进行配置的详细信息,请参考 IBM NAS 产品附带的 IBM Network Authentication Service Version 1.4 管理员和用户指南。由于本系列主要针对 IBM NAS 从 KDC 配置,本文将详细介绍使用 LDAP 作为后端数据库时如何配置 IBM NAS 从 KDC。

示例设置

Kerberos Administrator Name:
admin/admin

Kerberos Realm Name:
ISL.IN.IBM.COM

IBM NAS 1.4.0.7 Master KDC:
Hostname:fsaix12.in.ibm.com Port:88
OS:AIX 5.3

IBM NAS 1.4.0.7 Administration Server:
Hostname:fsaix12.in.ibm.com Port:749
OS:AIX 5.3

IBM NAS 1.4.0.7 Slave KDC:
IBM Tivoli® Directory Client v6.1:
Hostname:huntcup.in.ibm.com Port:754
OS:AIX 5.2

IBM Tivoli Directory Server v6.1:
Hostname:land.in.ibm.com Port:389
OS:AIX 5.3

IBM NAS 1.4.0.7 client:
Hostname:aixdce3.in.ibm.com
OS:AIX 5.3

配置从 KDC 以使用 LDAP 目录

使用 LDAP 目录配置从 KDC 并没有看上去那样复杂。只需正确理解将要使用的命令行参数。

注意,本文在将从 KDC 配置为使用 LDAP 目录时,假设主 KDC 已经配置为使用 LDAP 目录并且运行良好。

使用 IBM NAS 配置脚本 /usr/krb5/sbin/config.krb5 配置这个从 KDC。

bash-2.05b# /usr/krb5/sbin/config.krb5

To configure a Server:
Usage: /usr/krb5/sbin/config.krb5 -h | -S [-a admin] -d domain -r realm [[-l
{ ldapserver | ldapserver:port }]  [-u ldap_DN -p ldap_DN_pw] [-f {keyring |
keyring:entry_dn} -k keyring_pw] [-m masterkey_location] [-b bind_type]
[-R ldap_replica_list]]

To configure a slave KDC:
On a slave KDC machine:
Usage: /usr/krb5/sbin/config.krb5 -h | -E -d domain -r realm -s server { [-a admin] | -l
{ ldapserver  | ldapserver:port } -u ldap_DN -p ldap_DN_PW [-f {keyring |
keyring:entry_dn} -k keyring_pw] [-b bind_type]
[-R ldap_replica_list] }

On a master server machine:
Usage: /usr/krb5/sbin/config.krb5 -h | -P -r realm -d domain -e slave_KDC -g
To configure a Client:
Usage: /usr/krb5/sbin/config.krb5 -h | [-C] -r realm -d domain { -c KDC -s server | -l
{ ldapserver  | ldapserver:port_number } [-c KDC -s server] }

-bash-2.05b#

现在查看一下将用来使用 LDAP 目录设置从 KDC 的命令行参数:

-E表示将要进行配置的从 KDC。
-d <domain><domain> 指 Kerberos 域所属的域的名称。
-r <realm><realm> 指正在运行主 KDC 的 Kerberos 域的名称。
-s <server><server> 指运行主 KDC 和 kadmind 管理服务器的机器的主机名。
-u <ldap_DN><ldap_DN> 指用于连接 LDAP 服务器(比如 cn=root)的 LDAP bind DN 的名称。
-p <ldap_DN_pw><ldap_DN_pw> 是 LDAP bind DN 的密码。
-b <bind_type><bind_type> 指定在连接 LDAP 服务器时将使用 LDAP bind 机制。可能的值包括 ‘simple’、‘cram-md5’ 和 ‘external’。默认值为 ‘simple’ LDAP bind。
-f <keyring | keyring:enrty_dn>这个选项在使用 SSL 连接方法时指定 LDAP keyring 数据库文件。在这里,<keyring> 指文件名的完全限定名,而 <entry_dn> 指 keyring 中的验证条目名。
-k <keyring_pw>它指定了访问 LDAP keyring 数据库的密码。如果没有给出的话,那么 SSL 使用存储在相应的 stash 文件中的密码。
-R <ldap_replica_list><ldap_replica_list> 是使用空格分隔的 LDAP replica 服务器列表,从 KDC 将使用它实现负载平衡。

请阅读本系列的 第 1 部分,回顾一下如何使用遗留数据库配置 IBM NAS KDC,您需要同时在主 KDC 和从 KDC 上运行 conifig.krb5,但是在引入 LDAP 目录后,则不需要在主 KDC 上运行任何内容。只需要在从 KDC 上运行一个 conifig.krb5 命令,仅此而已。

现在将 huntcup.in.ibm.com 上的从 KDC 配置为主 KDC(fsaix12.in.ibm.com),这将使用运行在 land.in.ibm.com 上的 LDAP 服务器。

-bash-2.05b# hostname
huntcup.in.ibm.com

-bash-2.05b# /usr/krb5/sbin/config.krb5 -E -d in.ibm.com -r ISL.IN.IBM.COM 
          -s fsaix11.in.ibm.com -l fsaix11.in.ibm.com -u cn=root -p secret
Initializing configuration...
Creating /etc/krb5/krb5_cfg_type...
Creating /etc/krb5/krb5.conf...
Creating /var/krb5/krb5kdc/kdc.conf...
Password for admin/admin@ISL.IN.IBM.COM:
Starting krb5kdc...
Attempting to bind to one or more LDAP servers. This may take a while...
krb5kdc was started successfully.
The command completed successfully.

-bash-2.05b# ps -ef| grep krb5
    root  6476     1   0 18:23:43      -  0:00 /usr/krb5/sbin/krb5kdc

-bash-2.05b# cat /etc/krb5/krb5_cfg_type
slave

-bash-2.05b# cat /etc/krb5/krb5.conf
[libdefaults]
        default_realm = ISL.IN.IBM.COM
        default_keytab_name = FILE:/etc/krb5/krb5.keytab
        default_tkt_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts
               des-cbc-md5 des-cbc-crc
        default_tgs_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts 
               des-cbc-md5 des-cbc-crc

[realms]
        ISL.IN.IBM.COM = {
                kdc = fsaix11.in.ibm.com:88
                admin_server = fsaix11.in.ibm.com:749
                default_domain = in.ibm.com
                vdb_plugin_lib = /usr/lib/libkrb5ldplug.a
        }

[domain_realm]
        .in.ibm.com = ISL.IN.IBM.COM
        fsaix11.in.ibm.com = ISL.IN.IBM.COM

[logging]
        kdc = FILE:/var/krb5/log/krb5kdc.log
        admin_server = FILE:/var/krb5/log/kadmin.log
        default = FILE:/var/krb5/log/krb5lib.log

(0) root @ huntcup: 52S () : /home/vipin #

完成此操作后,通过设置一个客户机来对以上配置进行测试。

配置客户机以结合使用从 KDC 和 LDAP 目录

使用另一台 AIX 机器 aixdce3.in.ibm.com,然后在其上配置一个 IBM NAS 客户机。确保您已经对客户机配置文件进行了更新以反映从 KDC(只在确定了 KDC 首选参数后)。

注意,首先尝试 /etc/krb5/krb5.conf 中的第一个 kdc 条目;只有在它失败的情况下才能尝试下一个条目。

bash-2.05b# hostname
aixdce3.in.ibm.com

bash-2.05b# /usr/krb5/sbin/config.krb5  -C -d in.ibm.com -r ISL.IN.IBM.COM 
          -s fsaix11.in.ibm.com -c fsaix11.in.ibm.com
Initializing configuration...
Creating /etc/krb5/krb5_cfg_type...
Creating /etc/krb5/krb5.conf...
The command completed successfully.

bash-2.05b# cat /etc/krb5/krb5.conf
[libdefaults]
        default_realm = ISL.IN.IBM.COM
        default_keytab_name = FILE:/etc/krb5/krb5.keytab
        default_tkt_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts 
               des-cbc-md5 des-cbc-crc
        default_tgs_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts 
               des-cbc-md5 des-cbc-crc

[realms]
        ISL.IN.IBM.COM = {
                kdc = fsaix11.in.ibm.com:88
                kdc = huntcup.in.ibm.com:88
                admin_server = fsaix11.in.ibm.com:749
                default_domain = in.ibm.com
        }

[domain_realm]
        .in.ibm.com = ISL.IN.IBM.COM
        fsaix11.in.ibm.com = ISL.IN.IBM.COM
        huntcup.in.ibm.com = ISL.IN.IBM.COM

[logging]
        kdc = FILE:/var/krb5/log/krb5kdc.log
        admin_server = FILE:/var/krb5/log/kadmin.log
        default = FILE:/var/krb5/log/krb5lib.log

bash-2.05b# /usr/krb5/bin/kinit admin/admin
Password for admin/admin@ISL.IN.IBM.COM:

bash-2.05b# /usr/krb5/bin/klist
Ticket cache:  FILE:/var/krb5/security/creds/krb5cc_0
Default principal:  admin/admin@ISL.IN.IBM.COM

Valid starting     Expires            Service principal
09/26/08 09:31:08  09/27/08 09:30:31  krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM

bash-2.05b# /usr/krb5/sbin/kadmin
Authenticating as principal admin/admin@ISL.IN.IBM.COM with password.
Password for admin/admin@ISL.IN.IBM.COM:
kadmin:  getprincs
admin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
K/M@ISL.IN.IBM.COM
kadmin:  q

bash-2.05b#

在配置完毕后,停止主 KDC 服务器,以测试从 KDC。

bash-2.05b# hostname
fsaix11.in.ibm.com

bash-2.05b# stop.krb5 krb5kdc
Stopping /usr/krb5/sbin/krb5kdc...
/usr/krb5/sbin/krb5kdc was stopped successfully.
The command completed successfully.

bash-2.05b#        

现在,在客户机上尝试获得一个票据(ticket)。

bash-2.05b# hostname
aixdce3.in.ibm.com

bash-2.05b# /usr/krb5/bin/kinit admin/admin
Password for admin/admin@ISL.IN.IBM.COM:

bash-2.05b# /usr/krb5/bin/klist
Ticket cache:  FILE:/var/krb5/security/creds/krb5cc_0
Default principal:  admin/admin@ISL.IN.IBM.COM

Valid starting     Expires            Service principal
09/26/08 09:34:20  09/27/08 09:33:43  krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM

bash-2.05b# /usr/krb5/sbin/kadmin
Authenticating as principal admin/admin@ISL.IN.IBM.COM with password.
Password for admin/admin@ISL.IN.IBM.COM:
kadmin:  getprincs
admin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
K/M@ISL.IN.IBM.COM
kadmin:  q
bash-2.05b#

即使在主 KDC 被关闭的情况下,客户机也能按预期工作。现在,我们已经将 LDAP 配置为从 KDC 的后端数据库。

成功地配置了一个从 KDC 后,Kerberos 管理员需要确保在处理身份验证请求时,整个域中存在适当的负载平衡。为此,根据网络范围和主 KDC 上的负载,可以添加更多的从 KDC。同样,需要对客户机进行配置,使所有从 KDC 和主 KDC 都能得到充分利用。

结束语

在这个 三部分系列 的完结篇中,您了解了如何配置一个从 KDC,使它将 LDAP 用作后端数据库。通过这样做,Kerberos 管理员能够获得一个更加可靠、更具伸缩性的 Kerberos 环境。


参考资料

学习

获得产品和技术

讨论

作者简介

SandeepRamesh Patil 的照片developerWorks Master author

Sandeep Ramesh Patil 是 IBM India Software Labs 的高级软件工程师。在过去七年里,他一直为 IBM 工作,主要研究包括 DCE、SARPC 在内的分布式技术,以及安全产品,例如 IBM Network Authentication Services (IBM Kerberos)。目前,他正在为 IBM Network Authentication Service 开发新的特性并实现安全相关的 RFC 及其产品支持。Sandeep 拥有印度 Pune 大学的计算机科学与工程学学士学位。

http://www.ibm.com/developerworks/i/p-vrathor.jpg

Vipin Rathor 已经在 IBM India Software Lab 工作了两年,目前主要从事 IBM Network Authentication Service (IBM Kerberos) 的支持和开发活动。他的研究领域主要包括 Kerberos 和 LDAP 集成、网络安全、身份验证协议和 PKI。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=380764
ArticleTitle=IBM Network Authentication Service KDC 配置,第 3 部分: 使用 LDAP 在 AIX 上配置一个从 KDC
publish-date=04092009
author1-email=rsandeep@in.ibm.com
author1-email-cc=
author2-email=vrathor1@in.ibm.com
author2-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。