ldap配置_AIX上的LDAP配置管理和故障排除

用户管理是分布式计算环境的重要组成部分。 它提供了通用访问所需的一致的身份验证和授权服务。 为了实现集中式安全性,许多客户使用IBM Directory Server(IBMAIX®支持的集中式安全性机制)。 为了实现万无一失的IBM Directory Server配置并准备使用,您需要对轻型目录访问协议(LDAP)概念和配置管理有很好的了解。

本文概述了LDAP及其体系结构。 它还讨论了AIX上的LDAP配置和管理。 本文重点介绍在配置LDAP服务器和客户端时对各种类型的问题进行故障排除。 故障诊断部分中的建议应该对AIX管理员,技术支持和开发社区有所帮助。

LDAP概述和架构

LDAP是用于访问目录服务器的行业标准协议。 需要配置IBM Directory Server,以通过LDAP以及AIX上的AIX特定模式和RFC 2307模式支持用户认证。

LDAP已针对读取,浏览以及搜索目录和存储有序信息的专用数据库进行了优化。 许多计算环境旨在使网络资源可从任何位置供用户使用,例如工作站,公用工作站和Web。 IBM Directory Server可用于用户管理以实现此目标。

图1显示了LDAP配置的概述。

图1. LDAP配置
LDAP配置图

LDAP是用于存储订购信息的标准化协议和专用数据库。 当用户登录时,LDAP客户端将查询发送到LDAP服务器,以从集中式数据库获取用户和组信息。 DB2®是用于存储用户和组信息的数据库。 LDAP数据库基于条目的层次结构存储和检索信息,每个条目都有其自己的区分名称,类型和属性。 属性(属性)为条目定义可接受的值。 LDAP数据库可以存储和维护许多用户的条目。

在AIX版本4.3中创建了一个LDAP安全性加载模块。 该加载模块通过IBMSecureWay®Directory提供用户认证以及集中的用户和组管理功能。 可以将LDAP服务器上定义的用户配置为登录LDAP客户端,即使该用户未在本地定义。 AIX LDAP装入模块已与AIX操作系统完全集成。

IBM Directory Server的配置

可以使用以下任一配置AIX上的IBM Directory Server:

  • ldapcfg命令行工具
  • ldapcfg工具的图形版本,称为ldapxcfg
  • mksecldap命令

以下文件集是配置IBM Directory Server所必需的:

  1. 安装DB2文件集db2_09_01.rte。
  2. 安装以下文件集:
    • idsldap.srv64bit61.rte
    • idsldap.srvbase64bit61.rte

    以下文件集是配置LDAP客户端所必需的。

    • idsldap.clt32bit61.rte
    • idsldap.clt64bit61.rte
    • idsldap.cltbase61.rte

注意: 61代表文件集的版本。 取决于您所安装的版本。

先决条件

  • 系统应在64位内核模式下运行。 使用bootinfo -K命令确定内核模式。
  • AIX需要64位硬件。 使用bootinfo -y命令确定硬件。
  • 至少需要512MB RAM。 (为获得更好的结果,请使用1GB或更多。)
  • IBM Directory Server在要创建DB2数据库的文件系统中需要80MB的可用空间。
  • 如果打算使用InstallShield GUI进行安装,请确保/ var目录中至少有100MB的可用空间,/ tmp目录中至少有400MB的可用空间。

AIX提供了mksecldap命令来设置IBM Directory服务器和客户机以利用服务器。

mksecldap命令为新服务器设置执行以下任务:

  1. 创建ldapdb2默认DB2实例。
  2. 创建ldapdb2默认DB2数据库。
  3. 创建用于存储AIX用户和组的AIX树DN(后缀)。
  4. 将用户和组从本地主机的安全数据库文件导出到LDAP数据库。
  5. 设置LDAP服务器管理员DN和密码。
  6. (可选)将服务器设置为使用安全套接字层(SSL)通信。
  7. 安装/ usr / ccs / lib / libsecldapaudit,这是LDAP服务器的AIX审计插件。
  8. 完成上述所有操作后,启动LDAP服务器。
  9. 将LDAP服务器条目(slapd)添加到/ etc / inittab中,以便在重启后自动重启。
mksecldap -s -a cn=admin -p passwd -S rfc2307aix

所有设置信息都存储在/etc/ibmslapd.conf文件中。

为IBM Directory Server配置AIX客户机系统

ldap.client文件集包含IBM Directory客户机库,头文件和实用程序。 您可以使用mksecldap命令针对IBM Directory Server配置AIX客户端,如下所示:

mksecldap -c -h <LDAP Server name> -a cn=admin -p adminpwd -S rfc2307aix

您必须具有IBM Directory Server管理员DN和密码才能配置AIX客户机。 配置AIX客户机后, secldapclntd守护程序将开始运行。 针对IBM Directory Server配置了AIX客户端后,将/ etc / security / user文件中的SYSTEM属性更改为LDAP OR compatcompat or LDAP以针对AIX客户端系统对用户进行身份验证。

/usr/lib/security/methods.cfg文件包含装入模块定义。 mksecldap命令添加以下节以在客户机设置期间启用LDAP加载模块。

LDAP:
	program = /usr/lib/security/LDAP
	program_64 = /usr/lib/security/LDAP64

客户端计算机上的/etc/security/ldap/ldap.cfg文件包含secldapclntd客户端守护程序的配置信息。 此配置文件包含有关IBM Directory Server名称, binddn和密码信息的信息。 在AIX客户端安装期间,该文件由mksecldap命令自动更新。

/etc/security/ldap/ldap.cfg文件中的auth_type属性指定需要在哪里对用户进行身份验证。 如果auth_type属性为UNIX_AUTH ,则在客户机系统上对用户进行身份验证。 如果是ldap_auth ,那么将在IBM Directory Server上对用户进行认证。

使用SSL配置IBM Directory Server

可以使用SSL配置IBM Directory Server和客户机。 这样可以避免通过网络以明文格式传输数据。 它加密信息,然后通过网络发送。 IBM Directory Server对用户的密码信息进行加密,然后在配置SSL时通过网络发送该密码。

需要以下文件集来启用服务器和客户端加密支持:

  • ldap.max_crypto_server
  • ldap.max_crypto_client

对于初始服务器设置,运行以下命令:

mksecldap -s -a cn=admin -p pwd -S rfc2307aix -k usr/ldap/etc/mykey.kdb -w keypwd

其中, mykey.kdb是密钥数据库,而keypwd是密钥数据库的密码。

对于已配置并正在运行的服务器,请运行:

mksecldap -s -a cn=admin -p pwd -S rfc2307aix -n NONE -k 
/usr/ldap/etc/mykey.kdb -w keypwd

对于初始客户端设置,运行:

mksecldap -c -h <ldapserver name> -a cn=admin -p adminpwd -k 
/usr/ldap/key.kdb -w keypwd

表1中列出了AIX LDAP客户机系统上的常用命令。

表1.常用命令
命令 目的
/ usr / sbin / start-secldapclntd 启动secldapclntd ; 与直接从命令行输入secldapclntd相同。
/ usr / sbin / stop-secldapclntd 停止secldapclntd守护程序。
/ usr / sbin / restart-secldapclntd 停止当前正在运行的secldapclntd守护程序,然后重新启动它。 如果secldapclntd没有运行,则与start-secldapclntd相同。
/ usr / sbin / ls-secldapclntd 列出secldapclntd守护程序状态,包括正在与之通信的服务器,端口号,缓存状态等。
/ usr / sbin / flush-secldapclntd 清除secldapclntd守护程序的缓存。
mkuser -R LDAP <用户名> 从LDAP客户端创建用户。

故障排除信息

本节包括几个典型的问题,以及建议的解决方案。

问题:LDAP服务器以仅配置模式启动...

在重新启动LDAP服务器或进行LDAP服务器配置时,LDAP服务器以仅配置模式启动。返回以下错误:“未能初始化be_config。遇到错误。服务器以仅配置模式启动。”

解:

  1. 通过使用以下命令来确认服务器是否以纯配置方式启动,或者查看/var/ldap/ibmslapd.log以获取此信息。
    # ldapsearch -h teak01.upt -b "" -s base objectclass=* | grep config
    ibm-slapdisconfigurationmode=TRUE
  2. 有时,DB2许可证密钥未正确注册。 这是此问题的主要原因之一。 要解决此问题,必须按如下所示注册许可证密钥:
    1. 以具有root用户权限的用户身份登录。
    2. 注册DB2产品许可证密钥:
    #/usr/opt/db2_08_01/adm /db2licm -a /usr/ldap/etc/ldap-custom-db2ese.lic
    #/usr/opt/db2_08_01/adm /db2licm -a /usr/ldap/etc/db2wsue.lic
  3. 如果上述步骤仍不能解决问题,请在重新进行LDAP服务器配置之前清理LDAP服务器配置并导出LDAP_DBG = 1。 /var/ldap/dbg.out、/var/ldap/dbg.log和/var/ldap/ibmslapd.log文件应具有所需的诊断信息,以进一步调试此问题。

问题:无法使用LDAP用户登录系统...

成功配置Directory Server后,无法使用LDAP用户登录系统。

解:
确保以下区域中没有错误,这可能导致对特定LDAP用户的存在的错误印象。

  1. 在客户端配置期间,使用mksecldap -u <userlist>指定逗号分隔的用户名列表或ALL,以启用客户端上的所有用户。 这意味着用户的SYSTEM和注册表属性设置为LDAP。
    mksecldap -c -h monster -a cn=admin -p adminpwd -u user1,user2

    -u标志可确保将user1user2用户用作客户端计算机上的LDAP用户,但是此标志不会在LDAP服务器数据库中添加任何用户。 如果将这些用户使用mkuser -R LDAP <user name>添加到LDAP或在进行服务器配置时,则登录成功,如下所示:

    mksecldap -s -a cn=admin -p adminpwd -S rfc2307aix

    在这种情况下,所有本地用户都将添加到LDAP中。 由于user1user2是本地用户,它们将被自动添加到LDAP数据库中。

  2. 验证Directory Server已启动并正在运行。 ibmdiradmibmslapd进程应该正在运行:
    # ps -eaf |grep ibm
        ldap 278760      1   0   Jan 14      -  0:08 /usr/ldap//bin/ibmdiradm -l
        ldap 434392      1   2   Jan 14      - 339:44 ibmslapd -f/etc/ibmslapd.conf
  3. 验证LDAP客户端是否已启动并正在运行。 secldapclntd进程应该正在运行:
    # ps -eaf |grep -i secldap
        root 393408      1   0   Jan 14      -  0:15 /usr/sbin/secldapclntd
        root 725062 692358   0 03:20:38  pts/0  0:00 grep -i secldap
  4. 验证该用户是否存在于服务器上:
    # lsuser -R LDAP usr_3112
    usr_3112 id=3112 pgrp=gp_3112 groups=gp_3112,gp_3118,gp_3124 home=/tmp shell=/usr/bin/ksh 
    login=true su=true rlogin=true daemon=true admin=false sugroups=ALL admgroups=
        tpath=nosak 
    ttys=ALL expires=0 auth1=SYSTEM auth2=NONE umask=22 registry=LDAP 
    SYSTEM=KRB5LDAP OR compat logintimes= loginretries=0 pwdwarntime=0 
    account_locked=false minage=0 maxage=0 maxexpired=-1 minalpha=0 minother=0 
    mindiff=0 maxrepeats=8 minlen=0 histexpire=0 histsize=0 pwdchecks= dictionlist= fsize=-1 
    cpu=-1 data=262144 stack=65536 core=2097151 rss=65536 nofiles=2000 roles=
  5. 验证用户的注册表和SYSTEM属性。 两者都应设置为LDAP。
    lsuser -a registry SYSTEM username
  6. 验证是否将LDAP节添加到/usr/lib/security/methods.cfg中:
    # grep -p LDAP /usr/lib/security/methods.cfg
    LDAP:
            program = /usr/lib/security/LDAP
            program_64 =/usr/lib/security/LDAP64

问题:将所有AIX用户迁移为LDAP认证用户需要什么?

将所有AIX用户迁移为LDAP认证用户需要什么? mksecldap是否允许用户在进行服务器配置时迁移一组特定的AIX用户?

解:
否。默认情况下, mksecldap在进行服务器配置时mksecldap所有AIX用户迁移为LDAP认证用户。

如果您不想迁移任何AIX用户作为LDAP用户,运行mksecldap用命令-u NONE

#mksecldap -s -a cn=admin -p adminpwd -s rfc2307aix -u NONE

问题:mkuser可能返回错误消息

mkuser命令可能返回以下错误消息:

# mkuser -R LDAP test
3004-686 Group "staff" does not exist.
3004-703 Check "/usr/lib/security/mkuser.default" file.

解:
如果LDAP客户端和NIS客户端配置在同一台计算机上,则用户将无法从AIX LDAP客户端创建用户。 他们收到上面的错误信息。 您可以通过安装APAR IY90556来纠正此问题。

问题:mksecldap是否允许用户迁移一组特定的AIX用户?

mksecldap是否允许用户在进行服务器配置时迁移一组特定的AIX用户?

解:
不可以。在进行服务器配置时, mksecldap不支持将一组特定的用户迁移为LDAP用户。 要处理此需求,请运行mksecldap命令,以便不迁移任何AIX用户,并稍后使用mkuser -R LDAP创建所需的用户。

重要的是要注意, -u标志在进行服务器配置时仅接受NONE作为参数,而其他任何参数都将被忽略。

mksecldap -s -a cn=admin -p adminpwd -S rfc2307aix -u user1,user2

在这种情况下,将导出所有本地用户。

问题:如果使用-u NONE完成服务器配置,则客户端配置问题

这分为三个问题。

问题1:

/usr/sbin/mksecldap -c -h batonrouge05.upt.austin.ibm.com  -a cn=admin -p passw0rd

“无法从所有基本DN查找用户
客户端设置失败。”

客户端安装程序基本上会执行ldapsearch来查看是否已将任何用户添加到LDAP服务器。 如果在LDAP中找不到任何用户,则配置将失败。 至少应将一个用户添加到LDAP以解决此问题。

应该使用ldapadd命令将以下ldif文件添加到LDAP DIT。

dn: ou=People,cn=admin
ou: People
objectClass: organizationalUnit

dn: uid=testuser,ou=People,cn=admin
uid: testuser
objectClass: aixauxaccount
objectClass: shadowaccount
objectClass: posixaccount
objectClass: account
objectClass: ibm-securityidentities
objectclass: top
cn: testuser
passwordchar: *
uidnumber: 203
gidnumber: 203
homedirectory: /home/testuser
loginshell: /usr/bin/ksh
isadministrator: false

问题2:

mksecldap -c -h batonrouge05.upt.austin.ibm.com -a cn=admin -p passw0rd

“无法从LDAP服务器中找到组基础DN。
客户端设置失败。”

在配置客户端之前,LDAP DIT中应存在组基础DN。 上面的失败是由于不存在组基础DN。 需要添加一个组来解决此问题。

应该使用ldapadd命令将以下ldif文件添加到LDAP DIT中。

dn: ou=Groups,cn=admin
ou: Groups
objectClass: organizationalUnit

dn: cn=testgrp,ou=Groups,cn=admin
cn: testgrp
objectclass: aixauxgroup
objectclass: posixgroup
objectclass: top
gidnumber: 203
memberuid: testuser
isadministrator: false

问题三:
使用-u NONE配置服务器并且已成功配置客户端时,使用mkuser创建用户。

# mkuser -R LDAP id=1000 pgrp=grp_2000 groups="grp_2006,grp_2012" usr_1000
Group "staff" does not exist.
Check "/usr/lib/security/mkuser.default" file.

mkuser命令具有遗留的行为,即即使不使用默认设置,也应先检查默认设置。 失败,因为不存在称为职员的组。

如果将以下ldif文件添加到LDAP,则本章中的所有问题将一枪解决。

dn: ou=Groups,cn=admin
ou: Groups
objectClass: organizationalUnit

dn: cn=staff,ou=Groups,cn=admin
cn: staff
objectclass: aixauxgroup
objectclass: posixgroup
objectclass: top
gidnumber: 203
memberuid: testuser
isadministrator: false

dn: ou=People,cn=admin
ou: People
objectClass: organizationalUnit

dn: uid=testuser,ou=People,cn=admin
uid: testuser
objectClass: aixauxaccount
objectClass: shadowaccount
objectClass: posixaccount
objectClass: account
objectClass: ibm-securityidentities
objectclass: top
cn: testuser
passwordchar: *
uidnumber: 203
gidnumber: 203
homedirectory: /home/testuser
loginshell: /usr/bin/ksh
isadministrator: false

可以将ldif文件添加到LDAP服务器,如下所示:

#/usr/bin/ldapadd -D $ADMIN_DN -w $ADMIN_DN_PASSWD -f <ldif file>

必须在ldif文件中使用已配置的LDAP服务器的基本DN。 否则,无法成功添加此ldif文件。


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值