Go to main content
Oracle® Solaris 11.3 での Kerberos およびその他の認証サービスの管理

印刷ビューの終了

更新: 2017 年 3 月
 
 

マスター KDC とスレーブ KDC を入れ替えする方法

この手順では、旧マスター KDC サーバー名は、kdc1 です。新しいマスター KDC になるスレーブ KDC には kdc4 という名前が付けられ、元のマスター KDC がスレーブ KDC になります。この手順は、増分伝播を使用していることを想定しています。

始める前に

入れ替え可能なスレーブ KDC を構成する方法の手順を完了します。

root 役割になる必要があります。詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。

  1. 新しいマスター KDC 上で、kadmin を起動します。
    kdc4# /usr/sbin/kadmin -p kws/admin
    Enter password: xxxxxxxx
    kadmin:
  2. kadmind サービスの新しい主体を作成します。

    次の例では、addprinc が 2 行で表示されていますが、1 行に入力する必要があります。

    kadmin: addprinc -randkey -allow_tgs_req +password_changing_service -clearpolicy \
    changepw/kdc4.example.com
    Principal "changepw/kdc4.example.com@EXAMPLE.COM" created.
    kadmin: addprinc -randkey -allow_tgs_req -clearpolicy kadmin/kdc4.example.com
    Principal "kadmin/kdc4.example.com@EXAMPLE.COM" created.
    kadmin: quit
  3. 新しいマスター KDC 上で、同期を強制します。

    次の手順は、スレーブサーバー上で強制的に KDC を完全に更新します。

    1. krb5kdc サービスを無効にし、そのログファイルを削除します。
      kdc4# svcadm disable network/security/krb5kdc
      kdc4# rm /var/krb5/principal.ulog
    2. 更新が完了したことを確認します。
      kdc4# /usr/sbin/kproplog -h
    3. KDC サービスを再起動します。
      kdc4# svcadm enable -r network/security/krb5kdc
    4. 新しいマスター KDC サーバーの更新ログを再初期化します。
      kdc4# svcadm disable network/security/krb5kdc
      kdc4# rm /var/krb5/principal.ulog
  4. 元のマスター KDC 上で、kadmin および krb5kdc サービスを無効にします。

    kadmin サービスを無効にすると、KDC データベースを一切変更できなくなります。

    kdc1# svcadm disable network/security/kadmin
    kdc1# svcadm disable network/security/krb5kdc
  5. 元のマスター KDC 上で、伝播を要求するためのポーリング時間を指定します。

    /etc/krb5/kdc.conf 内の sunw_dbprop_master_ulogsize エントリをコメントアウトし、スレーブのポーリング間隔を定義するエントリを追加します。このエントリにより、ポーリング時間が 2 分に設定されます。

    kdc1# pfedit /etc/krb5/kdc.conf
    [kdcdefaults]
         kdc_ports = 88,750
    
    [realms]
         EXAMPLE.COM= {
            profile = /etc/krb5/krb5.conf
            database_name = /var/krb5/principal
            acl_file = /etc/krb5/kadm5.acl
            kadmind_port = 749
            max_life = 8h 0m 0s
            max_renewable_life = 7d 0h 0m 0s
            sunw_dbprop_enable = true
    #            sunw_dbprop_master_ulogsize = 1000
            sunw_dbprop_slave_poll = 2m
         }
  6. 元のマスター KDC 上で、マスター KDC コマンドおよび kadm5.acl ファイルを移動します。

    マスター KDC のコマンドは、元のマスター KDC から実行しないでください。

    kdc1# mv /usr/lib/krb5/kprop /usr/lib/krb5/kprop.save
    kdc1# mv /usr/lib/krb5/kadmind /usr/lib/krb5/kadmind.save
    kdc1# mv /usr/sbin/kadmin.local /usr/sbin/kadmin.local.save
    kdc1# mv /etc/krb5/kadm5.acl /etc/krb5/kadm5.acl.save
  7. DNS マッピングを変更します。
    1. DNS サーバー上で、マスター KDC の別名を変更します。

      サーバーを変更するために、example.com ゾーンファイルを編集して masterkdc のエントリを変更します。

      masterkdc IN CNAME kdc4
    2. 新しい別名の情報を再ロードします。
      # svcadm refresh network/dns/server
  8. 新しいマスター KDC 上で、マスター KDC コマンドとスレーブ kpropd.acl ファイルを移動します。

    マスター KDC コマンドは、入れ替え可能なスレーブ KDC を構成する方法Step 3 で移動しました。

    kdc4# mv /usr/lib/krb5/kprop.save /usr/lib/krb5/kprop
    kdc4# mv /usr/lib/krb5/kadmind.save /usr/lib/krb5/kadmind
    kdc4# mv /usr/sbin/kadmin.local.save /usr/sbin/kadmin.local
    kdc4# mv /etc/krb5/kpropd.acl /etc/krb5/kpropd.acl.save
  9. 新しいマスター KDC 上で、Kerberos アクセス制御リストファイル kadm5.acl を作成します。

    作成された /etc/krb5/kadm5.acl ファイルには、KDC を管理できる主体名がすべて含まれている必要があります。このファイルにはまた、増分伝播に対するリクエストを発行できるすべてのスレーブも記載されているべきです。詳細は、kadm5.acl(4) のマニュアルページを参照してください。

    kdc4# pfedit /etc/krb5/kadm5.acl
    kws/admin@EXAMPLE.COM   *
    kiprop/kdc1.example.com@EXAMPLE.COM p
  10. 新しいマスター KDC 上で、kdc.conf ファイル内の更新ログのサイズを指定します。

    sunw_dbprop_slave_poll エントリをコメントアウトし、sunw_dbprop_master_ulogsize を定義するエントリを追加します。このエントリにより、ログサイズが 1000 エントリに設定されます。

    kdc4# pfedit /etc/krb5/kdc.conf
    [kdcdefaults]
         kdc_ports = 88,750
    
    [realms]
         EXAMPLE.COM= {
            profile = /etc/krb5/krb5.conf
            database_name = /var/krb5/principal
            acl_file = /etc/krb5/kadm5.acl
            kadmind_port = 749
            max_life = 8h 0m 0s
            max_renewable_life = 7d 0h 0m 0s
            sunw_dbprop_enable = true
    #            sunw_dbprop_slave_poll = 2m
            sunw_dbprop_master_ulogsize = 1000
         }
  11. 新しいマスター KDC 上で、kadmin および krb5kdc サービスを有効にします。
    kdc4# svcadm enable -r network/security/krb5kdc
    kdc4# svcadm enable -r network/security/kadmin
  12. 元のマスター KDC をスレーブ KDC にします。
    1. kiprop サービス主体を追加します。

      krb5.keytab ファイルに kiprop 主体を追加すると、増分伝播サービスに対して kpropd デーモンが自身を認証できるようになります。

      kdc1# /usr/sbin/kadmin -p kws/admin
      Authenticating as principal kws/admin@EXAMPLE.COM with password.
      Enter password: xxxxxxxx
      kadmin: ktadd kiprop/kdc1.example.com
      Entry for principal kiprop/kdc1.example.com with kvno 3,
      encryption type AES-256 CTS mode
      with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal kiprop/kdc1.example.com with kvno 3,
      encryption type AES-128 CTS mode
      with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal kiprop/kdc1.example.com with kvno 3, encryption type Triple DES cbc
      mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: quit
    2. krb5.conf ファイル内の各 KDC のエントリを伝播構成ファイルに追加します。
      kdc1# pfedit /etc/krb5/kpropd.acl
      host/kdc1.example.com@EXAMPLE.COM
      host/kdc2.example.com@EXAMPLE.COM
      host/kdc3.example.com@EXAMPLE.COM
      host/kdc4.example.com@EXAMPLE.COM
    3. kpropd および krb5kdc サービスを有効にします。
      kdc1# svcadm enable -r network/security/krb5_prop
      kdc1# svcadm enable -r network/security/krb5kdc