Kerberos Altyapısı Kurulum ve Yapılandırma

Vikikaynak, özgür kütüphane

Yapılandırmaya Genel Bir Bakış[değiştir]

Bu bölümde KDC olarak işlev yapacak bilgisayarların ve yazılımları yapılandırmaları anlatılacaktır. Önerilen yapılandırmalarda küçük ayarlamalar yapmak isteyebilirsiniz ama KDC'nizi yapılandırırken burada gösterilen bazı anahtar noktaları hatırlamanız çok önemli olacaktır. Bu yüzden, eğer alternatif bir yapılandırma stratejisi izlemeye karar verirseniz buradakileri anladığınızdan emin olun.

Bilgisayarlar Kerberos artalan sürecini çalıştıracak ve parolaları saklayacak olduklarından, sunucuların güvenli kalabilmeleri için bulundukları ağın güvenliği son derece önemlidir. Bu sunucuların ele geçirilmesini önlemek için mümkün olan bütün önlemleri almamız gerekir. Bu bölümdeki tüm güvenlik uyarıları dikkatle uygulanmalıdır.

Güvenlik tavsiyelerinin anahtar noktası Kerberos KDC servisi verecek sunucunun adanmış sunucu olmasıdır. Bu sunucunun fiziksel güvenliğini sağlamalı ve üzerinde çalışacak GNU/Linux'u mümkün olduğunca güçlendirmelisiniz. Eğer KDC ele geçirilirse tüm Kerberos alt yapınız ele geçirilmiş olur.

Donanım[değiştir]

Kerberos servisi donanıma fazlaca bağlı olmadığından ve Kerberos servisleri yedekli çalışabildiğinden sunucunun donanımı minimum olabilir. İşlettiğim Kerberos sunucularım bir PIII işlemcisi ve iki RAID 1 diski olan sunuculardı. Bu bilgisayarlar günde elli ila yüz bin arası kimlik denetimi yapması gereken sunuculardı. Sunucular yedekli NIC kartları ile çalıştırılırken her iki kartın birden etkin olmamasına dikkat edilmesi gerekir. Kerberos'da biletler KDC'nin IP'sini de içerdiğinden eğer bir istemci kimlik denetimi sırasında KDC'nin birden fazla arabirimi ile iletişim kurarsa kimlik denetiminde zorluklarla karşılaşabilir.

Kerberos servisinin adanmış bir sunucu üzerinde çalışmasına dikkat edilmelidir. Adanmış bir sunucu ile kastedilen sadece Kerberos yöneticisinin oturum açmasının gerekeceği bir sunucudur. Bu aynı zamanda, belki SSH hariç, başka hiç bir servisin çalışmaması anlamına da gelmelidir. Tüm kullanıcılarınızın parolaları Kerberos sunucuları üzerinde tutulacağından bu donanımlara erişimi mümkün olduğunca kısıtlamak iyi olacaktır. Kerberos için adanan sunucuların fiziki güvenliklerini de mümkün olduğunca sağlamak gereklidir. Kerberos sunucuları için bu güvenlik sunucuların bir kabin içerisine kilitlenmesi ve adanmış bir terminalin kullanılmasını da kapsar.

Kerberos'un yedekli çalışma özelliğinden faydalanabilmek için en az iki bilgisayar KDC olarak çalışmalıdır. Kerberos bir ana (master) sunucu ve bir veya daha fazla yardımcı (slave) sunucu ile çalışabilecek şekilde tasarlanmıştır. İstediğiniz kadar ikincil sunucunuz olabilir.

GNU/Linux Kurulumu[değiştir]

GNU/Linux kuracağımız sunucular sadece Kerberos servislerinde kullanılacağından güvenliklerini sağlamak için birkaç ilave işlem yapabiliriz.

İlk olarak, sadece Kerberos servisleri için gerekli yazılımları kuracağız. Bu tanım temel işletim sistemini ve Kerberos yazılımını kapsar. X'i veya herhangi bir GUI uygulamasını kurmayacağız. SSH kurulumu isteğe bağlıdır. Eğer sunucuları uzaktan yönetmek isterseniz SSH kurabilirsiniz. Ama sunuculara sadece onlara bağlı terminalden erişmek sunucuları önemli derecede daha fazla güvenli kılar.

Fedora Core GNU/Linux'da Kerberos servisi vermek için gerekli paketler şunlardır:

   krb5-server
   krb5-libs

Bilgisayarları KDC servisleri haricinde bir iş için kullanmak istemediğimizden belgeler veya geliştirme kütüphaneleri kurulmayacaktır.

Sıradaki adım gerekli olmayan bütün portların kapatılması ve gerekli tüm yamaların yapılmasıdır. Hangi yönetim yazılımı kurulmuşsa onun güvenlik yamaları yapılmalıdır. Bilgisayarın hangi portları dinlediği netstat komutu kullanılarak öğrenilebilir. Örneğin sadece ssh çalıştıran bir bilgisayarda aşağıdaki sonucu görmelisiniz:

   bash$ netstat -an | grep -i listen | less
   tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN

Son olarak, sunucuyu sadece kimlik denetimi için gerekli sunucularla konuşacak şekilde kısıtlandırarak yapılandıracağız. Bu işlem iptables ile yapılabileceği gibi /etc/hosts.allow ve /etc/hosts.deny dosyalarını düzenleyerek de yapılabilir.

Bir bölge seçmek[değiştir]

Bölge adları büyük-küçük harfe duyarlıdır ve ağınızda benzersiz olmalıdır. İkinci seviye alan adınızı tümü büyük harflerle bölge adınız olarak kullanmak bir uygulama standardı olmuştur. Kerberos'u tüm ağınıza değil de bir alt ağa kuracaksanız bu alt ağın alan adını kullanmalısınız.

Bölge topolojinizi belirlerken, örgütlenmenizin tüm yapısını göz önüne almalısınız. Eğer örğütünüzün bir ya da daha fazla uzak ofisi veya bağımsız alt grubu varsa, onları ayrı bölgelere dahil etmek daha iyi olacaktır. Kerberos bölge topolojisi fiziksel ağ topolojisine değil sistem yönetim topolojisine benzemelidir.

Son olarak, miras sistemleri de örneğin Kerberos mirası veya korumak istediğiniz mevcut ağ topoloji gruplamaları (Windows NT alanı gibi) hesaba katmalısınız.

Eğer halen tüm ağında veya bir alt ağında Kerberos çalışan bir ağa Kerberos kuruyorsanız bölge isimlerinin çakışmasından kaçınmalısınız. Çalışan bir Kerberos sistemi mevcutken yeni bir Kerberos kurulmasına en çok ağların IBM SP kümelemesi içerdiği durumlarda karşılaşılır. Böyle durumlarda en iyi çözüm SP kümelemesi için üçüncü ya da daha üst seviyeden alan adında özel bir bölge yaratarak birincil Kerberos bölgeniz için ikinci seviye alan adını kullanmanız olacaktır.

Bu belgede altyapının tasarımı ve yapılandırmasının tasvirine yardımcı olmak için bir örnek kullanacağız. Örneğimiz için hayali Gnu Üniversitesini (Dublin, İrlanda) kullanacağız. Dublin Gnu Üniversitesi, öğrencilerinin ve fakültelerinin kimlik denetimi için iki Kerberos sunucusu kullanacak. Üniversitenin adresi gnud.ie olduğundan, Kerberos alanı için GNUD.IE adını kullanacağız.

Kerberos yazılımı yapılandırması[değiştir]

Şimdi Kerberos'u yapılandırmalı, bir yönetici yaratmalı, kurallarınızı belirlemeli ve Kerberos'un esas (principal) veritabanını ilklendirmelisiniz.

İlk adım /etc/krb5.conf yapılandırma dosyasını düzenlemektir. Bu dosyada bölge belirlenir, Kerberos sunucuları belirtilerek bölge tanımlaması genişletilir ve son olarak alan bölgesi ayarlanır. Bizim örneğimizde bu aşağıdaki gibi yapılır:

   default_realm = GNUD.IE
   [realms]
    GNUD.IE = {
     kdc = kerberos1.gnud.ie:88
     kdc = kerberos2.gnud.ie:88
     admin_server = kerberos1.gnud.ie:749
     default_domain = gnud.ie
    }
   [domain_realm]
    .gnud.ie = GNUD.IE
    gnud.ie = GNUD.IE

Kerberos veritabanını yaratmak ve ilklendirmek için aşağıdaki komutu çalıştırmalısınız:

   {Kerberos1}bash# /usr/Kerberos/sbin/kdb5_util create -s

-s seçeneği ile KDC'ye kendisinin kimlik denetimi için bir gizli dosya yaratması söylenir. Bir bölge belirlemek için -r seçeneğini kullanabilirsiniz. Yeni veritabanı için bir bölge belirlemek ancak krb5.conf dosyasında birden çok bölge tanımlıysa gerekli olur.

Ardından Kerberos sizden veritabanı için bir yönetici parolası ister. Bu parolayı unutmamanız çok önemlidir. Eğer bu parolayı unutursanız Kerberos'u yönetemezsiniz.

KDC'ye yönetici olarak erişebilmek için acl dosyasını düzenlemelisiniz. Bu dosya öntanımlı olarak /var/Kerberos/krb5kdc/kadm5.acl konumundadır. Gerekirse acl dosyasının yerini kdc.conf dosyanızda belirtin. kdc.conf dosyanızın yeri /etc/krb5.conf dosyasında yazar, öntanımlı olarak /var/Kerberos/krb5kdc/kdc.conf konumundadır. Örneğimizdeki Dublin GNU Üniversitesi için acl dosyamızı aşağıdakileri içerecek şekilde düzenleyeceğiz:

   */admin@GNUD.IE     *

Bu acl'ler GNUD.IE bölgesinde /admin ile biten bir hesabın tam erişim yetkisine sahip olduğu anlamına gelir.

Şimdi yönetici kullanıcılarımızın erişimini ayarlamalıyız; önce yönetici kullanıcıları yaratalım. Bunu KDC'de root kabuğunda kadmin.local komutunu addprinc komutu ile birlikte çalıştırarak yapabilirsiniz. Yöneticinin kullanıcı adı standart olarak admin'dir. Dublin GNU Üniversitesi Kerberos Yöneticisi için aşağıdaki komut yeterli olacaktır:

   {Kerberos1}bash# /usr/Kerberos/sbin/kadmin.local -q "addprinc admin/admin"

Sunucuda çalışması gereken artalan süreçleri krb5kdc ve kadmin'dir. Eğer gerekirse krb524 çalıştırılarak Kerberos 4 istemcileri için geriye dönük uyumluluk sağlanabilir. krb524 uygulamasını çalıştırmadan önce Kerberos 4 ile ilgili güvenlik uyarılarımızı hatırlayın ve ancak mutlaka bu işlevin gerekli olduğundan emin olduğunuzda çalıştırın. krb5kdc ve kadmin'nin KDC'de otomatik başlayacak şekilde yapılandırılması için chkconfig komutu kullanılabilir.

   {Kerberos1}bash# /sbin/chkconfig krb5kdc on
   {Kerberos1}bash# /sbin/chkconfig kadmin on

Son olarak, aşağıdaki komutları kullanarak elle başlatalım:

   {Kerberos1}bash# /etc/rc.d/init.d/krb5kdc start
   {Kerberos1}bash# /etc/rc.d/init.d/kadmin start

ve artık çalışan bir KDC'miz var.

Yetkili kullanıcı yaratma[değiştir]

Aşağıdaki komutla Kerberos'da ilk yetkili kullanıcınızı yaratabilirsiniz:

   {Kerberos1}bash# kadmin.local
   {Kerberos1}kadmin.local: addprinc kullanıcıismi

Kerberos ile destekleyeceğiniz çok sayıda kullanıcınız varsa hesapların açılması için bir betik yazılabilir.