Solaris のシステム管理 (第 2 巻)

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

NFS サービスは UNIX UID を使用してユーザーを識別しますが、プリンシパルを直接使用することはできません。そのため、プリンシパルを UID に対応づけるために、ユーザープリンシパルを UNIX UID に対応させる資格テーブルを作成する必要があります。次の手順は、SEAM NFS サーバーの構成、資格テーブルの作成、NFS マウントするファイルシステムの Kerberos セキュリティモードの開始に必要な作業を中心とします。表 22-2 はこの節で行う作業の説明です。

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

作業 

説明 

使用する手順 

SEAM NFSサーバーの構成 

 Kerberos 認証を必要とするファイルシステムを共有するようにサーバーを設定する手順「SEAM NFS サーバーを構成する方法」

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

gsscred によって使用されるバックエンド機構を定義する手順gsscred テーブルのバックエンド機構を変更する方法」

資格テーブルの作成 

 資格テーブルを作成する手順「資格テーブルを作成する方法」

ユーザープリンシパルを UNIX UID に対応させる資格テーブルを変更する方法 

 資格テーブルの情報を更新する手順「資格テーブルに 1 つのエントリを追加する方法」

Kerberos 認証を使用した、ファイルシステムの共有 

 セキュリティモードを使用してファイルシステムを共有し、Kerberos 認証を必須にする手順「複数の Kerberos セキュリティモード使用して安全な NFS 環境を設定する方法」

SEAM NFS サーバーを構成する方法

この手順を行う場合には、マスター KDC がすでに構成されていなければなりません。この手順のプロセスを完全にテストするには、いくつかのクライアントが必要です。この手順では、次の構成パラメタを使用します。

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

    SEAM クライアントソフトウェアがインストールされていなければなりません。

  2. (省略可能) NTP クライアントまたは別のクロック同期化機構をインストールします。

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

  3. 新しいプリンシパルを追加します。

    KDC とともに提供される管理ツールを使用して、NFS サーバーの新しいプリンシパルを追加します。

    1. サーバーの NFS サービスプリンシパルを次の名前で作成します。

      nfs/denver.acme.com

    2. (省略可能) NFS サーバーの root プリンシパルを次の名前で作成します。

      root/denver.acme.com

    3. サーバーの NFS サービスプリンシパルをサーバーの keytab に追加します。

      nfs/denver.acme.com プリンシパルが keytab ファイルに追加されていることを確認します。

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

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

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

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

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

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

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

  2. /etc/gss/gsscred.conf を編集してこの機構を変更します。

    バックエンド機構には、filesxfn_filesxfn_nisxfn_nisplusxfn のどれか 1 つを使用できます。個々の機構の利点については、gsscred テーブルの使用」で説明します。

資格テーブルを作成する方法

gsscred 資格テーブルは、SEAM プリンシパルを UID に対応づけるために NFS サーバーによって使用されます。NFS クライアントが Kerberos 認証を使用して NFS サーバーのファイルシステムをマウントするには、このテーブルを作成するか使用可能にしなければなりません。

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

    このコマンドをどのサーバーからどの ID を使用して実行するかは、この gsscred テーブルをサポートするバックエンド機構として何が選択されているかによって異なります。xfn_nisplus 以外の機構では、root になる必要があります。

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

    実行する場所 

    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(1M) のマニュアルページを参照してください。


    # gsscred -m kerberos_v5 -a
    

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

この手順を行うには、gsscred テーブルが NFS サーバーにインストールされていなければなりません。

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

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


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

    mech

    使用するセキュリティ機構 

    name

    KDC に定義されている、ユーザーのプリンシパル名 

    uid

    パスワードデータベースに定義されている、ユーザーの UID 

    -a

    UID をプリンシパル名マッピングに追加します 

例 - 資格テーブルの単一エントリを変更する

次の例では、sandy という名前のユーザーエントリを追加し、UID 3736 に対応させます。UID をコマンド行に指定しないと、パスワードファイルのものが使用されます。


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

複数の Kerberos セキュリティモード使用して安全な NFS 環境を設定する方法

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

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


    # share -F nfs -o sec=mode filesystem
    

    mode

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

    filesystem

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

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

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

    これが最初の share コマンドまたは最初の一連の share コマンドなら、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)。さらに、share コマンドの変更」を参照してください。


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