Kerberosパスワードの更新ガイドライン

Kerberosプリンシパルのパスワードは、定期的に変更する必要があります。これを行うには、kadmin.localを使用して手動で指定するか、securityconfigツールのconfig renew-keytabコマンドを使用して、プリンシパル・キーを自動的にランダム化できます。

このコマンドの構文は、次のとおりです。

config renew-keytab -root <secroot> [-secdir <security dir>]
[-keysalt <enc:salt[,enc:salt,..]>]
[-kadmin-path <kadmin utility path>]
[-instance-name <database instance name>]
[-admin-principal <kerberos admin principal name>]
[-kadmin-keytab <keytab file> ]
[-kadmin-ccache <credential cache file>] 

説明:

  • -keysalt

    作成される新しいキーすべてに使用する、暗号化タイプおよびsaltタイプのリストを設定します。デフォルト値は、des3-cbc-sha1:normal,aes128-cts-hmac-sha1-96:normal,arcfour-hmac:normalです。

  • -kadmin-path

    Kerberos kadminユーティリティの絶対パスを示します。デフォルト値は/usr/kerberos/sbin/kadminです。

  • -instance-name

    サービス・プリンシパル名を指定します。デフォルト値は、Oracle NoSQL Databaseが実行されているストレージ・ノードの完全修飾ドメイン名(FQDN)です。

  • -admin-principal

    Kerberos管理インタフェースにログインするために使用するプリンシパルを指定します。これは、kadminのキータブまたはパスワードを使用して管理インタフェースに接続する場合に必要となります。

  • -kadmin-keytab

    Kerberos管理ユーザーのプリンシパルと暗号化されたキーが格納されるKerberosキータブ・ファイルの場所を指定します。セキュリティ構成ツールでは、指定されたキータブ・ファイルを使用して、Kerberos管理インタフェースにログインします。

    キータブを使用してKerberos管理にログインする場合は、-admin-principalフラグを指定する必要があります。指定しないと、適切な管理プリンシパルが認識されません。このフラグを-kadmin-ccacheフラグと同時に指定することはできません。

  • -kadmin-ccache

    kadmin/ADMINHOSTのサービス・チケットを含む、Kerberos資格証明のキャッシュ・ファイルの完全なパス名を指定します。ADMINHOSTは、管理サーバーまたはkadmin/adminサービスの完全修飾ホスト名です。

    指定しない場合、ユーザーは、Kerberos管理インタフェースへのログイン中にプリンシパルのパスワードの入力を求められます。このフラグを-kadmin-keytabフラグと同時に指定することはできません。

Kerberosプリンシパル・パスワードを手動で更新するには、次のステップを実行する必要があります。

  1. kadmin.localユーティリティを使用して、サービス・プリンシパル・パスワードを変更します。

    kadmin.local: cpw nosql/myhost
    Enter password for principal nosql/myhost@EXAMPLE.COM
    Re-enter password for principal nosql/myhost@EXAMPLE.COM
  2. Oracle NoSQL Databaseサービス・プリンシパルのキータブ・ファイルを再生成します。

    kadmin.local: ktadd –norandkey –k new.keytab 
  3. Oracle NoSQL Databaseサービス・プリンシパルの新しいキータブ・ファイルを各ストレージ・ノードにコピーします。次に例を示します。

    scp new.keytab kvuser@mystore:KVROOT/security/store.keytab
    ...
  4. キー・バージョン番号(kvno)を比較して、キータブ・ファイルを検証します。

    kadmin.local:getprinc nosql/myhost@EXAMPLE.COM
    Principal: nosql/myhost@EXAMPLE.COM
    Expiration date: [never]
    Last password change: Thu Jun 04 03:16:38 UTC 2015
    Password expiration date: [none]
    Maximum ticket life: 1 day 00:00:00
    Maximum renewable life: 0 days 00:00:00
    Last modified: Thu Jun 04 03:16:38 UTC 2015 
    (root/admin@ORACLE.EXAMPLE.COM)
    Last successful authentication: [never]
    Last failed authentication: [never]
    Failed password attempts: 0
    Number of keys: 4
    Key: vno 12, aes256-cts-hmac-sha1-96
    Key: vno 12, aes128-cts-hmac-sha1-96
    Key: vno 12, des3-cbc-sha1
    Key: vno 12, arcfour-hmac
    MKey: vno 1
    Attributes:
    Policy: [none]
    Kadmin.local: quit
    # klist –k new.keytab
    KVNO Principal
    ---- ------------------------
    12 nosql/myhost@EXAMPLE.COM
    12 nosql/myhost@EXAMPLE.COM
    12 nosql/myhost@EXAMPLE.COM
    12 nosql/myhost@EXAMPLE.COM

クライアント側のユーザー・プリンシパルには、同様のパスワード・ローテーションが必要です。データベースへのログインに使用するキータブまたは資格証明キャッシュは、更新する必要があります。kinitツールを使用して資格証明キャッシュを作成する場合は、kdestroyを実行してキャッシュされたチケットをクリアし、kinitを再実行して新しい資格証明キャッシュを生成する必要があります。

次に例を示します。

# kdestroy –c /tmp/krb5ccache
# kinit –c /tmp/krb5ccache