Kerberos Sunucusunun Birebir Kopyalanması

Birebir Kopyalamanın Tanımı

Kerberos ana/yardımcı birebir kopyalama kümelemesine izin verecek şekilde tasarlanmıştır. Bir kerberos kümelemesinde istenilen sayıda düğüm olabilmesine rağmen en az iki adet olması önerilmektedir. Birincil sunucu olarak bir ana sunucu ve onu yedeklemek için en az bir yardımcı sunucu bulunmalıdır. Ana ve yardımcı sunucular birincil ve ikincil sunucular olarak düşünülebilirler.

Kerberos hesaplar ve kurallar ile ilgili tüm verilerini bir uygulama veritabanında tutar. Kerberos yazılımı bu verileri diğer sunuculara yedekleyecek veya kopyalayacak yazılımları da içerir.

Kerberos istemci uygulamaları eğer birincil sunucuya ulaşılamaz ise ikincil sunucudan kimlik denetimi yapmayı deneyecek şekilde tasarlanmıştır. Bu yüzden bir sistem arızası durumunda Kerberos kimlik denetimi servisinin yedekleme sunucusundan yapılması için ilave bir çaba harcamanıza gerek yoktur. Kerberos'un yönetimsel özellikleri otomatik hata telafisini içermez.

Birincil sunucunuzun erişilemez olması durumunda kadmind erişilemez olacaktır. Bu nedenle sunucu tamir edilene veya değiştirilene kadar yönetimsel işlevler çalışmayacaktır. Özellikle yetkili kullanıcı yönetimi, anahtar üretimi ve anahtar değişimi birincil sunucu çalışmadığı sürece yapılamayacaktır.

Gerçekleme

Sunucunun birebir kopyalaması kprop komutu ile yapılır. kprop komutu birincil ana KDC üzerinde çalıştırılmalıdır. Zamanlandırılmış bir görev olarak çalıştırılmalı ve esas veritabanının tüm sunucularda eşzamanlı olması sağlanmalıdır.

Sunucuyu birebir kopyalamanın ilk adımı, kpropd için ACL'ler hazırlamaktır. kpropd acl dosya adları öntanımlı olarak /var/Kerberos/krb5kdc/kpropd.acl dosyasında bulunur. Bizim örneğimizde içerik aşağıdaki gibi olacaktır:

host/kerberos1.gnud.ie@GNUD.IE
host/kerberos2.gnud.ie@GNUD.IE

kpropd.acl dosyası sadece yardımcı Kerberos sunucularında bulunmalıdır. Fedora GNU/Linux'da, /var/Kerberos/krb5kdc/kpropd.acl dosyasının bulunduğu bir Kerberos sunucusunda kadmin çalışmayacaktır.

Sıradaki adımda ana ve yardımcı Kerberos sunucularınız için konak anahtarlarını yaratmanız gerekir:

{Kerberos1}bash# kadmin.local
{Kerberos1}kadmin.local:  addprinc -randkey host/kerberos1.gnud.ie
{Kerberos1}kadmin.local:  addprinc -randkey host/kerberos2.gnud.ie

Şimdi bu anahtarların keytab dosyasından çıkartılması gereklidir. keytab dosyası kriptografik anahtarları içerir ve KDC ile kimlik kanıtlaması yapmak için kritik önem taşır. Anahtarların çıkartılması ktadd alt komutu ile yapılır:

{Kerberos1}kadmin.local:  ktadd host/kerberos1.gnud.ie
{Kerberos1}kadmin.local:  ktadd host/kerberos2.gnud.ie

Son olarak, kimlik kanıtlamasında kullanabilmeleri için keytab dosyasını yardımcı sunuculara kopyalamanız gereklidir.

{Kerberos2}bash# scp root@kerberos1.gnud.ie:/etc/krb5.keytab /etc

Aşağıda her onbeş dakikada bir Kerberos sunucusunda çalışacak ve esas veritabanını eşleyecek crontab girdisi bulunmaktadır:

15 * * * * /usr/local/bin/krb5prop.sh

krb5prop.sh betiğinin içeriği şöyledir:

#!/bin/sh

/usr/Kerberos/sbin/kdb5_util dump /var/Kerberos/krb5kdc/slave_datatrans

/usr/Kerberos/sbin/kprop -f /var/Kerberos/krb5kdc/slave_datatrans kerberos2.gnud.ie > /dev/null

Bu komutu ilk olarak elle çalıştırdığınızda aşağıdakine benzer bir çıktı almalısınız:

{Kerberos1}bash# /usr/Kerberos/sbin/kdb5_util dump /var/Kerberos/krb5kdc/slave_datatrans
{Kerberos1}bash# /usr/Kerberos/sbin/kprop -d -f /var/Kerberos/krb5kdc/slave_datatrans kerberos2.gnud.ie
3234 bytes sent.
Database propagation to kerberos2.gnud.ie: SUCCEEDED
{Kerberos1}bash#

Yardımcı sunucu artık esas veritabanını ana sunucudan eşleyecektir.

Bakım

Bu cron betikleri ile esas yayılımın yeterince otomatikleşmiş olması ve ilave bakıma ihtiyaç duymaması gerekir. Birincil KDC'nin çalışmaması durumunda arıza uzun sürmedikçe insan müdahalesine gerek olmaz.