Sun Enterprise Authentication Mechanism ガイド

第 5 章 プリンシパルとポリシーの管理

この章では、プリンシパルとそれに関連するポリシーを管理する手順を説明します。また、ホストの keytab を管理する方法も説明します。

この章は、プリンシパルとポリシーを管理するユーザーを対象にしています。この章を読む前に、プリンシパルとポリシー (計画も含む) について理解している必要があります。第 1 章「SEAM の概要」第 2 章「SEAM の計画」を参照してください。

次に、この章で説明する設定手順のリストを示します。

プリンシパルとポリシーを管理する方法

マスター KDC 上の Kerberos データベースには、レルムの Kerberos のプリンシパル、そのパスワード、ポリシーなどの管理情報がすべて入っています。プリンシパルを作成、削除、またはその属性を変更するには、kadmin(1M) または gkadmin(1M) コマンドを使用します。

kadmin コマンドは、Kerberos のプリンシパル、ポリシー、および keytab を保守するための対話的なコマンド行インタフェースです。kadmin コマンドには 2 つのバージョンがあります。kadmin は Kerberos 認証を使用して、ネットワーク上のどこからでもセキュリティが侵害されることなく操作できます。一方、kadmin.local はマスター KDC 上で直接実行しなければなりません。kadmin が Kerberos を使用してユーザーを認証することを除けば、この 2 つのバージョンの機能は同じです。ローカルバージョンは、リモートバージョンを使用できるようにするためのデータベースの設定に必要です。

また、SEAM 製品には SEAM 管理ツール (gkadmin) も提供されています。gkadmin は、本質的に kadmin コマンドと同じ機能を提供する対話的なグラフィカルユーザーインタフェース (GUI) です。詳細は、「SEAM 管理ツール」を参照してください。

SEAM 管理ツール

SEAM 管理ツールは、Kerberos のプリンシパルとポリシーを保守する対話的なグラフィカルユーザーインタフェース (GUI) です。kadmin コマンドと同じ機能を提供しますが、keytab の管理はサポートしていません。keytab を管理するには kadmin コマンドを使用する必要があります (「keytab の管理」を参照)。

kadmin コマンドと同様に、SEAM 管理ツール (以下、SEAM ツールと略す) は Kerberos 認証と暗号化 RPC を使用して、ネットワーク上のどこからでもセキュリティ上も問題なく操作できます。次に、SEAM ツールを使用して実行できることを示します。

また、SEAM ツールはコンテキストヘルプや一般的なオンラインヘルプも提供します。

次の作業マップには、SEAM ツールで実行できるさまざまな作業の参照箇所を示しています。

また、SEAM ツールで指定または表示できるプリンシパルとポリシーのすべての属性については、「SEAM ツールパネルの説明」を参照してください。

SEAM ツールと同等な機能を実行できるコマンド

この節では、SEAM ツールと同じ機能を提供し、X Window システムを実行しなくても使用できる kadmin コマンドのリストを示します。この章で説明するほとんどの手順では SEAM ツールを使用しますが、同等なコマンド行の例も示します。

表 5-1 SEAM ツールと同等なコマンド行

手順 

kadmin コマンド

プリンシパルのリストを表示する 

list_principals または get_principals

プリンシパルの属性を表示する 

get_principal

新しいプリンシパルを作成する 

add_principal

プリンシパルを複製する 

同等なコマンド行はありません。 

プリンシパルを変更する 

modify_principalchange_password

プリンシパルを削除する 

delete_principal

新しいプリンシパルを作成するためのデフォルトを設定する 

同等なコマンド行はありません。 

ポリシーのリストを表示する 

list_policies または get_policies

ポリシーの属性を表示する 

get_policy

新しいポリシーを作成する 

add_policy

ポリシーを変更する 

modify_policy

ポリシーを複製する 

同等なコマンド行はありません。 

ポリシーを削除する 

delete_policy

SEAM ツールで変更されるファイル

SEAM ツールが変更する唯一のファイルは $HOME/.gkadmin ファイルです。このファイルには、新しいプリンシパルを作成するためのデフォルト値が入っています。このファイルを更新するには、「編集 (Edit)」メニューから「プロパティ (Properties)」を選択します。

SEAM ツールの印刷機能とオンラインヘルプ機能

SEAM ツールには印刷機能とオンラインヘルプ機能があります。次に、「印刷 (Print)」メニューからプリンタまたはファイルに送信できるものを示します。

「ヘルプ (Help)」メニューからは、コンテキストヘルプと一般的なヘルプを利用できます。「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、「コンテキストヘルプ (Context-Sensitive Help)」ウィンドウが表示され、SEAM ツールがヘルプモードに切り替わります。ヘルプモードでは、ウィンドウ上の任意のフィールド、ラベル、またはボタンをクリックすると、その項目のヘルプが「ヘルプ (Help)」ウィンドウに表示されます。SEAM ツールを通常のモードに戻すには、「ヘルプ (Help)」ウィンドウの「消去 (Dismiss)」をクリックします。

「ヘルプの目次 (Help Contents)」を選択すると HTML ブラウザが開いて、この章で説明されている概要や作業情報への参照項目が表示されます。

SEAM ツールで大きなリストを扱うには

プリンシパルとポリシーの数が膨大なサイトでは、SEAM ツールがプリンシパルとポリシーのリストを読み込む時間および表示する時間が次第に長くなり、SEAM ツールによる作業効率が悪くなります。これを回避する方法はいくつかあります。

まず、SEAM ツールがリストを読み込まないようにすれば、リストを読み込む時間が必要なくなります。このオプションを設定するには、「編集 (Edit)」メニューから「プロパティ (Properties)」を選択して、「リストを表示 (Show Lists)」フィールドの選択を解除します。もちろん、SEAM ツールがリストを読み込まなければ、リストは表示されず、リストパネルでプリンシパルやポリシーを選択できなくなります。その代わりに、新しい「名前 (Name)」フィールドにプリンシパルやポリシーの名前を入力してから、実行したい操作を選択します。基本的に名前を入力するのはリストから項目を選択することと同じです。

大きなリストを処理するもう 1 つの方法は、リストをキャッシュに書き込むことです。事実、SEAM ツールのデフォルト動作でも、限られた時間の間リストをキャッシュに書き込むように設定されています。最初は SEAM ツールもリストをキャッシュに書き込みます。しかし、それ以降は、もう一度リストを読み込まなくても、そのキャッシュを使用できます。したがって、サーバーからリストを読み込む必要がなくなり、時間を短縮できます。

リストをキャッシュに書き込むように設定するときも、「編集 (Edit)」メニューから「プロパティ (Properties)」を選択します。キャッシュには 2 つの設定があります。永続的にリストをキャッシュに書き込む方法と、SEAM ツールがサーバーからキャッシュにリストを読み込む時間制限を指定する方法です。

リストをキャッシュに書き込んだ場合でも、リストパネルでプリンシパルやポリシーを選択できます。したがって、SEAM ツールを使用する上では何の影響もありません。また、キャッシュを使用した場合、他のユーザーが行なった変更は表示されませんが、ユーザー本人の変更はサーバーとキャッシュの両方にあるリストで更新されるため、ユーザー本人が行なった変更は最新の情報が表示されます。さらに、キャッシュを更新することによって他のユーザーの変更を表示し、最新のリストのコピーを参照したい場合、「再表示 (Refresh)」メニューを使用すれば、いつでもサーバーからキャッシュを更新できます。

SEAM ツールを起動するには

  1. gkadmin コマンドを使用して、SEAM ツールを起動します。


    $ /usr/krb5/sbin/gkadmin
    

    「ログイン (Login)」ウィンドウが表示されます。

    Graphic
  2. デフォルト値を使用したくない場合、新しい値を指定します。

    「ログイン (Login)」ウィンドウは自動的にデフォルト値をフィールドに表示します。デフォルトのプリンシパル名は、USER 環境変数に設定されているユーザーの現在の識別情報に /admin が追加されたものになります (つまり、username/admin)。デフォルトの「レルム (Realm)」と「マスター KDC (Master KDC)」のフィールドは、/etc/krb5/krb5.conf ファイルから選択されます。デフォルト値に戻したい場合は、「やり直し (Start Over)」をクリックします。


    注 -

    プリンシパル名が実行できる管理操作は、Kerberos の ACL ファイル /etc/krb5/kadm5.acl によって管理されます。制限される特権については、「制限された Kerberos 管理特権で SEAM ツールを使用する」を参照してください。


  3. 指定したプリンシパル名のパスワードを入力します。

  4. 「了解 (OK)」をクリックします。

    次のウィンドウが表示されます。

    Graphic

プリンシパルの管理

この節では、SEAM ツールを使用してプリンシパルを管理する設定手順を説明します。また、各手順の後には、可能な限り kadmin コマンドを使用する同等なコマンド行の例も示します。

プリンシパルの管理作業マップ

表 5-2 プリンシパルの管理作業マップ

作業 

説明 

参照箇所 

プリンシパルのリストを表示する 

プリンシパルのリストを表示するには、「プリンシパル (Principals)」タブをクリックします。 

「プリンシパルのリストを表示するには」

プリンシパルの属性を表示する 

プリンシパルの属性を表示するには、「プリンシパルリスト (Principal List)」からプリンシパルを選択して、「変更 (Modify)」ボタンをクリックします。 

「プリンシパルの属性を表示するには」

新しいプリンシパルを作成する 

新しいプリンシパルを作成するには、「プリンシパルリストリスト (Principal List)」パネルにある「新規作成 (Create New)」ボタンをクリックします。 

「新しいプリンシパルを作成するには」

プリンシパルを複製する 

プリンシパルを複製するには、「プリンシパルリスト (Principal List)」から複製するプリンシパルを選択して、「複製 (Duplicate)」ボタンをクリックします。 

「プリンシパルの複製を作成するには」

プリンシパルを変更する 

プリンシパルを変更するには、「プリンシパルリスト (Principal List)」から変更するプリンシパルを選択して、「変更 (Modify)」ボタンをクリックします。 

プリンシパル名は変更できないので注意してください。プリンシパル名を変更するには、プリンシパルを複製して、新しい名前を指定し、保存してから古いプリンシパルを削除します。 

「プリンシパルを変更するには」

プリンシパルを削除する 

プリンシパルを削除するには、「プリンシパルリスト (Principal List)」から削除するプリンシパルを選択して、「削除 (Delete)」ボタンをクリックします。 

「プリンシパルを削除するには」

新しいプリンシパルを作成するためのデフォルトを設定する 

新しいプリンシパルを作成するためのデフォルトを設定するには、「編集 (Edit)」メニューから「プロパティ (Properties)」を選択します。 

「新しいプリンシパルを作成するためのデフォルトを設定するには」

Kerberos 管理特権 (kadm5.acl ファイル) を変更する

コマンド行のみ。Kerberos 管理特権により、プリンシパルが Kerberos データベースに実行できる操作 (追加や変更など) が決まります。各プリンシパルの Kerberos 管理特権を変更するには、/etc/krb5/kadm5.acl ファイルを編集する必要があります。

「Kerberos 管理特権を変更するには」

新しいプリンシパルの作成を自動化する

SEAM ツールは使いやすいですが、新しいプリンシパルの作成を自動化する方法はありません。自動化できれば、特に多数 (10、さらには 100 ぐらい) の新しいプリンシパルを短時間で追加する必要があるときに便利です。kadmin.local コマンドを Bourne シェルスクリプトで使用すれば、簡単に自動化できます。

次に、自動化の例となるシェルスクリプトの行を示します。

sed -e 's/^¥(.*¥)$/ank +needchange -pw ¥1 ¥1/' 
< princnames | time /usr/krb5/sbin/kadmin.local > /dev/null

このスクリプトは、プリンシパル名とそのパスワードが入っている princnames というファイルを読み取って、Kerberos データベースに追加します。princnames ファイルはあらかじめ作成しておく必要があります。このファイルの各行は、1 つまたは複数の空白で区切られたプリンシパル名とそのパスワードから構成されます。+needchange オプションを指定すると、ユーザーがあるプリンシパルで初めてログインするとき、新しいパスワードをユーザーに尋ねるようにプリンシパルを構成します。これによって、princnames ファイル内のパスワードのセキュリティが保護されます。

これは 1 つの例ですが、より精巧なスクリプトも構築できます。たとえば、ネームサービスの情報を使用して、プリンシパル名に対するユーザー名のリストを取得することもできます。どのようにスクリプトを構築するかは、ユーザーのサイトのニーズと、ユーザーのスクリプトの技量によります。

プリンシパルのリストを表示するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「プリンシパル (Principals)」タブをクリックします。

    プリンシパルのリストが表示されます。

    Graphic
  3. 特定のプリンシパルまたはプリンシパルのリストの一部を表示するには、「フィルタパターン (Filter Pattern)」フィールドにフィルタ文字列を入力して、Return キーを押します。フィルタが成功した場合、フィルタに一致するプリンシパルのリストが表示されます。

    フィルタ文字列は 1 つまたは複数の文字から構成されていなければなりません。フィルタ機構は大文字と小文字を区別するため、フィルタには適切な大文字と小文字を使用する必要があります。たとえば、フィルタ文字列「ge」を入力する場合、フィルタ機構は ge 文字列を含むプリンシパル (たとえば、georgeedge) だけを表示します。

    プリンシパル全体のリストを表示するには、「フィルタを消去 (Clear Filter)」をクリックします。

例 - プリンシパルのリストを表示する (コマンド行)

次の例は、kadminlist_principals コマンドを使用して、test* に一致するすべてのプリンシパルのリストを表示します。list_principals コマンドではワイルドカードを使用できます。


kadmin: list_principals test*
test1@ACME.COM
test2@ACME.COM
kadmin: quit

プリンシパルの属性を表示するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「プリンシパル (Principals)」タブをクリックします。

  3. 表示したいプリンシパルをリストから選択して、「変更 (Modify)」をクリックします。

    「基本プリンシパル (Principal Basics)」パネルが表示されて、プリンシパルの属性がいくつか表示されます。

  4. すべてのプリンシパルの属性を表示するには、「次へ (Next)」を何回かクリックします。

    属性情報は 3 つのウィンドウに分かれています。「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのプリンシパルの属性については、「SEAM ツールパネルの説明」を参照してください。

  5. 参照後、「取消し (Cancel)」をクリックします。

例 - プリンシパルの属性を表示する

次の例に、jdb/admin プリンシパルを表示する場合の最初のウィンドウを示します。

Graphic

例 - プリンシパルの属性を表示する (コマンド行)

次の例では、kadminget_principal コマンドを使用して、jdb/admin プリンシパルの属性を表示します。


kadmin: getprinc jdb/admin
Principal: jdb/admin@ACME.COM
Expiration date: Fri Aug 25 17:19:05 PDT 2000
Last password change: [never]
Password expiration date: Wed Apr 14 11:53:10 PDT 1999
Maximum ticket life: 1 day 16:00:00
Maximum renewable life: 1 day 16:00:00
Last modified: Thu Jan 14 11:54:09 PST 1999 (admin/admin@ACME.COM)
Last successful authentication: [never]
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 1
Key: vno 1, DES cbc mode with CRC-32, no salt
Attributes: REQUIRES_HW_AUTH
Policy: [none]
kadmin: quit

新しいプリンシパルを作成するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。


    注 -

    新しいポリシーが必要となる新しいプリンシパルを作成する場合は、新しいプリンシパルを作成する前に新しいポリシーを作成しておかなければなりません。「新しいポリシーを作成するには」を参照してください。


  2. 「プリンシパル (Principals)」タブをクリックします。

  3. 「新規 (New)」をクリックします。

    「基本プリンシパル (Principal Basics)」パネルが表示されて、プリンシパルの属性がいくつか表示されます。

  4. プリンシパル名とパスワードを指定します。

    プリンシパル名とパスワードは両方とも必須です。

  5. プリンシパルの属性に値を指定します。さらに属性を指定するには、「次へ (Next)」を何回かクリックします。

    属性情報は 3 つのウィンドウに分かれています。「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのプリンシパルの属性については、「SEAM ツールパネルの説明」を参照してください。

  6. 「保存 (Save)」をクリックして、プリンシパルを保存します。あるいは、最後のパネルで「終了 (Done)」をクリックします。

  7. 必要であれば、/etc/krb5/kadm5.acl ファイルで新しいプリンシパルの Kerberos 管理特権を設定します。

    詳細は、「Kerberos 管理特権を変更するには」を参照してください。

例 - 新しいプリンシパルを作成する

次の例では、pak という新しいプリンシパルを作成する場合に、「プリンシパルの基本 (Principal Basics)」パネルを表示します。この時点までに、ポリシーは testuser に設定されています。

Graphic

例 - 新しいプリンシパルを作成する (コマンド行)

次の例では、kadminadd_principal コマンドを使用して、pak という新しいプリンシパルを作成します。プリンシパルのポリシーは testuser に設定されています。


kadmin: add_principal -policy testuser pak
Enter password for principal "pak@ACME.COM": <パスワードを入力する>
Re-enter password for principal "pak@ACME.COM":  <もう一度パスワードを入力する>
Principal "pak@ACME.COM" created.
kadmin: quit

プリンシパルの複製を作成するには

この手順では、既存のプリンシパルの属性のすべてまたは一部を使用して、新しいプリンシパルを作成する方法を説明します。この手順には、同等なコマンド行はありません

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「プリンシパル (Principals)」タブをクリックします。

  3. 複製したいプリンシパルをリストから選択して、「複製 (Duplicate)」をクリックします。

    「プリンシパルの基本 (Principal Basics)」パネルが表示されます。選択したプリンシパルのすべての属性が複製されます。ただし、「プリンシパル名 (Principal Name)」と「パスワード (Password)」のフィールドだけは複製されず、空になります。

  4. プリンシパル名とパスワードを指定します。

    プリンシパル名とパスワードは両方とも必須です。選択したプリンシパルの正確な複製を作成したい場合、「保存 (Save)」をクリックして、残りの手順を省略します。

  5. プリンシパルの属性に異なる値を指定します。さらに属性を指定するには、「次へ (Next)」を何回かクリックします。

    属性情報は 3 つのウィンドウに分かれています。「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのプリンシパルの属性については、「SEAM ツールパネルの説明」を参照してください。

  6. 「保存 (Save)」をクリックして、プリンシパルを保存します。あるいは、最後のパネルで「完了 (Done)」をクリックします。

  7. 必要であれば、/etc/krb5/kadm5.acl ファイルでプリンシパルの Kerberos 管理特権を設定します。

    詳細は、「Kerberos 管理特権を変更するには」を参照してください。

プリンシパルを変更するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「プリンシパル (Principals)」タブをクリックします。

  3. 変更したいプリンシパルをリストから選択して、「変更 (Modify)」をクリックします。

    「プリンシパルの基本 (Principal Basics)」パネルが現れて、プリンシパルの属性がいくつか表示されます。

  4. プリンシパルの属性を変更します。さらに属性を変更するには、「次へ (Next)」を何回かクリックします。

    属性情報は 3 つのウィンドウに分かれています。「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのプリンシパルの属性については、「SEAM ツールパネルの説明」を参照してください。


    注 -

    プリンシパル名は変更できません。プリンシパル名を変更するには、プリンシパルを複製して、新しい名前を指定し、保存してから古いプリンシパルを削除してください。


  5. 「保存 (Save)」をクリックして、プリンシパルを保存します。あるいは、最後のパネルで「完了 (Done)」をクリックします。

  6. /etc/krb5/kadm5.acl ファイルでプリンシパルの Kerberos 管理特権を変更します。

    詳細は、「Kerberos 管理特権を変更するには」を参照してください。

例 - プリンシパルのパスワードを変更する (コマンド行)

次の例では、kadminchange_password コマンドを使用して、jdb プリンシパルのパスワードを変更します。change_password を使用した場合、プリンシパルのパスワードヒストリ中にあるパスワードと同じパスワードには変更できません。


kadmin: change_password jdb
Enter password for principal "jdb": <新しいパスワードを入力する>
Re-enter password for principal "jdb": <もう一度パスワードを入力する>
Password for "jdb@ACME.COM" changed.
kadmin: quit

プリンシパルの別の属性を変更するには、kadminmodify_principal コマンドを使用してください。

プリンシパルを削除するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「プリンシパル (Principals)」タブをクリックします。

  3. 削除したいプリンシパルをリストから選択して、「削除 (Delete)」をクリックします。

    削除を確定した後、プリンシパルは削除されます。

  4. Kerberos ACL ファイル /etc/krb5/kadm5.acl からプリンシパルを削除します。

    詳細は、「Kerberos 管理特権を変更するには」を参照してください。

例 - プリンシパルを削除する (コマンド行)

次の例では、kadmindelete_principal コマンドを使用して、jdb プリンシパルを削除します。


kadmin: delete_principal pak
Are you sure you want to delete the principal "pak@ACME.COM"? (yes/no): yes
Principal "pak@ACME.COM" deleted.
Make sure that you have removed this principal from all ACLs before reusing.
kadmin: quit

新しいプリンシパルを作成するためのデフォルトを設定するには

この手順には、同等なコマンド行はありません。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「編集 (Edit)」メニューから「プロパティ (Properties)」を選択します。

    「プロパティ (Properties)」ウィンドウが表示されます。

    Graphic
  3. 新しいプリンシパルを作成する場合にはデフォルトを選択します。

    「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。

  4. 「保存 (Save)」をクリックします。

Kerberos 管理特権を変更するには

ユーザープリンシパルが多いサイトでも、通常、Kerberos データベースを管理できるユーザーは少数に制限します。Kerberos データベースを管理する特権は、Kerberos Access Control List (ACL) ファイル kadm5.acl(4) で指定します。kadm5.acl ファイルを使用すると、個々のプリンシパルに特権を許可または禁止できます。また、ワイルドカード「*」をプリンシパル名に使用すれば、プリンシパルのグループにも特権を指定できます。

  1. マスター KDC 上でスーパーユーザーになります。

  2. /etc/krb5/kadm5.acl ファイルを編集します。

    次に、kadm5.acl ファイル内のエントリの形式を示します。


    principal   privileges  [principal_target]

    principal

    特権が許可されるプリンシパル。プリンシパル名の任意の部分にはワイルドカード「*」を指定できる。これは、プリンシパルのグループに同じ特権を提供するときに便利である。たとえば、admin インスタンスを持つすべてのプリンシパルを指定したい場合、「*/admin@realm」を使用する。admin インスタンスの一般的な使い方は、別の Kerberos プリンシパルに別の特権 (Kerberos データベースへのアクセスの管理など) を許可することである。たとえば、ユーザー jdb は管理目的のプリンシパル jdb/admin を持つことができる。これによって、jdb は管理特権が必要なときだけ jdb/admin チケットを取得できる

    privileges

    プリンシパルが実行できる (あるいは、実行できない) 操作を指定する。privileges は次のリストにある 1 つまたは複数の文字からなる文字列である。文字が大文字の場合 (あるいは、文字を指定しなかった場合)、操作は許可されない。文字が小文字の場合、操作は許可される

     

    a

    プリンシパルまたはポリシーの追加を許可 (禁止) する 

     

    d

    プリンシパルまたはポリシーの削除を許可 (禁止) する 

     

    m

    プリンシパルまたはポリシーの変更を許可 (禁止) する 

     

    c

    プリンシパルのパスワードの変更を許可 (禁止) する 

     

    i

    データベースへの照会を許可 (禁止) する 

     

    l

    データベース内のプリンシパルまたはポリシーのリスト表示を許可 (禁止) する 

     

    x または *

    すべての特権を許可する (admcil)

    principal_target

    このフィールドにプリンシパルを指定したとき、principalprincipal_target に操作を行うときだけ、privilegesprincipal に適用される。プリンシパル名の任意の部分にはワイルドカード「*」を指定できる。これは、プリンシパルをグループにするときに便利である

例 - Kerberos 管理特権を変更する

次のエントリを kadm5.acl ファイルに指定すると、ACME.COM レルム内にある admin インスタンスを持つすべてのプリンシパルに、データベース上のすべての特権を許可します。


*/admin@ACME.COM *

次のエントリを kadm5.acl ファイルに指定すると、jdb@ACME.COM プリンシパルに、root インスタンスを持つ任意のプリンシパルを追加、リスト表示、および照会するための特権を許可します。


jdb@ACME.COM ali */root@ACME.COM

ポリシーの管理

この節では、SEAM ツールを使用してポリシーを管理する設定手順を説明します。また、各手順の後に、可能な限り kadmin コマンドを使用する同等なコマンド行の例も示します。

ポリシーの管理作業マップ

表 5-3 ポリシーの管理作業マップ

説明 

作業 

参照箇所 

ポリシーのリストを表示する 

ポリシーのリストを表示するには、「ポリシー (Policies)」タブをクリックします。 

「ポリシーのリストを表示するには」

ポリシーの属性を表示する 

ポリシーの属性を表示するには、「ポリシーリスト (Policy List)」からポリシーを選択して、「変更 (Modify)」ボタンをクリックします。 

「ポリシーの属性を表示するには」

新しいポリシーを作成する 

新しいポリシーを作成するには、「ポリシーリスト (Policy List)」パネルにある「新規作成 (Create New)」ボタンをクリックします。 

「新しいポリシーを作成するには」

ポリシーの複製を作成する 

ポリシーの複製を作成するには、「ポリシーリスト (Policy List)」から複製するポリシーを選択して、「複製 (Duplicate)」ボタンをクリックします。 

「ポリシーの複製を作成するには」

ポリシーを変更する 

ポリシーを変更するには、「ポリシーリスト (Policy List)」から変更するポリシーを選択して、「変更 (Modify)」ボタンをクリックします。 

ポリシーの名前は変更できないので注意してください。ポリシーの名前を変更するには、ポリシーの複製を作成し、新しい名前を指定して、保存してから古いポリシーを削除します。 

「ポリシーを変更するには」

ポリシーを削除する 

ポリシーを削除するには、「ポリシーリスト (Policy List)」から削除するポリシーを選択して、「削除 (Delete)」ボタンをクリックします。 

「ポリシーを削除するには」

ポリシーのリストを表示するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「ポリシー (Policies)」タブをクリックします。

    ポリシーのリストが表示されます。

    Graphic
  3. 特定のポリシーまたはポリシーリストの一部を表示するには、「フィルタパターン (Filter Pattern)」フィールドにフィルタ文字列を入力して、Return キーを押します。フィルタが成功した場合、フィルタに一致するポリシーのリストが表示されます。

    フィルタ文字列は 1 つまたは複数の文字から構成されていなければなりません。フィルタ機構は大文字と小文字を区別するため、フィルタには適切な大文字と小文字を使用する必要があります。たとえば、フィルタ文字列「ge」を入力する場合、フィルタ機構は ge 文字列を含むポリシー (たとえば、georgeedge) だけを表示します。

    ポリシー全体のリストを表示するには、「フィルタをクリア (Clear Filter)」をクリックします。

例 - ポリシーのリストを表示する (コマンド行)

次の例では、kadminlist_policies コマンドを使用して、*user* に一致するすべてのポリシーのリストを表示します。list_policies コマンドではワイルドカードを使用できます。


kadmin: list_policies *user*
testuser
enguser
kadmin: quit

ポリシーの属性を表示するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「ポリシー (Policies)」タブをクリックします。

  3. 表示したいポリシーをリストから選択して、「変更 (Modify)」をクリックします。

    「ポリシーの詳細 (Policy Details)」パネルが表示されます。

  4. 参照後、「取消し (Cancel)」をクリックします。

例 - ポリシーの属性を表示する

次の例は、test ポリシーを表示した「ポリシーの詳細 (Policy Details)」パネルを示しています。

Graphic

例 - ポリシーの属性を表示する (コマンド行)

次の例は、kadminget_policy コマンドを使用して、enguser ポリシーの属性を表示します。


kadmin: get_policy enguser
Policy: enguser
Maximum password life: 2592000
Minimum password life: 0
Minimum password length: 8
Minimum number of password character classes: 2
Number of old keys kept: 3
Reference count: 0
kadmin: quit

Reference count は、そのポリシーを使用するプリンシパルの数です。

新しいポリシーを作成するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「ポリシー (Policies)」タブをクリックします。

  3. 「新規 (New)」をクリックします。

    「ポリシーの詳細 (Policy Details)」パネルが表示されます。

  4. 「ポリシー名 (Policy Name)」フィールドにポリシーの名前を指定します。

    ポリシー名は必須です。

  5. ポリシーの属性に値を指定します。

    「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのポリシーの属性については、表 5-7 を参照してください。

  6. 「保存 (Save)」をクリックして、ポリシーを保存します。あるいは、「完了 (Done)」をクリックします。

例 - 新しいポリシーを作成する

次の例は、build11 という新しいポリシーを作成します。この時点までに、「パスワードの最小クラス数 (Minimum Password Classes)」は 3 に変更されています。

Graphic

例 - 新しいポリシーを作成する (コマンド行)

次の例は、kadminadd_policy コマンドを使用して、パスワード内に少なくとも 3 つの文字クラスを必要とする build11 ポリシーを作成します。


$ kadmin
kadmin: add_policy -minclasses 3 build11
kadmin: quit

ポリシーの複製を作成するには

この手順では、既存のポリシーの属性のすべてまたは一部を使用して、新しいポリシーを作成する方法を説明します。この手順には、同等なコマンド行はありません。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「ポリシー (Policies)」タブをクリックします。

  3. 複製したいポリシーをリストから選択して、「複製 (Duplicate)」をクリックします。

    「ポリシーの詳細 (Policy Details)」パネルが表示されます。選択したポリシーのすべての属性が複製されます。ただし、「ポリシー名 (Policy Name)」フィールドだけは複製されず、何も表示されません。

  4. 「ポリシー名 (Policy Name)」フィールドに複製するポリシーの名前を指定します。

    ポリシー名は必須です。選択したポリシーの正確な複製を作成したい場合、「保存 (Save)」をクリックして、残りの手順を省略します。

  5. ポリシーの属性に異なる値を指定します。

    「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのポリシーの属性については、表 5-7 を参照してください。

  6. 「保存 (Save)」をクリックして、ポリシーを保存します。あるいは、「完了 (Done)」をクリックします。

ポリシーを変更するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「ポリシー (Policies)」タブをクリックします。

  3. 変更したいポリシーをリストから選択して、「変更 (Modify)」をクリックします。

    「ポリシーの詳細 (Policy Details)」パネルが表示されます。

  4. ポリシーの属性を変更します。

    「ヘルプ (Help)」メニューから「コンテキストヘルプ (Context-Sensitive Help)」を選択すると、各ウィンドウにあるさまざまな属性についての情報を表示できます。あるいは、すべてのポリシーの属性については、表 5-7 を参照してください。


    注 -

    ポリシー名は変更できません。ポリシー名を変更するには、ポリシーを複製して、新しい名前を指定して、保存してから古いポリシーを削除してください。


  5. 「保存 (Save)」をクリックして、ポリシーを保存します。あるいは、「完了 (Done)」をクリックします。

例 - ポリシーのパスワードを変更する (コマンド行)

次の例では、kadminmodify_policy コマンドを使用して、build11 ポリシーのパスワードの最小の長さを 5 文字に変更します。


$ kadmin
kadmin: modify_policy -minlength 5 build11
kadmin: quit

ポリシーを削除するには

この手順の後に、同等なコマンド行の例を示します。

  1. 必要であれば、SEAM ツールを起動します。

    詳細は、「SEAM ツールを起動するには」を参照してください。

  2. 「ポリシー (Policies)」タブをクリックします。


    注 -

    ポリシーを削除する前に、現在そのポリシーを使用しているすべてのプリンシパルからポリシーを取り消さなければなりません。このためには、プリンシパルの Policy 属性を変更する必要があります。プリンシパルがポリシーを使用しているとき、そのポリシーは削除できません。


  3. 削除したいポリシーをリストから選択して、「削除 (Delete)」をクリックします。

    削除を確定した後、ポリシーは削除されます。

例 - ポリシーを削除する (コマンド行)

次の例では、kadmindelete_policy コマンドを使用して、build11 ポリシーを削除します。


kadmin: delete_policy build11 
Are you sure you want to delete the policy "build11"? (yes/no): yes
kadmin: quit

ポリシーを削除する前に、現在そのポリシーを使用しているすべてのプリンシパルからポリシーを取り消さなければなりません。このためには、kadminmodify_principal -policy コマンドをプリンシパルで実行します)。プリンシパルがポリシーを使用しているとき、delete_policy コマンドは失敗します。

SEAM ツールリファレンス

この節では、SEAM ツールの参照情報を提供します。

SEAM ツールパネルの説明

この節では、SEAM ツールで指定または表示できるすべてのプリンシパルとポリシーを説明します。属性はパネルに表示される順番で編成されています。

表 5-4 「プリンシパルの基本 (Principal Basic)」パネルの属性

属性 

説明 

プリンシパル名 (Principal Name) 

プリンシパル名 (完全指定されたプリンシパル名の primary/instance 部分)。プリンシパルとは、KDC がチケットを割り当てることができる固有の識別情報。

プリンシパルを変更する場合、プリンシパル名は変更できません。 

パスワード (Password) 

プリンシパルのパスワード。「ランダムパスワードを生成 (Generate Random Password)」ボタンを使用すると、ランダムなパスワードをプリンシパルに作成可能 

ポリシー (Policy) 

プリンシパルで利用可能なポリシーのメニュー 

アカウントの期限切れ (Account Expires) 

プリンシパルのアカウントの有効期限の日付と時刻。アカウントが有効期限を過ぎるとプリンシパルはチケット許可チケット (TGT) を取得できないため、ログインできません。 

プリンシパルの前回の変更 (Last Principal Change) 

プリンシパルの情報を最後に変更した日付 (読み取り専用) 

最終変更者 (Last Changed By) 

当該プリンシパルのアカウントを最後に変更したプリンシパル名 (読み取り専用) 

コメント (Comment) 

プリンシパルに関連するコメント (たとえば、「一時的なアカウント」) 

表 5-5 「プリンシパルの詳細 (Principal Details)」パネルの属性

属性 

説明 

最後のログイン (Last Success) 

プリンシパルが最後にログインに成功した日付と時刻 (読み取り専用) 

最後のログイン失敗 (Last Failure) 

プリンシパルが最後にログインに失敗した日付と時刻 (読み取り専用) 

ログイン失敗回数 (Failure Count) 

プリンシパルがログインに失敗した回数 (読み取り専用) 

パスワードの前回の変更 (Last Password Change) 

プリンシパルのパスワードを最後に変更した日付と時刻 (読み取り専用) 

パスワードの期限切れ 

プリンシパルの現在のパスワードの期限が切れる日付と時刻 

鍵バージョン (Key Version) 

プリンシパルの鍵バージョン番号。この値が変更されるのは通常、パスワードが漏洩した場合のみ 

最大有効期間 (秒) (Maximum Lifetime (seconds)) 

(更新なしで) プリンシパルにチケットを許可できる最大期間 

最大更新期間 (秒) (Maximum Renewal (seconds)) 

プリンシパルの既存のチケットを更新できる最大期間 

表 5-6 「プリンシパルフラグ (Principal Flags)」パネルの属性

属性 (ラジオボタン) 

説明 

アカウントを無効にする (Disable Account) 

有効にすると、プリンシパルがログインできません。何らかの理由でプリンシパルのアカウントを一時的に凍結するための簡単な方法です。 

パスワード変更を要求 (Require Password Change) 

有効にすると、プリンシパルの現在のパスワードが期限切れになります。したがって、ユーザーは kpasswd コマンドを使用して、新しいパスワードを作成しなければなりません。セキュリティが侵害された場合や、古いパスワードが変更されたかを確認する場合に便利です。

遅延チケットを許可 (Allow Postdated Tickets) 

有効にすると、プリンシパルは遅延チケットを取得できます。 

たとえば、数時間後に実行する必要のある cron ジョブでは、チケットの有効期間が短いために前もってチケットを取得できない場合などに、遅延チケットを使用する必要があります。 

転送可能チケットを許可 (Allow Forwardable Tickets) 

有効にすると、プリンシパルは転送可能なチケットを取得できます。 

転送可能チケットとは、シングルサインオンセッションを提供するためにリモートホストに転送されるチケットのことです。たとえば、転送可能チケットを使用していて、ftprsh を通じて自分自身を認証している場合は、別のパスワードを入力しなくても、他のサービス (NFS サービスなど) を利用できます。

更新可能チケットを許可 (Allow Renewable Tickets) 

有効にすると、プリンシパルは更新可能チケットを取得できます。 

プリンシパルは、更新可能なチケットの有効期間 (または有効期限) を自動的に延長できます。最初のチケットが期限切れになったあとに新しいチケットを取得する必要はありません。現在、チケットを更新できるサービスは NFS サービスだけです。 

代理チケットを許可 (Allow Proxiable Tickets) 

有効にすると、プリンシパルは代理チケットを取得できます。 

代理チケットとは、サービスがクライアントの代わりにクライアントの操作を実行するするために使用するチケットのことです。代理チケットを使用すると、サービスはクライアントの識別情報を使用して、別のサービスのチケットを取得できます。ただし、チケット許可チケットは取得できません。 

サービスチケットを許可 (Allow Service Tickets) 

有効にすると、サービスチケットをプリンシパルに発行できます。 

kadmin/hostnamechangepw/hostname のプリンシパルにはサービスチケットを発行しないでください。そうすれば、これらのプリンシパルは KDC データベースを更新すること以外は許可されません。

TGT ベースの認証を許可 (Allow TGT-Based Authentication) 

有効にすると、サービスプリンシパルは別のプリンシパルにサービスを提供できます。つまり、KDC はサービスプリンシパルにサービスチケットを発行できます。 

この属性は、サービスプリンシパルだけに有効です。有効にしない場合には、サービスチケットはサービスプリンシパルには発行できません。 

認証の複写を許可 (Allow Duplicate Authentication) 

有効にすると、ユーザープリンシパルは他のユーザープリンシパルのサービスチケットを取得できます。 

この属性は、ユーザープリンシパルだけに有効です。このラジオボタンを有効にしない場合は、ユーザープリンシパルはサービスプリンシパルのサービスチケットは取得できますが、他のユーザープリンシパルのサービスチケットは取得できません。 

事前認証を要求 (Required Preauthentication) 

有効にすると、本当にプリンシパルがチケット許可チケット (TGT) を要求しているということがソフトウェアで認証されるまで、KDC は要求された TGT をプリンシパルに送信しません。この事前認証は通常、特別なパスワード (DES カードなど) で行われます。 

無効にすると、KDC は TGT をプリンシパルに送信する前にプリンシパルを事前認証しません。 

ハードウェア認証を要求 (Required Hardware Authentication) 

有効にすると、本当にプリンシパルがチケット許可チケット (TGT) を要求しているということがハードウェアで認証されるまで、KDC は要求された TGT をプリンシパルに送信しません。ハードウェア認証は Java リングリーダーなどで行うことができます。 

無効にすると、KDC は TGT をプリンシパルに送信する前にプリンシパルを事前認証しません。 

表 5-7 「基本ポリシー (Policy Basics)」パネルの属性

属性 

説明 

ポリシー名 (Policy Name) 

ポリシー名。ポリシーとは、プリンシパルのパスワードとチケットを管理するための規則の集合のことです。 

ポリシーを変更する場合、ポリシー名は変更できません。 

パスワードの最小長 (Minimum Password Length) 

プリンシパルのパスワードの最小長 

パスワードの最小クラス数 (Minimum Password Classes) 

プリンシパルのパスワードに必要な異なる文字タイプの最小数。 

たとえば、最小クラスの値が 2 の場合、パスワードには少なくとも 2 つの異なる文字タイプが必要です (たとえば、文字と数字。「hi2mom」など) 。この値が 3 の場合、パスワードには少なくとも 3 つの異なる文字タイプが必要です (たとえば、文字、数字、句読文字。「hi2mom!」など)。 

この値が 1 の場合、パスワードの文字タイプの数に制限は設定されません。 

過去に使用されたパスワード数 (Saved Password History) 

以前プリンシパルが使用し、再度使用できないパスワードの数 

パスワードの最小寿命 (秒) (Minimum Password Lifetime (seconds)) 

パスワードを変更可能となる最小時間 

パスワードの最大寿命 (秒) (Maximum Password Lifetime (seconds)) 

パスワードを変更せずに使用できる最大時間 

当該ポリシーを使用するプリンシパル (Principals Using This Policy) 

現在当該ポリシーが適用されているプリンシパルの数 (読み取り専用) 

制限された Kerberos 管理特権で SEAM ツールを使用する

admin プリンシパルが Kerberos データベースを管理するためのすべての特権を持っていれば、SEAM 管理ツールのすべての機能を利用できます。しかし、特権を制限することも可能です。たとえば、プリンシパルのリストを表示することだけを許可したり、プリンシパルのパスワードだけを変更することを許可するなどです。Kerberos 管理特権が制限されている場合でも、SEAM ツールは使用できます。しかし、どの Kerberos 管理特権を持っていないかによって、SEAM ツールのさまざまな部分が変化します。表 5-8 に、Kerberos 管理特権によって SEAM ツールがどのように変化するかを示します。

SEAM ツールの最も顕著な視覚的な変化は、リスト特権を持っていない場合に現れます。リスト特権がない場合、「リスト (List)」パネルにはプリンシパルとポリシーのリストが表示されません。その代わりに、「リスト (List)」パネルの「名前 (Name)」フィールドを使用して、作業したいプリンシパルやポリシーを指定する必要があります。

SEAM ツールにログインしたとき、作業に必要な十分な特権を持っていない場合、次のメッセージが表示され、「ログイン (Login)」ウィンドウに戻ります。


gkadmin のアクセス権がありません:ADMCIL. 別のプリンシパルを使用してください。
(Insufficient privileges to use gkadmin: ADMCIL. Please try using another principal.)

プリンシパルの特権を変更して Kerberos データベースを管理する方法については、「Kerberos 管理特権を変更するには」を参照してください。

表 5-8 制限された Kerberos 管理特権で SEAM ツールを使用する

以下の特権を持っていないと... 

SEAM ツールは以下のようにします 

a (追加)

「プリンシパルリスト (Principal List)」と「ポリシーリスト (Policy List)」のパネルで「新規作成 (Create New)」と「複製 (Duplicate)」のボタンが利用できません。追加権がなければ、プリンシパルやポリシーを新しく作成したり、複製したりできません。 

d (削除)

「プリンシパルリスト (Principal List)」と「ポリシーリスト (Policy List)」のパネルで「削除 (Delete)」ボタンが利用できません。削除権がなければ、プリンシパルやポリシーを削除できません。 

m (変更)

「プリンシパルリスト (Principal List)」と「ポリシーリスト (Policy List)」のパネルで「変更 (Modify)」ボタンが利用できません。変更権がなければ、プリンシパルやポリシーを変更できません。 

また、「変更 (Modify)」ボタンが利用できなければ、パスワード変更権を持っていても、プリンシパルのパスワードを変更できません。 

c (パスワード変更)

「プリンシパルの基本 (Principal Basics)」パネルで「パスワード (Password)」フィールドが読み取り専用になり、変更できません。パスワード変更権がなければ、プリンシパルのパスワードを変更できません。 

パスワード変更権を持っている場合でも、プリンシパルのパスワードを変更するためには、変更権も必要です。 

i (データベースへの照会)

「プリンシパルリスト (Principal List)」と「ポリシーリスト (Policy List)」のパネルで「変更 (Modify)」と「複製 (Duplicate)」のボタンが利用できません。照会権がなければ、プリンシパルやポリシーを変更または複製できません。 

また、「変更 (Modify)」ボタンが利用できなければ、パスワード変更権を持っていても、プリンシパルのパスワードを変更できません。 

l (リスト)

「リスト (List)」パネルのプリンシパルとポリシーのリストが利用できません。リストの表示権がない場合、「リスト (List)」パネルの「名前 (Name)」フィールドを使用して、作業したいプリンシパルやポリシーを指定してください。 

keytab の管理

サービスを提供するすべてのホストは keytab (「key table」の省略) というローカルファイルを持っています。このファイルには、サービス鍵という適切なサービスのプリンシパルが入っています。サービス鍵は、サービスが自分自身を KDC に認証するために使用されます。サービス鍵を知っているのは Kerberos とそのサービスだけです。たとえば、Kerberos 化された NFS サーバーを使用している場合、そのサーバーの keytab には、その nfs サービスプリンシパルが入っている必要があります。

サービス鍵を keytab に追加するには、kadminktadd コマンドを使用して、適切なサービスプリンシパルをホストの keytab に追加します。サービスプリンシパルを keytab に追加するため、kadmin が存在を確認できるように、プリンシパルはすでに Kerberos データベースに存在している必要があります。マスター KDC 上では、keytab ファイルはデフォルトで /etc/krb5/kadm5.keytab にあります。Kerberos 化されたサービスを提供するアプリケーションサーバー上では、keytab ファイルはデフォルトで /etc/krb5/krb5.keytab にあります。

keytab はユーザーのパスワードに似ています。ユーザーが自分のパスワードを保護することが重要であるのと同様に、アプリケーションサーバーも自分の keytab を保護することが重要です。keytab は常にローカルディスク上に格納し、root だけが読むことができるように設定する必要があります。。さらに、keytab は、セキュリティの保護されないネットワークには送信しないでください。

また、root プリンシパルをホストの keytab に追加する特別な場合もあります。基本的に、SEAM クライアント上のユーザーが自動的に Kerberos 認証を使用して Kerberos 化された NFS ファイルシステムをマウントしたい場合、クライアントの root プリンシパルをクライアントの keytab に追加する必要があります。そうしないと、オートマウンタを使用している場合でも、ユーザーは Kerberos 化された NFS ファイルシステムをマウントするたびに root として kinit コマンドを使用して、クライアントの root プリンシパルの資格を取得しなければなりません。詳細は、「NFS ファイルシステムをマウントするための root 認証の設定」を参照してください。


注 -

マスター KDC を設定するとき、KDC が管理者の Kerberos チケットの暗号を復号化し、データベースへのアクセスを許可するかどうかを決定できるように、kadmindchangepw のプリンシパルを kadm5.keytab ファイルに追加する必要があります。


keytab を管理するためのもう 1 つのコマンドは ktutil コマンドです。ktutil は、対話的なコマンド行インタフェースユーティリティです。ktutilkadmin のように Kerberos データベースと対話しないため、ktutil を使用すると、Kerberos 管理特権を持っていなくても、ローカルホストの keytab を管理できます。したがって、プリンシパルを keytab に追加した後、ktutil を使用すれば、keytab 内の鍵リストを表示したり、サービスの認証を一時的に無効にしたりできます。

keytab の管理作業マップ

表 5-9 keytab の管理作業マップ

作業 

説明 

参照箇所 

サービスプリンシパルを keytab に追加する

kadminktadd コマンドを使用して、サービスプリンシパルを keytab に追加します。

「サービスプリンシパルを keytab に追加するには」

サービスプリンシパルを keytab から削除する

kadminktremove コマンドを使用して、サービスを keytab から削除します。

「サービスプリンシパルを keytab から削除するには」

keytab 内の鍵リスト (プリンシパル) を表示する

ktutil コマンドを使用して、keytab 内の鍵リストを表示します。

keytab 内の鍵リスト (プリンシパル) を表示するには」

ホスト上のサービスの認証を一時的に無効にする 

この手順は、kadmin 特権を持っていなくても、ホスト上のサービスの認証を一時的に無効にするための簡単な方法です。ktutil を使用してサービスプリンシパルをサーバーの keytab から削除する前に、元の keytab を一時的な場所にコピーします。もう一度サービスを有効にしたい場合は、元の keytab を元の場所にコピーします。

「ホスト上のサービスの認証を一時的に無効にするには」

サービスプリンシパルを keytab に追加するには

  1. プリンシパルがすでに Kerberos データベースに存在していることを確認します。

    詳細は、「プリンシパルのリストを表示するには」を参照してください。

  2. プリンシパルを keytab に追加する必要があるホスト上でスーパーユーザーになります。

  3. kadmin コマンドを起動します。


    # /usr/krb5/sbin/kadmin
    
  4. ktadd コマンドを使用して、プリンシパルを keytab に追加します。


    kadmin: ktadd [-k keytab] [-q] [principal | -glob principal_exp]

    -k keytab

    keytab ファイルを指定する。デフォルトでは、/etc/krb5/krb5.keytab が使用される

    -q

    情報を簡潔に表示する 

    principal

    keytab に追加されるプリンシパル。追加できるサービスプリンシパルは、hostrootnfs、および ftp

    -glob principal_exp

    principal_exp に一致するすべてのプリンシパルを keytab に追加する。principal_exp の規則は、kadminlist_principals コマンドの場合と同じ

  5. kadmin コマンドを終了します。


    kadmin: quit
    

例 - サービスプリンシパルを keytab に追加する

次の例では、kadmin/adminkadmin/changepw のプリンシパルをマスター KDC の keytab に追加します。この例では、keytab ファイルは kdc.conf ファイルに指定したファイルです。


kdc1 # /usr/krb5/bin/kadmin.local
kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/admin kadmin/changepw
Entry for principal kadmin/admin@ACME.COM with kvno 3, encryption type DES-CBC-CRC
  added to keytab WRFILE:/etc/krb5/kadm5.keytab.
Entry for principal kadmin/changepw@ACME.COM with kvno 3, encryption type DES-CBC-CRC
  added to keytab WRFILE:/etc/krb5/kadm5.keytab.
kadmin.local: quit

次の例では、denverhost プリンシパルを denverkeytab ファイルに追加します。これによって、denver のネットワークサービスは KDC で認証できます。


denver # /usr/krb5/bin/kadmin
kadmin: ktadd host/denver@acme.com@ACME.COM
kadmin: Entry for principal host/denver@acme.com@ACME.COM with kvno 2,
  encryption type DES-CBC-CRC added to keytab WRFILE:/etc/krb5/krb5.keytab.
kadmin: quit

サービスプリンシパルを keytab から削除するには

  1. サービスプリンシパルを keytab から削除するホスト上でスーパーユーザーになります。

  2. kadmin コマンドを起動します。


    # /usr/krb5/bin/kadmin
    
  3. 省略可能: keytab 内の現在のプリンシパル (鍵) のリストを表示するには、ktutil コマンドを使用します。

    詳細は、keytab 内の鍵リスト (プリンシパル) を表示するには」を参照してください。

  4. ktremove コマンドを使用して、プリンシパルを keytab から削除します。


    kadmin: ktremove [-k keytab] [-q] principal [kvno | all | old ]

    -k keytab

    keytab ファイルを指定する。デフォルトでは、/etc/krb5/krb5.keytab が使用される

    -q

    情報を簡潔に表示する 

    principal

    keytab から削除されるプリンシパル

    kvno

    指定したプリンシパルの中で、kvno に一致する kvno (鍵バージョン番号) を持つプリンシパルのすべてのエントリを削除する

    all

    指定したプリンシパルのすべてのエントリを削除する 

    old

    指定したプリンシパルの中で、最も高い kvno を持つプリンシパル以外のプリンシパルのすべてのエントリを削除する 

  5. kadmin コマンドを終了します。


    kadmin: quit
    

例 - サービスプリンシパルを keytab から削除する

次の例では、denverhost プリンシパルを denverkeytab ファイルから削除します。


denver # /usr/krb5/bin/kadmin
kadmin: ktremove host/denver.acme.com@ACME.COM
kadmin: Entry for principal host/denver.acme.com@ACME.COM with kvno 3 
  removed from keytab WRFILE:/etc/krb5/krb5.keytab.
kadmin: quit

keytab 内の鍵リスト (プリンシパル) を表示するには

  1. keytab を持つホスト上でスーパーユーザーになります。


    注 -

    他のユーザーが所有する keytab も作成できますが、keytab のデフォルトの位置には root の所有権が必要です。


  2. ktutil コマンドを起動します。


    # /usr/krb5/bin/ktutil
    
  3. read_kt コマンドを使用して、keytab を鍵リストバッファに読み込みます。


    ktutil: read_kt keytab
    
  4. list コマンドを使用して、鍵リストバッファを表示します。


    ktutil: list
    

    現在の鍵リストバッファが表示されます。

  5. ktutil コマンドを終了します。


    ktutil: quit
    

例 - keytab 内の鍵リスト (プリンシパル) を表示する

次の例では、denver ホスト上にある /etc/krb5/krb5.keytab ファイル内の鍵リストを表示します。


denver # /usr/krb5/bin/ktutil
    ktutil: read_kt /etc/krb5/krb5.keytab
    ktutil: list
slot KVNO Principal
---- ---- ---------------------------------------
   1    5 host/denver@ACME.COM
    ktutil: quit

ホスト上のサービスの認証を一時的に無効にするには

ネットワークアプリケーションサーバー上のサービス (rloginftp など) の認証機能を一時的に無効にする必要がある場合もあります。たとえば、保守を行なっているときに、そのシステムにユーザーがログインできないようにしたい場合などです。ktutil コマンドを使用して、サービスのプリンシパルをサービスの keytab から削除すれば、kadmin 特権を持っていなくても、ユーザーのログインを防ぐことができます。もう一度認証を有効にするには、保存しておいた元の keytab を元の場所にコピーします。


注 -

ほとんどのサービスではデフォルトで認証が動作する必要があります。そうでない場合、サービスの認証を無効にしても、そのサービスは動作し続けます。


  1. keytab を持つホスト上でスーパーユーザーになります。


    注 -

    他のユーザーが所有する keytab も作成できますが、keytab のデフォルトの位置には root の所有権が必要です。


  2. 現在の keytab を一時ファイルに保存します。

  3. ktutil コマンドを起動します。


    # /usr/krb5/bin/ktutil
    
  4. read_kt コマンドを使用して、keytab を鍵リストバッファに読み込みます。


    ktutil: read_kt keytab
    
  5. list コマンドを使用して、鍵リストバッファを表示します。


    ktutil: list
    

    現在の鍵リストバッファが表示されます。無効にしたいサービスのスロット番号に注意してください。

  6. ホストのサービスを一時的に無効にするには、delete_entry コマンドを使用して、特定のサービスプリンシパルを鍵リストから削除します。


    ktutil: delete_entry slot_number
    

    slot_number

    削除したいサービスプリンシパルのスロット番号。list コマンドで表示される

  7. write_kt コマンドを使用して、鍵リストバッファを keytab に書き出します。


    ktutil: write_kt keytab
    
  8. ktutil コマンドを終了します。


    ktutil: quit
    
  9. もう一度サービスを有効にするには、一時的な (元の) keytab を元の場所にコピーします。

例 - ホスト上のサービスを一時的に無効にする

次の例では、denver ホスト上の host サービスを一時的に無効にします。もう一度ホストサービスを denver で有効にするには、krb5.keytab.temp ファイルを /etc/krb5/krb5.keytab ファイルにコピーします。


denver # cp /etc/krb5/krb5.keytab /etc/krb5/krb5.keytab.temp
denver # /usr/krb5/bin/ktutil
    ktutil:read_kt /etc/krb5/krb5.keytab
    ktutil:list
slot KVNO Principal
---- ---- ---------------------------------------
   1    8 root/denver@ACME.COM
   2    5 host/denver@ACME.COM
    ktutil:delete_entry 2
    ktutil:list
slot KVNO Principal
---- ---- --------------------------------------
   1    8 root/denver@ACME.COM
    ktutil:write_kt /etc/krb5/krb5.keytab
    ktutil: quit