系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)

初始化 LDAP 客户机

ldapclient(1M) 是用于在 Solaris 系统中设置 LDAP 客户机的实用程序。ldapclient 假定已使用适当的客户机配置文件配置了服务器。必须先安装服务器并用适当的配置文件对其进行配置,然后才能设置客户机。


注意 –

Solaris 操作系统不支持 NIS 客户机与本机 LDAP 客户机共存于同一台客户机上的配置。


使用 ldapclient 设置客户机主要有两种方法。


注意 –

尽管可以手动配置客户机,但建议不使用此方法。使用配置文件可以降低管理客户机的复杂性和成本。


使用配置文件初始化客户机

如何使用配置文件初始化客户机
  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”

  2. 运行 ldapclient init 命令。


    # ldapclient init \
    
    -a profileName=new \
    
    -a domainName=west.example.com 192.168.0.1
    
    System successfully configured

使用代理凭证

如何使用代理凭证初始化客户机

注意 –

请勿直接编辑任何客户机配置文件。 请使用 ldapclient 创建或修改这些文件的内容。


  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”

  2. 运行 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 中。

手动初始化客户机

超级用户或承担等效角色的管理员可以执行手动客户机配置。但是在此过程中会跳过许多检查,因此系统配置相对容易出错。 此外,还必须在每台计算机中更改设置,而不像使用配置文件时那样,只需在一个集中位置进行更改即可。

如何手动初始化客户机
  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”

  2. 使用 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
    
  3. 使用 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

修改手动客户机配置

如何修改手动配置
  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”

  2. 使用 ldapclient mod 命令将身份验证方法更改为 simple


    # ldapclient mod -a authenticationMethod=simple
    
  3. 使用 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 可将客户机名称服务恢复到它在最近的 initmodifymanual 操作之前的状态。换言之,该命令可对采取的上一个步骤执行“撤消”操作。例如,如果对客户机进行配置,使其使用 profile1,然后更改为使用 profile2,则使用 ldapclient uninit 将使客户机恢复使用 profile1

如何取消客户机初始化
  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”

  2. 使用 ldapclient uninit


    # ldapclient uninit
    
    System successfully recovered

设置 TLS 安全性


注意 –

安全数据库文件必须可供任何人读取。请勿在 key3.db 中包括任何私钥。


如果使用 TLS,则必须安装必要的安全数据库。需要特别指出的是,需要证书和密钥数据库文件。例如,如果采用 Netscape Communicator 的旧数据库格式,则需要以下两个文件:cert7.dbkey3.db。或者,如果使用 Mozilla 的新数据库格式,则需要以下三个文件:cert8.dbkey3.dbsecmod.dbcert7.dbcert8.db 文件中包含受信任证书。key3.db 文件包含客户机的密钥。即使 LDAP 名称服务客户机不使用客户机密钥,此文件也必须存在。secmod.db 文件包含安全模块,如 PKCS#11 模块。如果使用的是旧格式,则不需要此文件。


注意 –

在运行 ldapclient 之前,应设置并安装本节中介绍的必需的安全数据库文件。


有关如何创建并管理这些文件的信息,请参见针对您使用的 Sun Java System Directory Server 版本的管理员指南中“管理 SSL” 一章中有关配置 LDAP 客户机以使其使用 SSL 一节。配置后,这些文件必须存储在 LDAP 名称服务客户机所期望的位置。属性 certificatePath 用来确定此位置。 此位置缺省为 /var/ldap

例如,在使用 Netscape CommunicatorTM 设置必需的 cert7.dbkey3.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.dbkey3.db 文件,而 Mozilla 将其 cert8.dbkey3.dbsecmod.db 文件放在 $HOME/.mozilla 下的一个子目录中进行管理。如果要将这些安全数据库用于 LDAP 名称服务客户机,则必须将其副本存储在本地文件系统中。


配置 PAM

pam_ldap 是用于 LDAP 的身份验证和帐户管理 PAM 模块。请参见pam_ldap(5) 手册页和附录 A,Solaris 10 软件中对 DNS、NIS 和 LDAP 的更新,以获取更多有关 pam_ldap 当前支持的功能的信息。

配置 PAM,使其使用 UNIX policy

要配置 PAM,使其使用 UNIX policy,请参考pam_ldap 的示例 pam.conf 文件中的样例进行操作。向客户机的 /etc/pam.conf 文件中添加包含 pam_ldap.so.1 的行。有关详细信息,请参见 pam.conf(4) 手册页。

配置 PAM,使其使用 LDAP server_policy

要配置 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 帐户管理后,所有用户在每次登录系统时都必须提供口令。进行验证时必须提供登录口令。因此,使用 rshrloginssh等工具进行的不基于口令的登录将会失败。