Active Directory (AD) Onarımı

Murat Yıldırımoğlu, Windows 2000 Magazine dergisinden çeviri

 

Active Directory (AD), Windows 2000’in yeni teknolojilerinin temeli durumundadır. AD, aşırı miktarda fazla yapılandırma bilgileri için merkezi veritabanı durumundadır. Bu yüzden  de AD’nin sağlığı sisteminizin sağlıklı çalışması için çok önemlidir. Eğer AD arızalanırsa büyük olasılıkla sizinbilişim altyapınız da kullanılmaz duruma gelecektir. Buyüzden iyi bir AD yıkımdan kurtulma planı yaşamal öneme sahiptir.

          Doğru bir yıkımdan kurtulma planlaması  bir arıza çıkmadan çok önce başlamalıdır. Bir AD geri dönüş planı, kümeleme, RAID, yedekleme ve geri yükleme işlemlerini içermelidir. Aynı zamanda her etki alanınız ve her coğrafi yeriniz için yeterli sayıda etki alanı denetcisine (DC) de sahip olmalısınız.  Yedeklemeniz gereken minimum bilgiyi bilirseniz başarılı bir yedekten geri yükleme işlemi gerçekleştirebilirsiniz.

 

DC’ler Anahtar Roldedir

Bir etki alanındaki her DC, etki alanının AD bilgisine sahiptir. Bu yüzden bir AD yıkımdan kurtulma planı aslında bir ya da birden fazla DC’yi kurtarma ve değiştirme işleminden ibarettir. Win2K’de her DC’de dizinin okunur/yazılır bir kopyası bulunur ve bir DC’deki dizinde gerçekleşen bir değişiklik diğer DC’lere aktarılır (çok merkezli çoğaltma). Win2K sisteminiz, etki alanındaki tek bir PDC’ye dayanmadığı için Win2K, NT 4.0’a göre  daha ölçeklenebilir ve hataya karşı dayanıklıdır.  Ama çok merkezli çoğaltma modeli bazı kurtarma işlemlerini daha karmaşık duruma sokabilir. Bu yüzden AD çoğaltma işlemini iyi anlamanız gerekir.

 

Neleri Yedeklemeli

Başarılı bir yedekten geri dönme işlemi için önceden doğru verilerin yedeklenmiş olması gerekir. AD, ağınızdaki bütün DC’lerde bulunduğu için AD’nin tümüyle kurtarılması için her DC’nin tam ve düzgün bir şekilde yedeklenmiş olması gerekir. En azından bütün Global Catalog (GC) sunucularını ve bütün Operations Masters bilgisayarlarını yedeklemelisiniz. Bu bilgisayarların herşeylerinin yedeklenmiş olması idealdir ama özel olarak yedeklemeniz gereken yerler DC’lerdeki sistem bölümü ile System State verileridir. DC üzerindeki System State bilgileri AD’yi ve AD’ye dayanan hizmetlerin gerek duyduğu dosyaları (Kayıt, başlama dosyaları, Sysvol, Certificate Services veritabanı ve Microsoft Cluster service) içerir. DNS bilgileri AD için yaşamsal öneme sahiptir. AD ile tümleşik  DNS alanları AD içinde saklanır ve System State ile birlikte yedeklenir ama diğerlerinin bilgileri  AD içinde saklanmaz, \system32\dns klasöründeki dosyalar içinde saklanır. DC’lerde  sistem bölümünü yedeklemeyi önermemizin bir nedeni de budur. (System State’in yedeklenmesine ilişkin olarak “İlişkili Makaleler” bölümüne bakınız.)

          Yedekleme konusunda ço sayıda Win2K onaylı yedekleme ürünü bulunsa da Win2K ile birlikte gelen yedekleme programı hem her şeye yeter. Microsoft, Windows’un yedekleme programını geliştirdi, bant yedekleme ortamları dışındaki ortamlara da yedekleme yapılabilmesini, yedeklemenin zamanlanabilmesini sağladı. Bu uygulamayı açmak için Start, Programs, Accessories, Backup’ı tıklayın ya da Start, Run’dan şunu yazın:

 

ntbackup

 

Her iki durumda da karşınıza çıkan backup penceresinde Şekil 1’de görüldüğü gibi, sol taraftaki bölümde System State kutusunu işaretleyin.  System State’i yedekleyebilmeniz için Backup Operators ya da  Administrators grubunun üyesi olmalısınız; System State’i geri yüklemek içinse yerel Administrators grubunun üyesi olmalısınız. System State’in yedeklenmesi sırasında kullanılabilecek tek yedekleme tipi normal yedeklemedir (yani, Copy, Daily, Differential ya da Incremental yedekleme tiplerini seçemeyiz.) Normal yedekler diğer yedek tiplerine göre daha fazla zaman alsa da yedeği sunucu çalışır durumdayken alma olanağınız bulunmaktadır. Win2K’in yedekleme programında, diğer üçüncü parti yedekleme yazılımlarında olmayan bir kısıtlama vardır: Bu programla yalnızca yerel AD yedeği alabilirsiniz, uzaktaki bilgisayarların System State’i yedeklenemez.

 

Ek Bilgi

Yedekleme dışında iyi bir yıkımdan kurtulma planı hangi DC’lerin GC sunucuları ve Operations Master olarak hizmet verdiği bilgisini de içermelidir. GC sunucuları, ormandaki her nesnenin bilgisinin bir bölümünü tutar. Bu sayede tüm AD’yi, her DC’ye tek tek gitmeden, yalnızca GC’ye giderek sorgulayabiliriz. Hangi DC’lerin GC olduğunu görmek için Active Directory Sites and Services konsolunu kullanabilirsiniz. (Konsolda bir DC’nin Ntds nesnesine sağ tıklayın ve properties’e geçin.  Eğer sunucu bir GC ise karşınıza çıkan diyalog kutusunda, Global Catalog onay kutusu seçili olacaktır.)

          Operations Master olarak nitelenen DC’ler bazı özel işlevleri üstlenmişlerdir. Bu özel işlevler, çok merkezli çoğaltma işlevini kullanmazlar; yani bu işlevler her DC’de gerçekleştirilmez, tek bir DC’de Operations Master olarak nitelenen DC’de gerçekleştirilir. Örneğin, AD şeması dizin içinde hangi nesnelerin bulunduğunu ve bu nesnelerin hangi özelliklere sahip olduğunu belirler. Bu şema tek bir DC’de, Schema Master DC’de güncellenebilir. (Operations Master’lara ilişkin ayrıntılı bilgi için İlişkili Makaleler bölümüne bakınız.) Üç adet master rolünü (PDC Emulator, RID ve Infrasturcture Master) hangi DC’lerin üstlendiğini görmek için Active Directory Users and Computers konsolunu kullanabilirsiniz. (Bu konsolda etki alanınızı sağ tıklayın, Operations Masters şıkkını seçin). Schema Master rolünü üstlenen DC’yi bulmak için Active Directory Schema konsolunu, Domain Naming Master’ı bulmak için de Active Directory Domains and Trusts konsolunu kullanmalısınız. Bu rollere sahip DC’leri görmek için komut satırından çalışan ntdsutil programını da kullanabilirsiniz.

          Normalde ormanın kökündeki ilk DC bütün rolleri üstlenmiş durumdadır ama sonradan bu rolleri başka DC’lere dağıtabilirsiniz. Ama bu sunucu GC ya da herhangi bir rol için master olmasa da bilgisayarların saatini senkronize etme konusunda konusunda büyük bir öneme sahip olacaktır. Bu işlev de Kerberos için önemlidir. Bu yüzden bu DC’yi de yedeklemeyi unutmayın.

 

Arızalanan bir DC’yi Eski Durumuna Getirme

Hangi DC’lerin ne gibi işlevler içerdiğini ve bir DC üzerinde nereleri yedeklemeniz gerektiğini bildiğinize göre bir yedekten geri yükleme yöntemi planlamalısınız. Duruma göre yeniden kurarak ya da yalnızca yetkili ve yetkisiz geri yükleme yaparak AD’yi kurtarabilirsiniz.

 

Yeniden Kurma Yoluyla AD’yi Eski Durumuna Getirme

Veritabanında ya da diğer verilerinde sorun olduğunu düşündüğünüz bir DC’de AD’yi kurtarmanın en kolay yolu Win2K’yi yeniden kurmak sonra da Active Directory Installation Wizard’ı (DCPromo) çalıştırmaktır. Dcpromo programı çalışırken sistem var olan bir DC ile ilişkiye geçer ve AD’nin güncel bir kopyasını eld eder.

          Bu işlem yeni bir DC yaratır. Bu yöntemde çıkabilecek bazı sorunlardan kaçınmak için birkaç şeye dikkat etmek gerekir. Eğer yeniden kurulumu gerektiren sorunlar çok ağırsa bu DC’yi normal bir sunucu durumuna indirme fırsatı bulamamış olabilirsiniz. Bu durumda AD içinde eski bilgisayar DC olarak görünecek bu da adlandırma çelişkilerine neden olacaktır. Bu sorunu gidermenin en kolay yolu bilgisayarı yeniden kurarken ona farklı bir ad vermektir. Eğer bu çözüm kabul edilebilir bir çözümse Active Directory Sites and Services konsolunu kullanarak ilgili siteden ilk sunucuyu silin. Bu sunucuyu Active Directory Users and Computers konsolundan, bulunduğu yapısal birimden (organizational unit; OU) de silmelisiniz.

          Eğer yeni kurulumda eski bilgisayar adını korumanız gerekiyorsa (örneğin, kullanıcılar bu DC’deki kaynaklara bilgisayar adıyla ulaşıyorlarsa) eski makinanın  ntdsDSA nesnesini AD’den silmelisiniz. Bunu yapmak için ntdsutil programını kullanmalısınız. Bu program AD veritabanının bakımını yapar, Operations Master rollerini yönetir ve arızalanan DC’nin geride bıraktığı metadata’yı temizler. Bu programı kullanmak için Start, Run’dan şu komutu verin:

 

ntdsutil

 

Karşınıza çıkan etkileşimli ortamda Liste 1’de görünen komutları art arda yazın.

 

Yedekten Geri Dönme Yoluyla AD’yi Kurtarma

Win2K’i yeniden kurarak AD’yi kurtarma bazı durumlarda uygun gelebilir ama başka bazı durumlarda yedekten geri dönmeniz gerekebilir. Örneğin, bir sitede tek bir DC bulunuyorsa ve WAN bağlantıları üzerinden DCPromo’nun yarattığı trafik kabul edilemez boyutlardaysa yedekten dönmek daha uygun olacaktır. Böyle bir durumda yetkisiz (nonauthoritative) yedekten geri dönme işlemi gerçekleştirebilirsiniz. Eğer yanlışlıkla silinen bazı bilgileri geri dönmek istiyorsanız o zaman yetkili (authoritative) yedekten geri dönüş işlemi yapacaksınız.

 

Yetkisiz geri dönüş. Win2K’in AD bilgilerini yedekten geri dönmek istiyorsanız sistemi yeniden başlatıp açılış işlemleri sırasında F8’e basarak başlangıç seçenekleri menüsüne geçmeli, oradan da Directory Services Restore Mode (Dizin Hizmetleri Geri Yükleme Kipi) seçeneğini seçmelisiniz. Bu kipte AD başlatılmaz, bu nedenle de AD dosyalarının üzerine yazılabilir. Oturum açma kutusunda  etki alanındaki değil, yerel veritabanındaki yönetici hesabının bilgilerinin girmelisiniz. Oturum açtıktan sonra Backup programını başlatın. Sonra da Backup programının Restore sekmesinde System State’i işaretleyip geri dönüşü başlatın.

          Geri yükleme işlemi bittikten sonra sistemi yeniden başlatın. Bilgisayar, çoğaltma ortaklarıyla ilişkiye geçecek ve  yedketen sonra AD’de gerçekleşen değişiklikleri onlardan indirecektir. Bu yöntemde ilk yönteme göre daha az trafik üretilir, çünkü yalnızca değişiklikler aktarılır.

          Yekili geri gönüş. Bantta yer alan AD verilerinin ağınızda o anda var olan AD bilgilerinin yerine geçmesini isterseniz yetkili bir geri dönüş gerçekleştirmelisiniz. Örneğin, AD içindeki bir bilgiyi yanlışlıkla silmişseniz bu yöntemi kullanarak geri dönüş yapabilirsiniz.

          Örneğin, AD etki alanınızdaki Pazarlama adındaki OU’yu kazayla sildiğinizi varsayalım. Birkaç dakika sonra hatanızın farkına vardınız ama bu sırada dizin çoğaltma işlemi gerçekleşti ve bu OU’nun silindiği bilgisi diğer DC’lere ulaştı. Bu durumda yetkisiz bir geri dönüş bu OU’yu geri getirmez. Yedekten geri dönüldüğünde ve çoğaltma işlemi yapıldığında diğer DC’ler bu OU’nun silindiği bilgisini verirler ve bu nesne tekrar silinir. Bu durumun önüne geçmek için yetkili geri dönüş işlemi yapılır. Yetkili dönüşte yedekten dönülen bilgiler var olan AD’nin yerine geçer.

          Yetkili geri dönüşü de aynen yetkisiz geri dönüş gibi yaparsınız ama bu geri dönüş tamamlandıktan sonra hemen sistem yeniden başatılmaz, ek bir işlem yapılır: Ntdsutil programı kullanılarak yedekten geri dönülen dizinin tümü ya da bir bölümü yetkili olarak işaretlenir. Bu sayede diğer DC’ler yetkili olarak döndürülen bilgileri silemezler. Örneğin, Pazarlama OU’sunu yetkili olarak dönmek için komut satırında şu komutlar verilmelidir:

 

ntdsutil

Authoritative restore

Restore subtree OU=Pazarlama,DC=Anadolu,DC=com,DC=tr

 

Ntdsutil içinde yetkili geri dönüş komutları yalnızca Directory Services Restore Mode’da kullanılabilir. Bu komutları kullanarak ve geri almak istediğiniz kısmın ayırt edilmiş adını (distinguished name) vererek AD’nin herhangi bir bölümünü geri dönebilirsiniz.

 

          Tüm AD’nin yetkili geri dönüşü için Restore Database komutunu verebilirsiniz. Bu komutu dikkatli bir şekilde kullanın çünkü yedekten sonraki bütün değişiklikleri kaybedeceksiniz.

 

Zamanı Geçmiş Yedekler

Eğer AD’yi yedekten geri dönüyorsanız yedek ne kadar iyiyse o kadar iyi olur. Genel olarak da yedeğiniz AD’nin tombstoneLifetime (mezartaşı süresi) değerinden daha yeni olmalıdır. TombstoneLifetime varsayılan olarak 60 gündür ve bu süre AD’nin, silinen bir nesnenin bilgisini tümüyle veritabanından çıkarması için geçen süredir. AD, silinen nesneleri işaretlemek ve bu nesnelerin bilgisini diğer DC’lere çoğaltmak için  mezartaşı işaretlerini kullanır. TombstoneLifetime süresi, çoğaltma işlemlerindeki gecikmeleri hesaba katarak uzun tutulmuştur ama bu değer 2 güne kadar indirilebilir. Şekil 2’de görüldüğü gibi, ADSI Edit konsolunu kullanarak tombstoneLifetime değerini ayarlayabilirsiniz.

          Yedek dosyalarınız tombstoneLifetime süresinden yeniyse bile bilgisayar hesabı ve güven ilişkilerinde kullanılan parolalar konusunda zamana bağlı sorunlarla karşılaşabilirsiniz.  Win2K bu parolaları varsayılan olarak, 7 günde bir değiştirir. Bu yüzden, eğer AD’nin bilgisayar hesabı ve güven ilişkilerinde kullanılan parolaları içeren kısımlarında yetkili geri dönüşler yapıyorsanız bu parolaları elle değiştirmek durumundasınız. Bunu yapmazsanız çoğaltmada sorunlar çıkabilir ve kullanıcılar etki alanına giremeyebilirler. Bir güven ilişkisi parolasını değiştirmek için Active Directory Domains and Trusts  konsolunu kullanarak güven ilişkisini kaldırıp yeniden kurmalısınız. Bir bilgisayar hesabını sıfırlamak içinse Active Directory Users and Computers konsolunu açıp, o bilgisayar üzerinde sağ tıklayıp Reset Account seçeneğini seçmek gerekir.

 

Farklı Bir Donanıma Geri Dönüş

Yedekten geri dönüş yöntemleri, AD’yi yedek aldığınız makine üzerinde geri döndüğünüzü varsayar. Ama birçok yıkımdan kurtarma senaryosunda bir donanım arızası yüzünden yedekten geri dönüş işlemine gerek duyarız. Bu durumda da aynı makinaya geri dönüş olanaksız olur. AD’yi yeni bir makinaya geri dönmek için yeni sistemin sabit disk yapılandırmasının ilk makina ile uyuşmasını ve disk bölümlerinin eski bilgisayarınkiyle ya aynı ya da daha büyük olmasını sağlamalıyız. Ek olarak, yeni bilgisayarın eskisiyle aynı donanım soyutlama katmanını (HAL) kullanması gerekir. Eğer yeni sistem farklı bir görüntü kartı kullanıyorsa ya da birden fazla NIC içeriyorsa geri dönüşten önce bunları kaldırın. Sistemi yeniden başlattığınızda PnP sayesinde bu öğeler doğru bir şekilde yeniden kurulabilecektir.

 

AD’nin Uzaktan Yedeklenmesi ve Geri Dönülmesi

Daha önce belirttiğim gibi Win2K’yle gelen yedekleme programı AD’nin yalnızca yerel olarak yedeklenebilmesini sağlıyor. Bu programı uzaktaki bir makinanın System State’ini yedeklemek için kullanamazsınız. Ama bu kısıtı da Win2K Server’da bulunan Terminal Services ile aşabilirsiniz: Geri dönüş işlemini bir terminal penceresinden yapabilirsiniz.

          Bir terminal bağlantısı üzerinden ulaşılabilen bir DC’nin bilgilerinin uzaktan geri dönüşü için DC’nin boot.ini dosyasına ulaşın ve Şekil   3’de görüldüğü gibi Advanced RISC Computing (ARC) adresinin sonuna /safeboot:dsrepair anahtarını yazın. Sonra geri yükleme işlemine devam edebilirsiniz.

 

Planınızı En Kötü Durum İçin Yapın

AD bilgisini geri dönüşte birçok şeye dikkat etmelisiniz. Zamandan kazanmak ve AD geri dönüşü sırasında yaşanabilecek gerilimi azaltmak için ayrıntılı bir plan hazırlayın. Arızalı bir sunucuyu eski durumuna getirmek zorunda kalmış herkesin bildiği gibi bu işlem hiçbir zaman düşünüldüğü kadar kolay olmaz. AD kurtarımı konusunda bir planınız varsa bu işlemi bir miktar kolaylaştırabilirsiniz.

 

Robert McIntosh, Microsoft ve güvenlik teknolojileri konusunda danışmanlık yapan ve eğitimler veren bir MCSE ve MCT’dir. Covenant Solutions’ın kurucu ortaklarındandır.  Kendisine rmcintosh@covenantsolutions.com adresinden ulaşabilirsiniz.

 

 

LİSTE 1: Ntdsutil Temizleme Komutları

Metadata cleanup

Connections

Connect to server <etki alanınızdaki çalışana nir DC’nin adı>

Quit

Select operation target

List domains

Select Domain <arızalı DC’yi içeren etki alanının numarası; bir önceki komuttan elde edilir.>

List Site

Select Site < arızalı DC’yi içeren sitenin numarası; bir önceki komuttan elde edilir. >

List servers in site

Select server <Kaldırmak istediğiniz DC’yi içeren sunucu numarası >

Remove selected server