Windows Server 2008 Active Directory Snapshot
Windows Server 2008’in yeni özelliklerinden birisi de offline kullanım için Active Directory veritabanının snapshot ( anlık görüntülerini) oluşturabilmemizdir. Snapshot Volume Shadow Copy tarafından oluşturulan bir shadow copy’dir ve Active Directory veritabanı ve log dosyalarını içerir. Active Directory veritabanı ve log dosyalarını snapshot’lar sayesinde Domain Controller’ı Directory Service Restore Mode ile başlatmadan görüntüleyebilirz.
Active Directory snapshot ile backup dosyamızı AD DS altında farklı bir porta mount edebilir ve LDAP aracılığıyla backup dosyasındaki verileri salt okunur olarak görüntüleyebiliriz.
AD snapshotlarını kullanabileceğimiz birkaç senaryodan bahsedecek olursak; Örneğin AD yer alan bir nesnenin özellikleri kullanıcılardan birisi tarafından değiştirildi ve daha sonra kullanıcı eski özelliklere geri dönmesi gerektiğini belirtti. Böyle bir durumda varsa AD snapshot’ı farklı bir porta mount ederek değişen nesnenin eski özelliklerini kazanmasını sağlayabiliriz. Ayrıca silinen nesnelerin kurtarılması işlemini de benzer şekilde gerçekleştirebiliriz.
AD snapshotları mount edildiğinde varolan nesnelerin türlerini ve onlarla ilgili diğer bilgileri de görüntülemenizi sağlar. Ancak çalışan veritabanına nesneleri kopyalamanıza ve taşımanıza izin vermez. Kopyalamak ya da taşımak istediğiniz nesneleri manuel olarak export etmeniz ve sonra da çalışan veritabanına import etmeniz gerekir.
İlk etapta snapshot oluşturma, mount etme, export ve import işlemleri havuz problemi çözmek gibi karmaşık gelebilir.Ancak snapshot’ları kullandıkça göründüğü kadar zor olmadığını göreceksiniz.
Ayrıca dikkat etmemiz gereken noktalardan biri de AD Snaphot’larının korunması için gerekli güvenlik önlemlerini aldığımızdan emin olmamızdır. Örneğin; AD DS snapshotları şifreleyebilir ya da verileri yetkisiz erişimlere karşı koruduğumuz güvenlik önlemleri gibi önlemler alabiliriz.
Active Directory Snapshot Oluşturma
Active Directory snapshot oluşturmak için NTDSUTIL komutunu kullanmanız gerekir. Windows Server 2008 üzerinde AD DS ve AD LDS rollleri yüklü ise NTDSUTIL komutunu çalıştırıyoruz.
Bu işlemleri otomatikleştirerek Active Directory snapshot almayı kolaylaştırabiliriz. Bu işlemi nasıl yapacağımızı ilerleyen bölümlerde anlatacağım.
Active Directory Snapshot Nasıl Mount Edilir?
Snapshot’a bağlanabilmek için öncelikle snapshot’ı mount etmeliyiz. Active Directory snapshot’ı mount etmek için aşağıdaki işlemleri eksiksiz bir şekilde yerine getirelim. Komut satırını (cmd) Run as Administrator diyerek Administrator yetkisi ile açıyoruz.
Active Directory snapshot’ına bağlanmak için DSAMAIN komutunu kulanmamız gerekiyor. DSAMAIN Windows Server 2008 ile gelen bir komuttur. Eğer Active Directory Domain Service ya da Active Directory Lightweight Directory Service rolü server’da yüklü ise DSAMAIN komutunu kullanabiliriz.
DSAMAIN’i kullandıktan sonra Active Directory snapshot’ına bağlanmak için, Active Directory Users and Computers, LDP.exe, ADSIEDIT.msc gibi GUI arabirimine sahip araçları kullanabiliriz. Ayrıca snapshot’a bağlandıktan sonra veritabanındaki verileri export etmek için LDIFDE yada CSVDE gibi araçları da kullanabiliriz.
DSAMAIN kullanarak snapshot’ın içerdiği verilere bağlandığımızda;
Veriler üzerindeki tüm izinler snapshot üzerinde de geçerlidir.
Varsayım olarak, Domain Admins ya da Enterprise Admins grubunun üyeleri snapshotları görüntüleme iznine sahiptir.
DSAMAIN komutunu kullanabilmek için NTDS.dit dosyasının tam yolunu bilmemiz gerekir. NTDS.dit dosyasının yolunu görüntülemek ya da kopyalamak için;
Windows Explorer’ı açın ve NTDS.dit dosyasının bulunduğu yere kadar ilerleyin. Dosya adı ve uzantısıyla birlikte dosyanın yolunu kopyalayın.
Active Directory snapshot’ını unmount ettikten sonra silmezsek güvenlik açısından riskli bir durum oluşturacağımızı unutmuyoruz.
Sonrasında DSAMAIN komutuna LDAP istekleri için bir port tanımlamak zorundayız. Burada önemli nokta kullanımda olmayan bir portu kullanmamız gerektiğidir. Ben bu örnekte 10389 nolu portu kullanacağım. DSAMAIN için atayacağım porttan sonraki 4 port LDAP, LDAP/SSL, GC, GC/SSL portlarından oluşacaktır. İstediğiniz takdirde her servis için farklı bir port tanımlayabilirsiniz.
• LDAP: 10389
• LDAP/SSL: 10390
• GC: 10391
• GC/SSL: 10392
Active Directory Snapshot’ına bağlanmak için aşağıdaki adımları takip edin;
Windows Server 2008 D.C üzerinde Domain Admins yetkisine sahip bir kullanıcı ile logon olun. Komut satırını “Run as Administrator” ile açın ve aşağıdaki komutu girin.
Active Directory Snapshot Bağlantısını Kesme (Disconnect)
AD Snapshot bağlantısını kesmek için tek yapmamız gereken CTRL+C tuş kombinasyonunu kullanmak. Bunun sonucunda aşağıdaki gibi bir çıktı ile karşılaşıyoruz.
Active Directory Snapshot Unmount
Ve yapmamız gereken son adımla yani snapshot unmount işlemi ile devam ediyoruz. Windows Server 2008 D.C üzerinde Domain Admins yetkisine sahip bir kullanıcı ile logon olun. Komut satırını “Run as Administrator” ile açın ve aşağıdaki komutları sırasıyla girin.
Active Directory Snapshot’ın Silinmesi
Active Directory Snapshot’larını silmek için komut satırında sırayla aşağıdaki komutları giriyoruz.
Active Directory Snapshot alınması, mount edilmesi, unmount edilmesi ve silinmesi gibi işlemleri nasıl yapacağımızı anlattıktan sonra sıra geldi Snapshot alma işlemini otomatikleştirmeye.
Active Directory Snapshot Alma İşlemini Otomatikleştirmek
Active Directory Snapshot alma işlemini otomatikleştirmek için öncelikle bir script dosyası oluşturuyoruz.
Dosyanın adını ad-snapshot.bat olarak (dosyaya istediğiniz ismi verebilirsiniz) C sürücüsünde Scripts isimli bir klasörün içine kaydediyorum. Eğer bu script’i manuel olarak çalıştırmak isterseniz Domain Admins ya da Enterprise Admins yetkilerine sahip bir kullanıcı ile logon olmanız gerekir.
Server Manager konsolundan Task Scheduler’ı (Zamanlanmış Görevler) açıyoruz.
Create Basic Task ekranında oluşturmak istediğimiz görev için bir isim ve açıklama yazıyoruz ve next diyerek ilerliyoruz.
Task Trigger ekranında görevi çalıştırmak istediğimiz zamanı belirledikten sonra ilerliyoruz.
Weekly penceresinde görevi çalıştırmak istediğimiz gün ve saati seçiyoruz.
Action bölümünde Start a Program seçeneğini seçerek devam ediyoruz.
Oluşturduğumuz scriptin yolunu Browse aracılığı ile gösterdikten sonra, Next diyerek devam ediyoruz.
Ve şimdiye kadar yapmış olduğumuz ayarlara son kez göz atarak işlemimizi tamamlıyoruz.
Task Scheduler konsoluna geri dönerek görev yapılandırmamızı inceleyebiliriz.
Task Scheduler’da tanımlamış olduğumuz görevin üzerinde sağ tıklayıp properties diyerek oluşturduğumuz görevin özelliklerinden General tabına giderek Change User or Group bölümünden bu görevi çalıştıracak bir kullanıcı seçiyorum. Bu bölümde tanımladığım kullanıcı logon olmasa bile bu işlemin gerçekleşmesi için “Run whether user is logged on or not” seçeneğini seçiyorum ve Change User or Group butonunu tıklıyorum. (Bunu yapmamın sebebi Administrator hesabı ile logon olmak yerine normal bir kullanıcı hesabı ile logon olsam bile Run-as komutu sayesinde bu görevi çalıştırabilmek)
Select User or Group ekranında scripti çalıştıracak bir kullanıcı hesabı tanımlıyorum. Ben burada Administrator kullanıcısını seçiyorum ve ok diyorum.
Kullanıcı hesabını ekledikten sonra bu pencereyi kapatmak için ok’i tıkladığımda bir authentication ekranıyla karşılaşıyorum. Scripti çalıştırması için buraya eklediğim kullanıcının parolasını girerek bu adımı tamamlıyorum.
Eğer oluşturduğumuz görevi test etmek istersek, görevin üzerinde sağ tıklayıp Run diyerek bir snapshot oluşturabiliriz. Eğer snapshot yaratılırsa herhangi bir sorun yok demektir.
Active Directory Snapshot işlemleri ile ilgili makalemizin sonuna geldik. Umarım yararlı olmuştur.