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

Kerberos Version 4 認証の管理

システム管理者は、ネットワークを安全にするためのポリシーをネットワーク上に実装できます。必要なセキュリティのレベルはサイトによって異なります。この節では、ネットワークセキュリティに関連するいくつかの作業手順を説明します。

Kerberos 認証でファイルを共有およびマウントする方法

前提条件

Kerberos Version 4 認証がネットワークで有効にされていなければなりません。

Kerberos 認証でファイルシステムを共有するには
  1. スーパーユーザーになります。

  2. Kerberos 認証でファイルシステムを共有します。

       # share -F nfs -o sec=krb4 /filesystem
    
Kerberos 認証でファイルシステムをマウントするには
  1. スーパーユーザーになります。

  2. Kerberos 認証でファイルシステムをマウントします。

       # mount -F nfs -o sec=krb4 server:resource mountpoint
    

    -o sec=krb4 オプションは、AUTH_KERB 認証でファイルシステムをマウントします。

クライアント上でスーパーユーザー用の Kerberos チケットを取得する方法

アクセスする必要がある NFS ファイルシステムがマウントされていない場合、マウントする前に、クライアント上でスーパーユーザー用のチケットを取得する必要があります。

マウントしていないファイルシステム用のチケットを取得するには
  1. スーパーユーザーになります。

  2. クライアント上で Kerberos チケットを取得します。

       # kinit root.hostname
    

    hostname はクライアントシステム名です。

       # kinit root.earth
       Password:
       #
マウント済みファイルシステム用のチケットを取得するには

/etc/srvtab 構成ファイルにクライアント用のエントリ root.hostname が入力されている場合、ksrvtgt コマンドを使用して、スーパーユーザー用のチケットを取得できます。この場合、スーパーユーザーのパスワードを指定する必要はありません。/etc/srvtab ファイルの初期化については、MIT のマニュアルを参照してください。

  1. スーパーユーザーになります。

  2. マウント済みファイルシステム用のチケットを取得します。

       # ksrvtgt root.hostname
    

例 - クライアント上でスーパーユーザー用の Kerberos チケットを取得する

   # ksrvtgt root.earth
   #

Kerberos サービスにログインする方法

    Kerberos サービスにログインするには、kinit -l username コマンドを使用します。


    earth% kinit -l username 
    

    kinit コマンドは、チケットの生存期間 (-l オプションを指定した場合) とパスワードを求めるプロンプトを出します。冗長モード (-v オプション) を使用すれば、チケットの状態が出力されます。

例 - Kerberos サービスにログインする

earth% kinit -l jjones
SunOS (earth)
Kerberos Initialization for "jjones"
Kerberos ticket lifetime (minutes): 480
Password:
earth%

Kerberos チケットをリストする方法

    klist と入力します。

例 - Kerberos チケットをリストする

earth% klist
Ticket file: /tmp/tkt8516
Principal: jjones@North.Abc.COM
  Issued            Expires          Principal
  Jan 14 20:40:54   Jan
15:04:40:54  krbtgt.North.Abc.COM@North.Abc.COM

Kerberos 認証でディレクトリにアクセスする方法

    cd /mountpoint と入力します。

    他のマウント済みディレクトリと同様に、マウント済みディレクトリにアクセスします。ls コマンドでディレクトリ中のファイルをリストしたり、klist コマンドで Kerberos チケットをリストしたりできます。

例 - Kerberos 認証でディレクトリにアクセスする

次の例では、ユーザー jjones はマウント済みの mntkrb ディレクトリに移動して、このディレクトリ内のファイルをリストしています。

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

earth% cd /mntkrb
earth% ls -l /mntkrb
-rw-r--r-- 1 marks  staff  29 Jul 14 12:22 sports
drwxr-xr-x 3 jjones staff 512 Sep 13 13:44 market
 
earth% klist
Ticket file: /tmp/tkt8516
Principal: jjones@North.Abc.COM
  Issued            Expires          Principal
  Jan 14 20:40:54   Jan
15:04:40:54  krbtgt.North.Abc.COM@North.Abc.COM
  Jan 14 20:43:21   Jan 15:04:43:21  nfs.pluto@North.Abc.COM

Kerberos チケットを削除する方法

    kdestroy を入力します。

    セッションが終了するときは、Kerberos チケットを削除します。これは、認証されていないユーザーがアクセスできないようにするためです。Kerberos 認証を再発行するには、kinit コマンドを使用します。

例 - Kerberos チケットを削除する

次の例は、Kerberos チケットを削除する方法を示しています。削除後、ユーザーが Kerberos で保護されたディレクトリに移動したり、そのディレクトリの内容をリストしたりしようとすると、チケットサーバーがアクセスを拒否します。

earth% kdestroy
Tickets destroyed
earth% ls /mntkrb
Can't get Kerberos key: No ticket file (tf_util)
NFS getattr failed for server pluto: RPC: Authentication error
can not access directory /mntkrb.