Sun Enterprise Authentication Mechanism 1.0.1 ガイド

SEAM NFS サーバーの構成

NFS サービスは UNIX のユーザー ID でユーザーを識別するので、プリンシパルを直接使用できません。プリンシパルをユーザー ID に変換するには、ユーザーのプリンシパルを UNIX のユーザー ID にマッピングする資格テーブルを作成する必要があります。次の手順では、SEAM NFS サーバーを構成し、資格テーブルを管理し、NFS マウントされたファイルシステムを Kerberos セキュリティモードで起動するために必要な作業を説明します。次の表に、この節で説明する作業を示します。

表 3-3 SEAM NFS サーバーの構成の作業マップ

作業 

説明 

参照箇所 

SEAM NFS サーバーを構成する 

 サーバーが Kerberos 認証を必要とするファイルシステムを共有できるようにします。「SEAM NFS サーバーを構成するには」

資格テーブルのバックエンド機構を変更する 

gsscred が使用するバックエンド機構を定義します。gsscred テーブルのバックエンド機構を変更するには」

資格テーブルを作成する 

 資格テーブルを生成します。「資格テーブルを作成するには」

ユーザーのプリンシパルを UNIX のユーザー ID にマッピングする資格テーブルを変更する 

 資格テーブルの情報を更新します。「1 つのエントリを資格テーブルに追加するには」

Kerberos 認証でファイルシステムを共有する 

 Kerberos 認証が必要なセキュリティモードでファイルシステムを共有します。「複数の Kerberos セキュリティモードで安全な NFS 環境を設定するには」

SEAM NFS サーバーを構成するには

この手順では、マスター KDC を構成しておく必要があります。プロセス全体を通してテストするには、いくつかのクライアントをインストールしておく必要があります。この手順では、次の構成パラメータを使用します。

  1. SEAM NFS サーバーを構成するための前提条件

    SEAM クライアントソフトウェアをインストールしておきます。

  2. 省略可能: NTP クライアントなどのクロック同期機構をインストールします。

    NTP については、「KDC と SEAM クライアント間のクロックの同期」を参照してください。

  3. kadmin を起動します。

    SEAM 管理ツールを使用してプリンシパルを追加する方法については、「新しいプリンシパルを作成するには」を参照してください。次の例に、コマンド行で必要とされるプリンシパルを追加する方法を示します。マスター KDC を構成するときに作成した admin プリンシパル名の 1 つでログインします。


    denver # /usr/krb5/sbin/kadmin -p kws/admin
    Enter password: <kws/admin のパスワードを入力する>
    kadmin: 
    1. サーバーの NFS サービスプリンシパルを作成します。


      kadmin: addprinc -randkey nfs/denver.acme.com
      Principal "nfs/denver.acme.com" created.
      kadmin:
    2. 省略可能: NFS サーバーの root プリンシパルを作成します。


      kadmin: addprinc root/denver.acme.com
      Enter password for principal root/denver.acme.com@ACME.COM: <パスワードを入力する>
      Re-enter password for principal root/denver.acme.com@ACME.COM: <もう一度パスワードを入力する>
      Principal "root/denver.acme.com@ACME.COM" created.
      kadmin: 
    3. サーバーの NFS サービスプリンシパルをサーバーの keytab に追加します。


      kadmin: ktadd nfs/denver.acme.com
      kadmin: Entry for principal nfs/denver.acme.com with
        kvno 3, encryption type DES-CBC-CRC added to keytab
        WRFILE:/etc/krb5/krb5.keytab
      kadmin: quit
      
    4. kadmin を終了します。


      kadmin: quit
      
  4. gsscred テーブルを作成します。

    詳細は、「資格テーブルを作成するには」を参照してください。

  5. Kerberos セキュリティモードを使用して、NFS ファイルシステムを共有します。

    詳細は、「複数の Kerberos セキュリティモードで安全な NFS 環境を設定するには」を参照してください。

  6. 各クライアント上でユーザーと root の両方のプリンシパルを認証します。

    詳細は、「NFS ファイルシステムをマウントするための root 認証の設定」を参照してください。

gsscred テーブルのバックエンド機構を変更するには

  1. NFS サーバー上でスーパーユーザーになります。

  2. /etc/gss/gsscred.conf を編集して、バックエンド機構を変更します。

    バックエンド機構 (filesxfn_filesxfn_nisxfn_nisplus、または xfn) の 1 つを使用できます。これらの機構の利点については、『Solaris のシステム管理 (第 2 巻)』を参照してください。

資格テーブルを作成するには

gsscred 資格テーブルは、NFS が SEAM プリンシパルをユーザー ID にマッピングするために使用します。NFS クライアントが Kerberos 認証を使用して NFS サーバーからファイルシステムをマウントできるようにするには、このテーブルを作成して、利用可能にしておきます。

  1. 適切なサーバー上でスーパーユーザーになります。

    どのサーバー上でこのコマンドを使用するか、および、どの ID でこのコマンドを実行するかは、gsscred テーブルをサポートするために使用するバックエンド機構によって異なります。すべての機構 (xfn_nisplus を除く) において、スーパーユーザーになる必要があります。

    使用するバックエンド機構 

    操作 

    files

    NFS サーバー上で実行する 

    xfn

    デフォルトの xfn ファイルの設定に基づいてホストを選択する

    xfn_files

    NFS サーバー上で実行する 

    xfn_nis

    NIS マスター上で実行する 

    xfn_nisplus

    NIS+ データを変更するアクセス権がある任意の場所で実行する 

  2. 省略可能: /var/fn がないときで xfn オプションの 1 つを使用したい場合、初期 XFN データベースを作成します。


    # fnselect files
    # fncreate -t org -o org//
    
  3. gsscred を使用して、資格テーブルを作成します。

    このコマンドは、/etc/nsswitch.confpasswd エントリで書かれているすべての情報源から情報を集めます。ローカルのパスワードエントリを資格テーブルに入れたくない場合は、一時的に files エントリを削除します。詳細は、gsscred(1) のマニュアルページを参照してください。


    # gsscred -m kerberos_v5 -a
    

1 つのエントリを資格テーブルに追加するには

この手順では、gsscred テーブルをすでに NFS サーバーにインストールしている必要があります。

  1. NFS サーバー上でスーパーユーザーになります。

  2. gsscred を使用して、エントリをテーブルに追加します。


    # gsscred -m mech -n [name [-u uid]] -a
    

    mech

    使用されるセキュリティ機構 

    name

    KDC で定義されたユーザーのプリンシパル名 

    uid

    パスワードデータベースで定義されたユーザーのユーザー ID 

    -a

    ユーザー ID からプリンシパル名へのマッピングを追加する 

例 - 1 つのエントリを資格テーブルに追加する

次の例では、ユーザー名 sandy のエントリを追加して、ユーザー ID 3736 にマッピングしています。コマンド行にユーザー ID を指定しない場合、ユーザー ID はパスワードファイルから取得されます。


# gsscred -m kerberos_v5 -n sandy -u 3736 -a

複数の Kerberos セキュリティモードで安全な NFS 環境を設定するには

  1. NFS サーバー上でスーパーユーザーになります。

  2. /etc/dfs/dfstab ファイルを編集して、適切なエントリに sec= オプションを追加し、必要なセキュリティモードを指定します。


    # share -F nfs -o sec=modefilesystem
    

    mode

    共有時に使用されるセキュリティモード。複数のセキュリティモードを使用する場合、リストの最初のモードがデフォルトとして autofs に使用される 

    filesystem

    共有されるファイルシステムへのパス 

    指定したファイルシステムのファイルにアクセスするすべてのクライアントは Kerberos 認証が必要です。ファイルへのアクセスを完了するには、NFS クライアント上のユーザーと root の両方のプリンシパルが認証される必要があります。

  3. NFS サービスがサーバー上で動作していることを確認します。

    Share コマンドを初めて実行する場合、NFS デーモンが動作していないこともあります。次のコマンドで、NFS デーモンを強制終了して再起動します。


    # /etc/init.d/nfs.server stop
    # /etc/init.d/nfs.server start
    
  4. 省略可能: autofs を使用している場合、auto_master データを編集して、デフォルト以外のセキュリティモードを選択します。

    autofs でファイルシステムにアクセスしていない場合、あるいは、デフォルトのセキュリティモードを使用する場合、この手順を行う必要はありません。


    /home	  auto_home  -nosuid,sec=krbi
  5. 省略可能: 手動で mount コマンドを実行して、デフォルト以外のモードでファイルシステムにアクセスします。

    また、mount コマンドを使用してもセキュリティモードを指定できますが、この方法ではオートマウントの機能は使えません。


    # mount -F nfs -o sec=krb5p /export/home
    

例 - 1 つの Kerberos セキュリティモードでファイルシステムを共有する

この例では、ファイルにアクセスするために Kerberos 認証が必要です。


# share -F nfs -o sec=krb5 /export/home

例 - 複数の Kerberos セキュリティモードでファイルシステムを共有する

この例では、3 つの Kerberos セキュリティモードをすべて選択しています。マウント要求を行うときにセキュリティモードを指定しない場合、リストの最初のモードがすべての NFS V3 クライアント (この場合は krb5) 上で使用されます。詳細は、『Solaris のシステム管理 (第 2 巻)』を参照してください。


# share -F nfs -o sec=krb5:krb5i:krb5p /export/home