應該使用這些程序,好讓與一個從屬 KDC 調換主 KDC 的工作容易一點。在主 KDC 伺服器由於某種原因失敗,或是必須重新安裝主 KDC 時(例如有新的硬體),才需要這樣做。
此程序應該在您想要讓它成為主 KDC 的從屬 KDC 伺服器之上完成。
在安裝過程中使用主及可調換從屬 KDC 伺服器的別名。
在定義 KDC 的主機名稱時,確定每個系統都有一個別名包括在 DNS 中,並且在 /etc/krb5/krb5.conf 中定義主機時使用別名。
安裝主 KDC 軟體。
安裝主 KDC 軟體提供二進位以及調換過程中所需的其他檔案,其中包括所有從屬 KDC 伺服器需要的檔案。當安裝完成之後請勿將系統重新開機。
請依照安裝一個從屬 KDC 的步驟進行。
在任何調換之前,此伺服器應該就像範疇中任何其他從屬 KDC 一樣地運作。請參見 "如何設置一個從屬 KDC" 中的指示。請勿安裝從屬軟體。所有必要的檔案都必須在安裝主軟體時安裝。
移動主 KDC 指令。
要防止主 KDC 指令被從此從屬中執行,請將 kprop、kadmind、及 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 |
停用 /etc/init.d/kdc.master 中的 kadmind 啟動。
要防止從屬處理變更 KDC 資料庫的要求,請加註刪掉指令集中開始 kadmind 的一行文字﹕
kdc4 # cat /etc/init.d/kdc.master . . case "$1" in 'start') if [ -f $KDC_CONF_DIR/kdc.conf ] then # $BINDIR/kadmind fi ;; |
加註刪掉 root crontab 檔案中的 kprop 一行文字。
此步驟會防止從屬將其 KDC 資料庫的副本傳播出去。
kdc4 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # # The root crontab should be used to perform accounting data collection. # # The rtc command is run to adjust the real time clock if and when # daylight savings time changes. # 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 |
此程序需要先已將從屬 KDC 伺服器設定為一個可調換從屬(請參見 "如何設置一個可調換從屬 KDC")。在此程序中,要被調換的主伺服器稱為 kdc1,而將成為新的主伺服器的從屬則稱為 kdc4。
在舊的主 KDC 之上﹕殺掉 kadmind 過程。
殺掉 kadmind 的過程會防止對 KDC 資料庫進行任何變更。
kdc1 # /etc/init.d/kdc.master stop |
在舊的主 KDC 之上﹕加註刪掉 root crontab 檔案中的 kprop 一行文字。
此步驟會防止舊的主 KDC 將其 KDC 資料庫的副本傳播出去。
kdc1 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # # The root crontab should be used to perform accounting data collection. # # The rtc command is run to adjust the real time clock if and when # daylight savings time changes. # 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 |
在舊的主 KDC 之上﹕停用 /etc/init.d/kdc.master 中的 kadmind 啟動。
如果要在重新開機伺服器時防止主 KDC 重新啟動 kadmind,請加註刪掉指令集中開始 kadmind 的一行文字﹕
kdc1 # cat /etc/init.d/kdc.master . . case "$1" in 'start') if [ -f $KDC_CONF_DIR/kdc.conf ] then # $BINDIR/kadmind fi ;; |
在舊的主 KDC 之上﹕執行 kprop_script 以備份與傳播資料庫。
kdc1 # /usr/krb5/lib/kprop_script kdc4.acme.com Database propagation to kdc4.acme.com: SUCCEEDED |
在舊的主 KDC 之上﹕移動主 KDC 指令。
要防止主 KDC 指令被執行,請將 kprop、kadmind、及 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 |
在 DNS 伺服器之上﹕變更主 KDC 的別名。
要變更伺服器,請編輯 acme.com 區域檔案並且變更 masterkdc 的項目。
masterkdc IN CNAME kdc4 |
在 DNS 伺服器之上﹕重新啟動網際網路領域名稱伺服器。
在兩個伺服器之上執行下列指令以取得新的別名資訊﹕
# pkill -1 in.named |
在新的主 KDC 之上﹕移動主 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 |
在新的主 KDC 之上﹕使用 kadmin.local 來為 kadmin 建立一個密鑰表檔案。
此指令序列會以主管項目為 admin 及 changepw 建立特殊的密鑰表檔案。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 |
在新的主 KDC 之上﹕啟用 /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 ;; |
在新的主 KDC 之上﹕開始 kadmind。
kdc4 # /etc/init.d/kdc.master start |
啟用 root crontab 檔案中的 kprop 一行文字。
kdc4 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # # The root crontab should be used to perform accounting data collection. # # The rtc command is run to adjust the real time clock if and when # daylight savings time changes. # 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 |