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 環境を設定する方法」 |
この手順を行う場合には、マスター KDC がすでに構成されていなければなりません。この手順のプロセスを完全にテストするには、いくつかのクライアントが必要です。この手順では、次の構成パラメタを使用します。
レルム名 = ACME.COM
DNS ドメイン名 = acme.com
NFS サーバー = denver.acme.com
admin プリンシパル = kws/admin
SEAM NFS サーバーを構成するための前提条件
SEAM クライアントソフトウェアがインストールされていなければなりません。
(省略可能) NTP クライアントまたは別のクロック同期化機構をインストールします。
NTP については、「KDC と SEAM クライアントのクロックの同期化」を参照してください。
新しいプリンシパルを追加します。
KDC とともに提供される管理ツールを使用して、NFS サーバーの新しいプリンシパルを追加します。
gsscred テーブルを作成します。
詳細は、「資格テーブルを作成する方法」を参照してください。
Kerberos セキュリティモードを使用して NFS ファイルシステムを共有します。
詳細は、「複数の Kerberos セキュリティモード使用して安全な NFS 環境を設定する方法」を参照してください。
各クライアントでユーザープリンシパルと root プリンシパルを認証します。
NFS サーバーでスーパーユーザーになります。
/etc/gss/gsscred.conf を編集してこの機構を変更します。
バックエンド機構には、files、xfn_files、xfn_nis、xfn_nisplus、xfn のどれか 1 つを使用できます。個々の機構の利点については、「gsscred テーブルの使用」で説明します。
gsscred 資格テーブルは、SEAM プリンシパルを UID に対応づけるために NFS サーバーによって使用されます。NFS クライアントが Kerberos 認証を使用して NFS サーバーのファイルシステムをマウントするには、このテーブルを作成するか使用可能にしなければなりません。
適切なサーバーでスーパーユーザーになります。
このコマンドをどのサーバーからどの ID を使用して実行するかは、この gsscred テーブルをサポートするバックエンド機構として何が選択されているかによって異なります。xfn_nisplus 以外の機構では、root になる必要があります。
使用するバックエンド機構 |
実行する場所 |
---|---|
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(1M) のマニュアルページを参照してください。
# gsscred -m kerberos_v5 -a |
この手順を行うには、gsscred テーブルが NFS サーバーにインストールされていなければなりません。
NFS サーバーでスーパーユーザーになります。
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 |
NFS サーバーでスーパーユーザーになります。
/etc/dfs/dfstab ファイルを編集して、必要なセキュリティモードを sec= オプションに指定して適切なエントリに追加します。
# share -F nfs -o sec=mode filesystem |
mode |
共有するときに使用するセキュリティモード。複数のセキュリティモードを追加すると、デフォルトとしてリストの最初のモードが autofs によって使用される |
filesystem |
共有するファイルシステムへのパス |
指定されたファイルシステムのファイルにアクセスするすべてのクライアントは、Kerberos 認証が必要です。ファイルのアクセスを完了するには、NFS クライアント上のユーザープリンシパルと root プリンシパルが両方とも認証されなければなりません。
NFS サービスがサーバーで動作しているか確認します。
これが最初の share コマンドまたは最初の一連の share コマンドなら、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)。さらに、「share コマンドの変更」を参照してください。
# share -F nfs -o sec=krb5:krb5i:krb5p /export/home |