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 服务器和客户端。
注意:
- 客户机(-c 标志)和服务器( -s 标志)选项不能同时使用。 设置服务器时,mksecldap 命令可能需要在那台机器上运行两次。 第一次运行用来设置服务器,第二次运行用来将系统设置为客户机。
- LDAP 服务器配置文件的名称和位置取决于已安装的 LDAP 软件的版本。 请参阅已安装的发行版的 LDAP 软件文档以获取更多信息。
服务器设置
确保已安装 LDAP 服务器和后端IBM DB2软件。 运行mksecldap 命令进行 LDAP 服务器设置时,不需要预先配置IBM DB2。 当运行
mksecldap 命令来安装服务器时,该命令将:
- 创建DB2®实例,默认实例名称为ldapdb2。
- 如果正在配置IBMDirectory Server6.0或更高版本,则会创建一个默认名称为ldapdb2的 LDAP 服务器实例。 将显示提示,要求输入用于创建密钥存储文件的加密种子值。 输入的加密种子值必须至少有十二个字符。
- 创建DB2数据库,默认数据库名称为ldapdb2。 如果一个数据库已经存在了,mksecldap 将略过前面两个步骤。 (这是当 LDAP 服务器已被安装做其他用途的案例。) mksecldap命令将使用现有数据库存储AIX用户/组数据。
- 创建目录信息树(DIT)的库 DN(后缀)。 库 DN 需要以以下属性之一开始:
dc、o、ou、
c 和 cn。 如果没有从命令行提供库 DN,缺省的后缀设置为 cn=aixdata 并将用户/组数据放置在 cn=aixdata DN 下。 否则的话,mksecldap 命令使用指定带有 -d 选项的用户/ph> 选项。 使用 sectoldif 命令将用户和组导出到 LDAP。 缺省创建的目录信息树(DIT)显示如下。
<user supplied suffix> | -------------------------- | | ou=People ou=Groups - 如果不指定 -u NONE,那么将数据从本地主机的安全数据库文件导出到 LDAP 数据库。 如果指定-uNONE,则mksecldap不会像通常那样创建 "
ou=People和 "ou=Group容器,也不会导出用户和组。 根据 -S 选项,mksecldap 命令使用三个 LDAP 模式中的一个导出用户/组:- AIX-AIX模式(aixaccount和aixaccessgroup对象类)
- RFC2307 - RFC 2307 模式(posixaccount、shadowaccount 和 posixgroup 对象类)
- RFC2307AIX- 完全支持AIX的 RFC 2307 模式(posixaccount、shadowaccount 和posixgroup 对象类,以及aixauxaccount和aixauxgroup对象类)。
- 设置 LDAP 的服务器管理员 DN 和密码。
- 如果使用 -n 选项,那么将服务器设置为侦听指定端口。 缺省端口为 389。 此外,TLS 将此端口作为默认端口(SSL 为 636)。
- 使用 LDAP 模块配置更新 /usr/lib/security/methods.cfg 文件。 如果在命令行上输入 -i 选项,那么它还设置仅 LDAPA 认证的模块以及复合装入模块例如,指定了 -i files 选项时,还设置 LDAPAfiles),且 LDAPA 用于认证以及 databaseModule 用于识别。
- 如果指定了-x和-X选项,则创建代理条目。 使用代理条目为库 DN 创建 ACL。 可以在 /etc/security/ldap/proxyuser.ldif.template中找到缺省 ACL。 代理条目可以由客户机系统用来绑定到服务器(请参阅这个文的设置部分)。
- 如果指定 -k 选项,请将服务器设置为使用 SSL(安全套接字层)或 TLS(传输层安全性)以在此服务器与客户机之间进行安全数据传输。 此设置要求安装 GSKIT 并创建 SSL 或 TLS 密钥。
- 安装 /usr/ccs/lib/libsecldapaudit.a LDAP 服务器插件。 此插件支持对 LDAP 服务器进行 AIX 审计。
- 当上述所有操作完成后,启动/重启 LDAP 服务器。
- 在 "/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
命令执行以下步骤:
- 保存 LDAP 服务器(组)的主机名。
- 保存服务器的用户库 DN 和组库 DN。 如果没有从命令行提供 -d 选项,那么 mksecldap 命令在 LDAP 服务器上搜索 aixaccount、aixaccessgroup、posixaccount、posixgroup 和 aixauxaccount 对象类,并相应地设置库 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
- 确定 LDAP 服务器使用的模式类型 -AIX特定模式、RFC 2307模式、完全支持AIX的RFC 2307模式或 Microsoft Services for UNIX3.0模式。 它会相应地设置 "/etc/security/ldap/ldap.cfg文件中的对象类和属性映射。 mksecldap 命令不识别其他方案类型,因此客户机必须 手动安装。
- 设置 SSL 或 TLS 以在此主机与 LDAP 服务器之间进行安全数据传输。 此步骤要求客户机预先创建 SSL 或 TLS 密钥和密钥密码,并且服务器必须设置为使用 SSL 或 TLS,客户机 SSL 或 TLS 才能生效。
- 加密和绑定密码。
- 保存 LDAP 服务器 BIND DN 和密码。 在 LDAP 服务器上必须存在 DN/password 对。 如果没有给出绑定 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 中存储的配置替换该文件。 将 SYSTEM 设置为 "
LDAP,而默认字段为 "/etc/security/user,只能允许 LDAP 用户登录系统。 将 SYSTEM 设置为 LDAP 或 compat,可以使 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_auth 和
ldap_auth。 缺省值为 unix_auth。 值定义如下:
注意:在使用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 | 指定代理条目的位置。 有效值是 ldap 和 local。 缺省值为 ldap。 值定义如下:
|
| -d baseDN | 指定库 DN 以使 mksecldap 命令去搜索用户库 DN 和组库 DN。 如果不从命令行指定,将搜索整个数据库。 |
| -h 服务器列表 | 指定主机名列表,之间用逗号分隔(服务器 和备份服务器)。 |
| -k SSL密钥路径 | 指定客户机 SSL 或 TLS 密钥数据库的完整路径。 |
| -M searchMode | 指定要检索的用户和组属性集合。 有效值为 ALL 和 OS。 缺省值为 ALL。 值定义如下:
注意:只有当条目有许多非操作系统所需的属性或属性值较大(如二进制数据)时,才使用操作系统,以减少 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 权限的用户有权使用此命令。
示例
- 要为用户和组设置AIX特定模式的 LDAP 服务器,请输入
这将设置一个 LDAP 服务器,LDAP 服务器管理员 DN 为cn=admin,密码为adminpwd。 用户和组数据从本地文件导出到使用 RFC2307AIX 模式的缺省 cn=aixdata 后缀。mksecldap -s -a cn=admin -p adminpwd -S rfc2307aix - 要使用 SSL 安全通信设置 LDAP 服务器,且 "baseDN不是默认值,请输入
这将设置一个 LDAP 服务器,LDAP 服务器管理员 DN 为cn=admin,密码为adminpwd。 用户和组数据从本地文件导出到使用 RFC2307 模式的 o=mycompany,c=us 后缀。 LDAP 服务器通过使用存储在 "/usr/ldap/serverkey.kdb中的密钥进行 SSL 通信。 也必须提供键的密码,keypwd。mksecldap -s -a cn=admin -p adminpwd -d o=mycompany,c=us -S rfc2307 -k /usr/ldap/serverkey.kdb -w keypwd - 要设置RFC2307AIX模式类型的 LDAP 服务器并创建代理账户,请输入
这将设置一个 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。mksecldap -s -a cn=admin -p adminpwd -d c=us -S rfc2307aix -x cn=proxy,c=us -X proxypwd - 要撤销先前的服务器设置:
这会撤销先前对服务器配置文件的设置。 注:由于安全原因,这不删除先前设置所创建的任何数据库项或数据库。 如果不再需要数据库条目/数据库,则必须手动删除它们。mksecldap -s -U - 要建立一个客户机,它使用 server1.ibm.com 和 server2.ibm.com LDAP 服务器,请输入:
向该客户机提供 LDAP 服务器管理员 DN 和密码以认证到服务器。 由于使用的方案类型,mksecldap 命令 联系 LDAP 服务器,并且相应地安装服务器。 不用从命令行的 -d 选项,将搜索整个 服务器 DIT 以得到用户库 DN 和组库 DN。mksecldap -c -a cn=admin -p adminpwd -h server1.ibm.com,server2.ibm.com - 要安装客户机同使用 SSL 的 server3.ibm.com LDAP
服务器交谈,请输入:
这样就建立了一个与情况 3 类似的 LDAP 客户端,但使用 SSL 通信。 mksecldap命令会搜索o=mycompany,c=usRDN 中的用户基本 DN 和组基本 DN。 配置 user1 帐户 和 user2 帐户以在整个 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注意: -u ALL选项允许所有 LDAP 用户登录该客户端。 - 要通过代理绑定将客户机设置为与 server4.ibm.com
通话并使用 ldap_auth 认证,请输入:
这使用 cn=proxy,c=us DN 将 LDAP 客户机设置为绑定到 LDAP 服务器。 因为没有使用管理员 DN,所以授权给客户机的访问权取决于 LDAP 服务器上对 cn=proxy,c=us DN 的 ACL 设置。 客户机还设置为使用 ldap_auth 类型的认证,并明文发送密码到 LDAP 服务器用于比较。mksecldap -c -a cn=proxy,c=us -p proxypwd -h server4.ibm.com -A ldap_auth注意:在使用ldap_auth 类型身份验证时,强烈建议使用 SSL 或 TLS,因为在身份验证过程中,密码将以明文形式发送到 LDAP 服务器。 - 要撤销先前的客户机安装,请输入:
这会撤销先前对 /etc/security/ldap/ldap.cfg 文件的设置。 这不会删除 "/etc/security/user文件中的SYSTEM=LDAP和注册表=LDAP条目。mksecldap -c -U - 要将 LDAP 设置为仅用于身份验证的模块,并使用文件进行用户身份验证,请输入
它设置 LDAPAfiles 复合装入模块,其中模块 LDAPA 用于用户认证而文件用于用户标识。 认证设置为 ldap_auth。mksecldap -c -a cn=admin -p adminpwd -h server1.ibm.com -i files -A 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(客户机上) |