WEB开发网
开发学院操作系统Linux/Unix IBM Network Authentication Service KDC 配置,第... 阅读

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

 2009-07-13 08:34:19 来源:WEB开发网   
核心提示:简介这个 共分三部分的系列教程 的前两个部分围绕存储身份验证数据的遗留方法,针对性地介绍了 IBM Network Authentication Service (IBM NAS) 从 KDC 的配置,IBM Network Authentication Service KDC 配置,第 3 部分: 使用 LDAP 在

简介

这个 共分三部分的系列教程 的前两个部分围绕存储身份验证数据的遗留方法,针对性地介绍了 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 数据非常方便和实用。

理由:

标准协议:

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

控制对敏感数据的访问:

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

优点:

使用集中式服务器存储数据。

基于事务的系统:

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

配置从 KDC 时,不需要将数据从主 KDC 传播到从 KDC。

自动索引的数据:

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

迁移遗留系统(比如 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 环境。

本系列其他文章:

IBM Network Authentication Service KDC 配置,第 1 部分: 配置和管理 AIX 上 IBM Network Authentication Service 中的从 KDC

IBM Network Authentication Service KDC 配置,第 2 部分: 把从 KDC 升级为主 KDC

Tags:IBM Network Authentication

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接