Cette procédure exige que le serveur KDC esclave ait été configuré en tant qu'esclave permutable (voir "Comment configurer un KDC esclave permutable"). Dans cette procédure, le serveur maître permuté est nommé kdc1, et l'esclave qui deviendra le nouveau maître est nommé kdc4.
Sur l'ancien maître : Éliminez le processus kadmind.
L'élimination du processus kadmind empêche toute modification de la base de données KDC.
kdc1 # /etc/init.d/kdc.master stop |
Sur l'ancien maître : Transformez en commentaire la ligne kprop dans le fichier crontab root.
Cette étape empêche l'ancien maître de propager sa copie de la base de données KDC.
kdc1 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # # Le crontab root devrait être utilisé pour la collecte des données # comptables. # # La commande rtc est exécutée pour ajuster l'horloge en temps réel lors d'un # passage à l'heure avancée ou normale. # 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 |
Sur l'ancien maître : Désactivez le démarrage de kadmind dans /etc/init.d/kdc.master.
Pour empêcher le maître de redémarrer kadmind lors de la réinitialisation du serveur, transformez en commentaire la ligne démarrant kadmind dans le script :
kdc1 # cat /etc/init.d/kdc.master . . case "$1" in 'start') if [ -f $KDC_CONF_DIR/kdc.conf ] then # $BINDIR/kadmind fi ;; |
Sur l'ancien maître : exécutez kprop_script afin de sauvegarder et de propager la base de données.
kdc1 # /usr/krb5/lib/kprop_script kdc4.acme.com Propagation de la base de données à kdc4.acme.com: REUSSIE |
Sur l'ancien maître : Déplacez les commandes du KDC maître.
Pour empêcher l'exécution des commandes du KDC maître, déplacez kprop, kadmind et kadmin.local vers un emplacement réservé.
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 |
Sur le serveur DNS : changez les noms d'alias pour le maître.
Pour changer les serveurs, éditez le fichier de la zone acme.com et changez l'entrée pour masterkdc.
masterkdc IN CNAME kdc4 |
Sur le serveur DNS : redémarrez le serveur de nom de domaine Internet.
Exécutez la commande suivante sur les deux serveurs pour obtenir les nouvelles informations sur les alias :
# pkill -1 in.named |
Sur le nouveau maître : Déplacez les commandes du KDC maître.
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 |
Sur le nouveau maître : Créez un fichier de table de clés pour kadmin au moyen de kadmin.local.
Cette suite de commandes crée un fichier de table de clés spécial avec des entrées de principal pour admin et changepw. Ces principaux sont requis pour le service kadmind.
kdc4 # /usr/krb5/sbin/kadmin.local kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc4.acme.com Entrée pour le principal kadmin/kdc4.acme.com avec numéro de version de clé 3 et type de chiffrement DES-CBC-CRC ajoutée à la table de clés WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc4.acme.com Entrée pour le principal changepw/kdc4.acme.com avec numéro de version de clé 3 et type de chiffrement DES-CBC-CRC ajoutée à la table de clés WRFILE:/etc/krb5/kadm5.keytab. kadmin.local: quit |
Sur le nouveau maître : activez le démarrage de kadmind dans /etc/init.d/kdc.master.
kdc4 # cat /etc/init.d/kdc.master . . case "$1" in 'start') if [ -f $KDC_CONF_DIR/kdc.conf ] then $BINDIR/kadmind fi ;; |
Sur le nouveau maître : démarrez kadmind.
kdc4 # /etc/init.d/kdc.master start |
Activez la ligne kprop dans le fichier crontab root.
kdc4 # crontab -e #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # # Le crontab root devrait être utilisé pour la collecte des données # comptables. # # La commande rtc est exécutée pour ajuster l'horloge en temps réel lors # d'un passage à l'heure avancée ou normale. # 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 |