Solaris のシステム管理 (セキュリティサービス)

マスター KDC とスレーブ KDC のスワップ

マスター KDC とスレーブ KDC をスワップするときは、この節で説明する手順を行います。マスター KDC とスレーブ KDC のスワップは、マスター KDC に何らかの理由で障害が発生した場合、またはマスター KDC を再インストールする必要がある場合 (新しいハードウェアをインストールした場合など) にだけ行なってください。

スワップ可能なスレーブ KDC を構成する方法

この手順は、マスター KDC にスワップ可能なスレーブ KDC に対して実行します。

  1. KDC をインストールするときに、マスター KDC およびスワップ可能なスレーブ KDC に対して別名を使用します。

    KDC に対してホスト名を定義するときは、各システムの別名が DNS に登録されている必要があります。/etc/krb5/krb5.conf ファイルにホストを定義するときも、別名を使用します。

  2. 手順に従って、スレーブ KDC をインストールします。

    スワップするサーバーは、レルム内でスレーブ KDC として動作している必要があります。手順については、スレーブ KDC を構成する方法 を参照してください。

  3. マスター KDC コマンドを移動します。

    このスレーブ KDC からマスター KDC コマンドが実行されるのを回避するために、kpropkadmind、および kadmin.local コマンドを予約した場所に移動します。


    kdc4 # mv /usr/lib/krb5/kprop /usr/lib/krb5/kprop.save
    kdc4 # mv /usr/lib/krb5/kadmind /usr/lib/krb5/kadmind.save
    kdc4 # mv /usr/sbin/kadmin.local /usr/sbin/kadmin.local.save
    
  4. rootcrontab ファイルの kprop 行をコメントにします。

    スレーブ KDC が KDC データベースのコピーを伝播しなくなります。


    kdc4 # crontab -e
    #ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
    #
    # root の crontab はアカウントデータ収集を実行するために使用する
    #
    # rtc コマンドは、夏時間を変更する場合に実時間クロックを
    # 調整するために実行する
    #
    10 3 * * 0,4 /etc/cron.d/logchecker
    10 3 * * 0   /usr/lib/newsyslog
    15 3 * * 0 /usr/lib/fs/nfs/nfsfind
    1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c> /dev/null 2>&1
    30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
    #10 3 * * * /usr/lib/krb5kprop_script kdc1.example.sun.com #SUNWkr5ma
    

マスター KDC とスレーブ KDC をスワップする方法

この手順を実行するには、スレーブ KDC がスワップ可能なスレーブとして設定されている必要があります (スワップ可能なスレーブ KDC を構成する方法 を参照)。この手順では、旧マスター KDC サーバー名は、kdc1 です。新しいマスター KDC となるスレーブ KDC の名前は、kdc4 です。

  1. 旧マスター KDC 上で、kadmind プロセスを終了します。


    kdc1 # /etc/init.d/kdc.master stop
    

    kadmind プロセスを終了するときは、旧 KDC データベースに対する変更は行わないでください。

  2. 旧マスター KDC 上で、rootcrontab ファイルの kprop 行をコメントにします。


    kdc1 # crontab -e
    #ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
    #
    # root の crontab はアカウントデータ収集を実行するために使用する
    #
    # rtc コマンドは、夏時間を変更する場合に実時間クロックを
    # 調整するために実行する
    #
    10 3 * * 0,4 /etc/cron.d/logchecker
    10 3 * * 0   /usr/lib/newsyslog
    15 3 * * 0 /usr/lib/fs/nfs/nfsfind
    1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c> /dev/null 2>&1
    30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
    #10 3 * * * /usr/lib/krb5/kprop_script kdc2.example.sun.com #SUNWkr5ma
    

    旧マスター KDC が KDC データベースのコピーを伝播しなくなります。

  3. 旧マスター KDC 上で、kprop_script を実行してデータベースをバックアップし、伝播します。


    kdc1 # /usr/lib/krb5/kprop_script kdc4.example.com
    Database propagation to kdc4.example.com: SUCCEEDED
  4. 旧マスター KDC 上で、マスター KDC コマンドを移動します。

    マスター KDC コマンドが実行されるのを回避するために、kpropkadmind、および kadmin.local コマンドを予約した場所に移動します。


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

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


    masterkdc IN CNAME kdc4
  6. DNS サーバー上で、インターネットドメインネームサーバーを再起動します。

    両方のサーバー上で次のコマンドを実行して、新しい別名情報を取得します。


    # pkill -1 in.named
  7. 新しいマスター KDC 上で、マスター KDC コマンドを移動します。


    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
    
  8. 新しいマスター KDC 上で、Kerberos アクセス制御リストファイル ( kadm5.acl) を編集します。

    /etc/krb5/kadm5.acl ファイルには、KDC を管理できる主体名がすべて含まれている必要があります。最初のエントリは、次のようになります。


    kws/admin@EXAMPLE.COM   *

    このエントリにより、 EXAMPLE.COM レルム内の kws/admin 主体に対して、KDC 内の主体またはポリシーを変更する機能が与えられます。デフォルトのインストールでは、アスタリスク (*) が指定され、すべての admin 主体に変更権限が与えられます。アスタリスクを指定すると、セキュリティが低下する可能性があります。admin 主体をすべて指定すれば、セキュリティが向上します。詳細は、kadm5.acl(4) のマニュアルページを参照してください。

  9. 新しいマスター KDC 上で、kadmin.local を使用して kadmin のキータブファイルを作成します。

    このコマンドシーケンスは、admin および changepw 主体のエントリを格納するためのキータブを作成します。これらの主体は、kadmind サービスに必要です。


    kdc4 # /usr/sbin/kadmin.local
    kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc4.example.com
    Entry for principal kadmin/kdc4.example.com with kvno 3, encryption type DES-CBC-CRC
              added to keytab WRFILE:/etc/krb5/kadm5.keytab.
    kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc4.example.com
    Entry for principal changepw/kdc4.example.com with kvno 3, encryption type DES-CBC-CRC 
              added to keytab WRFILE:/etc/krb5/kadm5.keytab.
    kadmin.local: quit
    
  10. 新しいマスター KDC 上で、kadmind を起動します。


    kdc4 # /etc/init.d/kdc.master start
    
  11. rootcrontab ファイル内の kprop 行を有効にします。


    kdc4 # crontab -e
    #ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
    #
    # root の crontab はアカウントデータ収集を実行するために使用する
    #
    # rtc コマンドは、夏時間を変更する場合に実時間クロックを
    # 調整するために実行する
    #
    10 3 * * 0,4 /etc/cron.d/logchecker
    10 3 * * 0   /usr/lib/newsyslog
    15 3 * * 0 /usr/lib/fs/nfs/nfsfind
    1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c> /dev/null 2>&1
    30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
    10 3 * * * /usr/lib/krb5/kprop_script kdc1.example.sun.com #SUNWkr5ma