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

マスターサーバーの準備

以降の節では、マスターサーバーのソースファイルと passwd ファイルを準備する方法を説明します。

ソースファイルディレクトリ

ソースファイルは、マスターサーバーの /etc ディレクトリか、その他のディレクトリにあります。ソースファイルを /etc に入れることは望ましくありません。マップの内容がマスターサーバー上のローカルファイルの内容と同じになるからです。これは passwd ファイルと shadow ファイルに固有の問題です。ユーザー全員がマスターサーバーのマップにアクセスし、passwd マップを通じてすべての NIS クライアントに root パスワードが渡されるためです。詳細については、passwd ファイルと名前空間のセキュリティー」を参照してください。

ただし、ソースファイルをほかのディレクトリに入れた場合は、/var/yp 内の MakefileDIR=/etc 行を DIR=/your-choice に変更する必要があります。your-choice はソースファイルを格納するためのディレクトリの名前です。これによって、サーバー上のローカルファイルをクライアント上のファイルのように扱うことができます。編集前の Makefile のコピーを保存しておくことをお勧めします。

また、audit_userauth_attrexec_attrprof_attr がデフォルト以外のディレクトリから取り出される場合は、RBACDIR=/etc/securityRBACDIR=/your-choice に変更します。

passwd ファイルと名前空間のセキュリティー

passwd マップは特殊なケースです。この NIS 実装では、NIS パスワードマップを作成するための入力として、Solaris 1 の passwd ファイルのフォーマットに加え、/etc/passwd ファイルと /etc/shadow ファイルのフォーマットも使用できます。

セキュリティー上の理由から未承認の root アクセスを防ぐために、NIS のパスワードマップの構築に使用されるファイルには root のエントリを含めないでください。このため、パスワードマップはマスターサーバーの /etc ディレクトリに置かれたファイルから構築しないでください。パスワードマップの構築に使用されるパスワードファイルは、root エントリが削除された上、未承認のアクセスから保護されるディレクトリに置かれている必要があります。

たとえば、マスターサーバーのパスワード入力ファイルは、ファイル自体が別のファイルへのリンクではなく、ファイルの場所が Makefile に指定されている限り、/var/yp/ などのディレクトリに格納されているか、選択したディレクトリに格納されている必要があります。Makefile に指定された構成に従って、適正なディレクトリオプションが自動的に設定されます。


注意 – 注意 –

PWDDIR によってディレクトリ内に指定された passwd ファイルに root のエントリが含まれないようにしてください。


ソースファイルが /etc 以外のディレクトリにある場合は、MakefilePWDIR パスワードマクロが、passwd ファイルと shadow ファイルが入っているディレクトリを参照するように変更します。この操作を行うには、PWDIR=/etc 行を PWDIR=/your-choice に変更します。your-choice は、passwd マップソースファイルを格納するのに使用するディレクトリの名前です。

NIS マップへの変換用のソースファイルを準備する

NIS マップへの変換用のソースファイルを準備します。

Procedure変換用のソースファイルを準備する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の第 9 章「役割によるアクセス制御の使用 (手順)」を参照してください。

  2. マスターサーバーのソースファイルをチェックして、それらのファイルがシステムの最新の状態を反映しているかどうか確認します。

    次のファイルを確認します。

    • auto.home または auto_home

    • auto.master または auto_master

    • audit_user

    • auth_attr

    • bootparams

    • ethers

    • exec_attr

    • group

    • hosts

    • ipnodes

    • netgroup

    • netmasks

    • networks

    • passwd

    • protocols

    • rpc

    • サービス

    • shadow

    • user_attr

  3. これらのソースファイル (passwd を除く) をすべて、選択した DIR ディレクトリにコピーします。

  4. passwd ファイルを、選択した PWDIR ディレクトリにコピーします。

  5. audit_userauth_attrexec_attrprof_attr を、選択した RBACDIR ディレクトリにコピーします。

  6. /etc/mail/aliases ファイルを確認します。

    ほかのソースファイルと異なり、/etc/mail/aliases ファイルは別のディレクトリに移動できません。このファイルは /etc/mail ディレクトリに格納されていなければなりません。詳細については、aliases(4) のマニュアルページを参照してください。


    注 –

    /var/yp/Makefile 内の ALIASES = /etc/mail/aliases エントリを変更して別の場所を指すようにすることで、NIS 固有のメールエイリアスファイルを追加することができます。make を実行すると、ALIASES エントリによって mail.aliases マップが作成されます。/etc/nsswitch.conf ファイルで files のほかに nis が適切に指定されている場合、sendmail サービスは /etc/mail/aliases ファイルに加えてこのマップを使用します。Makefile の更新と使用」を参照してください。


  7. ソースファイルからすべてのコメントと、その他の余計な行や情報を取り除きます。

    これらの操作は、sed または awk の各スクリプトで、またはテキストエディタを使用して実行できます。Makefile はソースファイルから不要なエントリをある程度自動的に削除しますが、これらのファイルを手動で検証し、クリーンアップしてから実行することをお勧めします。

  8. すべてのソースファイルのデータが正しい形式になっていることを確認します。

    ソースファイルのデータは、それぞれのファイルに適した形式で格納されている必要があります。該当するマニュアルページを参照して、各ファイルが正しい形式になっていることを確認します。

Makefile を準備する

ソースファイルをチェックしてソースファイルディレクトリにコピーしたら、NIS サービスが使用する ndbm 形式のマップにそのソースファイルを変換する必要があります。ypinit によるマスターサーバーの設定」の節で説明しているように、この処理は、マスターサーバーで呼び出されると ypinit によって自動的に行われます。

ypinit スクリプトはプログラム make を呼び出します。このプログラムは、/var/yp ディレクトリに置かれた Makefile を使用します。/var/yp ディレクトリにはデフォルトの Makefile が用意されており、この中には要求された ndbm 形式のマップにソースファイルを変換するためのコマンドが入っています。

デフォルトの Makefile は、そのまま使用することも必要に応じて修正することもできます。(デフォルトの Makefile を修正するときは、将来必要な場合に備えて、必ず最初に修正前の Makefile をコピーして保存するようにしてください。)次に説明する Makefile への修正のうち、必要に応じて 1 つまたは複数を実行します。

Makefile の機能は、all の下にリストされるデータベースのそれぞれに対して適切な NIS マップを作成することです。データは makedbm で処理され、mapname.dirmapname.pag の 2 つのファイルに保存されます。この両ファイルは、マスターサーバーの /var/yp/domainname ディレクトリに置かれます。

Makefile は必要に応じて、/PWDIR/passwd/PWDIR/shadow/PWDIR/security/passwd.adjunct の各ファイルから passwd マップを構築します。

ypinit によるマスターサーバーの設定

ypinit スクリプトは、マスターサーバー、スレーブサーバー、クライアントが NIS を使用するように設定します。また最初に make を実行して、マスターサーバー上にマップを作成します。

ypinit を使用して新規に NIS マップセットをマスターサーバーに作成する場合は、次の手順に従います。

Procedureypinit を使用してマスターサーバーを設定する方法

  1. マスターサーバーで、スーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の第 9 章「役割によるアクセス制御の使用 (手順)」を参照してください。

  2. nsswitch.files ファイルの内容を nsswitch.conf ファイルにコピーします。


    # cp /etc/nsswitch.files /etc/nsswitch.conf
    
  3. /etc/hosts ファイルまたは /etc/inet/ipnodes ファイルを編集して、NIS サーバーのそれぞれの名前と IP アドレスを追加します。

  4. 新しいマップをマスターサーバーに作成します。


    # /usr/sbin/ypinit -m
    
  5. ypinit によって NIS スレーブサーバーになるほかのマシンのリストを求めるプロンプトが表示されたら、作業中のサーバー名と NIS スレーブサーバー名を入力します。

  6. 致命的でないエラーが発生したときにすぐに処理を終了するか、引き続き処理を継続するかを ypinit が尋ねてきたら、y と入力します。

    y を選択すると、ypinit は最初の問題が発生すると終了します。問題を解決して ypinit を再起動します。ypinit を初めて実行する場合はこの手順に従うようにしてください。処理を継続する場合は、発生する問題をすべて手動で解決してから ypinit を再起動します。


    注 –

    マップファイルの一部が存在しないと、致命的でないエラーが発生することがあります。これは NIS の機能に影響するエラーではありません。マップが自動的に作成されない場合は、必要に応じて手動で追加します。すべてのデフォルトの NIS マップの詳細については、「デフォルトの NIS マップ」を参照してください。


  7. /var/yp/domainname ディレクトリ内の既存のファイルを破棄してもよいかどうか ypinit が尋ねてきます。

    このメッセージは、NIS が以前に設定されている場合にだけ表示されます。

  8. ypinit は、サーバーのリストを作成し終わると make を起動します。

    このプログラムは、 /var/yp に置かれた Makefile (デフォルトまたは修正されたもの) に含まれている命令を使用します。make コマンドは、指定したファイルにコメント行があればその行を取り除きます。また、指定したファイルに対して makedbm を実行して適切なマップを作成し、各マップにマスターサーバー名を設定します。

    マスターサーバー上で domainname コマンドを実行すると返されるドメイン以外に対するマップの転送を Makefile で行う場合は、ypinit シェルスクリプトの中で make コマンドの変数 DOM に適切なドメイン名を指定して起動すれば、マップを正しいドメインに転送することができます。次のように入力してください。


    # make DOM=domainname password
    

    このコマンドによって、マスターサーバーが属するドメインではなく目的のドメインに password マップが転送されます。

  9. 次のように入力してネームサービスとして NIS を有効にします。


    # cp /etc/nsswitch.nis /etc/nsswitch.conf
    

    現在のスイッチファイルが、デフォルトの NIS 用スイッチファイルに置き換えられます。このファイルは必要に応じて編集可能です。

複数の NIS ドメインをサポートするマスターサーバー

NIS マスターサーバーは通常、NIS ドメインだけをサポートします。ただし、マスターサーバーを使用して複数のドメインをサポートする場合は、ypinit によるマスターサーバーの設定」で説明したように、追加のドメイン用にサーバーを設定するときに手順を若干修正する必要があります。

サーバー上で domainname コマンドを実行します。このコマンドによって返されるドメイン名はサーバーのデフォルトドメインです。ypinit によるマスターサーバーの設定」で説明した手順は、そのドメインへのサービスの設定では正しく機能します。ほかのドメインへのサービスを設定する場合は、ypinit シェルスクリプトを次のように修正する必要があります。


# make DOM=correct-domain passwd

correct-domain はサービスを設定しているほかのドメインの名前であり、passwdmake のターゲットです。このコマンドによって、マスターサーバーが属するドメインではなく目的のドメインに passwd マップが転送されます。