Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第29章 Kerberos ドメインの管理

本章では、Identity Management サーバーの Kerberos Key Distribution Center(KDC)コンポーネントを管理する方法を説明します。
重要
Identity Management の Kerberos ポリシーを管理するには、kadmin ユーティリティーまたは kadmin .local ユーティリティーを使用しないでください。本ガイドで説明するように、ネイティブの Identity Management コマンドラインツールを使用します。
上記の Kerberos ツールを使用して Identity Management ポリシーを管理しようとすると、一部の操作は、Directory Server インスタンスに保存されている Identity Management 設定には影響を与えません。

29.1. Kerberos チケットポリシーの管理

Identity Management の Kerberos チケットポリシーは、チケット期間および更新に制限を設定します。以下の手順では、Identity Management サーバーで実行している Kerberos Key Distribution Center(KDC)の Kerberos チケットポリシーを設定できます。

29.1.1. Kerberos チケットの有効期間の判別

Identity Management サーバーが、Identity Management クライアントが user_name に代わって Kerberos チケットを要求した後に付与するチケットの有効期間を決定すると、いくつかのパラメーターが考慮されます。まず、クライアント側の評価は、kinit コマンドのベースと、/etc/krb5.conf ファイルの ticket_lifetime 設定に基づいて要求される値を計算します。値は、サーバー側の評価が行われる Identity Management サーバーに送信されます。要求されたライフタイムがグローバル設定で使用できるものよりも低い場合は、要求された有効期間が付与されます。そうしない場合、ライフタイム付与付与は、グローバル設定が許可する値です。
user_name に代わってクライアントがリクエストしたライフタイムは、以下のように決定されます。

クライアント側

  • kinit コマンド自体で user_name の値を明示的に指定している場合は、以下のように -l オプションを使用します。
    $ kinit user_name -l 90000
    この値の 90000 秒は、user_name に代わってクライアントによって要求されます。
  • それ以外は、kinit user_name コマンドの引数として有効期間の値が渡されない場合、クライアントの /etc/krb5.conf ファイルの ticket_lifetime 設定の値が、user_name の代わりにクライアントで使用されます。/etc/krb5.conf ファイルに値が指定されていない場合は、初期チケット要求のデフォルトの IdM 値が使用されます(例: 1 日)。

サーバー側

2 段階の評価版が行われるサーバー側:
  1. クライアントが要求する値は、user_name--maxlife 設定と比較されます。これらのポリシーが存在する場合には、特定の Kerberos チケットポリシーと、その 2 つの低い値が選択されます。user_name- 特定の Kerberos チケットポリシーが存在しない場合、クライアントが送信した値は、Global Kerberos チケットポリシーの --maxlife 設定と比較され、この 2 つの低い値が選択されます。グローバルおよびユーザー固有の Kerberos チケットポリシーの詳細は、「グローバルおよびユーザー固有の Kerberos チケットポリシー」 を参照してください。
  2. 前の手順で選択した値は、他の 2 つの値と比較されます。
    • /var/kerberos/krb5kdc/kdc.conf ファイルの max_life 設定の値
    • LDAP エントリーの krbMaxTicketLife 属性 で設定される値(DN): krbPrincipalName=krbtgt/REALM_NAME@ REALM_NAME,cn=REALM_NAME,cn=REALM_NAME,cn=kerberos,domain_name
    user_name に付与される Kerberos チケットの有効期間中、3 つの値の最小値が最終的に選択されます。

29.1.2. グローバルおよびユーザー固有の Kerberos チケットポリシー

グローバル Kerberos チケットポリシーを再定義し、個々のユーザー専用の追加のポリシーを定義できます。
グローバル Kerberos チケットポリシー
グローバルポリシーは、Identity Management Kerberos レルム内で発行されたすべてのチケットに適用されます。
ユーザー固有の Kerberos チケットポリシー
ユーザー固有のポリシーは、関連付けられたユーザーアカウントにのみ適用されます。たとえば、ユーザー固有の Kerberos チケットポリシーは、管理ユーザーのチケットの最大有効期間を定義できます
ユーザー固有のポリシーは、グローバルポリシーよりも優先されます。

29.1.3. グローバル Kerberos チケットポリシーの設定

グローバル Kerberos チケットポリシーを設定するには、以下を使用できます。

表29.1 サポートされる Kerberos チケットポリシー属性

属性 説明
最大更新
ユーザーが期限切れの後に Kerberos チケットを更新できる期間(秒単位)。更新期間が経過したら、kinit ユーティリティーを使用してユーザーが新しいチケットを取得する必要があります。
チケットを更新するには、kinit -R コマンドを使用します。
Max renew = 604800
チケットの期限が切れると、ユーザーは次の 7 日以内に更新することができます(604,800 秒)。
Max life Kerberos チケットの有効期間(秒単位)。Kerberos チケットがアクティブな期間。
Max life = 86400
チケットは、発行後に 24 時間(86、400 秒)期限切れになります。

Web UI: グローバル Kerberos チケットポリシーの設定

  1. PolicyKerberos Ticket Policy を選択します。
  2. 必要な値を定義します。
    1. Max renew フィールドに Kerberos チケットの最大更新期間を入力します。
    2. Max life フィールドに Kerberos チケットの最大有効期間を入力します。

      図29.1 グローバル Kerberos チケットポリシーの設定

      グローバル Kerberos チケットポリシーの設定
  3. Save をクリックします。

コマンドライン: グローバル Kerberos チケットポリシーの設定

グローバル Kerberos チケットポリシーを変更するには、以下を実行します。
  • ipa krbtpolicy-mod コマンドを使用して、少なくとも以下のいずれかのオプションを渡します。
    • --maxrenew - Kerberos チケットの最大更新間隔を定義します。
    • --maxlife - Kerberos チケットの最大有効期間を定義します。
    たとえば、最大有効期間を変更するには、次のコマンドを実行します。
    $ ipa krbtpolicy-mod --maxlife=80000
    Max life: 80000
    Max renew: 604800
グローバル Kerberos チケットポリシーを元のデフォルト値にリセットするには、以下を実行します。
  1. ipa krbtpolicy-reset コマンドを使用します。
  2. 任意。ipa krbtpolicy-show コマンドを使用して、現在の設定を確認します。
ipa krbtpolicy-mod および ipa krbtpolicy-reset の詳細は、コマンドに --help オプションを渡します。

29.1.4. ユーザー固有の Kerberos チケットポリシーの設定

特定のユーザーの Kerberos チケットポリシーを変更するには、以下を実行します。
  1. ipa krbtpolicy-mod user_name コマンドを使用して、少なくとも 1 つのオプションを渡します。
    • --maxrenew - Kerberos チケットの最大更新間隔を定義します。
    • --maxlife - Kerberos チケットの最大有効期間を定義します。
    属性のいずれかを定義すると、Identity Management は他の属性に対してグローバル Kerberos チケットポリシーの値を適用します。
    たとえば、admin ユーザーの最大有効期間を変更するには、以下を実行します。
    $ ipa krbtpolicy-mod admin --maxlife=160000
    Max life: 80000
    Max renew: 604800
  2. 任意。ipa krbtpolicy-show user_name コマンドを使用して、指定したユーザーの現在の値を表示します。
kinit ユーティリティーを使用する場合など、ユーザーが要求する次の Kerberos チケットで、新しいポリシーが有効になります。
ユーザー固有の Kerberos チケットポリシーをリセットするには、ipa krbtpolicy-reset user_name コマンドを使用します。このコマンドは、Identity Management がグローバルポリシーの値を適用すると、ユーザーに定義されている値を消去します。
ipa krbtpolicy-mod および ipa krbtpolicy-reset の詳細は、コマンドに --help オプションを渡します。