 |
İşletim sistemi yöneticileri, BT ekosisteminde üstün yetkilere sahip kullanıcılar olarak kabul edilmektedir. Bu kabulün en belirgin sebebi, iş verisine ve kullanıcıların kritik verilerine erişimin arka kapılarının ellerinde bulundurmalarıdır. Yetkin işletim sistemi kullanıcılarının erişim kontrolü ve denetimi tamamen teknik bir konu olduğundan, bağımsız denetim işlevinin yerine getirilmesi güçleşmekte ve çoğunlukla aynı işin birden fazla kişi tarafından yapılması sağlanarak görevlerin ayrılığı prensibine uyulması yoluna gidilmektedir. Unix işletim sistemlerinin kendi yerel yapıları yerine, merkezi bir LDAP dizin sunucudan kimlik doğrulama ve erişim kontrolü (yetkilendirme) işlevlerini yerine getirmesi mümkündür. Yönetici kullanıcılar BT ekosisteminin doğası gereği her zaman bulunacaktır. Diğer taraftan bu kimliklerin merkezi bir yerden yönetilmesi hem denetimsel hem de yönetimsel avantajlar sunacaktır. İşletim sistemi kullanıcılarının da kimlik doğrulama ve yetkilendirme (veri erişim) işlemlerini merkezi bir LDAP dizinden yapılabiliyor olması KYS’ye (Kimlik Yönetim Sistem) işletim sistemelerinin de entegrasyonu için itici bir faktör oluşturmuştur.
Bu yazı kapsamında açık kaynak kodlu bir LDAP dizininin kurulumu ve
unix işletim sistemlerinin dizin sunucusu ile entegrasyonu
anlatılacaktır. Öncelikle LDAP dizin sunucusu kurulumu ve
yapılandırması sağlayacak ve sonrasında kullanıcıların göçü
gerçekleştirilecektir. Veri göçü kapsamında işletim sistemi
kullanıcıları, grupları ve kullanıcı takma isimleri de aktarılacaktır.
Bu işlemler sonrası işletim sistemleri dizin sunucu üzerinden kimlik
yönetimini gerçekleştirebileceklerdir.
OpenLDAP Kurulumu ve Kullanıcı Göçü
Kurulumlar RedHat tabanlı işletim sistemleri üzerinde gerçekleştirilecektir. Diğer linux ve unix türevi işletim sistemleri de benzer şekilde, kurulacak birkaç paket ismi farklı olmak kaydıyla, LDAP sunucu ile entegre edilebilir. Uygulamalarınız hali hazırda bir KYS’ye (Kimlik Yönetim Sistemi) entegre çalışıyor ise, OpenLDAP yerine KYS’nin kullanıyor olduğu LDAP dizinin kullanılması tercih edilmelidir.
OpenLDAP Kurulumu
1. İşletim sisteminize uygun OpenLDAP [2] sürümünün kurulmasını sağlayınız.
yum install openldap-servers.i386
2. /etc/openldap/slapd.conf
dosyası, LDAP dizin sunucumuzun konfigurasyonu için kullanılmaktadır. Bu dosyaya ilk olarak aşağıdaki satırlar eklenmelidir.
include /etc/openldap/schema/kerberosobject.schema
TLSCACertificateFile /etc/openldap/cacerts/KOKSHS.v3.pem
TLSCertificateFile /etc/openldap/certificate.pem
TLSCertificateKeyFile /etc/openldap/certificate.pem
suffix "dc=kurum, dc=etkialani, dc=com"
rootdn "cn=root, dc=kurum, dc=etkialani, dc=com"
rootpw {crypt}ijFYNcSNctBYg
kerberosobject.schema şema dosyasının birkaç alt elamanı (attribute) daha sonra Kerberos protokolü üzerinden kimlik doğrulama işlemi için kullanılabilir. Bu dosya OpenLDAP kurulumu ile gelmemektedir ve ayrıca temin edilmelidir.
“rootdn” dizin yöneticisini belirlemektedir ve şifresi “rootpw” olarak, slappasswd uygulaması tarafından özeti alınarak atanmıştır. TLS yada SSL bağlantılar için kullanacağınız kök sertifikası, açık anahtar ve özel anahtar dosyalarının konumları belirtilmiştir.
Kullanıcı, Grup ve Konfigurasyon Göçü
OpenLDAP kurulumu ve gerekli ayarlar sonrası MigrationTools [1] betikleri kullanıcı verileri ve konfigürasyonları LDAP dizinine aktarmak için kullanılacaktır.
1. migrate_common.ph dosyasında aşağıdaki güncellemeler yapılmalıdır.
$DEFAULT_MAIL_DOMAIN = "kurum.etkialani.com";
$DEFAULT_BASE = "ou=unix,dc=kurum,dc=etkialani,dc=com";
$DEFAULT_MAIL_HOST = "mailsunucu.kurum.etkialani.com ";
$IGNORE_UID_BELOW = 500;
$EXTENDED_SCHEMA = 1
$DEFAULT_BASE sabiti, /etc/openldap/slapd.conf dosyasında belirlenen suffix değerine uygun oluşturulmalıdır. MigrationTools tarafından oluşturulan ldif uzantılı içe aktarım dosyaları dizin üzerinde, "ou=unix,dc=kurum,dc=etkialani,dc=com" yapısını da sizin için oluşturacaktır. $IGNORE_UID_BELOW ile de işletim sistemi tarafından kullanılan kullanıcıların aktarılmasını engelleyebilirsiniz.
2. MigrationTools içinde bulunan, migrate_base.pl, migrate_group.pl, migrate_aliases.pl ve migrate_passwd.pl perl betiklerini çalıştırmak, ilgili içe aktarım dosyalarının oluşturulması için yeterli olacaktır.
Bu betikleri çalıştırıp, kendi isimleri ile aynı ldif dosyaları oluşturduğunuzu varsayalım, bu durumda içe aktarma sırası:
-
migrate_base.ldif
-
migrate_group.ldif
-
migrate_passwd.ldif
-
migrate_aliases.ldif
şeklinde olabilir.
3. (Opsiyonel) kerberosobject.schema şema alt özelliklerinin aktarılmasını istemiyorsanız, migrate_passwd.pl dosyasında
#if ($DEFAULT_REALM) { # print $HANDLE "objectClass: krb5Principal\n"; #}
ve
# if ($DEFAULT_REALM) { # print $HANDLE "krb5PrincipalName: $user\@$DEFAULT_REALM\n"; # }
satırlarının deaktive edilmesi gerekmektedir.
4. Oluşturulan ldif dosyalarının içeri atılması için, her bir dosya üzerinde ayrı ayrı çalıştırılmak üzere,
ldapmodify –D “cn=root,dc=kurum,dc=etkialani,dc=com” –w “root_sifresi” -c –a –f dosya_ismi.ldif
komutu kullanılabilir. Bu işlemler sırasında birkaç hata alınması normaldir. Problemi çözüp tekrar aktarım yapmadan önce dizin sunucusu üzerinde bulunan yapıların temizlenmesi faydalı olabilir. ldapmodify komutu, aktarılmış olan verilerin güncellenmesi için de kullanılabilir ( -a seçeneği olmadan çalıştırılmalıdır).
LDAP Dizin Yönetimi
LDAP dizin yapınızda veri güncelleme ve ekleme işlemleri için, Apache Directory Studio ya da web tabanlı Phpldapadmin [3] gibi uygulamalar kullanabilirsiniz.
OpenLDAP ya da OpenDS dizin sunucularını kullanmanız durumunda, kimlik ekleme, güncelleme, şifre değiştirme işlemleri için web arayüzü olan basit bir uygulama geliştirilmesi gerekmektedir. Ayrıca kullanıcıların kendi şifrelerini değiştirmesine izin vermek için intranet (internet) portalinizde küçük eklentiler yapmak sağlıklı bir kimlik yönetimi açısından gereklidir. Webmail ürünlerinin birçoğu LDAP dizin üzerinden kullanıcı yönetimi sağlayan eklentiler barındırmaktadır.
OpenDS kullanmanız durumunda, yönetim arayüzü (control center) dizin sunucu ile kurulu olarak gelecektir. LDAP sunucu olarak Aktif Dizin kullanmanız durumunda ise Microsoft Windows Services for Unix 3.5 kurulması ve sonrasında Aktif Dizin’e aktarımların yapılması gerekmektedir. Diğer taraftan, Aktif Dizin kullanılması durumunda, bu dizinle daha entegre çalışacağı ve şifre politikalarını da (şifre değiştirmeye zorlamak gibi) yönetmenize izin vereceği için, Winbind servisi aracılığı ile Aktif Dizin’e entegrasyon da gerçekleştirilebilir. Winbind seçeneği, hem işletim sistemi, hem Aktif Dizin hem de Winbind uygulamasının kendisinde birbirinden bağımsız güncellemeler olabileceğinden, işletim sistemine girişinizi engelleyecek sürprizlerin oluşması sonucunu doğurabilir.
Unix İstemcilerin LDAP Üzerinden Kimlik Yönetimi
Daha önce de belirtildiği üzere, bu makale kapsamında RedHat linux dağıtımı prototip olarak kullanılmıştır. Geçiş sonrası amaçlanan bütün sunucuların kimlik yönetiminin merkezileştirilmesi ve LDAP dizin üzerinden yönetiminin sağlanması olacaktır. Bu nedenle, bütün istemcilerde kimlik yönetiminin LDAP dizine taşınması önemlidir. Unix sunucuların geçişi sonrası yapılabilecek diğer bir işlem de, unix kullanıcı hesaplarının Windows işletim sistemleri hesapları ile örtüşmesi durumunda, Aktif Dizin ile ortak olan kullanıcıların şifrelerinin LDAP dizin ile senkronizasyonu temin edilmelidir. Şifrelerin tekilleşmesi bilgi güvenliği ekosistemi için ek bir güvenlik önlemi olacaktır. Önemli bir güvenlik önlemi olarak, LDAP dizin sunucu ile istemciler arasında mutlaka şifreli veri transferi sağlanmalıdır. Bu makale kapsamında hem TLS hem de SSL bağlantı mümkün olacaktır.
1. Öncelikle ilgili makineye TLS için kullanılan sertifikaları imzalamış olan kök sertifikalar yüklenmeli ve tüm kullanıcıların sertifika dosyalarını okumaları sağlanmalıdır. LDAP dizin ile entegre çalışmasını planladığınız sunucu sayısı fazla ise, sunucu bazında sertifika almak yerine, etki alanı (domain) bazında sunucu sertifikası (wildcard certificate) kullanmayı tercih edebilirsiniz.
[root@sunucu~]# scp -p dizin_sunucu:/etc/openldap/cacerts/*.pem /etc/openldap/cacerts/
[root@sunucu ~]# chmod 644 /etc/openldap/cacerts/*.pem
2. PAM modülünün birincil olarak LDAP dizin sunucu üzerinden kimlik doğrulama ve yetkilendirme sorgularını gerçekleştirebilmesi için gerekli ayarlar yapılmalıdır. Kimlik doğrulama ve yetkilendirme (kullanıcı grubu sorgulama) işlemleri için, işletim sistemi yerel deposu ile LDAP dizin arasında öncelik sırasını kontrol etmek için /etc/nsswitch.conf dosyasını kullanabilirsiniz.
[root@sunucu ~]# authconfig-tui
authconfig-tui ekranından istemci işletim sistemi üzerinde LDAP kimlik doğrulama aktive edilmelidir. Aşağıdaki resimlerde yapılandırma gösterilmektedir.
Şekil 1: authconfig-tui yapılandırması 1. ekran
Şekil 2: authconfig-tui yapılandırması 2. ekran
Son olarak, kullanıcı eklenmesi sırasında, önceden var olmayan ev dizinlerinin otomatik oluşturulabilmesi için /etc/pam.d/system-auth dosyasına aşağıdaki satır eklenmelidir.
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
Bu ayar sonrası, ou=unix (Organizational Unit) altında tanımlı kullanıcıların, TLS yada SSL şifreli veri transferi kullanarak, kimlik doğrulama (şifre sorgusu) ve yetkilendirme (grup sorgusu) işlemlerini gerçekleştirebilecektir.
Host ve URI LDAP Ayar Parametreleri
Kullanılan LDAP istemci ve kütüphane versiyonuna bağımlı olarak sistemlerde /etc/ldap.conf dosyasında
host ldap://dizin_sunucu.kurum.etkialani.com
yerine
uri ldap://dizin_sunucu.kurum.etkialani.com
olarak değiştirilmelidir. Diğer taraftan sisteminizde hem /etc/ldap.conf hem de /etc/openldap/ldap.conf dosyalarının var olması durumunda, karışıklığa engel olmak için aşağıdaki şekilde /etc/openldap/ldap.conf dosyasının /etc/ldap.conf dosyasına link olması sağlanabilir.
rm /etc/openldap/ldap.conf
ln -s /etc/ldap.conf /etc/openldap/
SONUÇ
Unix ve linux tabanlı sunucuların LDAP dizin üzerinden kimlik yönetimini gerçekleştirmesi, standart dışı görülen bir uygulama olmasına karşın, çoğunlukla bu konuda var olan gelenekçi yaklaşım sebebiyle atıl kalmış ve önemli bir yönetimsel kolaylık ve güvenlik adımı atlanmıştır. Windows işletim sistemlerinde ise bu durum olağan olarak karşılanmış ve uzak ofislerdeki kullanıcıların bile etki alanları üzerinden merkezi kimlik yönetiminin başarımı sağlanmıştır.
Hangi LDAP dizinin kullanılacağı ve süper kullanıcıların (root) kimlik yönetiminin de LDAP dizin üzerinden mi yapılacağı gibi konular, kurum ve kuruluş bazında karara bağlanmalıdır. Yerel yetkili kullanıcı ve LDAP dizinden kimlik doğrulayan yetkili kullanıcı ayrımına gidilmesi tercih edilebilir.
Kurumsal bazda karşılaşılacak en büyük sorun, kimliklerin yönetiminin yapılacağı bir arayüzün, açık kaynak kodlu LDAP dizin kullanılması durumunda, bulunmamasıdır. Küçük programcıklar yardımı ile bu arayüzleri oluşturmak mümkündür. Diğer taraftan, kimlik yönetim sistemi ürünleri kullanıyor iseniz, bu ürünler tarafından zaten kullanılmakta olan LDAP dizin ile entegrasyon gerçekleştirilir ise, bu ürünlerin kimlik yönetimi arayüzleri kullanılabilir. Örneğin: OpenSSO üzerinden kaynak erişim kontrolü ve tümleşik oturum yönetimi gerçekleştiriyor iseniz, unix tabanlı işletim sistemlerinin OpenDS ile entegrasyonu sağlanır ise, kimlik giriş, güncelleme ve şifre işlemleri OpenSSO yönetim arayüzü tarafından yapılabilecektir.
KAYNAKÇA
[1] MigrationTools
http://www.padl.com/OSS/MigrationTools.html
[2] OpenLDAP
http://www.openldap.org/
[3] PHPLdapAdmin
http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page
Favori olarak ekle (0) | Görüntüleme sayısı: 1233
Sadece kayıtlı kullanıcılar yorum yazabilir. Lütfen sisteme giriş yapın veya kayıt olun. |