28.2. Kerberos プリンシパルの鍵の変更

Kerberos プリンシパルの 鍵を変更すると、プリンシパルの Keytab に、現在のキーバージョン番号 (KVNO) よりも高い値を新規 Keytab エントリーとして追加します。
  1. 指定の期間内に発行された keytab をすべて検索します。たとえば、以下のコマンドでは、ldapsearch ユーティリティーを使用して、グリニッジ標準時 (GMT) の 2016 年 1 月 1 日午前 12 時から 12 月 31 日午後 11 時 59 分までに作成された全ホストとサービスプリンシパルを表示します。
    # ldapsearch -x -b "cn=computers,cn=accounts,dc=example,dc=com" "(&(krblastpwdchange>=20160101000000)(krblastpwdchange<=20161231235959))" dn krbprincipalname
    # ldapsearch -x -b "cn=services,cn=accounts,dc=example,dc=com" "(&(krblastpwdchange>=20160101000000)(krblastpwdchange<=20161231235959))" dn krbprincipalname
    • 検索ベース (-b) では、ldapsearch がプリンシパルを検索するサブツリーを定義します。
      • ホストプリンシパルは、cn=computers,cn=accounts,dc=example,dc=com サブツリーの配下に保存されます。
      • サービスプリンシパルは、cn=services,cn=accounts,dc=example,dc=com サブツリーの配下に保存されます。
    • krblastpwdchange パラメーターは、最終変更日で検索結果を絞り込みます。このパラメーターは、日付には YYYYMMDD の形式、日次には HHMMSS の形式に対応しています (グリニッジ標準時)。
    • dn および krbprincipalname 属性を指定すると、検索結果をエントリー名とプリンシパルのみに絞り込みます。
  2. サービスおよびホストがプリンシパルの鍵の再生成が必要な場合には、ipa-getkeytab ユーティリティーを使用して新規 keytab エントリーを取得します。以下のオプションを渡します。
    • --principal (-p): プリンシパルを指定します。
      --keytab (-k): 元の keytab の場所を指定します。
      --server (-s): Identity Management サーバーのホスト名を指定します。
    例を示します。
    • デフォルトの場所である /etc/krb5.keytab にある keytab のホストプリンシパルの鍵を再生成するには、以下を実行します。
      # ipa-getkeytab -p host/client.example.com@EXAMPLE.COM -s server.example.com -k /etc/krb5.keytab
    • デフォルトの場所である /etc/httpd/conf/ipa.keytab にある Apache サービスの keytab の鍵を再生成するには以下を実行します。
      # ipa-getkeytab -p HTTP/client.example.com@EXAMPLE.COM -s server.example.com -k /etc/httpd/conf/ipa.keytab

      重要

      NFS バージョン 4 などのサービスは、一部の暗号化タイプのみをサポートします。ipa-getkeytab コマンドに適切な引数を渡して keytab を設定します。
  3. オプション: プリンシパルの鍵が正しく再生成されたことを確認します。klist ユーティリティーを使用して、すべての Kerberos チケットを表示します。たとえば、/etc/krb5.keytab の keytab エントリーを表示するには以下を実行します。
    # klist -kt /etc/krb5.keytab
    Keytab: WRFILE:/etc/krb5.keytab
    KVNO Timestamp         Principal
    ---- ----------------- --------------------------------------------------------
       1 06/09/16 05:58:47 host/client.example.com@EXAMPLE.COM(aes256-cts-hmac-sha1-96)
       2 06/09/16 11:23:01 host/client.example.com@EXAMPLE.COM(aes256-cts-hmac-sha1-96)
       1 03/09/16 13:57:16 krbtgt/EXAMPLE.COM@EXAMPLE.COM(aes256-cts-hmac-sha1-96)
       1 03/09/16 13:57:16 HTTP/server.example.com@EXAMPLE.COM(aes256-cts-hmac-sha1-96)
       1 03/09/16 13:57:16 ldap/server.example.com@EXAMPLE.COM(aes256-cts-hmac-sha1-96)
    この出力では、client.example.com の keytab エントリーが前の KVNO よりも大きい数値を使用して鍵が再生成されたことを示します。以前の KVNO が付いた元の keytab は、そのままデータベースに残ります。
    以前の keytab に対して発行されたチケットは機能し続け、KVNO の値が最大の鍵で新規チケットが発行されるため、システム操作の中断を防ぎます。