itds ldap迁移_在AIX上配置和解决ITDS 6.1

介绍

IBM Tivoli Directory Server(ITDS)是Lightweight Directory Access Protocol(LDAP)的IBM实现,用于受支持的Windows®,AIX®,System x™,System z™,System i™,System p™,Linux®,Solaris®,和HP-UX®操作系统。 它是功能强大的LDAP基础结构,为部署全面的身份管理应用程序和高级软件体系结构提供了基础。 它提供了使用DB2®数据库存储目录信息的服务器,用于将LDAP操作路由到其他服务器的代理服务器,客户端以及用于管理服务器的图形用户界面(GUI)。

除了基本的用户名和密码之外,IBM Tivoli Directory Server还提供了几种认证方法。 ITDS支持基于数字证书的身份验证,访问控制列表,质询-响应身份验证机制MD5(CRAM-MD5)密码加密,简单身份验证和安全层(SASL)和Kerberos身份验证。

与LDAP5.2相比,ITDS是一个美化版本。 一些重要的功能是:

  • 一台计算机上的多个目录服务器:

    从6.0版本开始,多个目录服务器实例可以共存于同一台计算机上。 它还包括对目录服务器的多宿主支持。

  • 安全性增强:
    • 复制协议更安全。
    • 为目录管理员密码提供了密码策略支持。
    • 更改日志数据和复制更改数据更加安全。
  • 性能增强:
    • bulkload实用程序的增强功能减少了使用该实用程序将LDAP条目加载到DB2中所花费的时间。
    • 搜索处理已进行了修改,以提高基本范围搜索的性能。
  • 一台计算机上的服务器和客户端的多个版本:
    • 早期版本(6.0)中的服务器可以与6.1版服务器在同一台计算机上运行。
    • 早期版本(4.1、5.1、5.2或6.0)中的客户端可以与6.1版服务器在同一台计算机上运行。
    • 6.1版客户端可以与4.1、5.1、5.2或6.0版服务器在同一台计算机上运行。

服务器和客户端实用程序

IBM Tivoli Directory Server SDK工具包包括几个用于操纵Directory Server和数据库的命令行实用程序。 有关所有服务器和客户端实用程序的列表,请参见“ 相关主题”部分。 尽管文章解释了必需的内容,但是您可以点击它们以方便管理。

从6.1版开始,不会为LDAP客户端和服务器命令创建系统链接。 使用idslink实用程序可以设置到命令行实用程序(如idsldapmodify和idsldapadd)以及库(如libibmldap)的链接。 例如,如果一台机器安装了6.0和6.1客户端服务器文件集,则将为所有6.0客户端服务器命令行实用程序生成默认系统链接。 如何通过删除6.0为版本6.1创建链接?

使用idsrmlink命令行实用工具删除指向6.0 idslink命令设置的客户端和服务器实用工具的链接。

# /opt/IBM/ldap/V6.0/bin/idsrmlink -i -l 64 -s fullsrv

现在,使用idslink实用程序为6.1创建新链接。 请参阅idslink用法以了解标志说明。

# /opt/IBM/ldap/V6.1/bin/idslink -i -l 64 -s fullsrv

先决条件

下表显示了支持IBM Tivoli Directory Server 6.1的AIX版本。

pSeries上的AIX(64位/ 32位)

作业系统版本 64位目录服务器组件 32位目录服务器组件
AIX 5.2(客户端或服务器为ML5或更高级别) 客户端,服务器,Web管理工具 客户端(仅适用于操作系统实用程序安装)
AIX 5.3(TL1或更高级别的客户端或服务器) 客户端,服务器,Web管理工具 客户端(仅适用于操作系统实用程序安装)
AIX 6.1 GA 客户端,服务器,Web管理工具 客户端(仅适用于操作系统实用程序安装)

软件需求

必需的先决条件:

  • ITDS文件集。
  • 通用数据库企业服务器版(ESE)。 DB2 V9.1 ESE Fix Pack 2或通用数据库企业服务器版DB2 V8.1
  • 需要Korn Shell。
  • 验证AIX是否具有64位内核(bootinfo -K)。

可选的先决条件:

  • 安全套接字层(SSL)连接需要GSKit 7.0.3.30。 要使用GSKit,需要IBM JDK 1.5或等效的JDK。
  • GSKit需要xlC.aix50rte 6.0.0.0或更高版本的文件集。
  • 用于GUI Web管理工具的嵌入式WebSphere®Application Server 6.1.0.7。

硬件要求

  • 验证AIX硬件是64位。 (bootinfo -y)
  • 对于客户端,至少需要128 MB RAM。 为了获得更好的结果,请使用256 MB或更多。
  • 对于服务器,每个目录服务器实例至少512 MB,每个数据库实例256 MB,以及用于运行Web管理工具和嵌入式WebSphere Application Server的1 GB。
  • 完整服务器(包括客户端,服务器和数据库)至少要使用2 GB磁盘空间。

其他:

  • 对于服务器,请确保已打开异步I / O。 要打开异步I / O,请执行以下步骤:
    # /usr/sbin/chdev -l aio0 -P
      # /usr/sbin/chdev -l aio0 -P -a autoconfig=available

提示:要安装上述文件集,请使用交互式“ smitty installp”或

#installp -acgvXYd "fileset location" "fileset list"

使用AIX实用程序配置ITDS 6.1

mksecldap是用于配置ITDS 6.1的AIX包装器脚本。 AIX在bos.rte.security组件下提供了mksecldap命令,用于LDAP客户端-服务器配置。 ldapdb2是执行mksecldap时创建的默认目录服务器实例和DB2实例。 使用“ smitty ldap”进行交互式配置。

对于非SSL

# mksecldap -s -a cn=admin -p adminpasswd -S rfc2307aix -d o=ibm

对于SSL

# mksecldap -s -a cn=admin -p adminpasswd -S rfc2307aix -d o=ibm -u NONE \		
    -k [ssl key_db file] -w [ssl key passwd]

有关总体SSL配置,请参阅ITDS 6.0的SSL配置

成功完成后,ITDS 6.1将开始运行,并且ldapdb2实例在非安全端口389上侦听。

# ps -eaf |grep ibm
    ldapdb2 307360 1 0 May 08 - 0:16 /opt/IBM/ldap/V6.0/sbin/64/ibmdiradm -I ldapdb2
    ldapdb2 782344  1 5 01:50:46  pts/0  4:45 /opt/IBM/ldap/V6.0/sbin/64/ibmslapd -n \
    -I ldapdb2 -f /home/ldapdb2/idsslapd-ldapdb2/etc/ibmslapd.conf

mksecldap具有仅创建一个默认目录服务器和数据库实例的限制。 要配置多个实例,请参阅在AIX上配置ITDS 6.1的多个实例

在AIX上配置ITDS 6.1的多个实例

ITDS 6.0引入了一种新的目录服务器实例现象,它位于数据库实例之上。 在ITDS 6.0的早期版本中没有目录实例。 因此,只有一个默认的DB2实例配置为一个DB2数据库。 从6.0开始,可以将n个目录服务器实例配置为n个DB2实例或DB2数据库。

图1.配置服务器身份验证
配置服务器身份验证

通过查看该图,我们开始配置过程。

  1. 创建目录服务器实例ID

    这可以是现有的用户ID或新的用户ID。 用户标识必须满足以下要求:

    • 不得超过8个字符。
    • 将其主要组设置为idsldap。
    • 有他们的主目录。
    • 输入有效的工作密码。
    • 根用户必须是该用户的主要组(idsldap)的成员。
    # mkuser pgrp=idsldap groups=staff home=/home/tam shell=/usr/bin/ksh tam

    使此新用户密码有效并准备登录

    # passwd tam                  ...and set the password (to passw0rd)
      # telnet 'hostname'           ...change the password when asked (to passw0rd)

    另外,idsadduser命令可以一次性创建DB2和目录服务器实例所有者和组。

    # idsadduser -l "home_dir" -g "group_name" -u "user_name" -w "user_passwd" -n
  2. 使用idsicrt命令创建目录服务器实例。
    # idsicrt -I tam -e tamencryption -n

    将为第一个实例选择默认端口号389。 对于第二实例和第三实例创建,将选择1389和2389。 系统自动选择其余的端口号。

    数据库实例名称也是DB2实例所有者ID。 建议您忽略此选项,并让系统选择目录服务器实例所有者的名称作为DB2实例名称。

    现在列出计算机上的可用实例,并确认您的实例存在。

    # idsilist
        Directory server instances:
        ldapdb2
        tam

    为创建的目录实例设置管理员DN和密码。

    # idsdnpw -I tam -u cn=tam -p tam -n
        You have chosen to perform the following actions:
     
        GLPDPW004I The directory server administrator DN will be set.
        GLPDPW005I The directory server administrator password will be set.
        GLPDPW009I Setting the directory server administrator DN.
        GLPDPW010I Directory server administrator DN was set.
        GLPDPW006I Setting the directory server administrator password.
        GLPDPW007I Directory server administrator password was set.
  3. 为目录实例配置数据库。

    DB2实例是存储数据的实际数据库,该数据库又与目录服务器实例相关联。 配置数据库时,有关数据库的信息将添加到ITDS配置文件(ibmslapd.conf)。

    在配置之前,
    • 停止目录服务器。 如果这是初始配置,则服务器不应运行。 但是,您可以通过运行ps -eaf并确保ibmslapd没有运行来验证这一点。
    • 取消设置DB2COMM( unset DB2COMM )。

    现在,运行idscfgdb为目录实例配置数据库。 确保实例所有者“ tam”具有对/ home / tam目录的rwx权限。

    # /usr/bin/idscfgdb -I tam -t tam -l /home/tam -a tam -w passw0rd
    
        GLPCDB023I Database 'tam' will be configured.
        GLPCDB024I Database 'tam' will be created at '/home/tam'
    
        Do you want to....
         (1) Continue with the above actions, or
         (2) Exit without making any changes:1
    
        GLPCDB035I Adding database 'tam' to directory server instance: 'tam'.
        GLPCTL017I Cataloging database instance node: 'tam'.
        GLPCTL018I Cataloged database instance node: 'tam'.
        GLPCTL008I Starting database manager for database instance: 'tam'.
        GLPCTL009I Started database manager for database instance: 'tam'.
        GLPCTL026I Creating database: 'tam'.
        GLPCTL027I Created database: 'tam'.
        GLPCTL034I Updating the database: 'tam'
        GLPCTL035I Updated the database: 'tam'
        GLPCTL020I Updating the database manager: 'tam'.
        GLPCTL021I Updated the database manager: 'tam'.
        GLPCTL023I Enabling multi-page file allocation: 'tam'
        GLPCTL024I Enabled multi-page file allocation: 'tam'
        GLPCDB005I Configuring database 'tam' for directory server instance: 'tam'.
        GLPCDB006I Configured database 'tam' for directory server instance: 'tam'.
        GLPCTL037I Adding local loop back to database: 'tam'.
        GLPCTL038I Added local loop back to database: 'tam'.
        GLPCTL011I Stopping database manager for the database instance: 'tam'.
        GLPCTL012I Stopped database manager for the database instance: 'tam'.
        GLPCTL008I Starting database manager for database instance: 'tam'.
        GLPCTL009I Started database manager for database instance: 'tam'.
        GLPCDB003I Added database 'tam' to directory server instance: 'tam'.

    现在,为您的实例启动目录服务器,并确保其正确启动且没有任何错误。

    # ibmslapd -n -I tam -f /home/tam/idsslapd-tam/etc/ibmslapd.conf

    您可以通过运行ps -fu进行交叉检查,并确保ibmslapd和ibmdiradm进程都针对“ tam”实例运行。

    # ps -fu tam | grep ibm
    tam  671768 1 0 02:31:18  pts/0  0:00 /opt/IBM/ldap/V6.1/sbin/64/ibmdiradm -I tam 
    tam 1695814 1 0 02:43:01  pts/0  0:00 /opt/IBM/ldap/V6.1/sbin/64/ibmslapd -n -I tam\
    -f /home/tam/idsslapd-tam/etc/ibmslapd.conf

    另外,请注意不要仅在配置模式下启动服务器!

    # idsldapsearch -D cn=tam -w tam -p 1389 -s base -b "" objectclass=* \
       | grep ibm-slapdisconfigurationmode
         ibm-slapdisconfigurationmode=FALSE

    如果ibm-slapdisconfigurationmode为TRUE,请在继续操作之前更正该问题。 查看/ home / tam / idsslapd-tam / logs /中的日志并进行修复。 万一您无法更正它,请取消配置该实例并从头开始。

    因此,现在机器已准备好具有多个目录服务器实例。

    各个实例的配置文件ibmslapd.conf位于/ home /“实例名称” / idsslapd-“实例名称” /etc/ibmslapd.conf,例如,/ home / tam / idsslapd-tam / etc / ibmslapd .conf,用于“ tam”实例。

    打开此文件,并观察端口号和其他参数的默认值。

    要维护“ tam”实例用户和组信息,请添加一个高级后缀。 在尝试目录实例服务器之前,请确保它已停止。

    # ibmslapd -k -I tam
       # idscfgsuf -I tam -s "o=ibm" -n

    添加新后缀实际上并不会在目录中创建相应的LDAP对象。 您需要创建一个LDIF文件并将其添加到服务器。 将zip文件(请参阅可下载的资源下载到Window的盒子中,并通过FTP将其下载到UNIX计算机。 现在,按以下顺序将此信息添加到服务器。

    # ibmslapd -n -I tam 
    # idsldapadd -D cn=tam -w tam -p "port num" -v -f ldif_file.ldif
    # idsldapadd -D cn=tam -w tam -p "port num" -v â????f add.containers.ldif
    # idsldapadd -D cn=tam -w tam -p "port num" -v â????f add.aixid.ldif

    add.container LDIF在o = ibm树下创建“组”和“人”存储库。 add.aixid LDIF创建一些标准的AIX ID和默认的“ Staff”组。 “人”分支表示从u0到uN的一组用户,其中N可以是任意整数。 “组”分支表示从grp1000到grpN的组的集合,其中N可以是任意整数。 “系统”分支用于存储其他但必不可少的身份验证条目信息。 请注意,如果找不到客户端的默认“ staff”组,则mksecldap无法进行客户端配置。

    要了解端口号,请输入idsilist -a并在'tam'实例节中检查Port idsilist -a

    要针对“ tam”服务器实例配置LDAP客户端,请使用端口号作为唯一参数。

    # mksecldap -c -h "ldap server" -a cn=tam -p tam -d o=ibm -n 1389

取消配置ITDS实例

  1. 撤消以前的设置到服务器配置文件:
    # mksecldap -s -U
  2. 正常关闭ibmslapd和ibmdiradm进程:
    # /opt/IBM/ldap/V6.1/bin/ibmdirctl -D cn=tam -w tam -p "admin port number" admstop
         Admin daemon is stopped
       # /opt/IBM/ldap/V6.1/bin/ibmdirctl -D cn=tam -w tam -p "port num" stop
         ibmslapd server is stopped.
  3. 删除目录服务器实例:
    # idsidrop -I tam -n
       # echo $?
         0
  4. 停止与“ tam”实例相对应的DB2实例。 以实例所有者身份运行:
    # su - tam
       $ whoami
         tam
       $ /home/tam/sqllib/adm/db2stop
         02/06/2008 03:50:13     0   0   SQL1064N  DB2STOP processing was successful.
         SQL1064N  DB2STOP processing was successful.
       $ exit
  5. 现在删除DB2实例:
    # /usr/opt/db2_09_01/db2/instance/db2idrop tam
       # DBI1070I Program db2idrop completed successfully
  6. 删除实例所有者和主目录。 最后,清理库空间:
    # rmuser tam
       # rm -rf /home/tam/
       # slibclean

问题确定

杂项问题

  • 为目录实例配置数据库时出现的问题:
    GLPCTL008I Starting database manager for database instance: 'ldapdb2'.
       GLPCTL010E Failed to start database manager for database instance: 'ldapdb2'.
       GLPCTL049I Adding TCP/IP services to database instance: 'ldapdb2'.
       .
       .
       GLPCTL008I Starting database manager for database instance: 'ldapdb2'.
       GLPCTL010E Failed to start database manager for database instance: 'ldapdb2'.
       GLPCTL026I Creating database: 'ldapdb2'.
       GLPCTL028E Failed to create database: 'ldapdb2'. The failure might have
       occurred because the system was not set up correctly before using the tool.
       GLPCTL011I Stopping database manager for the database instance: 'ldapdb2'.
       GLPCTL012I Stopped database manager for the database instance: 'ldapdb2'.
       GLPCDB004E Failed to add database 'ldapdb2' to directory server instance: 
              'ldapdb2'.
       GLPCDB026W The program did not complete successfully. View earlier error messages
       for information about the exact error. Server setup failed.

    这些问题的原因多种多样,并且以类似的方式出现了几个DB2错误。 每当收到此类错误时,要尝试的第一件事是显式创建DB2实例。 在尝试之前,请检查是否有任何实例:

    # /usr/opt/db2_09_01/db2/instance/db2ilist
       ldapdb2

    如果存在DB2实例,请首先使用db2idrop删除它(有关更多详细信息,请参见以上部分。)。

    /usr/opt/db2_09_01/db2/instance/db2icrt -d -a SERVER -s ese -u ldapdb2 ldapdb2

    (如果成功创建了实例,请使用db2idrop再次将其放回,建议ITDS工具为您创建实例。)

    这个命令会失败吗? 然后,肯定是DB2问题!

    查看目录服务器实例的DB2日志以查找可能已生成的其他错误或减弱。 日志位于/tmp/db2icrt.log.*/home/ldapdb2/sqllib/db2dump/db2diag.log

    如果日志有以下错误:

    SQL6031N  Error in the db2nodes.cfg file at line number "1".
    Reason code
    "10".
    Update DBM cfg SYSADM_GROUP errcode = 8
    >>>>>Error message = SQL6031N  Error in the db2nodes.cfg file at
    line number "1".  Reason code
    "10". <<<<<
    DBI1703E No valid service name or port number found.

    那么此消息通常与主机名有关。 db2icrt脚本调用db2iutil脚本,该脚本发出命令/ usr / bin / uname -n以获取主机名,该主机名用于db2nodes.cfg。 运行“ / usr / bin / uname -n”,然后检查主机名对于系统是否正确。 如果主机名看起来正确,请运行nslookup 。 这应该调出nslookup服务器的IP地址,然后提示用户输入。 此时,输入uname命令返回的主机名,并确认是否成功返回该主机名的IP地址。 如果这些命令中的任何一个失败,请与系统或网络管理员联系以确保正确配置了计算机。 在“ / etc / hosts”内部添加具有正确IP地址的主机条目应该可以解决此问题。

  • 尝试登录客户端计算机的LDAP用户遇到以下错误:

    AIX Version 5
       (C) Copyrights by IBM and by others 1982, 2007.
       login: u100
       u100's Password: 
       [LDAP]: 3004-610 You are required to change your password.
               Please choose a new one.
     
       u100's New password: 
       Enter the new password again:
       3004-010 Failed setting terminal ownership and mode.
       Connection closed.

    此错误信息可能表明组文件损坏或丢失。 用户u100缺少主要组!”。

    # lsuser -R LDAP -a pgrp u100

    因此,将此用户添加为小组人员:

    # chuser -R LDAP pgrp=staff u100
       # lsuser -R LDAP -a pgrp u100
         u100 pgrp=system

    重试登录。

  • 目录服务器实例创建失败。

    # idsicrt -I ldapdb2 -e myencryption
         GLPICR123E Unable to determine the ownership and permissions on the\
         directory  '/home/ldapdb2'.
         GLPICR024W The program did not complete successfully. View earlier \
         error messages for information on the exact error.

    此错误可能是由于服务器未正确配置而导致的,或者目录/ home / ldapdb2可能已经由其他用户拥有,并且idsicrt试图在此路径上创建ldapdb2实例。 检查目录权限:

    # ls -ld /home/ldapdb2/
         drwxrwxr-x   2 211  dbsysadm      256 Jun 21 04:06 /home/ldapdb2/

    用户“ 211”拥有/ home / ldapdb2。 将所有权更改为ldapdb2用户,然后重新运行idsicrt:

    # chown ldapdb2 /home/ldapdb2/
       # ls -ld /home/ldapdb2/
         drwxrwxr-x   2 ldapdb2  dbsysadm  256 Jun 21 04:06 /home/ldapdb2/
  • 您针对目录服务器在两台不同的计算机上配置了两个LDAP客户端。 假设client1更改了现有用户'u100'的密码。 用户'u100'立即尝试使用client2登录。 登录失败。 为什么?

    原因是在client1上更改的密码尚未反映在client2上。 在客户端2上重新启动secldapclntd守护程序,或确保在客户端配置期间将cacheTimeout值设置为0:

    # restart-secldapclntd //OR
       # mksecldap -c -h [ldap server] -a bindDN -p bindPassword -d baseDN -t 0
  • 当实例所有者“ ldapdb2”尝试启动ibmslapd进程时,发生以下错误:

    # 02/08/08 08:41:13 GLPCOM027E Attempt to bind failed with errno 13 \
         (The file access permissions do not allow the specified action.).
         02/08/08 08:41:13 GLPCOM006E SocketInit failed for port 389.
         02/08/08 08:41:13 GLPSRV004I Terminating server.

    ibmslapd进程正在侦听特权端口(端口389)。 为了使服务器能够使用特权端口(小于1024的端口),它必须以root用户身份启动才能具有将bind()绑定到该端口的权限。 在bind()之后,它可以退出(使用setuid())以实例用户身份运行。 因此,将端口号更改为> 1024并启动它,或者以root用户身份启动实例。

  • 对于ldapdb2实例,如何将“ ibmslapd”进程绑定到除389以外的端口号上?

    1. 停止ibmslapd进程。
    2. 在/home/ldapdb2/idsslapd-ldapdb2/etc/ibmslapd.conf中的“ dn:cn = Configuration”节下更改ibm-slapdPort:[new non:ssl port]。
    3. 重新启动服务器。

    同样,对于SSL连接,在“ dn:cn = SSL,cn = Configuration”节中更改以下值。

    ibm-slapdSecurePort:[新的SSL端口]

    'idssetport'命令替代上述过程。

    # idssetport -I [instance_name] -p [non:ssl port] -s [ssl port] -n

结论

阅读本文之后,读者应该对ITDS有更好的理解。 由于本文未解释所有ITDS命令行实用程序,因此建议读者从Tivoli Information Center学习它们。 此外,此处还提到了常见的故障排除提示。 如果您遇到新的问题或有问题的任何解决方案,请访问AIX技术/开发人员论坛(请参阅相关主题 )。


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值