Solstice AdminSuite 2.3 管理者ガイド

第 3 章 セキュリティ

Solstice AdminSuite ソフトウェアを使用する際には、セキュリティ機能について理解し、管理データを保護するためのセキュリティ方針を設定することが重要です。

この章では、次の事項について説明します。

セキュリティ情報

Solstice AdminSuite は、ネットワークを介して管理作業を行う際に、分散型のシステム管理デーモン (sadmind) を使用して、セキュリティ処理を行います。sadmind デーモンは、クライアントの要求をサーバー上で実行し、Solstice AdminSuite を使用できるユーザーを制御します。

セキュリティの管理には、「ユーザーの認証」と「アクセス権の承認」があります。

承認では、ユーザーおよびグループの識別情報は次のように確認されます。

セキュリティレベル

管理データを変更する要求には、ユーザー ID とユーザーが所属するグループ ID などの資格情報が含まれています。サーバーはこれらの資格情報を使用して、ユーザーとアクセス権を確認します。

認証セキュリティには、表 3-1 に示す 3 つのレベルがあります。

表 3-1 Solstice AdminSuite のセキュリティレベル

レベル 

レベル名 

説明 

NONE 

サーバーはユーザー識別情報をチェックしません。すべてのユーザー ID は nobody に設定されます。おもにテストでこのレベルを使用します。

SYS 

サーバーは、クライアントシステムから元のユーザーおよびグループの識別情報を受け取り、それを確認して承認を行います。クライアントのユーザー ID がサーバー上の同じユーザーを示すかどうかは確認しません。つまり、管理者がネットワーク上のすべてのシステムにおいて、ユーザー ID とグループ ID の整合性を保つことを前提としています。このレベルでは、ユーザーが要求の実行権を持っているかどうかについて確認します。 

DES 

DES 認証を使用して資格を確認し、ユーザーが要求の実行権を持っているかどうかを確認します。ユーザーの DES ネットワーク識別情報を、ローカルのユーザー ID およびグループ ID に割り当てることによって、ユーザーおよびグループの識別情報をサーバー上のファイルから取得します。サーバーで選択されるネームサービスによって、どのファイルが使用されるかが決まります。このレベルは、最も安全に管理作業を行うことができる環境を提供します。また、sadmind デーモンを実行しているすべてのサーバー、およびツールにアクセスするすべてのユーザーに対して、publickey エントリが必要です。


注 -

sadmind は、デフォルトではセキュリティレベルは 1 を使用します。


セキュリティレベルの変更

各システムの /etc/inetd.conf ファイルを編集し、sadmind エントリに -S 2 オプションを追加すると、セキュリティレベルを 1 から 2 へ変更できます。この場合、ドメイン上のサーバーが DES セキュリティを使用するように設定されていることを確認してください。

ネットワーク上のすべてのシステムについて、同じセキュリティレベルを設定しておく必要はありません。たとえば、ファイルサーバーなど厳密なセキュリティを必要とするシステムではセキュリティレベルを 2 とし、その他のシステムについてはデフォルトのセキュリティレベルを 1 にすることもできます。

NIS+ のセキュリティの設定方法については、『NIS+ と FNS の管理』を参照してください。

ネームサービス情報

sadmind デーモンは、ネームサービスが保持している情報を使用します。次の 3 つの情報源があります。

各システムの /etc/nsswitch.conf ファイルには、管理用のファイルと、情報を検索するために使用されるネームサービスを表わすキーワードが記述されています。複数のキーワードが記述されている場合、記述されている順にネームサービスが使用されます。

たとえば以下のようなエントリの場合、セキュリティ機能は、まずローカルの /etc/group ファイルでエントリを探します。


group:	files nisplus

エントリが見つかるとそのエントリ中の情報を使用し、エントリが見つからない場合は NIS+ の group ファイルを検索します。

Solaris 2.4 以降の OS を使用するシステムには、ローカル /etc/group ファイルに sysadmin グループのエントリがデフォルトで記述されています。ネットワーク全体の情報を使用できるようにシステムを設定するには、ローカルシステム上で sysadmin グループにメンバーを追加するのではなく、ネームサービスのグループテーブルにある sysadmin グループのエントリを変更してください。

セキュリティレベル 2 の場合、セキュリティ機能は公開鍵および非公開鍵の情報を使用します。publickey のエントリの後に nis または nisplus (使用しているネームサービス) のいずれかが記述されていることを確認してから、files を削除します。nsswitch.conf ファイルの詳細は、『NIS+ と FNS の管理』を参照してください。

セキュリティ方針決定時の注意

ネームサービス環境で Solstice AdminSuite ソフトウェアを使用するためのセキュリティ方針を作成する場合は、次の点に注意してください。


注 -

ローカルの方針を設定してもグローバルの方針は有効です。ネームサービスのアクセス権は、nsswitch.conf ファイルによって決まります。


DES セキュリティ (レベル 2) システムの作成

DES セキュリティシステム (レベル 2) を作成する手順は、使用しているシステムの構成によって異なります。以下に、/etcNISNIS+ の各ネームサービスを使用しているシステムに、レベル 2 の DES セキュリティを設定する手順について説明します。

/etc ネームサービスの場合

  1. sadmind デーモンを実行している各システムで、/etc/inetd.conf ファイルを編集します。

    以下のような行を、


    100232/10	tli	rpc/udp wait root /usr/sbin/sadmind sadmind

    次のように変更します。


    100232/10	tli	rpc/udp wait root /usr/sbin/sadmind sadmind -S 2
    
  2. sadmind デーモンを実行している各システムで、/etc/nsswitch.conf ファイルの publickey エントリを files に変更します。

    以下のような行を、


    publickey:	nis [NOTFOUND=return] files

    次のように変更します。


    publickey:	files
    
  3. sysadmin グループのメンバー全員と、sadmind -S 2 を実行するすべてのシステムに対して、資格を作成します。

    1. sadmin -S 2 を実行するシステムのうちの 1 台に、スーパーユーザーとしてログインします。

    2. AdminSuite を実行する各ユーザーに対して、次のコマンドを実行します。


      # newkey -u username
      

      注 -

      sysadmin グループのメンバーでないユーザーに対しても、上記のコマンドを実行する必要があります。sysadmin グループのメンバーでなく、資格も持っていない場合、sadmind デーモンにはユーザーとして認識されないので、処理を何も実行できません。また、スーパーユーザーになる必要がない処理も実行できません。この場合、newkey プログラムの実行時に、ユーザーのパスワードを入力する必要があります。


    3. sadmind デーモンを実行できるように設定したすべてのホストに対して、次のコマンドを実行します。


      # newkey -h hostname
      

      各ホストに対して、スーパーユーザーのパスワードを入力する必要があります。

    4. 現在ログインしているシステムの /etc/publickey ファイルを、各ホストへコピー (上書き) します。

      このファイルには、各ユーザーおよびホスト用の資格が記述されています。


      注 -

      すべてのシステムでは newkey を実行しないでください。すべてのシステム上で実行すると、異なる公開鍵と非公開鍵の組み合わせが作成され、ネットワーク上の公開鍵が無効になります。/etc/publickey ファイルは 1 台のシステム上のみに作成し、それをその他のシステムにコピーしてください。


    5. 各システムにスーパーユーザーとしてログインし、次のコマンドを実行してルートの非公開鍵を /etc/.rootkey に置きます。


      # keylogin -r
      

      この手順によって、システムのブート時に自動的にルートの keylogin が作成されるので、admintool を実行するシステムごとに、毎回スーパーユーザーとして keylogin を実行する必要がなくなります。

  4. 各システムの各ユーザーについて /etc/netid ファイルを作成し、すべてのシステム上に置きます。

    1. publickey ファイル中に記述されているすべてのユーザーについて、/etc/netid ファイル中に次のようなエントリを作成します。


      unix.uid@domainname uid: uid: gid,gid,...
      
    2. このユーザーがメンバーとして登録されているすべてのグループを表示します。

      sysadmin グループのメンバーを確認するには、/etc/group ではなく、sadmind -S 2netid に依存しているファイルを利用してください。

    3. publickey ファイルに記述されている各ホストで、/etc/netid ファイル中に次のようなエントリを追加します。


      unix.hostname@domainname			0:hostname
      
    4. /etc/netid ファイル内に記述されているすべてのシステムに、/etc/netid ファイルをコピーします。

  5. すべてのシステムをリブートします。

  6. アプリケーションを実行する各システムにログインし、keylogin を実行します (sysadmin グループのメンバーである必要があります)。

    keylogin を実行すると安全にログアウトできます。明示的に keylogout を実行したりシステムをリブートしたりするまで、鍵は keyserv デーモン中に保存されます。

NIS ネームサービスの場合

  1. sadmind デーモンを実行している各システムで、/etc/inetd.conf ファイルを編集します。

    以下のような行を、


    100232/10	tli	rpc/udp wait root /usr/sbin/sadmind sadmind

    次のように変更します。


    100232/10	tli	rpc/udp wait root /usr/sbin/sadmind sadmind -S 2
    
  2. sadmind デーモンを実行している各システムで、/etc/nsswitch.conf ファイルの publickey エントリを nis に変更します。

    以下のような行を、


    publickey:	nis [NOTFOUND=return] files

    次のように変更します。


    publickey:	nis
    
  3. sysadmin グループのメンバー全員と、sadmind -S 2 を実行するすべてのシステムに対して、資格を作成します。

    1. NIS サーバーに、スーパーユーザーとしてログインします。

    2. admintool を実行する各ユーザーに対して、次のコマンドを実行します。


      # newkey -u username -s files
      

      注 -

      sysadmin グループのメンバーでないユーザーに対しても、上記のコマンドを実行する必要があります。sysadmin グループのメンバーでなく資格も持っていない場合、sadmind デーモンにはユーザーとして認識されないので、処理を何も実行できません。また、スーパーユーザーになる必要がない処理も実行できません。この場合、newkey プログラムの実行時に、ユーザーのパスワードを入力する必要があります。


    3. sadmind デーモンを実行できるように設定したすべてのホストに対して、次のコマンドを実行します。


      # newkey -h hostname
      

      各ホストに対して、スーパーユーザーのパスワードを入力する必要があります。

    4. 現在ログインしている NIS サーバー上の /etc/publickey ファイルを、/var/yp/Makefile ファイル中に指定されているソースファイルにコピーします。nis マップを作成し直してプッシュします。


      # cd /var/yp; make
      
  4. nisgroup マップを参照して、sysadmin グループのメンバーになっていることを確認します。

    1. スーパーユーザーとしてログインします。

    2. /var/yp/Makefile ファイル中に指定されているソースファイルのあるディレクトリに移動します。

    3. /etc/group ファイルを編集した場合と同様に、グループファイルを編集して自分自身を sysadmin グループのメンバーに追加します。

    4. /var/yp ディレクトリに移動し、make を実行します。


      # cd /var/yp; make
      

      group マップがプッシュされると、メッセージが表示されます。


      注 -

      セキュリティシステムは、NIS マップを参照して sysadmin グループのメンバーを確認します。/etc/nsswitch.conf ファイルに nis グループファイルがあるかどうかに関係なく、NIS マップに sysadmin グループのメンバーとして指定していない場合は、セキュリティシステムのエラーとなります。


      sadmind デーモンが -S 2 モードで実行されている場合は、publickey のエントリによって、ユーザーの資格を調べるのにどのネームサービスを参照するかが決まります。/etc/nsswitch.conf ファイル内のエントリが nis になっている場合、sadmind デーモンは nis グループマップを参照して、ユーザーが sysadmin グループのメンバーであることを確認します。

  5. 各システムにスーパーユーザーとしてログインし、ルートの公開鍵を /etc/.rootkey に置きます。


    # keylogin -r
    

    この手順によって、システムのブート時に自動的にルートの keylogin が作成されるので、admintool を実行するシステムごとに、毎回スーパーユーザーとして keylogin を実行する必要がなくなります。

  6. すべてのシステムをリブートし、nscd をフラッシュします (内部バッファに蓄積されたデータをファイルに書き込みます) 。

  7. アプリケーションを実行する各システムにログインし、keylogin を実行します (sysadmin グループのメンバーである必要があります)。

    keylogin を実行すると安全にログアウトできます。明示的に keylogout を実行したりシステムをリブートしたりするまで、鍵は keyserv デーモン中に保存されます。

NIS+ ネームサービスの場合

  1. sadmind デーモンを実行している各システムで、/etc/inetd.conf ファイルを編集します。

    以下のような行を、


    100232/10	tli	rpc/udp wait root /usr/sbin/sadmind sadmind

    次のように変更します。


    100232/10	tli	rpc/udp wait root /usr/sbin/sadmind sadmind -S 2
    
  2. sadmind デーモンを実行している各システムで、/etc/nsswitch.conf ファイルの publickey エントリを、nisplus に設定します。

    以下のような行を、


    publickey:	nisplus [NOTFOUND=return] files

    次のように変更します。


    publickey:	nisplus
    
  3. NIS+ マスターサーバーにスーパーユーザーとしてログインし、sysadmin グループのメンバー全員と、sadmind -S 2 を実行するすべてのシステムに対して、資格を作成します。

    1. ローカルの資格を作成します。


      # nisaddcred -p uid username.domainname. local
      
    2. des の資格を作成します。


      # nisaddcred -p unix.uid@domainname -P username.domainname. des
      
  4. NIS+ マスターサーバーにスーパーユーザーとしてログインし、admintool を使用するすべてのユーザーを NIS+ の sysadmin グループに追加します。


    # nistbladm -m members=username, username...[name=sysadmin], group.org_dir
    

    注 -

    現在の sysadmin グループのメンバーは、この手順で入力したメンバーに変更されます。このため、新しく追加するメンバーだけを指定するのではなく、sysadmin グループのすべてのメンバーを指定してください。


  5. AdminSuite を使用するすべてのユーザーを、NIS+ の admin グループに追加します。


    # nisgrpadm	 -a admin username
    

    NIS_GROUP 環境変数が admin に設定されていることを確認してください。

  6. AdminSuite を使用するすべてのシステムで、以下のコマンドを実行します。


    # keylogin -r
    
  7. すべてのシステムをリブートし、nscd をフラッシュします (内部バッファに蓄積されたデータをファイルに書き込みます) 。

  8. アプリケーションを実行する各システムにログインし、keylogin を実行します (sysadmin グループのメンバーである必要があります)。

    keylogin を実行すると安全にログアウトできます。明示的に keylogout を実行したりシステムをリブートしたりするまで、鍵は keyserv デーモン中に保存されます。