用户管理是分布式计算环境的重要组成部分。 它提供了通用访问所需的一致的身份验证和授权服务。 为了实现集中式安全性,许多客户使用IBM Directory Server(IBMAIX®支持的集中式安全性机制)。 为了实现万无一失的IBM Directory Server配置并准备使用,您需要对轻型目录访问协议(LDAP)概念和配置管理有很好的了解。
本文概述了LDAP及其体系结构。 它还讨论了AIX上的LDAP配置和管理。 本文重点介绍在配置LDAP服务器和客户端时对各种类型的问题进行故障排除。 故障诊断部分中的建议应该对AIX管理员,技术支持和开发社区有所帮助。
LDAP是用于访问目录服务器的行业标准协议。 需要配置IBM Directory Server,以通过LDAP以及AIX上的AIX特定模式和RFC 2307模式支持用户认证。
LDAP已针对读取,浏览以及搜索目录和存储有序信息的专用数据库进行了优化。 许多计算环境旨在使网络资源可从任何位置供用户使用,例如工作站,公用工作站和Web。 IBM Directory Server可用于用户管理以实现此目标。
图1显示了LDAP配置的概述。
LDAP是用于存储订购信息的标准化协议和专用数据库。 当用户登录时,LDAP客户端将查询发送到LDAP服务器,以从集中式数据库获取用户和组信息。 DB2®是用于存储用户和组信息的数据库。 LDAP数据库基于条目的层次结构存储和检索信息,每个条目都有其自己的区分名称,类型和属性。 属性(属性)为条目定义可接受的值。 LDAP数据库可以存储和维护许多用户的条目。
在AIX版本4.3中创建了一个LDAP安全性加载模块。 该加载模块通过IBMSecureWay®Directory提供用户认证以及集中的用户和组管理功能。 可以将LDAP服务器上定义的用户配置为登录LDAP客户端,即使该用户未在本地定义。 AIX LDAP装入模块已与AIX操作系统完全集成。
可以使用以下任一配置AIX上的IBM Directory Server:
ldapcfg命令行工具 ldapcfg工具的图形版本,称为ldapxcfg mksecldap命令以下文件集是配置IBM Directory Server所必需的:
安装DB2文件集db2_09_01.rte。 安装以下文件集: idsldap.srv64bit61.rte idsldap.srvbase64bit61.rte以下文件集是配置LDAP客户端所必需的。
idsldap.clt32bit61.rte idsldap.clt64bit61.rte idsldap.cltbase61.rte注意: 61代表文件集的版本。 取决于您所安装的版本。
AIX提供了mksecldap命令来设置IBM Directory服务器和客户机以利用服务器。
mksecldap命令为新服务器设置执行以下任务:
创建ldapdb2默认DB2实例。 创建ldapdb2默认DB2数据库。 创建用于存储AIX用户和组的AIX树DN(后缀)。 将用户和组从本地主机的安全数据库文件导出到LDAP数据库。 设置LDAP服务器管理员DN和密码。 (可选)将服务器设置为使用安全套接字层(SSL)通信。 安装/ usr / ccs / lib / libsecldapaudit,这是LDAP服务器的AIX审计插件。 完成上述所有操作后,启动LDAP服务器。 将LDAP服务器条目(slapd)添加到/ etc / inittab中,以便在重启后自动重启。 mksecldap -s -a cn=admin -p passwd -S rfc2307aix所有设置信息都存储在/etc/ibmslapd.conf文件中。
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 compat或compat 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和客户机。 这样可以避免通过网络以明文格式传输数据。 它加密信息,然后通过网络发送。 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客户机系统上的常用命令。
本节包括几个典型的问题,以及建议的解决方案。
在重新启动LDAP服务器或进行LDAP服务器配置时,LDAP服务器以仅配置模式启动。返回以下错误:“未能初始化be_config。遇到错误。服务器以仅配置模式启动。”
解:
通过使用以下命令来确认服务器是否以纯配置方式启动,或者查看/var/ldap/ibmslapd.log以获取此信息。 # ldapsearch -h teak01.upt -b "" -s base objectclass=* | grep config ibm-slapdisconfigurationmode=TRUE 有时,DB2许可证密钥未正确注册。 这是此问题的主要原因之一。 要解决此问题,必须按如下所示注册许可证密钥: 以具有root用户权限的用户身份登录。 注册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 如果上述步骤仍不能解决问题,请在重新进行LDAP服务器配置之前清理LDAP服务器配置并导出LDAP_DBG = 1。 /var/ldap/dbg.out、/var/ldap/dbg.log和/var/ldap/ibmslapd.log文件应具有所需的诊断信息,以进一步调试此问题。成功配置Directory Server后,无法使用LDAP用户登录系统。
解: 确保以下区域中没有错误,这可能导致对特定LDAP用户的存在的错误印象。
在客户端配置期间,使用mksecldap -u <userlist>指定逗号分隔的用户名列表或ALL,以启用客户端上的所有用户。 这意味着用户的SYSTEM和注册表属性设置为LDAP。 mksecldap -c -h monster -a cn=admin -p adminpwd -u user1,user2-u标志可确保将user1和user2用户用作客户端计算机上的LDAP用户,但是此标志不会在LDAP服务器数据库中添加任何用户。 如果将这些用户使用mkuser -R LDAP <user name>添加到LDAP或在进行服务器配置时,则登录成功,如下所示:
mksecldap -s -a cn=admin -p adminpwd -S rfc2307aix在这种情况下,所有本地用户都将添加到LDAP中。 由于user1和user2是本地用户,它们将被自动添加到LDAP数据库中。
验证Directory Server已启动并正在运行。 ibmdiradm和ibmslapd进程应该正在运行: # 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 验证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 验证该用户是否存在于服务器上: # 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= 验证用户的注册表和SYSTEM属性。 两者都应设置为LDAP。 lsuser -a registry SYSTEM username 验证是否将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认证用户需要什么? mksecldap是否允许用户在进行服务器配置时迁移一组特定的AIX用户?
解: 否。默认情况下, mksecldap在进行服务器配置时mksecldap所有AIX用户迁移为LDAP认证用户。
如果您不想迁移任何AIX用户作为LDAP用户,运行mksecldap用命令-u NONE 。
#mksecldap -s -a cn=admin -p adminpwd -s rfc2307aix -u NONEmkuser命令可能返回以下错误消息:
# 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不支持将一组特定的用户迁移为LDAP用户。 要处理此需求,请运行mksecldap命令,以便不迁移任何AIX用户,并稍后使用mkuser -R LDAP创建所需的用户。
重要的是要注意, -u标志在进行服务器配置时仅接受NONE作为参数,而其他任何参数都将被忽略。
mksecldap -s -a cn=admin -p adminpwd -S rfc2307aix -u user1,user2在这种情况下,将导出所有本地用户。
这分为三个问题。
解
问题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
相关资源:微信小程序源码-合集6.rar