NFS サービスは、UNIX ユーザー ID (UID) を使用してユーザーを識別しますが、主体を直接使用することはできません。そのため、主体を UID に対応付けるために、ユーザー主体を UNIX UID に割り当てる資格テーブルを作成する必要があります。この節では、SEAM NFS サーバーの構成手順、資格テーブルの管理手順、および NFS マウントしたファイルシステムに対して Kerberos セキュリティモードを有効にする手順を中心に説明します。次の表は、この節で説明する作業の一覧です。
表 9–3 SEAM NFS サーバーの構成 (作業マップ)
作業 |
説明 |
参照先 |
---|---|---|
SEAM NFS サーバーを構成する |
Kerberos 認証を必要とするファイルシステムを、サーバーが 共有できるようにする | |
資格テーブルを作成する |
資格テーブルを生成する | |
ユーザー主体を UNIX UID に割り当てる資格テーブルを変更する |
資格テーブルの情報を更新する | |
Kerberos 認証を使用してファイルシステムを共有する |
セキュリティモードを使用してファイルシステムを共有し、Kerberos 認証を常に行う |
レルム名 = EXAMPLE.COM
DNS ドメイン名 = example.com
NFS サーバー = denver.example.com
admin 主体 = kws/admin
SEAM NFS サーバーを構成するための前提条件を完了します。
マスター KDC が構成済みである必要があります。処理を十分にテストするには、複数のクライアントが必要です。
(省略可能) NTP クライアントなどのクロック同期メカニズムをインストールします。
NTP のインストールと使用は、必須ではありません。ただし、認証を正常終了させるには、krb5.conf ファイルの libdefaults セクションに定義されているデフォルト時間内に、すべてのクロックを調整する必要があります。NTP については、KDC と SEAM クライアントのクロックの同期化を参照してください。
kadmin を起動します。
SEAM 管理ツールを使用して、主体を追加することができます (新しい主体を作成する方法を参照)。追加するときは、マスター KDC を構成するときに作成した admin 主体名を使用してログインする必要があります。ただし、次の例では、コマンド行を使用して、必要な主体を追加しています。
denver # /usr/sbin/kadmin -p kws/admin Enter password: <kws/admin パスワードを入力する> kadmin: |
サーバーの NFS サービス主体を作成します。
主体のインスタンスがホスト名のときは、/etc/resolv.conf ファイル内のドメイン名が大文字であるか小文字であるかにかかわらず、FQDN は小文字で入力する必要があります。
kadmin: addprinc -randkey nfs/denver.example.com Principal "nfs/denver.example.com" created. kadmin: |
(省略可能) NFS サーバーの root 主体を作成します。
kadmin: addprinc root/denver.example.com Enter password for principal root/denver.example.com@EXAMPLE.COM: <パスワードを入力する> Re-enter password for principal root/denver.example.com@EXAMPLE.COM: <パスワードを再度入力する> Principal "root/denver.example.com@EXAMPLE.COM" created. kadmin: |
サーバーの NFS サービス主体をサーバーのキータブファイルに追加します。
kadmin: ktadd nfs/denver.example.com kadmin: Entry for principal nfs/denver.example.com with kvno 3, encryption type DES-CBC-CRC added to keytab WRFILE:/etc/krb5/krb5.keytab kadmin: |
kadmin を終了します。
kadmin: quit |
gsscred テーブルを作成します。
詳細は、資格テーブルを作成する方法を参照してください。
NFS ファイルシステムを Kerberos セキュリティモードで共有します。
詳細は、複数の Kerberos セキュリティモードで安全な NFS 環境を設定する方法を参照してください。
クライアントごとに、ユーザー主体と root 主体を認証します。
gsscred 資格テーブルは、SEAM 主体を UID に割り当てるために NFS サーバーが使用します。NFS クライアントが Kerberos 認証を使用して NFS サーバーからファイルシステムをマウントするには、このテーブルを作成して使用可能にする必要があります。
/etc/gss/gsscred.conf を編集してこのメカニズムを変更します。
このメカニズムを files に変更します。
gsscred を使用して資格テーブルを作成します。
# gsscred -m kerberos_v5 -a |
gsscred コマンドは、 /etc/nsswitch.conf ファイル内の passwd エントリに指定されているすべてのソースから、情報を収集します。資格テーブルにローカルのパスワードエントリを入れたくない場合は、files エントリを一時的に削除しなければならないことがあります。詳細は、gsscred(1M) のマニュアルページを参照してください。
この手順を行うには、gsscred テーブルがすでに NFS サーバーに作成済みである必要があります。
NFS サーバーでスーパーユーザーになります。
gsscred を使用してエントリをテーブルに追加します。
# gsscred -m mech [ -n name [ -u uid ]] -a |
mech |
使用するセキュリティメカニズムを定義する |
name |
KDC に定義されている、ユーザーの主体名を定義する |
uid |
パスワードデータベースに定義されている、ユーザーの UID を定義する |
-a |
UID を主体名の割り当てに追加する |
次の例では、sandy という名前のユーザーエントリを追加し、UID 3736 に割り当てます。UID をコマンド行に指定しない場合は、パスワードファイルの UID が使用されます。
# gsscred -m kerberos_v5 -n sandy -u 3736 -a |
NFS サーバー上でスーパーユーザーになります。
キータブファイルに NFS サービス主体が存在することを確認します。
klist コマンドを指定すると、キータブファイルが存在するかどうかが出力され、その主体が表示されます。キータブファイルが存在しない場合、または NFS サービス主体が存在しない場合は、SEAM NFS サーバーを構成する方法 のすべての手順が完了していることを検証する必要があります。
# klist -k Keytab name: FILE:/etc/krb5/krb5.keytab KVNO Principal ---- --------------------------------------------------------- 3 nfs/denver.example.com@EXAMPLE.COM |
/etc/nfssec.conf ファイル内の Kerberos セキュリティモードを有効にします。
/etc/nfssec.conf ファイルを編集して、Kerberos セキュリティモードの先頭にある # を削除します。
# cat /etc/nfssec.conf . . # # NFS の Kerberos V5 を使用するために次の行をコメントからはずす # krb5 390003 kerberos_v5 default - # RPCSEC_GSS krb5i 390004 kerberos_v5 default integrity # RPCSEC_GSS krb5p 390005 kerberos_v5 default privacy # RPCSEC_GSS |
/etc/dfs/dfstab ファイルを編集します。必要なセキュリティモードを sec= オプションに指定して、適切なエントリに追加します。
share -F nfs -o sec=mode file-system |
mode |
共有するときに使用するセキュリティモードを指定する。複数のセキュリティモードを使用するときは、デフォルトとして、リストの最初のモードがオートマウンタによって使用される |
file-system |
共有するファイルシステムへのパスを定義する |
指定されたファイルシステムのファイルにアクセスするすべてのクライアントは、Kerberos 認証が必要です。ファイルにアクセスするには、NFS クライアント上のユーザー主体と root 主体が両方とも認証される必要があります。
NFS サービスがサーバー上で動作していることを確認します。
share コマンドまたは share コマンドセットを初めて実行する場合、NFS デーモンが動作していないことがあります。次のコマンドでデーモンを終了し、再起動してください。
# /etc/init.d/nfs.server stop # /etc/init.d/nfs.server start |
(省略可能) オートマウンタを使用する場合は、auto_master データベースを編集して、デフォルト以外のセキュリティモードを選択してください。
ファイルシステムのアクセスにオートマウンタを使用しない場合やデフォルトの選択をセキュリティモードとして使用する場合は、この手順を行う必要はありません。
file-system auto_home -nosuid,sec=mode |
(省略可能) 手動で mount コマンドを実行し、デフォルト以外のモードを使用してファイルシステムにアクセスします。
この代わりに、mount コマンドにセキュリティモードを指定できますが、オートマウンタは利用できません。
# mount -F nfs -o sec=mode file-system |
この例の dfstab ファイルの行は、NFS サービスを使用してファイルにアクセスするには、Kerberos 認証が正常終了する必要があることを示しています。
# grep krb /etc/dfs/dfstab share -F nfs -o sec=krb5 /export/home |
次の例では、3 つの Kerberos セキュリティモードがすべて選択されています。マウント要求にセキュリティモードが指定されていない場合は、NFS V3 のすべてのクライアントに対して、最初のモードが使用されます (この場合は krb5)。詳細は、nfssec.conf(4) のマニュアルページを参照してください。
# grep krb /etc/dfs/dfstab share -F nfs -o sec=krb5:krb5i:krb5p /export/home |