Sun Enterprise Authentication Mechanism ガイド

マスター KDC とスレーブ KDC を切り替えるには

この手順では、スレーブ KDC サーバーを切り替え可能なスレーブとして設定しておく必要があります (「切り替え可能なスレーブ KDC を構成するには」を参照)。この手順では、切り替えられるマスターサーバーの名前が kdc1 で、新しいマスターとなるスレーブサーバーの名前が kdc4 です。

  1. 古いマスター上で kadmind プロセスを強制終了します。

    kadmind プロセスを強制終了すると、KDC データベースを変更できなくなります。


    kdc1 # /etc/init.d/kdc.master stop
    
  2. 古いマスター上で rootcrontab ファイル内の kprop 行をコメント化します。

    この手順を行うことによって、古いマスターが KDC データベースのコピーを伝達できなくなります。


    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/krb5/lib/kprop_script kdc2.acme.sun.com #SUNWkr5ma
     
    
  3. 古いマスター上で /etc/init.d/kdc.master 内の kadmind の起動を無効にします。

    サーバーをリブートするときにマスターが kadmind を再起動できないようにするには、スクリプト内で kadmind を起動する行をコメント化します。


    kdc1 # cat /etc/init.d/kdc.master
     
     .
     .
     
    case "$1" in
    'start')
     
            if [ -f $KDC_CONF_DIR/kdc.conf ]
            then
    #                $BINDIR/kadmind 
            fi
            ;;
     
  4. 古いマスター上でデータベースのバックアップと伝達のために kprop_script を実行します。


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

    マスター KDC コマンドを実行できないようにするには、kpropkadmind、および kadmin.local を別の場所に移動します。


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

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


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

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


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


    kdc4 # mv /usr/krb5/lib/kprop.save /usr/krb5/lib/kprop
    kdc4 # mv /usr/krb5/lib/kadmind.save /usr/krb5/lib/kadmind
    kdc4 # mv /usr/krb5/sbin/kadmin.local.save /usr/krb5/sbin/kadmin.local
    
  9. 新しいマスター上で kadmin.local を使用して、kadmin 用に keytab ファイルを作成します。

    次のコマンドは、adminchangepw のプリンシパルエントリを持つ特別な keytab ファイルを作成します。これらのプリンシパルは kadmind サービスに必要です。


    kdc4 # /usr/krb5/sbin/kadmin.local
    kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc4.acme.com
    Entry for principal kadmin/kdc4.acme.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.acme.com
    Entry for principal changepw/kdc4.acme.com with kvno 3, encryption type DES-CBC-CRC 
              added to keytab WRFILE:/etc/krb5/kadm5.keytab.
    kadmin.local: quit
    
  10. 新しいマスター上で /etc/init.d/kdc.master 内の kadmind の起動を有効にします。


    kdc4 # cat /etc/init.d/kdc.master
     
     .
     .
     
    case "$1" in
    'start')
     
            if [ -f $KDC_CONF_DIR/kdc.conf ]
            then
                    $BINDIR/kadmind 
            fi
            ;;
     
  11. 新しいマスター上で kadmind を起動します。


    kdc4 # /etc/init.d/kdc.master start
    
  12. 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/krb5/lib/kprop_script kdc1.acme.sun.com #SUNWkr5ma