Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)

第 16 章 クライアントの設定手順 (手順)

この章では、Solaris LDAP ネームサービスクライアントの設定方法について説明します。

この章の内容は次のとおりです。

前提条件

Solaris クライアントで LDAP をネームサービスとして使用するためには、次の要件が満たされている必要があります。

ldapclient ユーティリティは、サーバーの起動を除き、上記の手順をすべて実行するので、LDAP クライアントを設定するための鍵となります。この章の後半では、ldapclient ユーティリティを使用して LDAP クライアントを設定する方法や、それ以外の各種 LDAP ユーティリティを使用して LDAP クライアントに関する情報を取得したり LDAP クライアントの状態をチェックしたりする方法について、例を挙げて説明します。

クライアントの初期設定

ldapclient(1M) は、Solaris オペレーティング環境で LDAP クライアントを設定するためのユーティリティです。ldapclient ユーティリティでは、サーバーがすでに適切なクライアントプロファイルで構成されていることを前提としています。サーバーをインストールして、適切なプロファイルで構成してからクライアントを設定する必要があります。

ldapclient を使用してクライアントを設定するには、次の 2 つの方法があります。


注 –

クライアントを手動で構成することも可能ですが、お勧めしません。構成用のプロファイルを使用すると、クライアントの管理が容易になりコストも削減できます。


プロファイルを使用してクライアントを初期化する

プロファイルを使用してクライアントを初期化する方法
  1. スーパーユーザーになります。

  2. init を指定して ldapclient を実行します。

    # ldapclient init -a profileName=new -a \

    domainName=west.example.com 192.168.0.0


    System successfully configured

プロキシの資格を使用する

プロキシの資格を使用してクライアントを初期化する方法
  1. スーパーユーザーになります。

  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.0


    System successfully configured

使用するプロファイルがプロキシ用に設定されている場合は、-a proxyDn-a proxypassword が必須です。 サーバーに保存されているプロファイルにはこの資格情報が含まれていないため、クライアントを初期設定するときは資格情報を入力する必要があります。この方法は、プロキシの資格情報をサーバーに保存していた従来の方法に比べて安全性が高くなります。

プロキシ情報は /var/ldap/ldap_client_cred の作成に使用され、それ以外の情報は/var/ldap/ldap_client_file に格納されます。


注 –

どちらのクライアント構成ファイルも直接編集しないでください。これらのファイルの内容を作成または変更する場合は、ldapclient を使用してください。


クライアントを手動で初期設定する

スーパーユーザーは、クライアントの構成を手動で行うことができます。ただし、この処理では多数のチェックが省略されるため、システムを正しく構成できないことがよくあります。また、プロファイルを使用するときのように一括に設定するのではなく、「マシンごとに」設定を変更する必要があります。

クライアントを手動で初期設定する方法
  1. スーパーユーザーになります。

  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.0

  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.0
    NS_LDAP_SEARCH_BASEDN= dc=west,dc=example,dc=com
    NS_LDAP_CREDENTIAL_LEVEL= proxy

手動によるクライアント構成を変更する

手動による構成を変更する方法
  1. スーパーユーザーになります。

  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.0
    NS_LDAP_SEARCH_BASEDN= dc=west,dc=example,dc=com
    NS_LDAP_AUTH= simple
    NS_LDAP_CREDENTIAL_LEVEL= proxy

クライアントの初期設定を解除する

クライアントの初期設定を解除する方法
  1. スーパーユーザーになります。

  2. ldapclient uninit を実行します。

    # ldapclient uninit


    System successfully recovered

ldapclient uninit コマンドは、クライアントのネームサービスを元の状態 (initmodify、または manual の最後の操作が行われる前の状態) に復元します。言い換えれば、最後に行われた手順を「元に戻します」。たとえば、profile1 を使用するようにクライアントを設定した後で profile2 を使用するように変更した場合、ldapclient uninit を実行すると、クライアントで profile1 を使用するように設定が元に戻ります。

TLS のセキュリティの設定


注意 – 注意 –

cert7.db key3.db の各ファイルには、どのユーザーも読み取り権が必要です。key3.db ファイルに非公開鍵を含めないようにしてください。


TLS を使用する場合は、必要なセキュリティデータベースをインストールしなければなりません。特に、cert7.db key3.db の両ファイルは必須です。cert7.db ファイルには、信頼できる認証のデータベースが入ります。key3.db ファイルには、クライアントの鍵が入ります。LDAP ネームサービスクライアントではクライアントの鍵を使用しませんが、このファイルは必要です。

ldapclient を実行する前に、この節に記述されている必要なセキュリティデータベースファイルを設定およびインストールしておく必要があります。

これらのファイルを作成および管理する方法については、『iPlanet Directory Server 5.1 管理者ガイド』の 「SSL の管理」の「LDAP クライアントで SSL を利用するための構成」に関する節を参照してください。これらのファイルを構成したら、LDAP ネームサービスクライアントで使用できるように所定の場所にそれらを格納する必要があります。この場所を判断するために、属性 certificatePath が使用されます。この属性はデフォルトで /var/ldap です。

たとえば、Netscape Communicator を使用して必要な 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 では、cert7.dbkey3.db の各ファイルを $HOME/.netscape ディレクトリで管理します。このため、それらのセキュリティデータベースを LDAP ネームサービスクライアントで使用する場合は、そのコピーをローカルファイルシステム上に格納する必要があります。


PAM を構成する

パスワード管理機能なしで pam_ldap を使う

パスワード管理機能なしで pam_ldap を使うときは、pam_ldap に対応した pam.conf ファイルの例 のサンプルの pam.conf ファイルにしたがってください。 pam_ldap.so.1 を含む行をクライアントの /etc/pam.conf ファイルに追加します。 詳細については、pam.conf(4) のマニュアルページを参照してください。

パスワード管理機能のために pam_ldap を構成する

パスワード管理機能のために pam_ldap を構成する場合は、パスワード管理のために pam_ldap を構成した pam.conf ファイル例 のサンプルの pam.conf ファイルをコピーします。次に、 pam_ldap.so.1 を含む行をクライアントの /etc/pam.conf ファイルに追加します。 さらに、サンプルの pam.conf ファイルの中でいずれかの PAM が binding 管理フラグと server_policy オプションを定義している場合は、クライアントの /etc/pam.conf ファイルの対応するモジュールに、同じフラグとオプションを記述します。また、 サービスモジュール pam_authtok_store.so.1 を含む行に、 server_policy オプションを追加します。

LDAP ネームサービス情報の検出

ldaplist を使用する

ldaplist は、LDAP サーバーから取得したネームサービス情報を LDIF フォーマットで表示する LDAP ユーティリティです。このユーティリティは、障害追跡に役立ちます。詳細については、ldaplist(1) のマニュアルページを参照してください。

すべての LDAP コンテナを表示する

ldaplist は、レコードを空行で区切って出力を表示します。この表示方法は、複数行にまたがる大きなレコードに有効です。


注 –

ldaplist の出力は、クライアントの構成によって変わります。たとえば、ns_ldap_search の値が one ではなく sub である場合は、ldaplist によって現在の検索 baseDN の下にあるエントリがすべて表示されます。


以下に ldaplist の出力例を示します。

# ldaplist


dn: ou=people,dc=west,dc=example,dc=com

dn: ou=group,dc=west,dc=example,dc=com

dn: ou=rpc,dc=west,dc=example,dc=com

dn: ou=protocols,dc=west,dc=example,dc=com

dn: ou=networks,dc=west,dc=example,dc=com

dn: ou=netgroup,dc=west,dc=example,dc=com

dn: ou=aliases,dc=west,dc=example,dc=com

dn: ou=hosts,dc=west,dc=example,dc=com

dn: ou=services,dc=west,dc=example,dc=com

dn: ou=ethers,dc=west,dc=example,dc=com

dn: ou=profile,dc=west,dc=example,dc=com

dn: automountmap=auto_home,dc=west,dc=example,dc=com

dn: automountmap=auto_direct,dc=west,dc=example,dc=com

dn: automountmap=auto_master,dc=west,dc=example,dc=com

dn: automountmap=auto_shared,dc=west,dc=example,dc=com

すべてのユーザーエントリ属性を表示する

ユーザーの passwd エントリなど特定の情報を表示する場合は、次のように getent を使用します。

# getent passwd user1


user1::30641:10:Joe Q. User:/home/user1:/bin/csh

すべての属性を表示する場合は、-l オプションを指定して ldaplist コマンドを実行します。

# ldaplist -l passwd user1


dn: uid=user1,ou=People,dc=west,dc=example,dc=com
        uid: user1
        cn: user1
        uidNumber: 30641
        gidNumber: 10
        gecos: Joe Q. User
        homeDirectory: /home/user1
        loginShell: /bin/csh
        objectClass: top
        objectClass: shadowAccount
        objectClass: account
        objectClass: posixAccount
        shadowLastChange: 6445
        userPassword: {crypt}J6vlYXRU.sW8c

クライアント環境のカスタマイズ

クライアント環境では、必要に応じて 2 種類のカスタマイズを行うことができます。

nsswitch.conf ファイルを変更する

/etc/nsswitch.conf ファイルを変更して、各サービスが情報を取得する場所をカスタマイズできます。デフォルトの設定は /etc/nsswitch.ldap に保存されており、クライアントの初期化時に ldapclient がこのファイルを使って /etc/nsswitch.conf ファイルを作成します。

/etc/resolv.conf ファイルを設定して DNS を使用可能にする場合は、次に示すように、DNS をhosts 行に追加します。


hosts:      ldap dns [NOTFOUND=return] files

どのサービスも変更できますが注意が必要です。変更したサービスのデータがサーバー上に生成されない場合、カスタマイズは無効になります。さらに、ファイルがデフォルトで設定されない場合もあります。