Active Directory (AD)
Active Directory (AD), Microsoft’un Windows Server işletim sistemi üzerinde çalışan bir dizin hizmetidir. Kısaca merkezi yönetim sistemi denilebilir. Active Directory’nin ana işlevi; yöneticilerin izinleri yönetmesi ve ağ kaynaklarına erişimi kontrol etmesini sağlayan bir veritabanıdır. Active Directory’de veriler; kullanıcılar, gruplar, uygulamalar ve cihazları içeren nesneler olarak depolanır. Depolanan bu nesneler, adlarına ve niteliklerine göre kategorilere ayrılır.
Active Directory ilk olarak Windows Server 2000 ile hayatımıza girdi ve zamanla windows server 2003, 2008, 2012, 2016, 2019 ve 2022 işletim sistemlerinde kendini geliştirerek günümüzdeki halini almıştır. Active Directory servisi, yalnızca az önce belirtiğim işletim sistemleri üzerine kurulabilir.
Active Directory servisinin kurulduğu sunucu Domain Controller (DC) olarak adlandırılır. Yani Domain Controller, Active Directory’deki veritabanın, her şeyin tutulduğu makinalardır. AD’nin kalbidir. Bu yüzden DC sunucular doğrudan siber ataklara karşı hedefte olurlar ve bu sunucuların güvenliği, gizliliği ve yedekli çalışması çok önemlidir.
Active Directory neden gereklidir?
Active Directory, kuruluşlar için güvenliği artırırken yöneticiler ve son kullanıcılar için hayatı kolaylaştırır bunun sebebi ise merkeziyetçi yönetim sistemi olmasından kaynaklanmaktadır. Active Directory’i daha iyi anlamak için öncelikle Active Directory haricindeki sistemler hakkında da bilgi sahibi olmamız gerekir.
Aynı networkte bulunan birbirinden bağımsız bilgisayarların kullanıcı ve parola bilgilerini tutan kendi küçük veritabanı(SAM) bulunmaktadır. Microsoft bağımsız bilgisayarların bir araya gelerek oluşturduğu ağı Workgroup olarak tanımlamaktadır. Yani her bilgisayarın kendine ait kullanıcısı vardır ve kullanıcı hakları ve izinler sadece yerel kullanıcılara tanımlanabilir. Örneğin, bir firmanın 100 çalışanı var ve bu 100 çalışanında bilgisayarı olsun. Yani toplamda 100 bilgisayarımızın olduğunu düşünelim.
Bu 100 PC’yi düşündüğümüzde her PC’de kullanıcıların kendi veritabanları vardır. Yani her bilgisayarın kullanabileceği kullanıcıları bellidir. Şekil 1’de görüldüğü gibi; Ali kullanıcısı PC01’de, Ayşe kullanıcısı PC02’de, Ahmet ve Mehmet kullanıcıları ise PC100’de yetkilidir ve sadece bu bilgisayarları kullanabilirler.Firmanızda 100 PC bulunması demek, 100 tane farklı kullanıcı veritabanı demektir.Sadece 1 kullanıcının, diğer 100 bilgisayarda oturum açabilmesini istiyorsanız, o kullanıcı için 100 bilgisayarda teker teker hesap oluşturmanız gerekmektedir.
Kullanıcı sayısının daha da büyüdüğünü düşünürsek ve farklı şehirlerden, ülkelerden kullanıcılar da eklersek durum daha da korkunç bir hal alacaktır ve bu yapıyı kullanmak imkansız olacaktır. Böyle bir yapıyı yönetmek, kontrol etmek, böyle bir yapı da kullanıcıları ve bilgisayarları belli bir düzene sokmak imkansızdır. Microsoft, bu durumun önüne geçmek için 1993 yılında çıkarmış olduğu Windows NT işletim sistemi ile birlikte bir sistem geliştirdi ve bu sisteme “domain sistemi” dedi. Microsoft çıkardığı bu sistem ile birlikte bütün bilgisayarları bir domain yani etki alanı içerisinde birleştirmeyi düşündü ve bütün bilgisayarların local kullanıcı veritabanlarının üstünde bir domain veritabanı düşünüldü ve Windows NT işletim sistemi ile birlikte hayata geçirdi. Daha sonra Microsoft, Windows Server 2000 işletim sistemi ile birlikte bu yapıyı dahada geliştirerek ve ilerleterek Active Directory(AD) terimini ortaya çıkardı.
Microsoft’un çıkarmış olduğu Windows 2000 serisi ile birlikte Active Directory’de; kullanıcılar, PC’ler, sunucular vs. coğrafik olarak dünyanın neresine yayılırsa yayılmış olsun ya da aynı ortamda bulunması farketmez, bir etki alanı yani domain oluşturabiliyorsunuz ve bu etki alanında domain veri tabanını oluşturabiliyorsunuz. Bu sayede bütün kullanıcılar, sunucular,
bilgisayarlar, bu veritabanından authentication sağlayabiliyorlar, yönetilebiliyorlar, kurallar atayabiliyorlar ve bütün sistemi avucunuzun içinde tutabiliyorsunuz.
Özetle AD ile birlikte her kullanıcı ya da her bilgisayarın veritabanı bir etki alanı içerisinde dahil edilir ve bu veritabanları tek bir yerde tutulur ve yönetilir. Günümüzde IT dünyasında AD yapısının yakınından geçebilen bir başka alternatifi yoktur. Microsoft’un amiral gemisidir. Microsoft ürünlerinin temelini oluşturur ve her şey o temelin üzerine inşa edilir.
Domain, aynı Active Directory veritabanında bulunan nesnelerin paylaşılmasını sağlayan mantıksal gruplara denir. Domainde bulunan tüm bilgisayarlar, cihazlar aynı alan adını yani etki alanını paylaşırlar. Örnek olarak domain adı ilkerokur.com ise ve bu domaindeki herhangi bir bilgisayar ismi PC01 olduğunu varsayalım ve cihaz ismini ağda PC01.ilkerokur.com olarak paylaşır.
Active Directory veritabanında bulunan veriler; yani kullanıcılar, gruplar, cihazlar, bilgisayarlar, sunucular nesne / object olarak depolanır.
Active Directory Mimarisi
Oluşturulan ilk Windows Server Domain’i, Active Directory yapısındaki Kök Domain’i (Root Domain) ifade eder. Bundan sonra oluşturulacak olan yeni ek Domain’ler mantıksal Tree ve ya Forest yapısını oluşturacaktır. Active Directory mimarisi için bazı kavramları kısaca açıklayacak olursak;
Forest; içerisinde bir yada birden fazla domain bulunan Active Directory yapılarına denir. Oluşturulan ilk Domain bir Tree’yi oluşturur ve ilk Tree’nin oluşturulmasıyla Forest’da oluşmuş olur. Sonradan bu Forest’a eklenecek olan domainler, diğer domainlerle yani Tree’lerle aynı isim aralığını paylaşmayacak olsalar da aynı Schema ve Global Catalog’a sahip olurlar. Forest oluşturulurken kurulmuş olan ilk Tree Forest-Root olarak bilinir ve diğer Tree’ler bu Forest Root altında toplanırlar.
Tree; kademeli ağaç dalları şeklinde olan domain bağlarına Tree yapısı denmektedir.
Domain; içerisinde child domainler, kullanıcı hesapları, organizational unitler(OU), bilgisayarlar, cihazlar vs. barındırabilen etki alanına denir.
Child Domain; üzerinde bir domaine bağlı olarak çalışan yani kök domain ismini koruyarak alt domain oluşturulmasına child domain denir. Örneğin; şirketinizin prosedürel yada güvenlik sebepleri nedeniyle İstanbul’da bir yapı oluşturduğunu ve gerekli ihtiyaçların karşılanması için bu yapıda çalışacak kişilerin ve cihazların kendilerine ait bir domain altına alındığını düşenelim. Bu bir alt domain yani child domain olacaktır. Bu durumda yeni domain’in adı istanbul.ilkerokur.com olacaktır. Aynı Kök (Root) alan adını paylaşan bu gibi iki domainimiz olduğunda (örnekte ilkerokur.com olan) bu iki domain aynı ağacın (Tree) altında olur. ilkerokur.com treenin en tepesinde olduğundan Kök Ağaç (Root Tree) ya da root domain olarak kabul edilir.
Parent Domain; Child domainin bağlı olduğu ana domaine denir. Ayrıca bir child domaine bağlı olan alt domainler varsa, bu child domain altındaki domainin Parent Domain’i de olabilir. Yukarıdaki şekil 4’te görüldüğü gibi ilkerokur.com domaini, istanbul.ilkerokur.com domaininin ebeveyn yani parent domainidir.
Aşağıdaki Şekil 5'te görülen yapı için konuşacak olursak; ankara.ilkerokur.com domaini, abc.ankara.ilkerokur.com ve xyz.ankara.ilkerokur.com domainlerinin parent domainidir. Her domain kendi kullanıcı ve bilgisayar grubuna sahiptir. Bu da her domainin kendi Active Directory veritabanına sahip olduğu anlamına gelir. Tüm bu domainler ilkerokur.com domain adını paylaşır ve Active Directory’de aynı tree’nin içinde bulunurlar. Aynı tree’de bu gibi birden fazla domaine sahip olmanın avantajı, Active Directory’nin otomatik olarak parent ve child domainler arasında trust ilişkisi oluşturmasıdır. Bu güven (trust) ilişkileri, her domain üyelerinin erişime sahip olduklarını varsayarak diğer herhangi bir domaindeki kaynaklara erişim sağlayıp, paylaşımda bulunabilirler.
Aşağıda Şekil 6’da fenerbahce.com etki alan adı yeni domain olarak mevcut yapımıza eklersek, yapımıza yeni bir tree eklemiş olacağız. Bu durumda elimizde ilkerokur.com ve fenerbahce.com adında iki ayrı treemiz ve domainimiz oldu. Birden fazla domainin ve birden fazla treenin bulunduğu bu tek yapıya Orman (Forest) adı verilir.
Bir foresta sahip olmamız için birden fazla domainimizin olması şart değildir. Bunu göstermek için sadece bir domain içeren özgün örneğimiz üzerinden ilerleyelim. İlk domain adı (ilkerokur.com) oluşturulduğunda bir forest otomatik olarak oluşturulur. ilkerokur.com domainine iki adet child domain eklendiğinde bu domainler forestta bir tree oluştururlar. fenerbahce.com domaini de eklendiğinde bu domain ilkerokur.com forestında ayrı bir tree oluşturur. Foresttaki tüm domainlerin ortak bir noktası vardır. Aynı forestta bulunan tüm domainler birbirleriyle Şema (Schema) paylaşımı yaparlar. Ayrıca mevcut forest’ınıza yeni bir forest’ta ekleyebilirsiniz (trust ilişkisi) ancak bu merkeziyetçilik ve yönetilebilir kolaylığı açısından önerilmez. Unutulmamalıdır ki her forest’ın kendine ait scheması bulunur. Eğer bir schema’da değişiklik yapılacaksa dikkatli olmalısınız, istemeden kalıcı değişiklikler yapabilirsiniz… Her zaman tek forest, tek domain’e indirgenmeye çalışılmalıdır. Çünkü tek bir merkezden yönetim daha kolay olacaktır.
Schema; kullanıcı, grup, bilgisayar ve yazıcılar gibi bütün objelere (nesne) ait bilgileri içerir. Windows 2000 ve sonrasında tüm Network yapınız (forest) içerisinde, sadece bir Schema bulundurur ve bütün obje (nesne) bilgileri Schema üzerine yazılır. Schema yapısında, bir objenin sınıfı (class) ve niteliği (attribute) tanımlanabilir. Her domainin tek bir veritabanı kopyası vardır. Schema, foresttaki tüm domainler arasında paylaşılır. Schemada değişiklikler yapıldığında bu değişiklikler foresttaki her domaine kopyalanır. Bir foresta sahip olmanın avantajı, foresttaki tüm domainlerin trust ilişkilerine sahip olmasıdır. Yani güven ilişkisi, aynı treedeki parent ve child domainler arasında ve aynı foresttaki tüm treeler (domainler) arasında otomatik olarak oluşturulur.
Şekil 6’da fenerbahce.com domainindeki bir user xyz.ankara.ilkerokur.com domainindeki bir kaynağa erişebilir. Bu durumda fenerbahce.com domainindeki bir kullanıcı foresttaki herhangi bir domainde bulunan herhangi bir kaynağa erişebilir ve aynı zamanda bu yolun tam tersi de mümkündür.
Global Catalog (GC), Active Directory Forest’ ı içinde yer alan her objeyi bulunduran bir veri tabanıdır ve serverlarda tutulur. Global Catalog Sunucusu, Domain’deki bir Domain Controller’dır ve Domain’de oluşturulan ilk Domain Controller otomatik olarak Global Catalog seviyesine yükseltilir. Sonradan ek Global Catalog Sunucular eklenebilir.
Organizational Unit(OU); bir domain içerisindeki kullanıcı hesaplarını, grupları veya bilgisayarları organize etmek amacıyla oluşturulmuş objelerdir. Organizasyonun ihtiyacını karşılamak ve yönetimi kolaylaştırmak noktasında kullanılırlar. Örneğin departman seviyesinde gruplandırmalar yapılabilir. Muhasebe, Pazarlama, IT, İnsan kaynakları departmanları için OU oluşturulur ve bu şekilde gruplandırılmış olur. Bu işlemler aynı zamanda sistem yöneticilerinin işlerini kolaylaştıracaktır.
Lightweight Directory Access Protocol (LDAP)
Microsoft, Active Directory’yi geliştirirken X.500 dizin hizmetinden yararlanmıştır. Fakat veritabanına erişilebilmesi için başka bir sisteme daha ihtiyaç vardır. X.500 standardında dizin erişim protokolleri mevcuttur. Ancak geliştirildikleri protokollerde ilk fark edilen ağ desteğinin olmamasıdır. Bu nedenle Lightweight Directory Access Protocol (LDAP) olarak da bilinen dizin erişim protokolü geliştirildi.
LDAP, bir network içindeki “dizin hizmetlerini” sürdürmek ve bunlara erişmek için tasarlanmış standart bir protokoldür, adresleme methodudur. Dizin hizmetini dosyalar, yazıcılar, kullanıcılar, cihazlar ve sunucular gibi farklı ağ kaynakları için bir telefon defteri görevi görür. Yani Active Directory objelerine erişim için kullanılır. LDAP ile Active Directory objeleri, OU (Organizational Unit) ve CN (Common Name) kullanılarak Active Directory içerisinde yeniden tanımlanır.
Tüm Active Directory objeleri, network ortamında kendilerine ulaşılmasını sağlayan komple path içeren, distinguished name’e sahiptir.
Örneğin; CN=Ilker Okur , OU=Teknik , DC=ilkerokur, DC=com
LDAP’ta bu tip sözdizimine verilen isim Distinguished Name’dir. Active Directory’de her objenin bir Distinguished Name’i vardır. Tıpkı dosyanın sabit diskte sadece o dosyanın tanımlanması için tam bir yol ve dosya adı olduğu gibi LDAP, Active Directory’de yalnızca o objeyi tanımlamak için Distinguished name sahiptir ve bu şekilde örneğin; kullanıcıların belirli bir yazıcıyı aramasını, ağda bulmasını ve ona güvenli bir şekilde bağlanmasını sağlayabilir.
Burada kullanılan CN Common Name, OU Organizational Unit, DC ise Domain Component anlamındadır. DC, Domain hiyerarşisini belirler. Tüm DNS akışı tek tek yazılır. Örneğin; Domain adı ilkerokur.com ise, DC=ilkerokur, DC=com şeklinde belirtilir.
LDAP’ın çalışma mantığını PC01 isimli makinesinden bulunduğu ağda printer arayan bir istemci için aşağıda maddeler halinde anlatmaya çalışalım…Tipik bir LDAP iş akışı şu şekilde görünür;
1. Kullanıcı, istemcisinden(PC01) LDAP dizini ile güvenli bir bağlantı kurar.
2. Belirli bir printer için dizine bir “arama” sorgusu gönderirler.
3. LDAP dizini kullanıcının kimliğini doğrular.
4. Dizin içinde arama işlemi gerçekleştirilir ve istenen printer için adresi döndürülür.
5. Dizin içerisindeki eşleşme tamamlandığı için LDAP dizinine erişim sonlandırılır.
6. Kullanıcı yazıcıya bağlanır.
Active Directory ile ilgili açıkladığımız bu kavramlar umarım yeterli ve faydalı olmuştur. Artık bir sonraki aşama olan ve bizim yukarıda bahsettiğimiz Active Directory veritabanını üzerinde bulunduracak ve kurulan temelin merkezinde bulunarak domainin en olmazsa olmazı Domain Controller (DC) sunucusunun kurulumuna geçebiliriz. DC sunucusu Active Directory servisinin kalbidir ve hayati öneme sahiptir. Çünkü yazımızda da bahsettiğimiz üzere Active Directory veritabanı DC üzerinde tutulur.
Bir sonraki yazımda, Domain Controller ile Active Directory Domain Servisinin kurulumunda görüşmek üzere…
İyi okumalar dilerim,