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 環境を設定するには」 |
この手順では、マスター KDC を構成しておく必要があります。プロセス全体を通してテストするには、いくつかのクライアントをインストールしておく必要があります。この手順では、次の構成パラメータを使用します。
レルム名 = ACME.COM
DNS ドメイン名 = acme.com
NFS サーバー = denver.acme.com
admin プリンシパル = kws/admin
SEAM NFS サーバーを構成するための前提条件
SEAM クライアントソフトウェアをインストールしておきます。
省略可能: NTP クライアントなどのクロック同期機構をインストールします。
NTP については、「KDC と SEAM クライアント間のクロックの同期」を参照してください。
kadmin を起動します。
SEAM 管理ツールを使用してプリンシパルを追加する方法については、「新しいプリンシパルを作成するには」を参照してください。次の例に、コマンド行で必要とされるプリンシパルを追加する方法を示します。マスター KDC を構成するときに作成した admin プリンシパル名の 1 つでログインします。
denver # /usr/krb5/sbin/kadmin -p kws/admin Enter password: <kws/admin のパスワードを入力する> kadmin: |
サーバーの NFS サービスプリンシパルを作成します。
kadmin: addprinc -randkey nfs/denver.acme.com Principal "nfs/denver.acme.com" created. kadmin: |
省略可能: 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: |
サーバーの 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 |
kadmin を終了します。
kadmin: quit |
gsscred テーブルを作成します。
詳細は、「資格テーブルを作成するには」を参照してください。
Kerberos セキュリティモードを使用して、NFS ファイルシステムを共有します。
詳細は、「複数の Kerberos セキュリティモードで安全な NFS 環境を設定するには」を参照してください。
各クライアント上でユーザーと root の両方のプリンシパルを認証します。
詳細は、「NFS ファイルシステムをマウントするための root 認証の設定」を参照してください。
NFS サーバー上でスーパーユーザーになります。
/etc/gss/gsscred.conf を編集して、バックエンド機構を変更します。
バックエンド機構 (files、xfn_files、xfn_nis、xfn_nisplus、または xfn) の 1 つを使用できます。これらの機構の利点については、『Solaris のシステム管理 (第 2 巻)』を参照してください。
gsscred 資格テーブルは、NFS が SEAM プリンシパルをユーザー ID にマッピングするために使用します。NFS クライアントが Kerberos 認証を使用して NFS サーバーからファイルシステムをマウントできるようにするには、このテーブルを作成して、利用可能にしておきます。
適切なサーバー上でスーパーユーザーになります。
どのサーバー上でこのコマンドを使用するか、および、どの ID でこのコマンドを実行するかは、gsscred テーブルをサポートするために使用するバックエンド機構によって異なります。すべての機構 (xfn_nisplus を除く) において、スーパーユーザーになる必要があります。
使用するバックエンド機構 |
操作 |
---|---|
files |
NFS サーバー上で実行する |
xfn |
デフォルトの xfn ファイルの設定に基づいてホストを選択する |
xfn_files |
NFS サーバー上で実行する |
xfn_nis |
NIS マスター上で実行する |
xfn_nisplus |
NIS+ データを変更するアクセス権がある任意の場所で実行する |
省略可能: /var/fn がないときで xfn オプションの 1 つを使用したい場合、初期 XFN データベースを作成します。
# fnselect files # fncreate -t org -o org// |
gsscred を使用して、資格テーブルを作成します。
このコマンドは、/etc/nsswitch.conf の passwd エントリで書かれているすべての情報源から情報を集めます。ローカルのパスワードエントリを資格テーブルに入れたくない場合は、一時的に files エントリを削除します。詳細は、gsscred(1) のマニュアルページを参照してください。
# gsscred -m kerberos_v5 -a |
この手順では、gsscred テーブルをすでに NFS サーバーにインストールしている必要があります。
NFS サーバー上でスーパーユーザーになります。
gsscred を使用して、エントリをテーブルに追加します。
# gsscred -m mech -n [name [-u uid]] -a |
mech |
使用されるセキュリティ機構 |
name |
KDC で定義されたユーザーのプリンシパル名 |
uid |
パスワードデータベースで定義されたユーザーのユーザー ID |
-a |
ユーザー ID からプリンシパル名へのマッピングを追加する |
次の例では、ユーザー名 sandy のエントリを追加して、ユーザー ID 3736 にマッピングしています。コマンド行にユーザー ID を指定しない場合、ユーザー ID はパスワードファイルから取得されます。
# gsscred -m kerberos_v5 -n sandy -u 3736 -a |
NFS サーバー上でスーパーユーザーになります。
/etc/dfs/dfstab ファイルを編集して、適切なエントリに sec= オプションを追加し、必要なセキュリティモードを指定します。
# share -F nfs -o sec=modefilesystem |
mode |
共有時に使用されるセキュリティモード。複数のセキュリティモードを使用する場合、リストの最初のモードがデフォルトとして autofs に使用される |
filesystem |
共有されるファイルシステムへのパス |
指定したファイルシステムのファイルにアクセスするすべてのクライアントは Kerberos 認証が必要です。ファイルへのアクセスを完了するには、NFS クライアント上のユーザーと root の両方のプリンシパルが認証される必要があります。
NFS サービスがサーバー上で動作していることを確認します。
Share コマンドを初めて実行する場合、NFS デーモンが動作していないこともあります。次のコマンドで、NFS デーモンを強制終了して再起動します。
# /etc/init.d/nfs.server stop # /etc/init.d/nfs.server start |
省略可能: autofs を使用している場合、auto_master
データを編集して、デフォルト以外のセキュリティモードを選択します。
autofs でファイルシステムにアクセスしていない場合、あるいは、デフォルトのセキュリティモードを使用する場合、この手順を行う必要はありません。
/home auto_home -nosuid,sec=krbi |
省略可能: 手動で mount コマンドを実行して、デフォルト以外のモードでファイルシステムにアクセスします。
また、mount コマンドを使用してもセキュリティモードを指定できますが、この方法ではオートマウントの機能は使えません。
# mount -F nfs -o sec=krb5p /export/home |
この例では、ファイルにアクセスするために Kerberos 認証が必要です。
# share -F nfs -o sec=krb5 /export/home |
この例では、3 つの Kerberos セキュリティモードをすべて選択しています。マウント要求を行うときにセキュリティモードを指定しない場合、リストの最初のモードがすべての NFS V3 クライアント (この場合は krb5) 上で使用されます。詳細は、『Solaris のシステム管理 (第 2 巻)』を参照してください。
# share -F nfs -o sec=krb5:krb5i:krb5p /export/home |