mksecldap 命令

用途

AIX®系统设置为 LDAP 服务器或客户端,用于安全身份验证和数据管理。

语法

安装一个服务器的语法为:

mksecldap -s -a adminDN -p adminpasswd -S 示意图 [ -d baseDN ] [ -n ] [ -k SSLkeypath] [ -w SSLkeypasswd ] [ -x proxyDN -X proxypasswd ] [ -u ] [-v LDAP 版本] [ -U ] [-j <ssl|tls|ssltls||sslonly>]

安装一个客户机的语法为:

mksecldap -c -h 服务器列表 -a bindDN -p 绑定密码 [ -d baseDN ] [ -n 服务器端口 ] [ -k SSLkeypath ] [ -w SSLkeypasswd ] [ -t 快取时间 ] [ -C 缓存大小 ] [ -P NumberofThreads ] [ -T heartBeatInt ] [-M searchMode ] [ -D defaultEntry ] [ -A authType ] [ -i databaseModule ] [ -u 用户列表 ] [ -U ] [-j <ssl|tls>]

描述

mksecldap命令可用于为安全身份验证和数据管理设置IBM®Directory 服务器和客户端。
注意:
  1. 客户机(-c 标志)和服务器( -s 标志)选项不能同时使用。 设置服务器时,mksecldap 命令可能需要在那台机器上运行两次。 第一次运行用来设置服务器,第二次运行用来将系统设置为客户机。
  2. LDAP 服务器配置文件的名称和位置取决于已安装的 LDAP 软件的版本。 请参阅已安装的发行版的 LDAP 软件文档以获取更多信息。

服务器设置

确保已安装 LDAP 服务器和后端IBM DB2软件。 运行mksecldap 命令进行 LDAP 服务器设置时,不需要预先配置IBM DB2。 当运行 mksecldap 命令来安装服务器时,该命令将:
  1. 创建DB2®实例,默认实例名称为ldapdb2
  2. 如果正在配置IBMDirectory Server6.0或更高版本,则会创建一个默认名称为ldapdb2的 LDAP 服务器实例。 将显示提示,要求输入用于创建密钥存储文件的加密种子值。 输入的加密种子值必须至少有十二个字符。
  3. 创建DB2数据库,默认数据库名称为ldapdb2。 如果一个数据库已经存在了,mksecldap 将略过前面两个步骤。 (这是当 LDAP 服务器已被安装做其他用途的案例。) mksecldap命令将使用现有数据库存储AIX用户/组数据。
  4. 创建目录信息树(DIT)的库 DN(后缀)。 库 DN 需要以以下属性之一开始: dcoou ccn。 如果没有从命令行提供库 DN,缺省的后缀设置为 cn=aixdata 并将用户/组数据放置在 cn=aixdata DN 下。 否则的话,mksecldap 命令使用指定带有 -d 选项的用户/ph> 选项。 使用 sectoldif 命令将用户和组导出到 LDAP。 缺省创建的目录信息树(DIT)显示如下。
                    <user supplied suffix>
                              |
                  --------------------------
                  |                        |
                ou=People                ou=Groups
  5. 如果不指定 -u NONE,那么将数据从本地主机的安全数据库文件导出到 LDAP 数据库。 如果指定-uNONE,则mksecldap不会像通常那样创建 "ou=People和 "ou=Group容器,也不会导出用户和组。 根据 -S 选项,mksecldap 命令使用三个 LDAP 模式中的一个导出用户/组:
    • AIX-AIX模式(aixaccountaixaccessgroup对象类)
    • RFC2307 - RFC 2307 模式(posixaccountshadowaccountposixgroup 对象类)
    • RFC2307AIX- 完全支持AIX的 RFC 2307 模式(posixaccountshadowaccountposixgroup 对象类,以及aixauxaccountaixauxgroup对象类)。
  6. 设置 LDAP 的服务器管理员 DN 和密码。
  7. 如果使用 -n 选项,那么将服务器设置为侦听指定端口。 缺省端口为 389。 此外,TLS 将此端口作为默认端口(SSL 为 636)。
  8. 使用 LDAP 模块配置更新 /usr/lib/security/methods.cfg 文件。 如果在命令行上输入 -i 选项,那么它还设置仅 LDAPA 认证的模块以及复合装入模块例如,指定了 -i files 选项时,还设置 LDAPAfiles),且 LDAPA 用于认证以及 databaseModule 用于识别。
  9. 如果指定了-x-X选项,则创建代理条目。 使用代理条目为库 DN 创建 ACL。 可以在 /etc/security/ldap/proxyuser.ldif.template中找到缺省 ACL。 代理条目可以由客户机系统用来绑定到服务器(请参阅这个文的设置部分)。
  10. 如果指定 -k 选项,请将服务器设置为使用 SSL(安全套接字层)或 TLS(传输层安全性)以在此服务器与客户机之间进行安全数据传输。 此设置要求安装 GSKIT 并创建 SSL 或 TLS 密钥。
  11. 安装 /usr/ccs/lib/libsecldapaudit.a LDAP 服务器插件。 此插件支持对 LDAP 服务器进行 AIX 审计。
  12. 当上述所有操作完成后,启动/重启 LDAP 服务器。
  13. 在 "/etc/inittab中添加 LDAP 服务器进程(slapd),以便在重启后启动 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 对象类,那么 mksecldap 也将尝试从服务器搜索下列实体的库 DN 并保存找到的任何内容:
    • 主机
    • networks
    • 服务
    • netgroups
    • protocols
    • rpc
    • authorizations
    • roles
    • privcmds
    • privdevs
    • privfiles
    • usrkeystore
    • grpkeystore
    • efscookies
    • admkeystore
    • domains
    • domobjs
  3. 确定 LDAP 服务器使用的模式类型 -AIX特定模式、RFC 2307模式、完全支持AIXRFC 2307模式或 Microsoft Services for UNIX3.0模式。 它会相应地设置 "/etc/security/ldap/ldap.cfg文件中的对象类和属性映射。 mksecldap 命令不识别其他方案类型,因此客户机必须 手动安装。
  4. 设置 SSL 或 TLS 以在此主机与 LDAP 服务器之间进行安全数据传输。 此步骤要求客户机预先创建 SSL 或 TLS 密钥和密钥密码,并且服务器必须设置为使用 SSL 或 TLS,客户机 SSL 或 TLS 才能生效。
  5. 加密和绑定密码。
  6. 保存 LDAP 服务器 BIND DN 和密码。 在 LDAP 服务器上必须存在 DN/password 对。 如果没有给出绑定 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 中存储的配置替换该文件。 将 SYSTEM 设置为 "LDAP,而默认字段为 "/etc/security/user,只能允许 LDAP 用户登录系统。 将 SYSTEM 设置为 LDAPcompat,可以使 LDAP 用户和本地用户都能够登录该系统。

标志

服务器设置

描述
-a AdminDN 指定 LDAP 服务器管理员 DN。
-d baseDN 指定 AIX 子树的后缀或基本 DN。 缺省值为 cn=aixdata
-j <ssl|tls|ssltls||sslonly>] 指定与 LDAP 客户机通信期间使用的加密连接类型。 有效值为 SSL、TLS、SSLTLS 和 SSLONLY。 如果指定了 -k-w 标志而未指定 -j 标志,那么缺省连接类型为 SSL。
-k SSL密钥路径 指定服务器的 SSL 或 TLS 密钥数据库的完整路径。
-n 指定 LDAP 服务器侦听的端口号。 缺省为非 SSL 使用 389,SSL 使用636。
-p 管理员密码 指定管理员 DN 的明文密码。
-S 示意图 指定用于代表 LDAP 服务器中的用户/组条目的 LDAP 模式。 有效值为 AIX, RFC2307和 RFC2307AIX。
-s 表示正在运行该命令来安装服务器。
-w SSL密钥密码 指定 SSL 或 TLS 密钥数据库的密码。
-U 指定撤销先前的服务器安装恢复 LDAP 配置文件。 数据库不受影响。
-u NONE 指定不从本地系统迁移用户和组。 唯一的有效值为 NONE。 其他的任何值都被忽略。 使用该选项时,"mksecldap不会像通常那样创建 "ou=People和 "ou=Group容器,也不会导出用户和组。 该选项不需要 -S 选项配合使用。
-v LDAP 版本 表示要配置的 LDAP 服务器文件集的特定版本。 值的格式必须为 #. # 其中 # 是数字。 例如,6.0。 如果没有指定,那么 mksecldap 命令配置已安装的 LDAP 服务器文件集的最近版本。
-X 代理密码 指定代理 DN 的密码。
-x proxyDN 指定代理条目的 DN。 该条目可由客户机系统用来绑定到这个服务器。

客户端设置

描述
-a bindDN 指定绑定到 LDAP 服务器的 DN。 在 LDAP 服务器上必须存在 DN。 如果 authtype 是 unix_auth,那么 bindDN 必须在 LDAP 服务器上具有对 userPassword 字段的读访问权。 没有 -a 选项的情况下, mksecldap 会配置匿名绑定。
注: 某些数据可能无法通过匿名绑定从 LDAP 服务器检索。 请咨询 LDAP 服务器管理员有关使用匿名绑定的信息。
-A authType 指定用于认证用户的认证机制。 有效值为 unix_authldap_auth。 缺省值为 unix_auth。 值定义如下:
  • unix_auth-从 LDAP 检索用户密码并在本地执行认证。
  • ldap_auth-通过明文发送密码绑定到 LDAP 服务器用于认证。
注意:在使用ldap_auth类型身份验证时,强烈建议使用 SSL 或 TLS,因为在身份验证过程中,密码将以明文形式发送到 LDAP 服务器。
-i databaseModule 指定将 LDAP 配置为复合装入模块的仅认证模块(LDAPA)。 databaseModule 选项指定复合装入模块的数据库模块。
-j < ssl | tls > 指定与 LDAP 服务器通信期间使用的加密连接类型。 有效值为 SSL 和 TLS。 如果指定了 -k-w 标志而未指定 -j 标志,那么缺省连接类型为 SSL。
-c 表示运行命令来安装客户机。
-C 缓存大小 指定可以在客户端守护程序高速缓存中使用的最大用户条目数。 用户缓存的有效值范围为 100-65536。 缺省值为 1000。 组高速缓存的有效范围为 10 到 65536。 缺省值为 100。 如果在 start-secldapclntd 命令中使用 -C 选项设置用户高速缓存条目,那么组高速缓存将设置为用户高速缓存的 10%。
-D defaultEntryLocation 指定代理条目的位置。 有效值是 ldaplocal。 缺省值为 ldap。 值定义如下:
  • ldap-为所有属性缺省值使用缺省条目。
  • local -将本地 /etc/security/user 文件中的缺省节用于所有属性缺省值。
-d baseDN 指定库 DN 以使 mksecldap 命令去搜索用户库 DN 和组库 DN。 如果不从命令行指定,将搜索整个数据库。
-h 服务器列表 指定主机名列表,之间用逗号分隔(服务器 和备份服务器)。
-k SSL密钥路径 指定客户机 SSL 或 TLS 密钥数据库的完整路径。
-M searchMode 指定要检索的用户和组属性集合。 有效值为 ALLOS。 缺省值为 ALL。 值定义如下:
  • ALL-检索条目的所有属性。
  • OS-检索只是操作系统需要的条目属性。 不返回诸如电话号码、二进制映像等的非 OS 属性。
注意:只有当条目有许多非操作系统所需的属性或属性值较大(如二进制数据)时,才使用操作系统,以减少 LDAP 服务器的排序工作。
-n 服务器端口 指定 LDAP 服务器正在侦听的端口号。
-p 绑定密码 为用于绑定到 LDAP 服务器的 bindDN 指定明文密码。
-P NumberofThreads 指定客户端守护程序使用的线程数。 有效值为 1 到 256。 缺省值为 10。
-t 缓存超时 指定高速缓存到期的最大时间长度。 有效值为 60-3600 秒。 缺省值为 300 秒。 将该值设为0将禁用高速缓存。
-T heartBeatInt 指定客户机和 LDAP 服务器间的脉动信号的时间间隔。 有效值为 60-3600 秒。 缺省值为 300。
-u 用户列表 指定用逗号分隔的用户名的列表,要为 LDAP 认证启用这些用户名。 这些用户将其注册表和 SYSTEM 属性设置为使用 LDAP。 指定 ALL 启用客户机上的所有用户。
注:或者,也可以将 "/etc/security/user默认字段中的 SYSTEM 属性设置为 LDAP,这样只有 LDAP 用户才能登录。 将 SYSTEM 属性设置为 LDAP 或 compat 可以允许 LDAP 用户和本地用户登录到系统。
-w SSL密钥文件路径 指定客户机 SSL 或 TLS 密钥数据库的密码。
-U 指定撤销 LDAP 客户机配置文件的先前客户机设置。

安全性

具有 aix.security.ldap 权限的用户有权使用此命令。

示例

  1. 要为用户和组设置AIX特定模式的 LDAP 服务器,请输入
    mksecldap -s -a cn=admin -p adminpwd -S rfc2307aix
    这将设置一个 LDAP 服务器,LDAP 服务器管理员 DN 为cn=admin,密码为adminpwd。 用户和组数据从本地文件导出到使用 RFC2307AIX 模式的缺省 cn=aixdata 后缀。
  2. 要使用 SSL 安全通信设置 LDAP 服务器,且 "baseDN不是默认值,请输入
    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 模式的 cn=us 后缀。 使用 cn=proxy,c=us DN 和 proxypwd 密码设置代理标识。 /etc/security/ldap/proxy.ldif.template中指定的 ACL 也将应用于服务器上的cn=proxy,c=usDN。
  4. 要撤销先前的服务器设置:
    mksecldap -s -U 
    这会撤销先前对服务器配置文件的设置。 注:由于安全原因,这不删除先前设置所创建的任何数据库项或数据库。 如果不再需要数据库条目/数据库,则必须手动删除它们。
  5. 要建立一个客户机,它使用 server1.ibm.comserver2.ibm.com LDAP 服务器,请输入:
    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.com LDAP 服务器交谈,请输入:
    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 
    这样就建立了一个与情况 3 类似的 LDAP 客户端,但使用 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
    这使用 cn=proxy,c=us DN 将 LDAP 客户机设置为绑定到 LDAP 服务器。 因为没有使用管理员 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注册表=LDAP条目。
  9. 要将 LDAP 设置为仅用于身份验证的模块,并使用文件进行用户身份验证,请输入
    mksecldap -c -a cn=admin -p adminpwd -h server1.ibm.com -i files -A ldap_auth
    它设置 LDAPAfiles 复合装入模块,其中模块 LDAPA 用于用户认证而文件用于用户标识。 认证设置为 ldap_auth。

访问的文件

描述
方式 文件
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(客户机上)