内容


使用 AIX 上的 LDAP 发现 IBM Network Authentication Service KDC 和管理服务器

Comments

引言

轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP)已经成为了存储所有可能需要查找的数据的行业标准。大多数的产品都已经集成了 LDAP,以便存储静态数据、元数据、或者不会频繁更改但是需要经常引用的信息。IBM® AIX Version 5.3 也使用 LDAP 来存储与用户管理、身份验证等等(请参见参考资料)相关的信息。IBM AIX Version 5.3 登录模块的最大特点是采用了 Kerberos 集成的登录和其他 Kerberos 化的实用工具,比如 FTP、OpenSSH、rlogin 和 AIX NFS Version 4 文件系统(它使用 IBM Network Authentication Service (IBM NAS) 根据 LDAP 进行 Kerberos 化的身份验证),还可以将 IBM AIX Version 5.3 登录模块配置为与 LDAP 集成在一起。

IBM NAS 的特点是使用了两种基于 LDAP 的机制:

  • IBM NAS 客户端使用 LDAP 发现 IBM NAS 服务器
  • 使用 LDAP 目录插件以存储 IBM NAS 身份验证数据

本文重点关注于 IBM NAS 客户端使用 LDAP 来发现 IBM NAS 服务器。本文将向您介绍 IBM NAS 的、基于 LDAP 的特性,这些特性允许 IBM NAS 客户端通过 LDAP 查找来发现 IBM NAS 服务器(也就是 KDC 和管理服务器)。本文将详细阐述配置 NAS 客户端的几种不同方法。最后,说明使用 LDAP 查找的 IBM NAS 配置要比缺省的本地方法更加合适,这将鼓励并且帮助您充分地利用它。

配置 IBM NAS 客户端的几种不同方法

IBM NAS 1.4 提供了下面三种不同的客户端配置,具体包括:

  1. IBM NAS 客户端的缺省配置。
  2. 使用 IBM Tivoli® Directory Server Version 5.2 (TDS) 发现 IBM NAS 服务器。
  3. 使用 TDS 发现 IBM NAS 服务器,包括作为后备机制的缺省配置。

在下面的部分中,您将详细地了解各种配置类型,但首先让我们了解一下 IBM NAS 提供的配置命令。

为了配置任何所需配置类型的 IBM NAS 客户端,可以使用 IBM NAS 客户端安装所附带的 /usr/krb5/sbin/config.krb5 命令。AIX 还附带了一个名为 /usr/sbin/mkkrb5clnt 的类似的命令(它是基本 config.krb5 命令的一个包装),您也可以使用这个命令进行配置操作。有关 mkkrb5clnt 命令的更详细的信息,请参考 AIX 5.3 附带的 AIX 5.3 命令参考。对于本文中的所有配置示例,您都将使用 config.krb5 命令。

下面的示例将提供 config.krb5 命令的使用语法:

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] }

您可以使用相同的命令配置 IBM NAS 客户端以及 IBM NAS 服务器。在本文中,您将重点关注于客户端配置部分。有关 config.krb5 命令的更详细的信息,请参考 AIX Version 5.3 Expansion Pack CD 中的 IBM NAS 1.4 管理员和用户指南。下面的部分将详细说明 IBM NAS 客户端配置的各种类型,并列出各种类型相对于其他类型的优势。

在本文中,将使用下面的定义和配置:

TDS Version 5.2

主机名:fsaix11.in.ibm.com 端口号:389

操作系统:AIX Version 5.3

Kerberos 领域名

ISL.IN.IBM.COM

Kerberos 管理员名称

admin/admin

IBM NAS 1.4 KDC

主机名:huntcup.in.ibm.com 端口号:88

操作系统:AIX V5.3

LDAP 客户端:TDS Version 5.2

IBM NAS 1.4.0.6 管理服务器

主机名:huntcup.in.ibm.com 端口号:749

操作系统:AIX Version 5.3

LDAP 客户端:TDS Version 5.2

IBM NAS 1.4.0.6 客户端

主机名:land.in.ibm.com

操作系统:AIX Version 5.3

LDAP 客户端:TDS Version 5.2

注意:

  • 只有在 AIX 中才支持 IBM NAS 1.4 服务器,而客户端则可以在 Solaris、Linux® 和 Windows® 中使用。(IBM DB2® Universal Database 附带了用于 Linux 和 Solaris 的 IBM NAS 客户端安装软件。要查找更多关于 IBM DB2 UDB 安全的信息,请参见参考资料部分。)
  • IBM NAS 1.4 目前只支持 IBM Tivoli Directory Server Version 5.1 和 5.2,以及 SunONE Directory Server Version 5.1 和 5.2。对于本文中的示例,我们使用 IBM Tivoli Directory Server 5.2 作为 LDAP。
  • 有关 TDS 安装和配置的更详细的信息,请参考 IBM Tivoli Directory Server Version 5.2 文档。

用于服务器查找的 IBM NAS 客户端缺省配置

IBM NAS 客户端最常见的以及缺省的配置是,通过显式地指定运行服务器的计算机的主机名和 IP 地址,直接将 NAS 配置为 Kerberos KDC 和管理服务器。通过在 /etc/krb5/krb5.conf 文件中手动地或者使用 config.krb5 命令指定服务器计算机的主机名,就可以完成这项任务。/etc/krb5/krb5.conf 文件是包含完整的 IBM NAS 客户端配置的配置文件。每当 IBM NAS 客户端(或者在其中运行的应用程序,比如 AIX 的集成登录、Kerberos 化的 ftp 等等)向 Kerberos 服务器发出任何类型的请求时,都将引用这个特定的配置文件。

在下面的场景中,您将通过使用 config.krb5 命令的缺省配置方法,为 IBM NAS 客户端 (land.in.ibm.com) 配置 IBM NAS 服务器 (huntcup.in.ibm.com):

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

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

在成功执行之后,config.krb5 生成了 /etc/krb5/krb5.conf 配置文件。让我们查看一下 land.in.ibm.com 中的 /etc/krb5/krb5.conf 文件:

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

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 = huntcup.in.ibm.com:88
              admin_server = huntcup.in.ibm.com:749
                default_domain = in.ibm.com
        }

[domain_realm]
        .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

注意 [realm] 节中的相关条目。/etc/krb5/krb5.conf 文件的 [realm] 节包含 NAS 客户端在查找 IBM NAS 服务器时所使用的信息。在这个示例中,您可以看到 KDC 服务器([realm] 节中的 "kdc" 条目)和管理服务器([realm] 节中的 "admin_server" 条目)显式地指出了运行服务器的计算机的主机名和端口号,这是缺省本地配置。

现在,通过运行 IBM NAS 命令以获得 Kerberos 凭据,查看所配置的客户端是否可以与 KDC 服务器进行联系:

bash-2.05b# hostname
land.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
08/01/07 22:28:27  08/02/07 22:28:27  krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
        Renew until 08/03/07 03:52:47

因为您可以获得 Kerberos 票据,所以证实了该客户端成功地与 KDC 服务器进行了联系。

另外,通过运行 IBM NAS kadmin 工具列出所有的主体,查看所配置的客户端是否可以与 NAS 管理服务器进行联系:

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

bash-2.05b# /usr/krb5/sbin/kadmin -p admin/admin
Authenticating as principal admin/admin with password.
Password for admin/admin@ISL.IN.IBM.COM:
kadmin:  getprincs
K/M@ISL.IN.IBM.COM
admin/admin@ISL.IN.IBM.COM
admin/sales@ISL.IN.IBM.COM
john@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
kadmin/huntcup.in.ibm.com@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
mack_correct@ISL.IN.IBM.COM
one-minute-sandy@ISL.IN.IBM.COM
sachin/guest@ISL.IN.IBM.COM
tester@ISL.IN.IBM.COM
vipin@ISL.IN.IBM.COM
kadmin:q

因此,您已经成功地使用缺省配置设置了 IBM NAS 客户端,其中在客户端配置文件 (/etc/krb5/krb5.conf) 中对 IBM NAS 服务器条目进行了明确的指定。

如果使用 IBM NAS 客户端的缺省配置能够正常地工作,那么为什么还需要将 IBM NAS 客户端配置为通过 LDAP 查找来发现服务器呢?

使用 TDS 发现 KDC 和管理服务器的必要性

可以考虑这样的生产环境场景,在这个场景中,使用先前介绍的缺省配置为数千台 IBM NAS 客户端计算机配置了 IBM NAS 服务器。在这种情况下,如果您计划将 NAS 服务器移动或者迁移到另一个高端计算机,或者计划对 NAS 服务器计算机的主机名进行重命名,那么您将必须手动地对所有已配置的 IBM NAS 客户端计算机中的配置设置(在 /etc/krb5/krb5.conf 文件中)进行更改。

在这样的场景中,如果通过 TDS 特性来发现 IBM NAS 服务器,那么您只需要进行最少的更改,比如在 LDAP 数据库中对新的 IBM NAS 服务器的主机名进行更新。与 IBM NAS 客户端配置的缺省方法有所不同,这种技术不需要更改任何客户端配置。所有 IBM NAS 客户端都将继续无缝地工作,就好像没有发生任何更改一样。

在下面的部分中,您将了解进行这种设置所需的步骤,以及客户端如何实现这种无缝配置的详细情况。

使用 TDS 发现服务器的 IBM NAS 特性的配置

在这种配置方法中,IBM NAS 服务器的位置信息集中存储于 LDAP 数据库中。所有的 IBM NAS 客户端都配置为通过查找集中的 LDAP 数据库来定位 IBM NAS 服务器。因此,在 IBM NAS 服务器的主机名发生更改的情况下,您只需要在 LDAP 中进行相应的更改,而同时 IBM NAS 客户端将继续无缝地进行工作。这种配置方法包括下面两个步骤:

  1. 服务器端的配置步骤,用于在 TDS 中登记 IBM NAS KDC 和管理服务器信息
  2. 客户端的配置,用于启用通过 TDS 发现 IBM NAS 服务器

服务器端的配置步骤,用于在 TDS 中登记 IBM NAS KDC 和管理服务器信息

  1. 第一个配置步骤是,将 IBM NAS 模式定义添加到 LDAP 目录。TDS 使用这些模式定义进行 IBM NAS KDC 和管理服务器的查找。IBM NAS 1.4 附带了这些模式定义文件(采用 LDAP 数据交换格式 (LDIF)),并且将其安装于 /usr/krb5/ldif 目录之下。/usr/krb5/ldif/IBM.service.schema.ldif 文件包含了 IBM NAS 1.4 与 IBM Tivoli Directory Server Version 5.2 协同工作所需的模式。

    要添加这些模式定义,可以使用 ldapmodify TDS 命令,如下所示:

    #hostname
    huntcup.in.ibm.com
    
    #ldapmodify -h fsaix11.in.ibm.com -D cn=root -w secret
    -f /usr/krb5/ldif/IBM.service.schema.ldif -v -c
    ldap_init(fsaix11.in.ibm.com, 389)
    add attributetypes:
    BINARY (93 bytes) ( 1.3.18.0.2.4.818 NAME 'ibmCom1986-Krb-kerberosRealm' SYNTAX 
       1.3.6.1.4.1.1466.115.121.1.15 )
    add ibmattributetypes:
    BINARY (63 bytes) ( 1.3.18.0.2.4.818 DBNAME( 'kerberosRealm'  'kerberosRealm' ) )
    modifying entry cn=schema
    ldap_modify:  Type or value exists
    ldap_modify:  additional info: attribute type '1.3.18.0.2.4.818' already exists, 
    add operation failed.
    
    
    replace attributetypes:
            BINARY (202 bytes) ( 1.3.18.0.2.4.818 NAME ('ibmCom1986-Krb-kerberosRealm'
      'KerberosRealm'  )
             DESC 'Kerberos realm name' EQUALITY caseExactMatch SYNTAX
    1.3.6.1.4.1.1466.115.121.1.15 
             SINGLE-VALUE USAGE userApplications )
    replace ibmattributetypes:
           BINARY (94 bytes) ( 1.3.18.0.2.4.818 DBNAME( 'kerberosRealm'  'kerberosRealm'
     ) ACCESS-CLASS
             normal LENGTH 256 )
    modifying entry cn=schema
    
    add objectclasses:
            BINARY (69 bytes) ( 1.3.18.0.2.6.173 NAME 'ibmCom1986-Krb-kerberosService'
     STRUCTURAL )
    modifying entry cn=schema
    ldap_modify:  Type or value exists
    ldap_modify:  additional info: object class '1.3.18.0.2.6.173' already exists, add
     operation failed.
    
    
    replace objectclasses:
            BINARY (258 bytes) ( 1.3.18.0.2.6.173 NAME (
     'ibmCom1986-Krb-kerberosService'  'KerberosService'
              ) DESC 'A kerberosService object is created for each host system within the
     realm.' SUP eService
               STRUCTURAL MUST ( ibmCom1986-Krb-kerberosRealm ) MAY ( ipServicePort
     $ seeAlso ) )
    modifying entry cn=schema

    在添加 LDIF 文件的模式定义时,您可能会接收到一些错误信息,这些错误信息告诉您该属性和 OID 已经存在。可以忽略这些错误信息,这不会出现任何危险。您不需要对 /usr/krb5/ldif/IBM.service.schema.ldif LDIF 文件进行任何更改。

    有关 ldapmodify 命令及其使用的更详细的信息,请参考 IBM Tivoli Directory Server V5.2 文档。

  2. 在加载了所需的模式之后,您需要在 LDAP 目录中为您的根域名添加一个后缀。在这个示例中,您使用 ISL.IN.IBM.COM 作为 Kerberos 领域;因此,您需要添加一个后缀 "COM" 作为域的一部分。要完成这项任务,请登录到 TDS 计算机(在这个示例中,它是 fsaix11.in.ibm.com),停止 TDS 服务器,添加后缀,并重新启动 TDS 服务器,如下所示:
    [root@fsaix11 ldif ]# hostname
    fsaix11.in.ibm.com
    
    [root@fsaix11 ldif ]# ibmdirctl -D cn=root -w secret stop
    Stop operation succeeded
    
    [root@fsaix11 ldif ]# ldapcfg -s dc=COM -n
    
     You have chosen the following actions:
    
     Suffix 'dc=COM' will be added to the configuration file.
    
     Adding suffix: 'dc=COM'.
     Added suffix: 'dc=COM'.
    
    IBM Tivoli Directory Server Configuration complete.
    
    [root@fsaix11 ldif ]# ibmdirctl -D cn=root -w secret start
    Start operation succeeded
  3. 接下来,将 Kerberos 领域信息添加到 LDAP 目录。Kerberos 领域的每个部分分别对应于 LDAP 目录中的一个域组件条目。因此,让我们为 "ISL.IN.IBM.COM" Kerberos 领域定义域组件。要完成这项任务,请修改 /usr/krb5/ldif/service_add.ldif 文件,该文件由 IBM NAS 服务器计算机(在我们的示例中为 huntcup.in.ibm.com)中的 IBM NAS 文件集提供,并且进行下面的更改:
    dn: dc=COM
    dc: COM
    objectClass: top
    objectClass: domain
    description: Domain realm COM
    
    dn: dc=IBM, dc=COM
    dc: IBM
    objectClass: domain
    description: Domain realm IBM.COM
    
    dn: dc=IN, dc=IBM, dc=COM
    dc: IN
    objectClass: domain
    description: Domain realm IN.IBM.COM
    
    dn: dc=ISL, dc=IN, dc=IBM, dc=COM
    dc: ISL
    objectClass: domain
    description: Domain realm ISL.IN.IBM.COM

    要将上面的 LDIF 文件信息添加到 LDAP 目录,可以使用 IBM NAS 服务器计算机中的 ldapmodify 命令,如下所示:

    #hostname
    huntcup.in.ibm.com
    
    #ldapmodify -h fsaix11.in.ibm.com -D cn=root -w secret -f
     /usr/krb5/ldif/service_add.ldif -v -c -a
    ldap_init(fsaix11.in.ibm.com, 389)
    add dc:
            BINARY (3 bytes) COM
    add objectClass:
            BINARY (3 bytes) top
            BINARY (6 bytes) domain
    add description:
            BINARY (16 bytes) Domain realm COM
    adding new entry dc=COM
    
    add dc:
            BINARY (3 bytes) IBM
    add objectClass:
            BINARY (6 bytes) domain
    add description:
            BINARY (20 bytes) Domain realm IBM.COM
    adding new entry dc=IBM, dc=COM
    
    add dc:
            BINARY (2 bytes) IN
    add objectClass:
            BINARY (6 bytes) domain
    add description:
            BINARY (23 bytes) Domain realm IN.IBM.COM
    adding new entry dc=IN, dc=IBM, dc=COM
    
    add dc:
            BINARY (3 bytes) ISL
    add objectClass:
            BINARY (6 bytes) domain
    add description:
            BINARY (27 bytes) Domain realm ISL.IN.IBM.COM
    adding new entry dc=ISL, dc=IN, dc=IBM, dc=COM
  4. 在 LDAP 目录中,为您的 Kerberos 领域添加 IBM NAS KDC 和管理服务器条目。要完成这项任务,可以使用 IBM NAS /usr/krb5/sbin/ksetup 命令。ksetup 命令为 NAS 领域处理 LDAP 目录中的 NAS 条目。它提供了各种子命令,以添加、删除和列出相关条目。有关 ksetup 的完整信息,请参考 AIX Version 5.3 Expansion Pack CD 所附带的 IBM NAS 1.4 管理员和用户指南。

    通过使用 ksetup 命令,您将 huntcup.in.ibm.com 添加作为 ISL.IN.IBM.COM 领域的 KDC 和管理服务器。然后,通过列出服务器来验证添加操作,如下所示:

    #hostname
    huntcup.in.ibm.com
    
    # /usr/krb5/sbin/ksetup -h fsaix11.in.ibm.com -n cn=root -p secret
    ksetup>
    addadmin huntcup.in.ibm.com ISL.IN.IBM.COM
    ksetup>
    addkdc huntcup.in.ibm.com ISL.IN.IBM.COM
    ksetup>
    listkdc
      huntcup.in.ibm.com:88
    ksetup>
    listadmin
      huntcup.in.ibm.com:749
    ksetup>
    exit

    请注意,ksetup 已经为 KDC 和管理服务器分配了缺省端口号。如果您希望覆盖这个缺省端口号,那么可以使用 addadminaddkdc 子命令来指定端口号。例如,可以尝试 addadmin huntcup.in.ibm.com:99 ISL.IN.IBM.COM

    这将完成 IBM NAS 服务器查找的服务器端配置步骤。现在,您将进行 IBM NAS 客户端的设置,使其能够使用 IBM Directory Server 发现 NAS 服务器的位置。

客户端的配置,用于支持通过 TDS 发现 IBM NAS 服务器

第一步、也是最重要的一个步骤,您需要确保已经在每台 IBM NAS 客户端计算机中安装了 TDS 客户端。要将 IBM NAS 客户端配置为使用 LDAP 方法发现 IBM NAS 服务器,可以使用 /usr/krb5/sbin/config.krb5 命令,但这次需要使用不同的参数,如下所示:

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

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

为了使用不同的配置方法重新配置 IBM NAS 客户端,您需要首先通过在客户端计算机中运行 /usr/krb5/sbin/unconfig.krb5 命令,以取消现有的客户端配置。

请注意,这一次您使用了 -l <ldap_server> 选项,以便告诉 IBM NAS 客户端使用指定的 TDS 服务器进行 KDC 和管理服务器的查找。下面让我们来看一下 IBM NAS 客户端配置文件的内容:

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

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
        use_ldap_lookup = 1
       ldap_server = fsaix11.in.ibm.com

[realms]					
        ISL.IN.IBM.COM = {
                default_domain = in.ibm.com
        }

[domain_realm]
        .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

注意 use_ldap_server = 1 配置文件条目。这个条目表示 IBM NAS 客户端使用 TDS 服务器进行 NAS 服务器的查找,而 ldap_server = fsaix11.in.ibm.com 条目则告诉您应该联系哪一台 TDS 服务器。注意:与缺省情况不同的是,对于这种配置类型,在 [realm] 节之下没有相应的 "kdc" 或者 "admin_server" 条目。

通过在 kinit 命令之后运行 klist 命令,以验证您的设置:

bash-2.05b# hostname
land.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
08/17/07 07:04:53  08/18/07 07:04:53  krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
        Renew until 08/18/07 07:05:02

正如您可以看到的,成功地使用 TDS 与您的 KDC 进行了联系,并获得了初始票据。您还将验证客户端设置是否可以使用 TDS 与管理服务器进行联系:

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

bash-2.05b# /usr/krb5/sbin/kadmin -p admin/admin
Authenticating as principal admin/admin with password.
Password for admin/admin@ISL.IN.IBM.COM:
kadmin:  getprincs
K/M@ISL.IN.IBM.COM
admin/admin@ISL.IN.IBM.COM
admin/sales@ISL.IN.IBM.COM
john@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
kadmin/huntcup.in.ibm.com@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
mack_correct@ISL.IN.IBM.COM
one-minute-sandy@ISL.IN.IBM.COM
sachin/guest@ISL.IN.IBM.COM
tester@ISL.IN.IBM.COM
vipin@ISL.IN.IBM.COM
kadmin:q

您成功地使用 TDS 与 NAS 服务器进行了无缝联系。

使用 LDAP 特性发现管理服务器和 KDC 的实用工具具体包括下面内容:

  • kadmin:这个实用工具可以从 LDAP 服务器中获得 kadmin 服务器的名称和端口号。
  • kinit:这个实用工具可以从 LDAP 服务器中获得 KDC 的名称和端口号。
  • kpasswd:这个实用工具可以从 LDAP 服务器中获得密码更改服务的名称和端口号。
  • ksetup:这个实用工具将 KDC 服务器的管理和信息放置于 LDAP 目录中。

使用以上的配置也存在一些局限性,其中之一是当 TDS 服务器停机时,IBM NAS 客户端将无法发现和联系任何 IBM NAS 服务器。为了克服这个问题,IBM NAS 提供了另一种客户端配置,在这种配置中,IBM NAS 客户端首先使用 TDS 进行 NAS 服务器的发现。如果 IBM NAS 无法连接到 TDS 服务器,那么它将转而使用本地配置文件来进行 NAS 查找。让我们来分析一下这种配置类型是如何工作的。

使用带后备机制的 TDS 进行服务器发现的 IBM NAS 客户端配置

正如在前面的 IBM NAS 客户端配置中所说明的,请确保您已经在客户端计算机中安装了 TDS 客户端和 IBM NAS 文件集。

现在,让我们将 IBM NAS 客户端配置为使用带后备机制的 TDS 进行服务器的发现:

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

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

请注意,这次您在配置 IBM NAS 客户端时,指定了 config.krb5 命令中的 -l-c-s 选项。

下面让我们来看一下本地 IBM NAS 客户端配置文件的内容:

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

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
        use_ldap_lookup = 1
       ldap_server = fsaix11.in.ibm.com

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

[domain_realm]
        .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

在这种配置方法中,配置文件中包含您的 LDAP 服务器信息,以及 "kdc" 和 "admin_server" 条目。可以通过 kinitklist 命令,使用 TDS 解析 KDC 位置:

bash-2.05b# hostname
land.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
08/17/07 07:08:32  08/18/07 07:08:32  krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM

您可以成功地使用 TDS 服务器获得初始票据。另外,验证您是否可以与 IBM NAS 管理服务器进行联系:

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

bash-2.05b# /usr/krb5/sbin/kadmin -p admin/admin
Authenticating as principal admin/admin with password.
Password for admin/admin@ISL.IN.IBM.COM:
kadmin:  getprincs
K/M@ISL.IN.IBM.COM
admin/admin@ISL.IN.IBM.COM
admin/sales@ISL.IN.IBM.COM
john@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
kadmin/huntcup.in.ibm.com@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
mack_correct@ISL.IN.IBM.COM
one-minute-sandy@ISL.IN.IBM.COM
sachin/guest@ISL.IN.IBM.COM
tester@ISL.IN.IBM.COM
vipin@ISL.IN.IBM.COM
kadmin:  q

到目前为止,您已经将 IBM NAS 客户端配置为使用带后备机制的 TDS 进行 NAS 服务器的发现。为了检查后备机制是否正常工作,可以关闭 TDS 服务器计算机中的 TDS 服务器,如下所示:

[root@fsaix11 ldif ]# hostname
fsaix11.in.ibm.com

[root@fsaix11 ldif ]# ibmdirctl -D cn=root -w secret stop
Stop operation succeeded

现在,回到您刚刚配置为使用后备机制的 IBM NAS 客户端计算机,并尝试获得一个初始票据,如下所示:

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

bash-2.05b# /usr/krb5/bin/kinit admin/admin
connect: A remote host refused an attempted connect operation.
The ldap_simple_bind_s system function detects an error. LDAP_CONNECT_ERROR.
connect: A remote host refused an attempted connect operation.
The ldap_simple_bind_s system function detects an error. LDAP_CONNECT_ERROR.
Password for admin/admin@ISL.IN.IBM.COM:
connect: A remote host refused an attempted connect operation.
The ldap_simple_bind_s system function detects an error. LDAP_CONNECT_ERROR.
connect: A remote host refused an attempted connect operation.
The ldap_simple_bind_s system function detects an error. LDAP_CONNECT_ERROR.

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
08/17/07 07:12:01  08/18/07 07:11:54  krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM

请注意,即使在 TDS 服务器停机的情况下,您也可以进行 kinit 操作。在连接到 IBM NAS 管理服务器时,您也可以看到相同的行为:

bash-2.05b# /usr/krb5/sbin/kadmin -p admin/admin
Authenticating as principal admin/admin with password.
connect: A remote host refused an attempted connect operation.
The ldap_simple_bind_s system function detects an error. LDAP_CONNECT_ERROR.
connect: A remote host refused an attempted connect operation.
The ldap_simple_bind_s system function detects an error. LDAP_CONNECT_ERROR.
connect: A remote host refused an attempted connect operation.
The ldap_simple_bind_s system function detects an error. LDAP_CONNECT_ERROR.
Password for admin/admin@ISL.IN.IBM.COM:
connect: A remote host refused an attempted connect operation.
The ldap_simple_bind_s system function detects an error. LDAP_CONNECT_ERROR.
connect: A remote host refused an attempted connect operation.
The ldap_simple_bind_s system function detects an error. LDAP_CONNECT_ERROR.
kadmin:  getprincs
K/M@ISL.IN.IBM.COM
admin/admin@ISL.IN.IBM.COM
admin/sales@ISL.IN.IBM.COM
john@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
kadmin/huntcup.in.ibm.com@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
mack_correct@ISL.IN.IBM.COM
one-minute-sandy@ISL.IN.IBM.COM
sachin/guest@ISL.IN.IBM.COM
tester@ISL.IN.IBM.COM
vipin@ISL.IN.IBM.COM
kadmin:  q

您已经成功地配置了 IBM NAS 客户端,使其使用带后备机制的 TDS 来查找 NAS 服务器。

结束语

在本文中,您研究了使用 TDS 进行 IBM NAS KDC 和管理服务器发现所需的所有配置步骤。您还了解了各种可能的 IBM NAS 客户端配置类型,从而使您能够更有效地配置您的 Kerberos 环境,以便管理 IBM NAS 服务器的配置更改。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=286726
ArticleTitle=使用 AIX 上的 LDAP 发现 IBM Network Authentication Service KDC 和管理服务器
publish-date=02042008