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

NFS による Kerberos 認証の実装

次の手順では、MIT プロジェクト Athena から公開されている Kerberos キー配布センターのソースを使用して、Kerberos キー配布センター (KDC) がすでにネットワーク上にインストールされていると仮定しています。

  1. /usr/sbin/kerbd デーモンが NFS クライアントとサーバー上で動作していなければなりません。

    このデーモンは、通常、inetd によって必要に応じて起動されます。rpcinfo コマンドを使用すれば、kerbd サービスが登録されていることを確認できます。kerbd はユーザーモードデーモンです。kerbd は、カーネル RPC および KDC とインターフェースを取ります。kerbd は、認証チケットを生成してその妥当性を検査します。

  2. システム管理者は、Kerberos 認証を使用するように NFS サーバーを設定します。

    MIT Kerberos ソフトウェアは、Kerberos サーバー上で Kerberos キー配布センター (KDC) に主体名を登録するのに使用されます。次のエントリが必要です。

    • root.hostname (NFS クライアントごとに必要)

    • nfs.hostname (NFS サーバーごとに必要)

  3. ユーザーは、共有ファイルシステムをマウントします。

    共有ファイルシステムをマウントするために、クライアント上のユーザーは、クライアント上で root 用のチケットを取得しなければなりません。

  4. ユーザーは、kinit コマンドを使用して、Kerberos サービスにログインします。

    Kerberos 認証サーバーは、要求を認証して、チケット譲与サービス用のチケットを与えます。

  5. ユーザーは、マウント済みディレクトリにアクセスします。

    kerbd デーモンは、クライアントのために、ファイルシステムをエクスポートしている NFS サーバー用のチケットを自動的に取得します。この時点で、2 つの有効なチケットがあります。オリジナルのチケット譲与チケットと、サーバー用のチケットです。

  6. ユーザーは、セッションの終わりにチケットを削除して、誤用と悪用を防ぎます。

    kdestroy コマンドは、チケットを含むファイルにゼロを書き込むことによって、ユーザーのアクティブな Kerberos 認証チケットを削除します。kdestroy コマンドを .logout ファイルに置いておけば、システムからログアウトするときに、すべての kdestroy チケットを自動的に破壊できます。

  7. セッションが終了する前にチケットが削除されていた場合、ユーザーは kinit コマンドで新しいチケットを要求しなければなりません。