kerberos ldap_在AIX上使用LDAP主副本拓扑配置Kerberos主从KDC

在Kerberos生产环境中,最佳实践是使用LDAP(轻型目录访问协议)目录存储Kerberos主体和策略信息。 这使Kerberos管理员可以集中管理和监视Kerberos数据。

在Kerberos设置中,建议始终与主KDC(密钥分发中心)一起使用多个从KDC,以支持主KDC提供全天候可用性以及对身份验证服务的持续支持。其他kerberized服务(例如,AIX®NFS v4,SSH,telnet等)。

使用LDAP目录时,通常有一个主LDAP服务器和几个其他LDAP复制服务器,以实现目录数据的负载平衡和高可用性。

典型的Kerberos生产环境通常同时具有以上两种配置,这意味着它可能具有Kerberos主从KDC设置以及LDAP主副本设置。 并且需要专业的Kerberos管理员来设置这种类型的配置。 本文介绍如何配置这样的环境。

设置示例

本文将为Kerberos使用IBM®网络认证服务(IBM NAS),为AIX平台上的LDAP目录服务器使用IBMTivoli®Directory Server 6.1(ITDS)。

LDAP主服务器和副本服务器的配置不在本文讨论范围之内。 请参阅您的LDAP文档以获取该特定信息。 本文引用了以下LDAP设置:

图1. LDAP主副本拓扑的示例设置
LDAP主副本拓扑的示例设置

以下信息与Kerberos设置有关。

Kerberos管理员名称:
管理员/管理员

Kerberos领域名称:
测试

IBM NAS 1.4.0.7主KDC:
主机名:master.in.ibm.com端口:88

IBM NAS 1.4.0.7管理服务器:
主机名:master.in.ibm.com端口:749

IBM NAS 1.4.0.7从属KDC:
主机名:slave.in.ibm.com端口:88

已将IBM NAS 1.4.0.7客户端配置为主KDC:
主机名:client.in.ibm.com

IBM Tivoli Directory Server v6.1(LDAP主服务器):
主机名:lmaster1.in.ibm.com端口:389
主机名:lmaster2.in.ibm.com端口:389

IBM Tivoli Directory Server v6.1(LDAP副本服务器):
主机名:replica1.in.ibm.com端口:389
主机名:replica2.in.ibm.com端口:389
主机名:replica3.in.ibm.com端口:389

所有这些机器都使用IBM NAS版本1.4.0.7。 您可以从AIX扩展包CD或IBM AIX Web下载包程序中获得它。 (请参阅参考资料 )。

图2显示了将在本文结尾处实现的Kerberos设置。

图2. Kerberos主从KDC配置的示例设置
Kerberos主从KDC配置的示例设置

配置步骤

本节介绍管理员设置上述Kerberos配置所需执行的必要步骤。

由于主KDC和管理服务器需要主体数据库的读写副本才能进行所需的更改,因此您将使用LDAP主服务器配置主KDC。 如果一台LDAP主服务器关闭,则需要有一个备用LDAP主服务器(具有主体数据库的最新更新副本),它将立即收费。 因此,您将使用两台具有对等复制配置的LDAP主服务器,这样对一台主服务器所做的更改将立即反映到另一台主服务器上。

另一方面,从属KDC可以使用Kerberos主体数据库的读写副本和只读副本。 由于从属KDC用于在紧急情况下备份主KDC,因此从属KDC可能需要使用读写副本。 因此,您将主要使用主LDAP服务器和LDAP副本作为备用机制来配置从属KDC。 因此,即使两个LDAP主服务器都关闭,从属KDC也应使用LDAP副本继续其服务。

为Kerberos准备LDAP服务器

为了利用任何LDAP服务器存储Kerberos数据,在LDAP服务器上需要进行的准备工作很少。

  1. 添加适当的后缀 。 在LDAP目录中,后缀是LDAP目录层次结构中的顶级条目,所有与逻辑相关的信息都存储在该条目下。 因此,即使对于Kerberos信息,也将使用后缀。 例如,“ ou = india,o = ibm,c = in”是本文中使用的后缀。 LDAP服务器可以有多个后缀,每个后缀表示一个特定的目录层次结构。
  2. 加载Kerberos模式 。 为了将Kerberos数据存储在任何LDAP服务器(主服务器或副本服务器)中,应首先在LDAP目录中加载足够的Kerberos模式定义。 只有这样做之后,LDAP服务器才能理解并正确存储Kerberos数据。 IBM NAS 1.4将Kerberos模式定义作为LDIF(LDAP数据交换格式)文件提供。 这些文件是:

    /usr/krb5/ldif/IBM.KRB.schema.ldif用于IBM Directory Server 5.1和5.2

    /usr/krb5/ldif/NS5.KRB.schema.ldif用于SunONE Directory Server 5.1和5.2

    您可以使用ldapadd或ldapmodify命令将模式定义加载到LDAP服务器中。 请查阅LDAP文档以获取更多选项以及这些命令的详细说明。

  3. 正在加载领域条目 。 IBM NAS主体数据库由领域条目表示。 该领域条目用作存储Kerberos主体和策略信息的基础。 该领域条目由领域名称和后缀组成。 在示例设置中,您将添加领域条目krbrealmName-V2=TEST,ou=india,o=ibm,c=in 。 IBM NAS提供了模板领域条目LDIF文件,可以对其进行编辑以反映实际领域信息。 该文件的名称为/usr/krb5/ldif/realm_add.ldif

由于本文着重介绍Kerberos配置,因此假设示例设置中已显示LDAP设置已存在。 现在,本文将重点介绍Kerberos配置步骤。

整个Kerberos配置过程可以从逻辑上分为以下主要步骤:

使用LDAP主服务器配置主KDC

如前所述,您将使用两个LDAP主服务器和不使用LDAP副本服务器配置主KDC。

  1. 要配置主KDC,可以使用IBM NAS命令/usr/krb5/sbin/config.krb5或AIX命令包装程序mkkrb5srv 。 使用mkkrb5srv命令将主KDC与主LDAP服务器一起配置。 在主KDC机器上,运行mkkrb5ksrv ,如下所示:
    bash-2.05b# mkkrb5srv -r TEST -d in.ibm.com -a admin/admin -l lmaster1.in.ibm.com -u 
                  cn=admin -p adminpwd
      Fileset                      Level  State      Description
      ----------------------------------------------------------------------------
    Path: /usr/lib/objrepos
      krb5.server.rte            1.4.0.7  COMMITTED  Network Authentication Service
                                                     Server
    
    Path: /etc/objrepos
      krb5.server.rte            1.4.0.7  COMMITTED  Network Authentication Service
                                                     Server
    The -s option is not supported.
    The administration server will be the local host.
    Initializing configuration...
    Creating /etc/krb5/krb5_cfg_type...
    Creating /etc/krb5/krb5.conf...
    Creating /var/krb5/krb5kdc/kdc.conf...
    Creating database files...
    Initializing database 'LDAP' for realm 'TEST'
    master key name 'K/M@TEST'
    Attempting to bind to one or more LDAP servers. This may take a while...
    You are prompted for the database Master Password.
    It is important that you DO NOT FORGET this password.
    Enter database Master Password:
    Re-enter database Master Password to verify:
    Attempting to bind to one or more LDAP servers. This may take a while...
    WARNING: no policy specified for admin/admin@TEST;
      defaulting to no policy. Note that policy may be overridden by
      ACL restrictions.
    Enter password for principal "admin/admin@TEST":
    Re-enter password for principal "admin/admin@TEST":
    Principal "admin/admin@TEST" created.
    Creating keytable...
    Attempting to bind to one or more LDAP servers. This may take a while...
    Creating /var/krb5/krb5kdc/kadm5.acl...
    Starting krb5kdc...
    Attempting to bind to one or more LDAP servers. This may take a while...
    krb5kdc was started successfully.
    Starting kadmind...
    Attempting to bind to one or more LDAP servers. This may take a while...
    kadmind was started successfully.
    The command completed successfully.
    Restarting kadmind and krb5kdc
    Attempting to bind to one or more LDAP servers. This may take a while...
    Attempting to bind to one or more LDAP servers. This may take a while...
    
    bash-2.05b#

    现在,主KDC已启动并正在运行,但是仅将此主KDC连接到一个LDAP主服务器。 为了使用另一个LDAP主服务器进行配置,您需要手动编辑KDC LDAP配置文件/var/krb5/krb5kdc/.kdc_ldap_data

  2. 要添加另一个LDAP主服务器,请编辑/var/krb5/krb5kdc/.kdc_ldap_data文件,如下所示(突出显示的文本现在已添加)。
    bash-2.05b# cat /var/krb5/krb5kdc/.kdc_ldap_data
    [ldapdefaults]
            realm = TEST
            bind_dn = cn=admin
            bind_dn_pw = adminpwd
            ldapserver = lmaster1.in.ibm.com
            ldapserver = lmaster2.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]
            lmaster1.in.ibm.com = {
                    port = 389
                    replica_type = readwrite
                    preference = 9
            }
    
            lmaster2.in.ibm.com = {
                    port = 389
                    replica_type = readwrite
                    preference = 4
            }
    
    bash-2.05b#

    上面框中的preference关系显示了连接到任何LDAP服务器时的优先级编号。 值越高,优先级越高。 如果两个服务器的首选项值相同,那么将使用负载平衡来确定从哪个服务器读取和搜索。

  3. 完成文件编辑后,必须重新启动两个Kerberos守护程序:
    bash-2.05b# /usr/krb5/sbin/stop.krb5; /usr/krb5/sbin/start.krb5
    Stopping /usr/krb5/sbin/krb5kdc...
    /usr/krb5/sbin/krb5kdc was stopped successfully.
    Stopping /usr/krb5/sbin/kadmind...
    /usr/krb5/sbin/kadmind was stopped successfully.
    The command completed successfully.
    Starting krb5kdc...
    krb5kdc was started successfully.
    Starting kadmind...
    kadmind was started successfully.
    The command completed successfully.
    
    bash-2.05b#
  4. 现在,主KDC已配置了两个LDAP主服务器。 要测试此配置,请停止一台主LDAP服务器,然后尝试执行一些Kerberos请求(例如kinit,klist或kadmin)。 在这种情况下,主KDC永远不会惊慌,从最终用户的角度来看,从一台LDAP服务器到另一台LDAP服务器的传输应该是无缝的。

使用LDAP主服务器和副本服务器配置从属KDC

现在,使用两个LDAP主服务器和三个LDAP副本服务器配置从属KDC。

  1. 使用/usr/krb5/sbin/config.krb5命令来配置从属KDC。
    bash-2.05b# /usr/krb5/sbin/config.krb5 -E -d in.ibm.com -r TEST -s master.in.ibm.com 
               -l lmaster1.in.ibm.com -u admin -p admin_pswd -R replica1.in.ibm.com 
               replica2.in.ibm.com replica3.in.ibm.com
    Initializing configuration...
    Creating /etc/krb5/krb5_cfg_type...
    Creating /etc/krb5/krb5.conf...
    Creating /var/krb5/krb5kdc/kdc.conf...
    Password for admin/admin@TEST:
    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#

    该命令中需要注意的几件事是:

    • 在从属计算机上将仅运行krb5kdc守护程序,因为从属KDC从未运行管理服务器(kadmind)。
    • 没有数据库传播。 由于您将Kerberos数据存储在LDAP目录中,因此无需将数据从主KDC传播到从KDC。
  2. 请注意,现在,从属KDC已配置为一台LDAP主服务器和三个具有默认首选项值的副本。 您需要手动添加另一个LDAP主服务器。 为此,请编辑/var/krb5/krb5kdc/.kdc_ldap_data文件,并在下面插入突出显示的条目。
    bash-2.05b# cat /var/krb5/krb5kdc/.kdc_ldap_data
    [ldapdefaults]
            realm = TEST
            bind_dn = cn=admin
            bind_dn_pw = adminpwd
            ldapserver = replica1.in.ibm.com
            ldapserver = replica2.in.ibm.com
            ldapserver = replica2.in.ibm.com
            ldapserver = lmaster1.in.ibm.com
            ldapserver = lmaster2.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]
            replica1.in.ibm.com = {
                    port = 389
                    replica_type = readonly
                    preference = 5
            }
            replica2.in.ibm.com = {
                    port = 389
                    replica_type = readonly
                    preference = 5
            }
            replica3.in.ibm.com = {
                    port = 389
                    replica_type = readonly
                    preference = 5
            }
            lmaster1.in.ibm.com = {
                    port = 389
                    replica_type = readwrite
                    preference = 4
            }
            lmaster2.in.ibm.com = {
                    port = 389
                    replica_type = readwrite
                    preference = 4
            }
    
    bash-2.05b#
  3. 通过使用stop.krb5start.krb5重新启动Kerberos守护进程:
    bash-2.05b# /usr/krb5/sbin/stop.krb5 krb5kdc; /usr/krb5/sbin/start.krb5 krb5kdc
    Stopping /usr/krb5/sbin/krb5kdc...
    /usr/krb5/sbin/krb5kdc was stopped successfully.
    The command completed successfully.
    Starting krb5kdc...
    krb5kdc was started successfully.
    The command completed successfully.
    
    bash-2.05b#
  4. 从属KDC均已设置为辅助主KDC处理客户端请求。 通过为该从属KDC配置客户端并运行IBM NAS命令(如kinit,klist和kadmin)来检查配置。

配置并使用IBM NAS客户端来测试设置

现在,您将为上述已成功配置的主从KDC设置设置Kerberos客户端。 要配置客户机,可以使用config.krb5 (IBM NAS命令)或mkkrb5clnt (AIX包装器)。 通过使用mkkrb5clnt ,您还可以在一个命令中为AIX计算机和IBM NAS客户端配置集成的Kerberized登录。 但是,执行mkkrb5clnt需要对一些事情有更多的了解。 现在,使用config.krb5将一个简单的IBM NAS客户端配置为上述主从KDC的配置。

  1. 如下所示运行/usr/krb5/sbin/config.krb5来配置客户端:
    bash-2.05b# /usr/krb5/sbin/config.krb5 -c -d in.ibm.com -r TEST -c master.in.ibm.com 
                -s master.in.ibm.com
    Initializing configuration...
    Creating /etc/krb5/krb5_cfg_type...
    Creating /etc/krb5/krb5.conf...
    The command completed successfully.
    
    bash-2.05b#
  2. 在/etc/krb5/krb5.conf文件中仅列出了一个KDC(master.in.ibm.com)。 编辑此文件,并为从属KDC(slave.in.ibm.com)创建另一个KDC条目,如下所示:
    -bash-2.05b# 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 = master.in.ibm.com:88
                    kdc = slave.in.ibm.com:88
                    admin_server = master.in.ibm.com:749
                    default_domain = in.ibm.com
            }
    
    [domain_realm]
            .in.ibm.com = TEST
            master.in.ibm.com = TEST
            slave.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
    
    -bash-2.05b#
  3. 现在您已经准备好测试配置。 使用/usr/krb5/bin/kinit/usr/krb5/bin/klist命令测试客户端是否可以联系KDC。
    bash-2.05b# /usr/krb5/bin/kinit admin/admin
    Password for admin/admin@TEST:
    
    bash-2.05b# /usr/krb5/bin/klist
    Ticket cache:  FILE:/var/krb5/security/creds/krb5cc_0
    Default principal:  admin/admin@TEST
    
    Valid starting     Expires            Service principal
    05/09/08 07:08:53  05/10/08 07:08:51  krbtgt/TEST@TEST
    
    bash-2.05b#
  4. 您还可以通过运行/usr/krb5/sbin/kadmin命令来测试与kadmind的连接。
    bash-2.05b# /usr/krb5/sbin/kadmin -p admin/admin
    Authenticating as principal admin/admin with password.
    Password for admin/admin@TEST:
    kadmin:  getprincs
    K/M@TEST
    admin/admin@TEST
    kadmin/admin@TEST
    kadmin/changepw@TEST
    kadmin/history@TEST
    krbtgt/TEST@TEST
    kadmin:  q
    
    bash-2.05b#

    要测试故障安全机制,您可以尝试关闭从属/主KDC或LDAP服务器。 如果任何服务器发生故障,以上配置的客户端可以遵循以下故障转移路径:

    图3. IBM NAS客户端可能的故障转移路径
    IBM NAS客户端可能的故障转移路径

最后,您能够使用LDAP主副本拓扑成功配置IBM NAS主从KDC。

结论

本文介绍了使用LDAP主副本安装程序配置Kerberos主从KDC二重奏的过程。 尽管这不是一件容易的事,但本文提供了分步指南以及适当的示例,以确保一切顺利进行。


翻译自: https://www.ibm.com/developerworks/aix/library/au-ldap_master_replica/index.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为你详细介绍如何在Linux配置Kerberos服务并使用Kerberos身份认证。 1. 安装Kerberos软件包 在Linux系统上安装Kerberos软件包。以Ubuntu为例,可以使用以下命令: ``` sudo apt-get install krb5-user krb5-config krb5-kdc krb5-admin-server ``` 2. 配置Kerberos服务器 首先,需要配置Kerberos服务器。这涉及到两个要的组件: - Kerberos认证中心(KDC):处理身份验证请求并发放票证。 - Kerberos管理服务器(Kadmin):处理管理任务,如创建和删除用户。 可以使用以下命令来配置Kerberos服务器: ``` sudo krb5_newrealm ``` 该命令将引导你完成配置,并要求输入管理员密码。 3. 创建Kerberos用户 现在可以使用Kerberos管理服务器(Kadmin)创建Kerberos用户。可以使用以下命令: ``` sudo kadmin.local -q "addprinc username" ``` 其中,username是要创建的用户名。 4. 配置服务 现在需要配置Kerberos服务以使用Kerberos身份验证。这涉及到编辑/etc/krb5.conf文件,添加必要的服务和Kerberos域信息。以下是一个示例krb5.conf文件: ``` [libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] EXAMPLE.COM = { kdc = kerberos.example.com admin_server = kerberos.example.com default_domain = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM ``` 该文件指定了默认域EXAMPLE.COM,以及Kerberos认证中心和管理服务器的位置。 5. 测试Kerberos认证 现在可以测试Kerberos认证是否正常工作。可以使用以下命令: ``` sudo kinit username ``` 该命令将要求输入用户密码。如果认证成功,则将生成一个Kerberos票证。 6. 使用Kerberos身份认证 现在可以使用Kerberos身份认证来访问受保护的服务。例如,可以使用以下命令来登录到SSH服务器: ``` ssh username@server.example.com ``` 该命令将使用Kerberos身份认证进行身份验证。 以上就是在Linux配置Kerberos服务并使用Kerberos身份认证的详细步骤。希望能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值