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

クライアントの構成

ここでは、ルートドメイン内であるかどうかとは関係なく、一般的な NIS+ クライアントの構成方法を説明します。ここでの説明は、通常の NIS+ クライアント、および後で NIS+ サーバーとなるクライアントに当てはまります。また、標準の NIS+ ドメイン内、および NIS 互換ドメイン内のクライアントにも当てはまります。


注意 – 注意 –

ドメインとホストで同じ名前を使用しないでください。たとえば、sales というドメインを使用している場合、sales という名前の付いたマシンは使用しないでください。同様に、home というホスト名がある場合には、ドメイン名に home を使用できません。これは、サブドメインの場合にもあてはまります。たとえば、マシンに west という名前を付けている場合、sales.west.myco.com というサブドメインを作成しないでください。


NIS+ クライアントの設定には、次の作業が必要です。

ただし、ルートドメインの設定と同様、クライアントの設定も、これら 3 つの作業を順番に実行するような単純なものではありません。構成手続を実行しやすくするため、これらの作業を個々の手順に分割し、次に示すように、これらの手順を最も効率的な順に並べてあります。

  1. ドメインのマスターサーバーにログインします。

  2. 新しいクライアントマシン用の DES 資格を作成します。

  3. マスターサーバーで使用されている Diffie-Hellman キー長を確認します。

  4. クライアントにスーパーユーザーとしてログインします。

  5. クライアントに新しいドメイン名を設定します。

  6. nscd の停止と再起動を行います。

  7. クライアントの nsswitch.conf ファイルの設定を確認します。

  8. クライアントの Diffie-Hellman キーを設定します。

  9. NIS+ のファイルを削除し、プロセスを終了します。

  10. クライアントを初期設定します。

  11. keyserv デーモンのプロセスを終了して再起動します。

  12. keylogin を実行します。

  13. クライアントを再起動します。

セキュリティについて

クライアントの設定には、セキュリティ上の主な必要要件が 2 つあります。つまり、システム管理者とクライアントの両方が、適切な資格とアクセス権を持つことです。そうでない場合、クライアントがセキュリティレベル 2 で実行しているドメインの資格を入手する唯一の方法は、クライアントのホームドメイン内での有効な DES 資格と cred テーブルに対する変更権とを持つシステム管理者が資格を作成することです。システム管理者は DES 資格を、クライアントのホームドメイン内、または自分のホームドメイン内に所持できます。

システム管理者がクライアントの資格を作成すると、そのクライアントは構成プロセスを終了できます。しかしクライアントは、ホームドメインのディレクトリオブジェクトに対する読み取り権を必要とします。第 5 章「ルートドメインの設定」または第 8 章「非ルートドメインの構成」の手順に従ってクライアントのホームドメインを構成した場合、ディレクトリオブジェクトの作成に使用した NIS+ コマンド (nisinitnismkdir) によって、読み取り権がその他のクラスに提供されています。

ディレクトリオブジェクトのアクセス権をチェックするには、niscat-o コマンドを使用します。このコマンドは、アクセス権などのディレクトリ属性を表示します。次にその例を示します。


rootmaster# niscat -o doc.com.
ObjectName : Doc
Owner : rootmaster.doc.com.
Group : admin.doc.com.
Domain : Com.
Access Rights : r---rmcdr---r---

ディレクトリオブジェクトのアクセス権は、オブジェクトに対する変更権を持っている場合は、nischmod コマンドを使用して変更できます。詳細については、第 15 章「NIS+ のアクセス権の管理」を参照してください。

前提条件

クライアントの資格を設定するシステム管理者は、次の条件をすべて満たしている必要があります。

クライアントは次の条件をすべて満たしている必要があります。

必要な情報

クライアントの設定 — 作業マップ

表 6–1 クライアントの構成

作業 

説明 

参照先 

クライアントの設定 

クライアントの資格を作成する。クライアントマシンを準備して、NIS+ クライアントとして初期設定する 

NIS+ クライアントを設定する方法

NIS+ クライアントを設定する方法

  1. ドメインのマスターサーバーにログインします。

    スーパーユーザーとして、または自分自身のユーザー名でログインします。どちらでログインするかは、どちらの NIS+ 主体がドメインの cred テーブルに資格を追加するための適切なアクセス権を所有しているのかに依存します。

  2. 新しいクライアントマシン用の DES 資格を作成します。

    -p-P の引数を付けた nisaddcred コマンドを実行します。


    nisaddcred -p secure-RPC-netname  principal-name des [domain]

    secure-RPC-netname は、接頭辞 unix に、クライアントのホスト名、@ 記号、およびクライアントのドメイン名を付けて構成しますが、最後にドットは付けません。principal-name は、クライアントのホスト名とドメイン名によって構成され、最後にドットを付けます。このクライアントの所属するドメインが、コマンドを入力したサーバーとは異なる場合、2 番目の引数の後にクライアントのドメイン名を追加します。

    この例では、doc.com. ドメイン内の client1 という名前のクライアントマシンに対する DES 資格を追加します。


    rootmaster% nisaddcred -p unix.client1@doc.com -P client1.doc.com. des 
    Adding key pair for unix.client1@doc.com (client1.doc.com.).
    Enter client1.doc.com.'s root login passwd:
    Retype password:

    nisaddcred コマンドの詳細については、第 12 章「NIS+ 資格の管理」を参照してください。

  3. マスターサーバーで使用される Diffie-Hellman キー長を確認します。

    たとえば :


    rootmaster% nisauthconf dh640-0 des
  4. クライアントにスーパーユーザーとしてログインします。

    これでクライアントマシンに資格ができたため、ユーザーはマスターサーバーからログアウトし、クライアント自体から作業を開始できます。この作業はローカルでもリモートでも可能です。

  5. クライアントに新しいドメイン名を設定します。

    クライアントのドメイン名を設定する (変更する) 方法については、マシンのドメイン名を変更するを参照し、次の 手順 6 に戻ります。

  6. クライアントの nsswitch.conf ファイルをチェックします。

    クライアントが NIS+ バージョンの nsswitch.conf ファイルを使用していることを確認します。これによって、クライアント情報の 1 次ソースが NIS+ テーブルということが確認できます。NIS+ スイッチファイルの詳細については、例 1–1 を参照してください。

  7. nsswitch.conf ファイルに何らかの変更を加えた場合 (または、新規にファイルにコピーした場合) 、必ず次のように入力して nscd を停止してから再起動する必要があります。


    client1# cp /etc/nsswitch.nisplus /etc/nsswitch.conf
    client1# sh /etc/init.d/nscd stop
    client1# sh /etc/init.d/nscd start

    キーサーバーをこの時点で終了および再起動する必要はありません。手順 11 で 行います。

  8. 手順 3 の情報を使用して、Diffie-Hellman キー長を設定します。

    たとえば、次のようにします。


    client# nisauthconf dh640-0 des
  9. NIS+ のファイルを削除しプロセスを終了します。

    現在作業しているマシンが、以前は NIS+ のサーバーまたはクライアントとして使用したものである場合、/var/nis 内にファイルがあればすべて削除し、キャッシュマネージャがまだ実行中であれば、そのプロセスを終了します。この例では、/var/nis 内にはコールドスタートファイルとディレクトリキャッシュファイルがまだ存在します。


    client1# ls /var/nis
    NIS_COLD_START NIS_SHARED_CACHE
    client1# rm -rf /var/nis/*
    client1# ps -ef | grep nis_cachemgr
     root 295 260 10 15:26:58 pts/0 0:00 grep nis_cachemgr
     root 286 1 57 15:21:55 ? 0:01 /usr/sbin/nis_cachemgr
    client1# kill -9 286

    /var/nis 内に残されたファイル、またはキャッシュマネージャによって保存されたディレクトリオブジェクトは、この手順によって完全に消去されます。したがって、この構成プロセスで生成された新しい情報と重複することはありません。/var/nis 内に管理スクリプトを格納していた場合、ルートドメインの設定が終わるまでは、これらを一時的に他のどこかに格納しておくことができます。

  10. クライアントを初期設定します。

    クライアントを初期設定するには、次の 3 つの方法があります。 3 つの方法のうち、いずれかを選択して実行します。クライアントの初期設定が終了したら、手順 11 に進みます。

  11. keyserv デーモンを終了してから再起動します。

    この手順では、非公開鍵をキーサーバー上に格納します。

    1. keyserv デーモンを終了します。

      この手順によって、キーサーバーが保持していたクライアントに関するスイッチ情報も更新されます。

    2. /etc/.rootkey ファイルを削除します。

    3. キーサーバーを再起動します。

      次の例では、手順 11 の内容を示しています。


      client1# ps -e | grep keyserv
       root 145 1 67 16:34:44 ? keyserv
      client1# kill 145
      client1# rm -f /etc/.rootkey
      client1# keyserv
    4. keylogin -r を実行します。

      この手順では、クライアントの非公開鍵をキーサーバーに格納します。また、クライアント上のスーパーユーザーが NIS+ を使用するために keylogin を行わなくてもすむように、/etc/.rootkey にコピーを保存します。-r オプションを付けて keylogin を実行します。パスワードの入力を求められたら、クライアントのスーパーユーザーパスワードを入力します。このパスワードは、クライアントの DES 資格を作成するために与えられたパスワードと同じでなければなりません。


      client1# keylogin -r 
      Password:
      Wrote secret key into /etc/.rootkey
    5. クライアントを再起動します。

DNS 転送の設定

NIS+ クライアントの DNS 転送機能を有効にするには
  1. スーパーユーザーとしてログインします。

  2. /etc/resolve.conf ファイルの hosts 行を構成します(たとえば、hosts:nisplus dns files とします)。

該当するサーバー上に /etc/resolve.conf ファイルが存在する場合は、この NIS 実装では DNS へ要求を転送するために、ypstart によって ypserv デーモンが -d オプション付きで「自動的に」起動されます。 DNS 転送を停止するには、/usr/lib/netsvc/yp/ypstart スクリプトを編集して、ypserv コマンドの -d オプションを削除します。そのあと、マシンをリブートしてください。