`
fantaxy025025
  • 浏览: 1329724 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Kerberos LDAP 主-从配置管理

 
阅读更多

 

kerberos 主从安装

操作系统 ubuntu 12.04 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Kerberos Server
#####################   规范介绍    #######################################
    Realm: BJPUC1.COM      --> 建议大写
 
    Primary KDC: nn1.bjpuc1.com   --> 建议用域名 192.168.88.16
 
    Secondary KDC: nn2.bjpuc1.com --> 192.168.88.17
 
    User principal: bjpuc1
 
    Admin principal: bjpuc1/admin
 
    NTP 时间服务器      --> 时间需要同步
#####################   规范介绍    #######################################

Primary KDC

1
2
3
    apt-get install krb5-kdc krb5-admin-server
    krb5_newrealm    
    dpkg-reconfigure krb5-kdc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    cat /etc/krb5.conf    ###此文件为所有应用kerbers 机器通用
        [logging]
                default = FILE:/var/log/krb5libs.log
                kdc = FILE:/var/log/krb5kdc.log
                admin_server = FILE:/var/log/kadmind.log
        [libdefaults]
                default_realm = BJPUC1.COM
                dns_lookup_realm = false
                dns_lookup_kdc = false
                ticket_lifetime = 24h
                renew_lifetime = 2d
                forwardable = true
                renewable = true
        [realms]
                BJPUC1.COM = {
                kdc = nn1.bjpuc1.com
                kdc = nn2.bjpuc1.com
                admin_server = nn1.bjpuc1.com
        }
        [domain_realm]
         
        [kdc]
                profile=/etc/krb5kdc/kdc.conf
1
2
3
4
5
6
7
8
    kadmin.local
        Authenticating as principal root/admin@BJPUC1.COM with password.
        kadmin.local: addprinc bjpuc1/admin
        WARNING: no policy specified for bjpuc1/admin@BJPUC1.COM; defaulting to no policy
        Enter password for principal "bjpuc1/admin@BJPUC1.COM"
        Re-enter password for principal "bjpuc1/admin@BJPUC1.COM"
        Principal "bjpuc1/admin@BJPUC1.COM" created.
        kadmin.local: quit
1
2
3
4
5
    cat /etc/krb5kdc/kadm5.acl
        bjpuc1/admin@BJPUC1.COM        *
    /etc/init.d/krb5-admin-server restart
    kinit bjpuc1/admin
        bjpuc1/admin@BJPUC1.COM's Password:
1
2
3
    cat /etc/hosts        ##或用DNS方式解决
        host/nn1.bjpuc1.com@bjpuc1.com
        host/nn2.bjpuc1.com@bjpuc1.com
1
2
3
4
5
6
7
    kadmin -q "addprinc -randkey host/nn1.bjpuc1.com"
    kadmin -q "ktadd -norandkey -k /etc/krb5.keytab host/nn1.bjpuc1.com"
    klist -k /etc/krb5.keytab
    klist -k /etc/krb5.keytab
    kprop -r bjpuc1.com -f /var/lib/krb5kdc/dump nn2.bjpuc1.com
    vi /etc/crontab
        0 * * * * /usr/sbin/kdb5_util dump /var/lib/krb5kdc/dump && /usr/sbin/kprop -r BJPUC1.COM -f /var/lib/krb5kdc/dump nn2.bjpuc1.com

Secondary KDC

1
2
3
4
5
6
7
8
9
10
    apt-get install krb5-kdc krb5-admin-server
    kadmin -q "addprinc -randkey host/nn2.bjpuc1.com"
    kadmin -q "ktadd -norandkey -k /etc/krb5.keytab host/nn2.bjpuc1.com"
    vi /etc/krb5kdc/kpropd.acl
        host/nn1.bjpuc1.com@bjpuc1.com
        host/nn2.bjpuc1.com@bjpuc1.com
    kdb5_util -s create
    kpropd -S
    kdb5_util stash
    /etc/init.d/krb5-kdc start

Kerberos Linux Client

1
    apt-get install krb5-user libpam-krb5 libpam-ccreds auth-client-config

 

from:http://www.ibm.com/developerworks/cn/aix/library/au-kerberos_mst_slv/

概述

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 文件,以跟踪事件机制。

 

 

 

 

 

+

+

=

=

=

0

0‘

0

 

分享到:
评论

相关推荐

    LDAP详解--IBM Tivoli Directory Server从入门到精通 源码

    **LDAP详解——IBM Tivoli Directory Server从入门到精通 源码** LDAP(轻量级目录访问协议)是一种开放标准的网络协议,用于访问和管理分布式目录服务。IBM Tivoli Directory Server(TDS)是IBM提供的一个强大的...

    AD系统安装配置指南+LDAP详解 IBM Tivoli Directory Server 从入门到精通

    通过深入学习《AD系统安装配置指南》和《LDAP详解 IBM Tivoli Directory Server 从入门到精通》,读者将能掌握AD的部署与管理,以及利用ITDS构建高效、安全的企业目录服务。这两份文档将是你迈进IT领域不可或缺的...

    大数据组件集成LDAP

    - 配置客户端以支持LDAP和Kerberos的联合认证。 #### 十一、Ambari集成 - 使用Ambari Server命令行工具进行LDAP集成。 - 重启Ambari Server以应用更改。 - 使用Ambari Server同步LDAP用户。 - 验证LDAP用户是否成功...

    kerberos and ldap

    具体步骤包括设置Kerberos的krb5.conf文件以指向LDAP服务器,配置Kerberos的KADM5 ACL允许从LDAP读取和更新数据,以及在LDAP中创建必要的Kerberos对象。 **总结** Kerberos和LDAP的结合为Linux环境提供了强大的身份...

    Kerberos Authorization Directory-开源

    - **配置 KDC**:设置Kerberos服务器以使用LDAP作为后端。 - **应用补丁**:安装必要的补丁以优化系统性能。 - **测试与验证**:在实际部署前进行详尽的测试,确保系统功能正常且安全。 总的来说,Kerberos授权目录...

    Open_LDAP安装配置

    **四、Windows下的Open LDAP配置** 1. **环境变量**:设置`LDAP_HOME`指向Open LDAP的安装目录,并将`SLAPD_CONF`设置为配置文件路径。 2. **服务注册**:使用`sc create`命令创建一个新的系统服务,将Open LDAP...

    apacheds-protocol-kerberos-1.0.1.jar.zip

    ApacheDS是一个开源的轻量级目录访问协议(Lightweight Directory Access Protocol, LDAP)服务器,它提供了一个高效、可扩展且高度可用的平台来存储和管理身份数据。Kerberos协议则是网络认证协议,广泛用于验证...

    Ldap学习手册pdf版

    根据提供的文件信息,我们可以从这份名为“Ldap学习手册pdf版”的文档中提炼出与LDAP相关的知识点。以下是对这些知识点的详细阐述: ### LDAP基础知识 #### 1. LDAP简介 - **LDAP**(Lightweight Directory Access ...

    Java LDAP Server-开源

    LDAP是一种网络协议,用于访问和管理分布式身份信息,常用于企业级环境中的用户认证、权限管理和数据存储。通过Java LDAP Server,开发者可以构建自己的目录服务系统,为组织提供灵活的身份验证和数据检索解决方案。...

    Kerberos主从配置.doc

    【Kerberos主从配置详解】 Kerberos是一种网络身份验证协议,主要用于提供安全的网络服务,确保只有经过授权的用户能够访问系统资源。在大型分布式环境中,为了高可用性和故障转移,通常会配置Kerberos主从架构。...

    JAAS.rar_Kerberos_jaas_ldap kerberos

    它让你能够将一些标准的安全机制,例如Solaris NIS(网络信息服务)、Windows NT、LDAP(轻量目录存取协议),Kerberos等通过一种通用的,可配置的方式集成到系统中。本文首先向你介绍JAAS验证中的一些核心部分,...

    LDAP部署文档

    这通常涉及配置应用程序以使用 LDAP 作为身份验证源,并可能需要设置SAML(Security Assertion Markup Language)或Kerberos等协议。具体步骤取决于你使用的应用程序和SSO解决方案。 7. **测试和维护**: 完成配置...

    Springboot-LDAP针对AD域控做用户和组织进行同步.zip

    在提供的"demo"文件中,可能包含了实现上述功能的示例代码,包括Spring Boot配置、Spring Security LDAP配置、以及可能的同步逻辑。通过学习和理解这些代码,开发者可以掌握如何在自己的项目中实现类似的功能。 ...

    Addison Wesley -- LDAP programming with Java.pdf

    - **集中管理**:对于大型组织来说,目录服务能够帮助管理员集中管理和配置用户权限及系统设置。 ##### 4. 如何利用Java进行LDAP编程 - **连接LDAP服务器**:首先,需要建立与LDAP服务器的连接。这通常涉及到指定...

    kerberos的使用和安装包

    安装后,必须配置Kerberos主配置文件(如`/etc/krb5.conf`),定义域和KDC的位置。同时,初始化Kerberos数据库并创建管理员账户也是必要的步骤。 3. **Kerberos管理员** 作为Kerberos管理员,你需要管理Kerberos...

    LDAP搭建资料

    - **Kerberos**:通过Kerberos认证服务,加强LDAP的身份验证安全性。 - **OpenID Connect**:与现代Web应用的集成,实现身份验证和授权。 以上是关于"LDAP搭建资料"的详细知识点,涵盖了从基础概念到实际操作的各个...

    Kerberos认证系统的设计与实现

    7. **Kerberos与其他认证协议的对比**:如LDAP、RADIUS等,Kerberos在安全性、效率和可扩展性上具有优势,但部署和管理相对复杂。 综上所述,Kerberos认证系统通过其独特的设计和实现,为网络环境中的身份验证提供...

    OpenLDAP-Admin-Guide.pdf open ldap 官网2.6.2 版本操作指南

    此外,如果数据隐私和安全要求极高,而你无法满足LDAP的安全配置和管理,那么可能需要考虑其他解决方案。 **LDAP如何工作?** LDAP目录服务通常由三个主要部分组成:服务器(Directory System Agent,DSA)、客户端...

    Softerra LDAP Browser 4.5 (64-bit)

    1. **导入工具**:该软件支持LDAP数据的导入和导出,这使得用户能够方便地将数据从一个LDAP服务器迁移到另一个,或者与不同格式的数据源进行集成。 2. **快速链接**:通过提供一键连接功能,用户可以迅速访问预定义...

Global site tag (gtag.js) - Google Analytics