跳转到主要内容

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

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

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

  • 关闭 [x]

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

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

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

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

  • 关闭 [x]

Kerberos LDAP 主-从配置管理

Sivarami R. Chaganti, 软件工程师, WSO2 Inc
http://www.ibm.com/developerworks/i/p-schaganti.jpg
Sivarami R. Chaganti 是 AIX 方面的开发支持专家,拥有 2 年的 AIX 环境经验,并且是 AIX 系统管理和安全模块 bug 修复专家。他有与客户交互的经验,能够应付紧急情况。
Uma Chandolu, 软件工程师, WSO2 Inc
Uma M. Chandolu 是一名 AIX 上的开发支持专家。他目前是 IBM 班加罗尔的 AIX 安全开发支持团队的团队负责人。他拥有三年 AIX 环境中的广泛实践经验,并擅长于 AIX 系统管理和其他子系统。他拥有与客户合作和处理客户关键型情景的经验。

简介: Kerberos 和 LDAP 被设计为允许设置主/从服务器。在集中化的环境中,可以通过 LDAP/KRB5LDAP (Kerberos LDAP) 协议来处理用户和组管理。本文解释如何为 KRB5LDAP 客户机配置 KRB5LDAP (Kerberos LDAP) 主/从服务器。

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


概述

KRB5LDAP 客户机从 KRB5LDAP 主服务器获取用户和组信息。如果 KRB5LDAP 主服务器因为不可用而不响应 KRB5LDAP 客户机,那么 Kerberos LDAP 客户机将向 KRB5LDAP 从服务器发送一个请求,以获取用户和组信息。

KRB5LDAP 客户机应用程序设计为在 KRB5LDAP 主服务器停机的情况下,尝试根据从服务器执行身份验证。因此在系统失败时,管理员不需要做额外工作就可以将 Kerberos 身份验证服务故障转移到备份服务器。不过 Kerberos 的管理特性不提供自动故障转移。


图 1. 图表
图表

如果 Kerberos 主服务器发生故障,kadmind 守护进程将不可用。因此,在修复或替换主服务器之前,管理功能是不可用的。特别是主管理、关键创建和关键变更操作在 Kerberos 主服务器失败期间是不能执行的。

本文使用 IBM® Tivoli® 目录服务器(LDAP)作为数据库服务器,使用 IBM Network Authentication Services (NAS) 作为 Kerberos 验证服务器。

配置

LDAP 配置

LDAP 被设计为允许设置主/备份配置。首先,按照下面的说明配置 LDAP 主/备份服务器。

使用 AIX® mksecldap 命令配置 LDAP 服务器和客户机。这个命令自动将 LDAP 信息更新到所需的 LDAP 配置文件。参见 参考资料 小节获得关于配置 LDAP 主-备份拓扑结构的信息。

使用 LDAP 数据库(KRB5LDAP 主/从)配置 Kerberos 主/从服务器

  • 下面的步骤在 ldap 数据库中定义这两个模式定义:

    在 LDAP 主/备份服务器上添加 Kerberos 模式。NAS 在 /usr/krb5/ldif 目录中附带有一个 ldif 文件。使用 ldapmodify 命令将该模式导出到 LDAP 主/备份服务器。

    ldapmodify 使用以下语法:

     ldapmodify -h <LDAP Master hostname/ LDAP replica hostname>
    -D <bind dn> -w <bind passwd>  -f /usr/krb5/ldif/IBM.KRB.schema.ldif -v -c
       

    例如:

    ldapmodify -h server1.in.ibm.com -D cn=admin -w adminpwd -f
    /usr/krb5/ldif/IBM.KRB.schema.ldif -v -c

  • 下面的步骤将 Kerberos 域导出到 LDAP 服务器:

    NAS 附带有一个 realm_add.ldif 文件,该文件在 /usr/krb5/ldif 目录中。使用 Kerberos 域和 LDAP 后缀信息更新这个文件。需要更改的地方包括使用 LDAP 后缀替换默认的后缀,并且这个域名应该与将在 Kerberos 配置中使用的域名一样。



    realm_add.ldif 文件
    dn: <ou=Austin, o=IBM, c=US>
    ou: <Austin>
    objectclass: organizationalUnit
    
    dn: krbrealmName-V2=<REALM NAME>, <ou=Austin, o=IBM, c=US>
    objectclass: KrbRealm-V2
    objectclass: KrbRealmExt
    krbrealmName-V2: <REALM NAME>
    krbprincSubtree: krbrealmName-V2=<REALM NAME>, <ou=Austin, o=IBM, c=US>
    krbDeleteType: 4
    krbMaxFailAuth: 0
    krbDisableTimeInterval: 0
    
    dn: cn=principal, krbrealmName-V2=<REALM NAME>, <ou=Austin, o=IBM, c=US>
    objectclass: container
    cn: principal
    
    dn: cn=policy, krbrealmName-V2=<REALM NAME>, <ou=Austin, o=IBM, c=US>
    objectclass: container
    cn: policy
          

    使用命令 ldapadd 将该文件导出到 LDAP 主/从服务器。



    ldapadd 语法
     ldapadd -h <LDAP server hostname/LDAP Replica server hostname> -D <bind dn>
     -w <bind passwd> -f /usr/krb5/ldif/realm_add.ldif -v -c

    例如:

     ldapadd -h server1.in.ibm.com -D cn=admin   -w adminpwd 
    -f /usr/krb5/ldif/realm_add.ldif -v -c

    将 Kerberos 模式定义导出到 LDAP 服务器之后,使用命令 ldapsearch 检查它。



    ldapsearch 语法
    ldapsearch -h <LDAP master/Replica hostname> -D <bind dn> -w <bind
    passwd>  -b <LDAP suffix> objectclass=* | more
            

    例如:

    ldapsearch -h server1.in.ibm.com -D cn=admin -w adminpwd -b " ou=People,o=sec"
    objectclass=* | more

使用 LDAP 主服务器配置 Kerberos 主服务器

使用命令 mkkrb5srv 配置带有 LDAP 主服务器的 Kerberos 主服务器。


mkkrb5srv 语法
mkkrb5srv -r <realm> -s <KDC server> -d <Domain name>  -a <Adminitstrater name> 
 -l <LDAP master server>  -u <bind dn> -p <bind passwd> 

例如:

mkkrb5srv -r TEST -s server1.in.ibm.com -d in.ibm.com -a admin/admin
-l server1.in.ibm.com -u cn=admin -p adminpwd

命令 mkkrb5srv 启动 krb5kdc 和 kadmind 进程。使用命令 ps 检查这个进程。

      ps -eaf|grep KRB5

Kerberos 服务器类型信息存储在 /etc/krb5/krb5_cfg_type 文件中。这个文件包含主/从服务器的信息。

通过 LDAP 数据库运行命令 mkkrb5srv 将导致类似于遗留数据库配置的操作(除了数据库创建不同之外)。因为 LDAP 用作后端存储,所以没有在本地文件系统中创建数据库文件。相反,将在 /var/krb5/krb5kdc 目录中创建一个 .kdc_ldap_data 文件来保存关于 LDAP 的信息。

在 LDAP 备份服务器上配置 Kerberos 从服务器

像下面这样使用命令 config.krb5 配置 Kerberos 从服务器。


config.krb5 语法
config.krb5 -E -d <domain name> -r <realm> -s <KDC server>
 -l <LDAP replica server> -u <bind dn> -p <bind passwd>

例如:

config.krb5 -E -d in.ibm.com -r TEST -s server1.in.ibm.com -l
server2.in.ibm.com   -u cn=admin -p adminpwd

选项 -E 指定配置的是从 KDC 服务器。

<realm> 名应该与 Kerberos 主服务器相同。

这将启动 krb5kdc 守护进程,并使用命令 ps 进行检查:

 ps -eaf|grep KRB5

Kerberos 服务器类型信息存储在 /etc/krb5/krb5_cfg_type 文件中。这个文件包含主或从服务器的信息。使用以下命令检查 Kerberos 服务器的类型:

      # cat /etc/krb5/krb5_cfg_type 

查看 /etc/krb5/krb5.conf 文件确认从服务器配置。

# cat /etc/krb5/krb5.conf
[libdefaults]
   default_realm = TEST
   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]
        TEST = {
  
	    kdc = Server1.in.ibm.com:88
           kdc = Server2.in.ibm.com:88
           admin_server = Server1.in.ibm.com:749 
             default_domain = in.ibm.com
             vdb_plugin_lib = /usr/lib/libkrb5ldplug.a
        }

[domain_realm]
        .in.ibm.com = TEST
        Server1.in.ibm.com = TEST
        Server2.in.ibm.com = TEST

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

在用作数据库服务器的 LDAP 中,将在 /var/krb5/krb5kdc 目录下创建一个 .kdc_ldap_data 文件来保存关于 LDAP 的信息。

在用作后端存储的 LDAP 中,将不在本地文件系统创建数据库文件。相反,将在 /var/krb5/krb5kdc 目录下创建一个 .kdc_ldap_data 文件来保存关于 LDAP 的信息。因此必须在 Kerberso 主和从服务器中编辑 .kdc_ldap_data 文件,然后同步这两个服务器。

在 Kerberos 主服务器上,添加 KDC 从条目:

[ldapdefaults]
           realm = TEST
           bind_dn = cn=admin
           bind_dn_pw = adminpwd
           ldapserver = server1.in.ibm.com
	ldapserver = server2.in.ibm.com
            bind_type = simple
            #LDAP_OPT_REFERRALS = 1
            #LDAP_OPT_DEBUG = 0
            #LDAP_OPT_DEREF = 0
            #LDAP_OPT_TIMELIMIT = 300
            #LDAP_OPT_SIZELIMIT = 0
            #LDAP_OPT_SSL_TIMEOUT = 43200
            #LDAP_OPT_REFHOPLIMIT = 10
[servers]
          server1.in.ibm.com = {
                port = 389
                replica_type = readwrite
                preference = 9
        }
        server2.in.ibm.com = {
                port = 389
                replica_type = readonly
                preference = 4
        }
			

在 Kerberos 从服务器上,添加 KDC 主条目:

[ldapdefaults]
        realm = TEST
        bind_dn = cn=admin
        bind_dn_pw = adminpwd
        ldapserver = server2.in.ibm.com
	 ldapserver = server1.in.ibm.com
        bind_type = simple
        #LDAP_OPT_REFERRALS = 1
        #LDAP_OPT_DEBUG = 0
        #LDAP_OPT_DEREF = 0
        #LDAP_OPT_TIMELIMIT = 300
        #LDAP_OPT_SIZELIMIT = 0
        #LDAP_OPT_SSL_TIMEOUT = 43200
        #LDAP_OPT_REFHOPLIMIT = 10

[servers]
        server2.in.ibm.com = {
                port = 389
                replica_type = readonly
                preference = 9
        }

       server1.in.ibm.com = {
                port = 389
                replica_type = readwrite
                preference = 4
        } 
			

配置 Kerberos 客户机

使用 mkkrb5clnt 命令配置带有 Kerberos 服务器的 Kerberos 客户机。


mkkrb5clnt 语法
 mkkrb5clnt -r  <realm> -d <domain name> {-c <KDC server> -s
<server> | -l {ldapserver | ldapserver:port}  [-c <KDC> -s <server>]} 
[-a <admin>] [-A] [-i <data base>] [-K] [-T]

mkkrb5clnt -r TEST -c server1.in.ibm.com -s server1.in.ibm.com -d in.ibm.com -i LDAP -K -T

mkkrb5clnt 创建包含 <realm> 名称、KDC 服务器、Kerberos 管理服务器和域名信息的 /etc/krb5/krb5.conf 文件。

#cat /etc/krb5/krb5.conf 
[libdefaults]
   default_realm = TEST
    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]
        REDDY = {
                kdc = server1.in.ibm.com:88
                admin_server = server1.in.ibm.com:749
                default_domain = in.ibm.com
        }
[domain_realm]
        .in.ibm.com = TEST
        server1.in.ibm.com = TEST

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

Kerberos 服务器类型信息存储在 /etc/krb5/krb5_cfg_type 文件中。这个文件应该包含 “客户机” 的信息。

Kerberos 用户可以从 Kerberos 客户机创建。要创建 Kerberos 用户,根用户必须拥有凭证。凭证可以通过 kinit 命令从 KDC 服务器获取。

# /usr/krb5/bin/kinit admin/admin 

admin/admin@TEST 的密码:

可以使用 /usr/krb5/bin/klist 命令来验证凭证文件。

在 AIX Kerberos 客户机上,可以使用 mkuser 命令按照以下方式创建 Kerberos 用户:

# mkuser -R KRB5LDAP SYSTEM= "KRB5LDAP" registry=KRB5LDAP
<user1>

通过密码命令为用户设置密码,然后验证登录。

#passwd -R KRB5LDAP <user1>

在 Kerberos 客户机服务器中添加从 KDC 服务器的详细信息

Cat /etc/krb5/krb5.conf
[libdefaults]
   default_realm = TEST
   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]
        TEST = {
                kdc = server1.in.ibm.com:88
          kdc = server2.in.ibm.com:88
                admin_server = server1.in.ibm.com:749
                default_domain = in.ibm.com
        }

[domain_realm]
        .in.ibm.com = TEST
        server1.in.ibm.com = TEST
   server2.in.ibm.com = TEST
[logging]
        kdc = FILE:/var/krb5/log/krb5kdc.log
        admin_server = FILE:/var/krb5/log/kadmin.log
        default = FILE:/var/krb5/log/krb5lib.log
      

这个故障转移机制可以按照以下方法进行验证。停止并关闭 LDAP 主服务器和 Kerberos 主服务器。从 Kerberos 客户机运行 kinit。此外,保证所有 Kerberos 用户 都从客户机登录。

在 Kerberos 从服务器中检查 /var/krb5/log/ krb5kdc.log 文件,以跟踪事件机制。


参考资料

学习

  • AIX v 5.3 安全指南

  • Setting up Tivoli Directory Server replication using the command line帮助管理员理解使用命令行设置 Tivoli® Directory Server (TDS) 复制的基础知识。

  • AIX 中的 LDAP 配置管理和故障诊断概述了 LDAP 配置和管理。

  • AIX 5L LDAP 用户管理提供 AIX 5L 操作系统 V5.3 TL5 更新中关于 LDAP 改进的概述。

  • Understanding LDAP Design and implementation:这份 IBM 红皮书能够帮助您掌握扎实的 LDAP 技巧,并且教您安装和配置 IBM Directory Server。

  • Integrating AIX into heterogeneous LDAP environments:对于将 AIX 5L 客户机添加到现有 LDAP 身份验证和用户管理环境的企业,这份 IBM 红皮书是很好的技术规划参考。

  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。

  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。

  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。

  • IBM NAS 专题:Network Authentication Service 是 IBM 为用户提供的一种 Kerberos 实现。它可以实现用户身份认证,系统间的身份认证以及通信加密等功能。通过它,您可以大大提高您系统的安全性,同时让实现这些复杂的功能变得十分简单。通过我们为您推荐的文章,你可以了解到很多 NAS 的应用场景,让您知道如何使用它。

  • 浏览 技术书店,阅读有关这些主题和其他技术主题的图书。

获得产品和技术

  • 下载 IBM 产品评估版,试用来自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的应用程序开发工具和中间件产品。

讨论

作者简介

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

Sivarami R. Chaganti 是 AIX 方面的开发支持专家,拥有 2 年的 AIX 环境经验,并且是 AIX 系统管理和安全模块 bug 修复专家。他有与客户交互的经验,能够应付紧急情况。

Uma M. Chandolu 是一名 AIX 上的开发支持专家。他目前是 IBM 班加罗尔的 AIX 安全开发支持团队的团队负责人。他拥有三年 AIX 环境中的广泛实践经验,并擅长于 AIX 系统管理和其他子系统。他拥有与客户合作和处理客户关键型情景的经验。

关于报告滥用的帮助

报告滥用

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


关于报告滥用的帮助

报告滥用

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


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=380349
ArticleTitle=Kerberos LDAP 主-从配置管理
publish-date=04072009
author1-email=sichagan@in.ibm.com
author1-email-cc=
author2-email=uchandol@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)。