ldapclient(1M) 是用于在 Solaris 系统中设置 LDAP 客户机的实用程序。ldapclient 假定已使用适当的客户机配置文件配置了服务器。必须先安装服务器并用适当的配置文件对其进行配置,然后才能设置客户机。
Solaris 操作系统不支持 NIS 客户机与本机 LDAP 客户机共存于同一台客户机上的配置。
使用 ldapclient 设置客户机主要有两种方法。
配置文件
至少需要指定包含配置文件的服务器地址以及要使用的域。如果未指定配置文件,则会使用“缺省”配置文件。服务器将提供其余的必需信息,但代理和证书数据库信息除外。如果客户机的凭证级别为 proxy 或 proxy anonymous,则必须提供代理的绑定 DN 和口令。有关更多信息,请参见指定客户机凭证级别。
手动
在客户机自身中配置配置文件,这意味着要从命令行定义所有参数。这样,配置文件信息便存储在高速缓存文件中,服务器永远不会刷新这些信息。
尽管可以手动配置客户机,但建议不使用此方法。使用配置文件可以降低管理客户机的复杂性和成本。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”。
运行 ldapclient init 命令。
# ldapclient init \ -a profileName=new \ -a domainName=west.example.com 192.168.0.1 System successfully configured |
请勿直接编辑任何客户机配置文件。 请使用 ldapclient 创建或修改这些文件的内容。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”。
运行 ldapclient(定义代理值)。
# ldapclient init \ -a proxyDN=cn=proxyagent,ou=profile,dc=west,dc=example,dc=com \ -a domainName=west.example.com \ -a profileName=pit1 \ -a proxyPassword=test1234 192.168.0.1 System successfully configured |
如果要为 proxy 设置要使用的配置文件,则 -a proxyDN 和 -a proxyPassword 是必需的。 由于服务器上保存的配置文件中未存储凭证,因此必须在初始化客户机时提供该信息。与原先在服务器上存储代理凭证的方法相比,此方法更安全。
代理信息用来创建 /var/ldap/ldap_client_cred。其余信息放置在 /var/ldap/ldap_client_file 中。
超级用户或承担等效角色的管理员可以执行手动客户机配置。但是在此过程中会跳过许多检查,因此系统配置相对容易出错。 此外,还必须在每台计算机中更改设置,而不像使用配置文件时那样,只需在一个集中位置进行更改即可。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”。
使用 ldapclient manual 初始化客户机。
# ldapclient manual \ -a domainName=dc=west.example.com \ -a credentialLevel=proxy \ -a defaultSearchBase=dc=west,dc=example,dc=com \ -a proxyDN=cn=proxyagent,ou=profile,dc=west,dc=example,dc=com \ -a proxyPassword=testtest 192.168.0.1 |
使用 ldapclient list 进行验证。
NS_LDAP_FILE_VERSION= 2.0 NS_LDAP_BINDDN= cn=proxyagent,ou=profile,dc=west,dc=example,dc=com NS_LDAP_BINDPASSWD= {NS1}4a3788e8c053424f NS_LDAP_SERVERS= 192.168.0.1 NS_LDAP_SEARCH_BASEDN= dc=west,dc=example,dc=com NS_LDAP_CREDENTIAL_LEVEL= proxy |
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”。
使用 ldapclient mod 命令将身份验证方法更改为 simple。
# ldapclient mod -a authenticationMethod=simple |
使用 ldapclient list 验证是否进行了更改。
# ldapclient list NS_LDAP_FILE_VERSION= 2.0 NS_LDAP_BINDDN= cn=proxyagent,ou=profile,dc=west,dc=example,dc=com NS_LDAP_BINDPASSWD= {NS1}4a3788e8c053424f NS_LDAP_SERVERS= 192.168.0.1 NS_LDAP_SEARCH_BASEDN= dc=west,dc=example,dc=com NS_LDAP_AUTH= simple NS_LDAP_CREDENTIAL_LEVEL= proxy |
ldapclient uninit 可将客户机名称服务恢复到它在最近的 init、modify 或 manual 操作之前的状态。换言之,该命令可对采取的上一个步骤执行“撤消”操作。例如,如果对客户机进行配置,使其使用 profile1,然后更改为使用 profile2,则使用 ldapclient uninit 将使客户机恢复使用 profile1。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”。
使用 ldapclient uninit。
# ldapclient uninit System successfully recovered |
安全数据库文件必须可供任何人读取。请勿在 key3.db 中包括任何私钥。
如果使用 TLS,则必须安装必要的安全数据库。需要特别指出的是,需要证书和密钥数据库文件。例如,如果采用 Netscape Communicator 的旧数据库格式,则需要以下两个文件:cert7.db 和 key3.db。或者,如果使用 Mozilla 的新数据库格式,则需要以下三个文件:cert8.db、key3.db 和 secmod.db。cert7.db 或 cert8.db 文件中包含受信任证书。key3.db 文件包含客户机的密钥。即使 LDAP 名称服务客户机不使用客户机密钥,此文件也必须存在。secmod.db 文件包含安全模块,如 PKCS#11 模块。如果使用的是旧格式,则不需要此文件。
在运行 ldapclient 之前,应设置并安装本节中介绍的必需的安全数据库文件。
有关如何创建并管理这些文件的信息,请参见针对您使用的 Sun Java System Directory Server 版本的管理员指南中“管理 SSL” 一章中有关配置 LDAP 客户机以使其使用 SSL 一节。配置后,这些文件必须存储在 LDAP 名称服务客户机所期望的位置。属性 certificatePath 用来确定此位置。 此位置缺省为 /var/ldap。
例如,在使用 Netscape CommunicatorTM 设置必需的 cert7.db 和 key3.db 文件后,请将这些文件复制到缺省位置。
# cp $HOME/.netscape/cert7.db /var/ldap # cp $HOME/.netscape/key3.db /var/ldap |
然后,向所有人授予读访问权限。
# chmod 444 /var/ldap/cert7.db # chmod 444 /var/ldap/key3.db |
Netscape 在 $HOME/.netscape 目录中管理 cert7.db 和 key3.db 文件,而 Mozilla 将其 cert8.db、key3.db 和 secmod.db 文件放在 $HOME/.mozilla 下的一个子目录中进行管理。如果要将这些安全数据库用于 LDAP 名称服务客户机,则必须将其副本存储在本地文件系统中。
pam_ldap 是用于 LDAP 的身份验证和帐户管理 PAM 模块。请参见pam_ldap(5) 手册页和附录 A,Solaris 10 软件中对 DNS、NIS 和 LDAP 的更新,以获取更多有关 pam_ldap 当前支持的功能的信息。
要配置 PAM,使其使用 UNIX policy,请参考pam_ldap 的示例 pam.conf 文件中的样例进行操作。向客户机的 /etc/pam.conf 文件中添加包含 pam_ldap.so.1 的行。有关详细信息,请参见 pam.conf(4) 手册页。
要配置 PAM,使其使用 LDAP server_policy,请遵照为帐户管理配置的 pam_ldap 的示例 pam_conf 文件中的样例。向客户机的 /etc/pam.conf 文件中添加包含 pam_ldap.so.1 的行。此外,如果 pam.conf 文件样例中的任何 PAM 模块指定了 binding 标志和 server_policy 选项,则必须对该客户机的 /etc/pam.conf 文件中的对应模块使用相同的标志和选项。 而且,还要将 server_policy 选项添加到包含服务模块 pam_authtok_store.so.1 的行中。
启用 pam_ldap 帐户管理后,所有用户在每次登录系统时都必须提供口令。进行验证时必须提供登录口令。因此,使用 rsh、rlogin 或 ssh等工具进行的不基于口令的登录将会失败。
binding 控制标志
使用 binding 控制标志允许本地口令覆盖远程 (LDAP) 口令。例如,如果在本地文件和 LDAP 名称空间中都找到某一用户帐户,则与本地帐户关联的口令将优先于远程口令。因此,如果本地口令到期,即使远程 LDAP 口令仍有效,身份验证也会失败。
server_policy 选项
server_policy 选项指示 pam_unix_auth、pam_unix_account 和 pam_passwd_auth 忽略在 LDAP 名称空间中找到的用户,并允许 pam_ldap 执行身份验证或帐户验证。对于 pam_authtok_store,会向 LDAP 服务器传递一个未经加密的新口令。因此,该口令将根据服务器中配置的口令加密方案存储在目录中。有关更多信息,请参见 pam.conf(4) 和 pam_ldap(5)。