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 ]]
描述
- 不能同时使用客户端(-c 标志)和服务器(-s 标志)选项。 设置服务器时,可能需要在该系统上运行两次 mksecldap 命令,以将服务器和系统设置为客户端。
- LDAP 服务器配置文件的名称和位置取决于所安装的 LDAP 软件版本。 有关 LDAP 软件的更多信息,请参阅所安装版本的 LDAP 软件文档。
- 服务器设置
- 确保已安装 LDAP 服务器和后台 IBM® DB2® 软件。 运行 "mksecldap命令进行 LDAP 服务器设置时,不需要预先配置IBM DB2。 运行 "mksecldap命令设置服务器时,将执行以下操作:
- 创建 DB2 实例,默认实例名称为
ldapdb2。 - 如果正在配置 IBM 目录服务器 6.0 或更高版本,则会创建一个默认名称为
ldapdb2的 LDAP 服务器实例。 将显示提示,要求输入用于创建密钥存储文件的加密种子值。 输入的加密种子长度必须至少为 12 个字符。 - 创建 DB2 数据库,默认数据库名称为
ldapdb2。 如果存在数据库, mksecldap 命令将绕过步骤 1 和步骤 2。 当 LDAP 服务器设置为其他用途时,数据库就会存在。 mksecldap 命令使用现有数据库存储用户或组数据。 AIX 用户或组数据。 - 创建目录信息树 (DIT) 的基础区分名称(DN(后缀))。 基本 DN 必须以其中一个属性开头,如
dc,o,ou,c或cn。 如果未在命令行中提供基本 DN,则默认后缀将设为cn=aixdata,用户或组数据将放在cn=aixdataDN 下。 否则的话,mksecldap 命令使用指定带有 -d 选项的用户/ph> 选项。 使用 sectoldif 命令可将用户和组导出到 LDAP。 默认情况下会创建以下 DIT:<user supplied suffix> | -------------------------- | | ou=People ou=Groups - 如果不指定
-u NONE标志,则会将本地主机安全数据库文件中的数据导出到 LDAP 数据库中。 如果指定-u NONE,则 mksecldap 命令不会像正常创建那样创建ou=People和ou=Group容器。 它不会导出用户和组。 根据 -S 选项, mksecldap 命令会使用下列 LDAP 模式之一导出用户或组:- AIX
- AIX 模式 (
aixaccount和aixaccessgroup对象类)
- RFC2307
- RFC 2307 模式(
posixaccount、shadowaccount和posixgroup对象类)
- RFC2307AIX
- 完全支持 RFC 2307 模式 AIX (
posixaccount,shadowaccount,posixgroup,aixauxaccount, 和aixauxgroup对象类)。
- 设置 LDAP 的服务器管理员 DN 和密码。
- 如果使用 -n 选项,那么将服务器设置为侦听指定端口。 默认端口为 389。 此外,传输层安全(TLS)将此端口作为默认端口(安全套接字层(SSL)为 636)。
- 使用 LDAP 模块配置更新 /usr/lib/security/methods.cfg 文件。 如果在命令行输入 -i 选项,则会设置一个 LDAPA 身份验证专用模块和一个复合加载模块(例如,在指定
-i files选项时设置 LDAPA 文件),其中 LDAPA 用于身份验证,数据库模块用于身份识别。 - 如果指定了 "-x和 "-X选项,则创建代理条目。 使用代理条目为基本 DN 创建 ACL。 默认 ACL 可在 /etc/security/ldap/proxyuser.ldif.template 文件中找到。 客户端系统使用代理条目绑定服务器。 更多信息,请参阅客户端设置部分。
- 如果指定了 -k 选项,则将服务器设置为使用 SSL 或 TLS,以确保服务器与客户端之间的数据传输安全。 安装 GSKitv8 文件集,并为该设置创建 SSL 或 TLS 密钥。 您可以在安装AIX® 7.3扩展包 DVD 后安装 "GSKitv8文件集。
- 安装 /usr/ccs/lib/libsecldapaudit.a LDAP 服务器插件。 该插件支持 AIX 对 LDAP 服务器进行审计。
- 完成前面所有步骤后,启动或重新启动 LDAP 服务器。
- 将 LDAP 服务器进程 (slapd) 添加到 /etc/inittab 文件,以便在重启后启动 LDAP 服务器。
注意:"-U选项会重置服务器配置文件之前的设置。 对数据库没有影响。 首次运行 "mksecldap命令时,它会在 "/etc/security/ldap目录下保存两份服务器配置文件。 一个服务器配置文件副本的名称后缀为 .save.orig ,另一个副本的名称后缀为 .save。 在随后每次运行 "mksecldap命令时,只有当前服务器配置被保存为 ".save文件。 撤销选项使用 .save 副本恢复服务器配置文件。 在 AIX 5.3 中,可以连续启动mksecldap -s来创建和填充多个后缀。 如果创建并填充了多个后缀,则需要手动恢复 .save.orig 文件,以还原为初始配置文件。 - 创建 DB2 实例,默认实例名称为
- 客户设置
- 确保 LDAP 客户端文件集已安装,LDAP 服务器已设置并正在运行。 mksecldap 命令在客户端设置期间执行以下步骤:
- 保存一个或多个 LDAP 服务器的主机名。
- 保存服务器的用户库 DN 和组库 DN。 如果未在命令行中提供 -d 选项,则 mksecldap 命令会在 LDAP 服务器中搜索 aixaccount、 aixaccessgroup、 posixaccount、 posixgroup 和 aixauxaccount 对象类,并设置基本 DN。 如果服务器有多个用户或组基础,则必须在 -d 选项中提供相对区分名称 (RDN)。 mksecldap 命令可将基本 DN 设置为该 RDN 中的 DN。如果在客户端设置过程中发现 posixaccount objectclass, mksecldap 命令就会从服务器搜索并保存以下实体的基本 DN:
hostsnetworksservicesnetgroupsprotocolsrpcauthorizationsrolesprivcmdsprivdevsprivfilesusrkeystoregrpkeystoreefscookiesadmkeystoredomainsdomobjs
- 确定 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 开始,该插件已被弃用。
- 为本主机和 LDAP 服务器之间的安全数据传输设置 SSL 或 TLS。 提前创建客户端 SSL 或 TLS 密钥和密钥密码。 服务器必须设置为使用 SSL 或 TLS,客户端 SSL 或 TLS 才能工作。 SSL 或 TLS 功能需要安装 GSKitv8 文件集。 您可以在安装AIX 7.3扩展包 DVD 后安装 "GSKitv8文件集。
- 加密和绑定密码。
- 保存 LDAP 服务器 BIND DN 和密码。 DN 和密码对必须存在于 LDAP 服务器上。 如果没有给出绑定 DN 和密码, mksecldap 命令将使用匿名绑定。 一些数据可能不会从具有匿名绑定的 LDAP 服务器返回。 在选择匿名绑定之前,请联系您的 LDAP 管理员。
- 按照客户机设置标志部分中所定义的,设置可选指定配置值。
- 通过修改 /etc/security/user 文件中的用户的 SYSTEM 行选择设置用户列或是全部用户。 有关启用 LDAP 登录的更多信息,请参阅注释。
- 启动客户端守护进程 (secldapclntd 命令)。
- 在 /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 设置为LDAP或compat,可以使 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=People和ou=Group容器,也不会导出用户和组。 该选项不需要 -S 选项。-v LDAP版本 表示要配置的 LDAP 服务器文件集的特定版本。 值的格式必须是 #.#、 其中 # 是数字。 例如, 6.0。 如果不指定 -v 标志, mksecldap 命令将配置已安装的 LDAP 服务器文件集的最新版本。-X proxypasswd 指定代理 DN 的密码。 -x proxyDN 指定代理条目的 DN。 客户端系统会使用代理条目绑定到该服务器。 - 客户端设置
项 描述 -a bindDN 指定绑定到 LDAP 服务器的 DN。 在 LDAP 服务器上必须存在 DN。 如果 authtype是 unix_auth ,该 bindDN 变量必须具有读取 LDAP 服务器上用户密码字段的权限。 如果没有 -a 选项, mksecldap 命令将配置匿名绑定。注: 某些数据可能无法通过匿名绑定从 LDAP 服务器检索。 有关使用匿名绑定的更多信息,请联系 LDAP 服务器管理员。-A authType 指定用于验证用户身份的验证机制。 有效值为unix_auth和ldap_auth。 默认值为 unix_auth。 以下是各值的定义: - unix_auth
- 从 LDAP 服务器读取用户密码并在本地执行身份验证。
- ldap_auth
- 绑定到 LDAP 服务器。 以明文发送密码,用于身份验证。
注意: 在使用 ldap_auth 类型身份验证时,请使用 SSL 或 TLS,因为在身份验证过程中,密码会以明文形式发送到 LDAP 服务器。-c 表示运行该命令是为了设置客户端。 -C 缓存大小 指定可以在客户端守护程序高速缓存中使用的最大用户条目数。 用户缓存的有效值范围为 100 至 65536。 缺省值为 1000。 对于组缓存,有效值范围为 100 至 65536。 缺省值为 1000。 如果使用 -C 选项在 start-secldapclntd 命令中设置用户缓存条目,组缓存将被设置为用户缓存的 10%。 -D defaultEntryLocation 指定代理条目的位置。 有效值为 ldap 和 local。 默认值为 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 指定要检索的用户和组属性集合。 有效值为 ALL 和 OS。 默认值为 ALL。 以下是各值的定义: - ALL
- 读取条目的所有属性。
- OS
- 仅检索条目所需的操作系统属性。 非操作系统属性,如电话号码,不返回二进制图像。
注意: 只有当条目有许多非操作系统要求的属性或属性值较大时,才使用操作系统。 例如,二进制数据,以减少 LDAP 服务器的排序工作。-n 服务器端口 指定 LDAP 服务器正在侦听的端口号。 -p 绑定密码 为 bindDN指定用于绑定到 LDAP 服务器的明文密码。-P NumberofThreads 指定客户端守护进程使用的线程数。 有效值范围为 1 至 256。 缺省值为 10。 -t 超时 指定高速缓存到期的最大时间长度。 有效值范围为 60 至 3600 秒。 默认值为 300 秒。 将此值设为 0 则禁用缓存。 注: cachetimeout 属性用于设置 usercachetimeout 和 groupcachetimeout 属性的值。 从AIX 7.3 开始,cachetimeout属性已被弃用。 您可以改为使用 usercachetimeout 和 groupcachetimeout 属性。-T heartBeatInt 指定客户机和 LDAP 服务器间的脉动信号的时间间隔。 有效值范围为 60 至 3600 秒。 默认值为 300。 -u UserList 指定要启用 LDAP 身份验证的逗号分隔用户名列表。 该用户列表的注册表和系统属性被设置为使用 LDAP 服务器。 指定 ALL 以启用客户端上的用户。 注意: /etc/security/user 文件默认节中的系统属性可设置为 LDAP 服务器,以便只允许 LDAP 用户登录。 如果系统属性设置为 LDAP 或 compat,则允许 LDAP 用户和本地用户登录系统。-U 指定撤销 LDAP 客户机配置文件的先前客户机设置。 -w SSLkeyfilepath 指定客户机 SSL 或 TLS 密钥数据库的密码。
安全性
您必须获得 aix.security.ldap 授权才能使用该命令。
示例
- 要为用户和组设置 LDAP 服务器 RFC2307 AIX 的 LDAP 服务器,请输入以下命令:
该命令设置 LDAP 服务器,LDAP 服务器管理员 DN 为mksecldap -s -a cn=admin -p adminpwd -S rfc2307aixcn=admin,密码为 adminpwd。 使用 RFC2307AIX 模式,将用户和组数据从本地文件导出到默认的cn=aixdata后缀。 - 要使用默认值以外的基本 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。 - 要设置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=proxy和c=usDN。 - 要撤销先前的服务器设置,请输入以下命令:
mksecldap -s -U此命令撤销先前对服务器配置文件的设置。注意: 为安全起见,该命令不会删除任何数据库条目或在先前设置中创建的数据库。 如果不需要数据库条目或数据库,请手动删除它们。 - 要设置客户端使用 "
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。
- 要设置客户端使用 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 用户登录该客户端。 - 要设置客户端与 "
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=usDN 设置的 ACL。 客户端设置为使用ldap_auth类型的身份验证,将密码以明文发送到 LDAP 服务器进行比较。注意: 使用ldap_auth类型的身份验证时,请使用 SSL 或 TLS。 在身份验证过程中,密码会以明文形式发送到 LDAP 服务器。 - 要撤销先前的客户端设置,请输入以下命令:
mksecldap -c -U该命令撤销之前对 "/etc/security/ldap/ldap.cfg文件的设置。 该命令不会删除 "/etc/security/user文件中的 "
SYSTEM=LDAP和 "registry=LDAP条目。 - 要将 LDAP 作为仅验证模块并使用文件进行用户身份验证来设置客户端,请输入以下命令:
mksecldap -c -a cn=admin -p adminpwd -h server1.ibm.com -i files -A ldap_auth该命令设置 LDAPA 文件复合加载模块,其中模块 LDAPA 用于用户身份验证,文件用于用户身份识别。 身份验证设置为 ldap_auth。
要使用默认 domainID 1 ,请输入以下命令:
mksecldap -c -a cn=admin -p adminpwd -h server1.in.ibm.com -d o=mycompany,c=us -A ldap_auth -g要使用显式 domainID 11 ,请输入以下命令:
mksecldap -c -a cn=admin -p adminpwd -h server1.in.ibm.com -d o=mycompany,c=us -g -I 11
访问的文件
| 方式 读取 ® 或写入 (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(客户端) |