mksecldap 命令

用途

AIX系统设置为轻量级目录访问协议(LDAP)服务器或客户端,以进行安全身份验证和数据管理。

语法

设置服务器
mksecldap -s -a adminDN -p adminpasswd -S schematype [ -d baseDN ] [ -n port ] [ -k SSLkeypath ] [ -w SSLkeypasswd ] [ -x proxyDN -X proxypasswd ] [ -u NONE ] [ -v LDAPVersion ] [ -U ] [ -j <ssl|tls|ssltls|none|sslonly> ]
设置客户端
mksecldap -c -h serverlist -a bindDN -p bindpwd [ -d baseDN ] [ -n serverport ] [ -k SSLkeypath ] [ -w SSLkeypasswd ] [ -t cachetimeout ] [ -C cachesize ] [ -P NumberofThreads ] [ -T heartBeatInt ] [ -M searchMode ] [ -D defaultEntry ] [ -A authType ] [ -i databaseModule ] [ -u userlist ] [ -U ] [ -j <ssl|tls> ] [ -g [ -I domainID ]]

描述

mksecldap 命令可用于设置 IBM 目录服务器和客户端进行安全身份验证和数据管理。
注意:
  1. 不能同时使用客户端(-c 标志)和服务器(-s 标志)选项。 设置服务器时,可能需要在该系统上运行两次 mksecldap 命令,以将服务器和系统设置为客户端。
  2. LDAP 服务器配置文件的名称和位置取决于所安装的 LDAP 软件版本。 有关 LDAP 软件的更多信息,请参阅所安装版本的 LDAP 软件文档。
服务器设置
确保已安装 LDAP 服务器和后台 IBM® DB2® 软件。 运行 "mksecldap命令进行 LDAP 服务器设置时,不需要预先配置IBM DB2。 运行 "mksecldap命令设置服务器时,将执行以下操作:
  1. 创建 DB2 实例,默认实例名称为 ldapdb2
  2. 如果正在配置 IBM 目录服务器 6.0 或更高版本,则会创建一个默认名称为 ldapdb2 的 LDAP 服务器实例。 将显示提示,要求输入用于创建密钥存储文件的加密种子值。 输入的加密种子长度必须至少为 12 个字符。
  3. 创建 DB2 数据库,默认数据库名称为 ldapdb2 。 如果存在数据库, mksecldap 命令将绕过步骤 1 和步骤 2。 当 LDAP 服务器设置为其他用途时,数据库就会存在。 mksecldap 命令使用现有数据库存储用户或组数据。 AIX 用户或组数据。
  4. 创建目录信息树 (DIT) 的基础区分名称(DN(后缀))。 基本 DN 必须以其中一个属性开头,如 dc, o, ou, ccn。 如果未在命令行中提供基本 DN,则默认后缀将设为 cn=aixdata ,用户或组数据将放在 cn=aixdata DN 下。 否则的话,mksecldap 命令使用指定带有 -d 选项的用户/ph> 选项。 使用 sectoldif 命令可将用户和组导出到 LDAP。 默认情况下会创建以下 DIT:
                    <user supplied suffix>
                              |
                  --------------------------
                  |                        |
                ou=People                ou=Groups
  5. 如果不指定 -u NONE 标志,则会将本地主机安全数据库文件中的数据导出到 LDAP 数据库中。 如果指定 -u NONE ,则 mksecldap 命令不会像正常创建那样创建 ou=Peopleou=Group 容器。 它不会导出用户和组。 根据 -S 选项, mksecldap 命令会使用下列 LDAP 模式之一导出用户或组:
    AIX
    AIX 模式 (aixaccountaixaccessgroup 对象类)
    RFC2307
    RFC 2307 模式(posixaccountshadowaccountposixgroup 对象类)
    RFC2307AIX
    完全支持 RFC 2307 模式 AIX (posixaccount, shadowaccount, posixgroup, aixauxaccount, 和 aixauxgroup 对象类)。
  6. 设置 LDAP 的服务器管理员 DN 和密码。
  7. 如果使用 -n 选项,那么将服务器设置为侦听指定端口。 默认端口为 389。 此外,传输层安全(TLS)将此端口作为默认端口(安全套接字层(SSL)为 636)。
  8. 使用 LDAP 模块配置更新 /usr/lib/security/methods.cfg 文件。 如果在命令行输入 -i 选项,则会设置一个 LDAPA 身份验证专用模块和一个复合加载模块(例如,在指定 -i files 选项时设置 LDAPA 文件),其中 LDAPA 用于身份验证,数据库模块用于身份识别。
  9. 如果指定了 "-x和 "-X选项,则创建代理条目。 使用代理条目为基本 DN 创建 ACL。 默认 ACL 可在 /etc/security/ldap/proxyuser.ldif.template 文件中找到。 客户端系统使用代理条目绑定服务器。 更多信息,请参阅客户端设置部分。
  10. 如果指定了 -k 选项,则将服务器设置为使用 SSL 或 TLS,以确保服务器与客户端之间的数据传输安全。 安装 GSKitv8 文件集,并为该设置创建 SSL 或 TLS 密钥。 您可以在安装AIX® 7.3扩展包 DVD 后安装 "GSKitv8文件集。
  11. 安装 /usr/ccs/lib/libsecldapaudit.a LDAP 服务器插件。 该插件支持 AIX 对 LDAP 服务器进行审计。
  12. 完成前面所有步骤后,启动或重新启动 LDAP 服务器。
  13. 将 LDAP 服务器进程 (slapd) 添加到 /etc/inittab 文件,以便在重启后启动 LDAP 服务器。
注意:"-U选项会重置服务器配置文件之前的设置。 对数据库没有影响。 首次运行 "mksecldap命令时,它会在 "/etc/security/ldap目录下保存两份服务器配置文件。 一个服务器配置文件副本的名称后缀为 .save.orig ,另一个副本的名称后缀为 .save。 在随后每次运行 "mksecldap命令时,只有当前服务器配置被保存为 ".save文件。 撤销选项使用 .save 副本恢复服务器配置文件。 在 AIX 5.3 中,可以连续启动 mksecldap -s 来创建和填充多个后缀。 如果创建并填充了多个后缀,则需要手动恢复 .save.orig 文件,以还原为初始配置文件。
客户设置
确保 LDAP 客户端文件集已安装,LDAP 服务器已设置并正在运行。 mksecldap 命令在客户端设置期间执行以下步骤:
  1. 保存一个或多个 LDAP 服务器的主机名。
  2. 保存服务器的用户库 DN 和组库 DN。 如果未在命令行中提供 -d 选项,则 mksecldap 命令会在 LDAP 服务器中搜索 aixaccountaixaccessgroupposixaccountposixgroupaixauxaccount 对象类,并设置基本 DN。 如果服务器有多个用户或组基础,则必须在 -d 选项中提供相对区分名称 (RDN)。 mksecldap 命令可将基本 DN 设置为该 RDN 中的 DN。
    如果在客户端设置过程中发现 posixaccount objectclass, mksecldap 命令就会从服务器搜索并保存以下实体的基本 DN:
    • hosts
    • networks
    • services
    • netgroups
    • protocols
    • rpc
    • authorizations
    • roles
    • privcmds
    • privdevs
    • privfiles
    • usrkeystore
    • grpkeystore
    • efscookies
    • admkeystore
    • domains
    • domobjs
  3. 确定 LDAP 服务器使用的模式类型。 模式类型包括AIX特定模式、"RFC 2307模式、完全支持AIX的 "RFC 2307模式或 Microsoft Services for UNIX3.0模式。 因此,它会在 /etc/security/ldap/ldap.cfg 文件中设置对象类和属性映射。 mksecldap 命令不识别其他模式类型。 您必须手动设置客户端。

    开始更改如果 Active Directory (AD) 服务器上的 Microsoft™ services for UNIX® 3.0 模式已废弃,如果指定 -g 标志,则仍支持 Unix 模式。 增加了 -g-I 标志,以支持 AIX LDAP 客户端,用于管理 Microsoft Active Directory (MSAD) 上的用户和组,而无需使用 Unix 的身份管理(IDMU Unix 属性插件),从 Windows Server 2012R2 开始,该插件已被弃用。结束更改

  4. 为本主机和 LDAP 服务器之间的安全数据传输设置 SSL 或 TLS。 提前创建客户端 SSL 或 TLS 密钥和密钥密码。 服务器必须设置为使用 SSL 或 TLS,客户端 SSL 或 TLS 才能工作。 SSL 或 TLS 功能需要安装 GSKitv8 文件集。 您可以在安装AIX 7.3扩展包 DVD 后安装 "GSKitv8文件集。
  5. 加密和绑定密码。
  6. 保存 LDAP 服务器 BIND DN 和密码。 DN 和密码对必须存在于 LDAP 服务器上。 如果没有给出绑定 DN 和密码, mksecldap 命令将使用匿名绑定。 一些数据可能不会从具有匿名绑定的 LDAP 服务器返回。 在选择匿名绑定之前,请联系您的 LDAP 管理员。
  7. 按照客户机设置标志部分中所定义的,设置可选指定配置值。
  8. 通过修改 /etc/security/user 文件中的用户的 SYSTEM 行选择设置用户列或是全部用户。 有关启用 LDAP 登录的更多信息,请参阅注释
  9. 启动客户端守护进程 (secldapclntd 命令)。
  10. /etc/inittab 文件中添加客户端守护进程,以便在重启后启动该守护进程。
注: 所有客户机配置数据都将保存到 /etc/security/ldap/ldap.cfg 配置文件中。 -U 选项将先前的设置重置为 /etc/security/ldap/ldap.cfg 文件,用 /etc/security/ldap/ldap.cfg.save 文件中存储的配置替换该文件。 将 /etc/security/user 的默认字段 SYSTEM 设置为 LDAP ,则只有 LDAP 用户才能登录系统。 将 SYSTEM 设置为 LDAPcompat,可以使 LDAP 用户和本地用户都能够登录该系统。

标志

服务器设置
描述
-a AdminDN 指定 LDAP 服务器管理员 DN。
-d baseDN 指定 AIX 子树的后缀或基本 DN。 缺省值为 cn=aixdata
-j < ssl | tls | ssltls | none | sslonly > ] 指定与 LDAP 客户机通信期间使用的加密连接类型。 有效值为 SSL、TLS、SSLTLS 和仅 SSL。 如果指定 -k-w 标志而不指定 -j 标志,则默认连接类型为 SSL。
-k SSLkeypath 指定服务器的 SSL 或 TLS 密钥数据库的完整路径。
-n 端口 指定 LDAP 服务器侦听的端口号。 非 SSL 默认端口号为 389 ,SSL 默认端口号为 636
-p adminpasswd 指定管理员 DN 的明文密码。
-S 示意图 指定用于在 LDAP 服务器中表示用户和组条目的 LDAP 模式。 有效值为 AIX、 RFC2307 和 RFC2307AIX。
-s 指定运行该命令是为了设置服务器。
-w SSLkeypasswd 指定 SSL 或 TLS 密钥数据库的密码。
-U 指定撤销先前的服务器安装恢复 LDAP 配置文件。 数据库不受影响。
-u NONE 指定不从本地系统迁移用户和组。 有效值为 NONE。 其他的任何值都被忽略。 如果指定 -u 选项, mksecldap 命令不会创建 ou=Peopleou=Group 容器,也不会导出用户和组。 该选项不需要 -S 选项。
-v LDAP版本 表示要配置的 LDAP 服务器文件集的特定版本。 值的格式必须是 #.#、 其中 # 是数字。 例如,6.0。 如果不指定 -v 标志, mksecldap 命令将配置已安装的 LDAP 服务器文件集的最新版本。
-X proxypasswd 指定代理 DN 的密码。
-x proxyDN 指定代理条目的 DN。 客户端系统会使用代理条目绑定到该服务器。
客户端设置
描述
-a bindDN 指定绑定到 LDAP 服务器的 DN。 在 LDAP 服务器上必须存在 DN。 如果 authtypeunix_auth ,该 bindDN 变量必须具有读取 LDAP 服务器上用户密码字段的权限。 如果没有 -a 选项, mksecldap 命令将配置匿名绑定。
注: 某些数据可能无法通过匿名绑定从 LDAP 服务器检索。 有关使用匿名绑定的更多信息,请联系 LDAP 服务器管理员。
-A authType 指定用于验证用户身份的验证机制。 有效值为unix_authldap_auth。 默认值为 unix_auth。 以下是各值的定义:
unix_auth
从 LDAP 服务器读取用户密码并在本地执行身份验证。
ldap_auth
绑定到 LDAP 服务器。 以明文发送密码,用于身份验证。
注意: 在使用 ldap_auth 类型身份验证时,请使用 SSL 或 TLS,因为在身份验证过程中,密码会以明文形式发送到 LDAP 服务器。
-c 表示运行该命令是为了设置客户端。
-C 缓存大小 指定可以在客户端守护程序高速缓存中使用的最大用户条目数。 用户缓存的有效值范围为 10065536。 缺省值为 1000。 对于组缓存,有效值范围为 10065536。 缺省值为 1000。 如果使用 -C 选项在 start-secldapclntd 命令中设置用户缓存条目,组缓存将被设置为用户缓存的 10%。
-D defaultEntryLocation 指定代理条目的位置。 有效值为 ldaplocal。 默认值为 ldap。 以下是各值的定义:
ldap
所有属性默认值均使用 LDAP 中的默认条目。
local
所有属性默认值均使用本地 /etc/security/user 文件中的默认字段。
-d baseDN 指定用于 "mksecldap命令搜索用户基本 DN 和组基本 DN 的基本 DN。 如果没有在命令行中指定,则会搜索整个数据库。
开始更改-g 结束更改 指定启用 idgeneration 功能,该功能可在 Microsoft Active Directory 用作 LDAP 服务器时生成用户 ID (UID) 或组 ID (GID)。
-h 服务器列表 指定以逗号分隔的主机名(服务器和备份服务器)列表。
开始更改-I domainID结束更改 设置 -g 标志时,指定生成 UID 或 GID 时必须使用的域标识符。 值的范围为 domainID 值的范围是 1- 99。 的默认值为 1。 domainID 的默认值是 1。 这有助于在各域之间建立唯一的 ID。
注意: 在客户端配置期间,如果您没有设置 -I 旗帜 -g 标志, domainID 使用默认值 1。 必须为每个已配置的 domainID 必须为每个已配置的 AD 域分配一个唯一值。 唯一 domainID 必须在客户端配置中相同,以确保跨 AD 域生成的 UID 或 GID 的唯一性。
-i databaseModule 指定将 LDAP 配置为复合加载模块的仅验证模块 (LDAPA)。 该 databaseModule 选项指定复合加载模块的数据库模块。
-j < SSL | TLS > 指定与 LDAP 服务器通信期间使用的加密连接类型。 有效值为 SSL 和 TLS。 如果指定了 -k-w 标志而未指定 -j 标志,那么缺省连接类型为 SSL。
-k SSLkeypath 指定客户机 SSL 或 TLS 密钥数据库的完整路径。
-M searchMode 指定要检索的用户和组属性集合。 有效值为 ALLOS。 默认值为 ALL。 以下是各值的定义:
ALL
读取条目的所有属性。
OS
仅检索条目所需的操作系统属性。 非操作系统属性,如电话号码,不返回二进制图像。
注意: 只有当条目有许多非操作系统要求的属性或属性值较大时,才使用操作系统。 例如,二进制数据,以减少 LDAP 服务器的排序工作。
-n 服务器端口 指定 LDAP 服务器正在侦听的端口号。
-p 绑定密码 bindDN 指定用于绑定到 LDAP 服务器的明文密码。
-P NumberofThreads 指定客户端守护进程使用的线程数。 有效值范围为 1256。 缺省值为 10
-t 超时 指定高速缓存到期的最大时间长度。 有效值范围为 603600 秒。 默认值为 300 秒。 将此值设为 0 则禁用缓存。
注: cachetimeout 属性用于设置 usercachetimeoutgroupcachetimeout 属性的值。 从AIX 7.3 开始,cachetimeout属性已被弃用。 您可以改为使用 usercachetimeoutgroupcachetimeout 属性。
-T heartBeatInt 指定客户机和 LDAP 服务器间的脉动信号的时间间隔。 有效值范围为 603600 秒。 默认值为 300
-u UserList 指定要启用 LDAP 身份验证的逗号分隔用户名列表。 该用户列表的注册表和系统属性被设置为使用 LDAP 服务器。 指定 ALL 以启用客户端上的用户。
注意: /etc/security/user 文件默认节中的系统属性可设置为 LDAP 服务器,以便只允许 LDAP 用户登录。 如果系统属性设置为 LDAP 或 compat,则允许 LDAP 用户和本地用户登录系统。
-U 指定撤销 LDAP 客户机配置文件的先前客户机设置。
-w SSLkeyfilepath 指定客户机 SSL 或 TLS 密钥数据库的密码。

安全性

您必须获得 aix.security.ldap 授权才能使用该命令。

示例

  1. 要为用户和组设置 LDAP 服务器 RFC2307 AIX 的 LDAP 服务器,请输入以下命令:
    mksecldap -s -a cn=admin -p adminpwd -S rfc2307aix
    该命令设置 LDAP 服务器,LDAP 服务器管理员 DN 为 cn=admin ,密码为 adminpwd。 使用 RFC2307AIX 模式,将用户和组数据从本地文件导出到默认的 cn=aixdata 后缀。
  2. 要使用默认值以外的基本 DN 和 SSL 安全通信设置 LDAP 服务器,请输入以下命令:
    mksecldap -s -a cn=admin -p adminpwd -d o=mycompany,c=us -S rfc2307 -k /usr/ldap/serverkey.kdb
     -w keypwd 

    该命令用于设置 LDAP 服务器,LDAP 服务器管理员 DN 为 cn=admin ,密码为 adminpwd。 用户和组数据通过 RFC2307 模式从本地文件导出到 o=mycompany, c=us 后缀。 LDAP 服务器通过使用存储在 /usr/ldap/serverkey.kdb 文件中的密钥来使用 SSL 通信。 为按键提供密码,即 keypwd

  3. 要设置RFC2307AIX模式类型的 LDAP 服务器并创建代理账户,请输入以下命令:
    mksecldap -s -a cn=admin -p adminpwd -d c=us -S rfc2307aix -x cn=proxy,c=us -X proxypwd

    该命令用于设置 LDAP 服务器,LDAP 服务器管理员 DN 为 cn=admin ,密码为 adminpwd。 用户和组数据通过 RFC2307AIX 模式从本地文件导出到 c=us 后缀。 设置代理身份的 DN 为 "cn=proxy、"c=us,密码为proxypwd/etc/security/ldap/proxy.ldif.template 文件中指定的 ACL 应用于服务器上的 cn=proxyc=us DN。

  4. 要撤销先前的服务器设置,请输入以下命令:
    mksecldap -s -U 
    此命令撤销先前对服务器配置文件的设置。
    注意: 为安全起见,该命令不会删除任何数据库条目或在先前设置中创建的数据库。 如果不需要数据库条目或数据库,请手动删除它们。
  5. 要设置客户端使用 "server1.ibm.com和 "server2.ibm.comLDAP 服务器,请输入以下命令:
    mksecldap -c -a cn=admin -p adminpwd -h server1.ibm.com,server2.ibm.com

    向该客户机提供 LDAP 服务器管理员 DN 和密码以认证到服务器。 mksecldap命令会就所使用的模式类型联系 LDAP 服务器,并设置客户端。 不用从命令行的 -d 选项,将搜索整个 服务器 DIT 以得到用户库 DN 和组库 DN。

  6. 要设置客户端使用 SSL 与 "server3.ibm.comLDAP 服务器通信,请输入以下命令:
    mksecldap -c -a cn=admin -p adminpwd -h server3.ibm.com -d o=mycompany,c=us 
    -k /usr/ldap/clientkey.kdb -w keypwd -u user1,user2 
    该命令设置的 LDAP 客户端与示例 3 类似,但使用 SSL 通信。 mksecldap命令会搜索 "o=mycompany、"c=usRDN 中的用户基本 DN 和组基本 DN。 配置 user1 帐户 和 user2 帐户以在整个 LDAP 中认证。
    注意: -u ALL 选项可让 LDAP 用户登录该客户端。
  7. 要设置客户端与 "server4.ibm.com对话并使用 "ldap_auth身份验证和代理绑定,请输入以下命令:
    mksecldap -c -a cn=proxy,c=us -p proxypwd -h server4.ibm.com -A ldap_auth
    此命令设置 LDAP 客户端,使其与 LDAP 服务器绑定,并使用 "cn=proxy和 "c=usDN。 由于不使用管理员 DN,客户机的访问权限取决于 LDAP 服务器上为 cn=proxy, c=us DN 设置的 ACL。 客户端设置为使用 ldap_auth 类型的身份验证,将密码以明文发送到 LDAP 服务器进行比较。
    注意: 使用 ldap_auth 类型的身份验证时,请使用 SSL 或 TLS。 在身份验证过程中,密码会以明文形式发送到 LDAP 服务器。
  8. 要撤销先前的客户端设置,请输入以下命令:
    mksecldap -c -U

    该命令撤销之前对 "/etc/security/ldap/ldap.cfg文件的设置。 该命令不会删除 "/etc/security/user文件中的 "SYSTEM=LDAP和 "registry=LDAP条目。

  9. 要将 LDAP 作为仅验证模块并使用文件进行用户身份验证来设置客户端,请输入以下命令:
    mksecldap -c -a cn=admin -p adminpwd -h server1.ibm.com -i files -A ldap_auth

    该命令设置 LDAPA 文件复合加载模块,其中模块 LDAPA 用于用户身份验证,文件用于用户身份识别。 身份验证设置为 ldap_auth

  10. 开始更改要使用默认 domainID 1 ,请输入以下命令:
    mksecldap -c -a cn=admin -p adminpwd -h server1.in.ibm.com -d o=mycompany,c=us -A ldap_auth -g
    结束更改
  11. 开始更改要使用显式 domainID 11 ,请输入以下命令:
    mksecldap -c -a cn=admin -p adminpwd -h server1.in.ibm.com -d o=mycompany,c=us -g -I 11
    结束更改

访问的文件

表 1. 文件
方式

读取 ® 或写入 (w)

文件
r /etc/passwd
r /etc/group
r /etc/security/passwd
r /etc/security/limits
r /etc/security/user(在服务器上)
rw /etc/security/user
r /etc/security/environ
r /etc/security/user.roles
r /etc/security/lastlog
r /etc/security/smitacl.user
r /etc/security/mac_user
r /etc/security/group
r /etc/security/smitacl.group
r /etc/security/roles
rw /etc/security/login.cfg(在服务器上)
rw /etc/slapd32.conf(在服务器上)
rw /etc/security/ldap/ldap.cfg(客户端)