Windows Server 2012 Active Directory Backup and Disaster Recovery Procedures Bölüm 1
Active Directory Windows NT zamanından beri organizasyonlarımızın en temel yapı taşı olmayı hala sürdürmektedir. Şirket organizasyonunuzdaki Exchange server, biztalk, sharepoint, Lync, SQL veya non-microsoft olan ürünler içinde temel bir kimlik doğrulama ve merkezi yönetim sunmaktadır. Durum böyle olunca aslında felaket senaryoları için ilk olarak AD senaryonuz hazır olmalıdır. Evet, pek çok kritik servis çalıştıran bir şirket olabilirsiniz ancak network yapınız çalıştığı sürece AD veya DNS servisi çalışmıyor ise aslında hiçbir servisin çalışmayacağı gerçeğini çok iyi biliyor olmanız gerekli. Bazı sistemler Windows tabanlı olmasa bile DNS tarafı çok önemli olduğu için AD olmasa bile DNS’ inde mutlaka ayakta olması gerektiğini unutmamanız şart.
Peki, madem bu kadar önemli bir ürün bu ürünün korumasını ve felaket senaryolarını nasıl hazırlayacağız?
İlk olarak aşağıdaki başlıklara özet bir şekilde değineceğim, sonra tek tek detaylandıracağım.
Ben bu makale serisinde aşağıdaki başlıklara değinmeyi düşünüyorum
Active Directory Content Backup and Restore through System State
Active Directory Content Backup and Restore through Tombstone Reanimation
Active Directory Content Backup and Restore through the recycle bin
Active Directory Content Backup and Restore through snapshot
Active Directory Domain Controller Backup and Restore through Virtual Machine
Snap Shot
SYSVOL restore
FSMO roles restore
Restore an Entire Forest
Restore an Entire Domain
Her biri başlı başına bir makale konusu olduğu için bende bu makaleyi seri olarak böleceğim.
Evet, ilk olarak System state backup ile başlayalım.
Malum bunun için ilk olarak Windows server backup özelliğinin kurulması gerekmektedir.
System State yedeği bildiğiniz gibi temel aşağıdaki dosyaları yedeklemek ile birlikte sunucu üzerinde yüklü olan rollere göre alınan yedek içeriği de genişleyebilmektedir
Registry
COM+ Class Registration database
Boot files
Active Directory Certificate Services (AD CS) database
Active Directory database (Ntds.dit)
SYSVOL directory
Cluster service information
Microsoft Internet Information Services (IIS) metadirectory
System files that are under Windows Resource Protection
Active Directory Federation Services
Peki, RecycleBin gibi bir özellik varken neden system state yedeğine ihtiyaç duyarız. Sonuç olarak bir objeyi silebilir ve anında tek bir tıklama ile geri döndürebiliyoruz, peki bu daha kolay bir yöntem değil mi? Evet ama bununda bir takım şartları var, en basiti siz bu işlemi yapmak için bile aslında çalışan bir domain yapısına ihtiyacınız var ki logon işlemini gerçekleştirip bu süreci tamamlayabilirsiniz.
Veya başka bir örnek vermek gerekirse, bir yönetici grup üyelikleri ile oynarsa yani ekleme ve çıkarma, bu değişiklikler obje içerisindeki Atrribute değişikliği olduğu için yine recycle bin özelliği size yardımcı olamayacaktır. Çünkü böyle bir senaryoda kullanıcı veya grup silme işlemi yok, yani obje silme değil objenin bir öz niteliğinin değişmesi söz konusu.
Bir başka örnek ise yine attiribute bazlı değişiklikler. Örneğin admodify aracı ile toplu olarak 1000 kişinin bazı öz niteliklerinin değiştirildiğini düşünün. Yine bu durumda recycle bin bizlere yardımcı olamayacaktır. Bu nedenle yedekleme her zaman çok önemlidir ve bunu asla unutmayın.
Bu nedenle kesinlikle system state yedeğini, snapshot, recyclebin, 3. parti imaj programları vs yerini alamaz.
Peki bu yedeklemeleri nasıl yapabiliriz?
Elle yedekleme yapabileceğimiz gibi zamanlanmış olarakta System state yedeklerini alabiliriz.
Yedek almak için kullanabileceğimiz ortamlar ise aşağıdaki gibidir
NTFS ve ReFS formatlarını desteklemektedir.
UNC path local server, yedek aldığınız sunucu üzerine bir paylaşım ile gidebilirsiniz. Ancak tavsiyem bu paylaştırılmış dosyanın C:\ bölümünde yani critical disk ( critical volumes ) olarak isimlendirdiğimiz bölümde olmamasıdır.
UNC path remote server, yukarıdakine benzer bir senaryo olup bu paylaşım için bir file server ve benzeri bir paylaşım seçebilirsiniz.
Local non-critical volüme, sunucu üzerine bağlı ve kritik olmayan tüm disk bölümleri.
Local Critical Volume, bu aslında desteklenmemektedir, yani sizin DC makinenizde tek bir disk ve tek bir bölüm var ise ki bu da varsayılan olarak C bölümüdür, bu bizim için critical volüme – disk olarak geçmektedir. Ancak yine de bu bölüme yedek almak istiyorsanız aşağıdaki kayıt defteri değişikliği sonrası yedek alabilirsiniz.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wbengine\SystemStateBackup
DWORD – AllowSSBToAnyVolume
Değerini 1 yapıyoruz.
System State yedeklemesinde varsayılan olarak ilk yedekleme dışındaki tüm yedeklemeler differential yedekleme olarak alınmaktadır.
Eğer UNC path tanımlarsanız bu durumda her zaman differential yedek alır ancak sadece son yedekleme görünür ve onu dönebilirsiniz. Yani version diye bir detay kalmaz. Bu önemli bir noktadır. Her backup işleminde bu dosya ismi yenilenir yani yeni backup set numarası atanır. Bu davranış hem zamanlanmış hem de elle başlattığınız yedekleme için aynıdır.
Eğer yedeklemeyi non-critical local volume üzerine zamanlanmış veya elle olarak alırsanız bu her zaman differential yedek olur ve sadece tek bir hedef klasör destekler fakat bu klasör için version desteği sunar. Dosyaya baktığınız zaman en son yedek tarihini ve yedek setini görürsünüz.
Buradan şöyle bir genelleme çıkarabiliriz, version desteği istiyorsanız sadece yerel disklere yedek almalısınız.
Elle full backup başlatma şansınız yoktur.
Yukarıda anlattıklarımın özeti aşağıdaki gibidir
Active Directory Recycle Bin
Bu özellik Windows server 2008 R2 ile beraber hayatımıza girmiş olup detaylı bilgi için aşağıdaki makaleyi inceleyebilirsiniz.
Server 2008 R2
Windows Server 2008 R2 Recycle Bin Active Directory Geri Dönüşüm Kutusu – ÇözümPark (cozumpark.com)
Server 2012
Windows Server 2008 R2 Recycle Bin Active Directory Geri Dönüşüm Kutusu – ÇözümPark (cozumpark.com)
Bu makalelerden yola çıkarak hangi durumlarda bu özelliğe başvuracağınıza karar verebilirsiniz. Malum hazırlamakta olduğum doküman bir yedekleme – kurtarma dokümanı olduğu için her türlü yedekleme ve kurtarma aracı mahiyetindeki özelliğe değinmeye çalışıyorum. Ancak makalemin başında recycle bin için neden tam bir yedek olarak algılanmadığını anlattığımı hatırlatmak isterim.
Active Directory Snapshot Backup
Bu özellik ise Windows Server 2008 ile bizlere sunulmuş olup Server 2012 üzerinde de desteklenen bir yedekleme teknolojisidir. Ama tabiki recycle bin de olduğu gibi tam bir yedekleme aracı değildir. Yine bu konu hakkında detay bilgi için aşağıdaki makaleleri okuyabilirsiniz
Server 2008
Windows Server 2008 Active Directory Snapshot – ÇözümPark (cozumpark.com)
Server 2012
Windows Server 2012 Active Directory Snapshot Özelliği – ÇözümPark (cozumpark.com)
Tombstone Reanimation
Evet bu da eskilerin bildiği bir yöntem J Malum recyclebin veya Snapshot özellikleri yokken biz reanimation araçları sayesinde kısmi olarak objeleri kurtarabiliyorduk.
Active Directory içerisinden silinen ancak TombStone süresi dolmayan objelerin geri yükleme işlemine tombstone reanimation denir. Ancak bu işlem ile o objeye ait tüm öz nitelikler geri yüklenemediği için gerekli olması halinde Active Directory Restore Mode ile obje yedekten tüm öz nitelikleri ile geri döndürülebilir veya 2008 r2 kullanılıyor ise recycle bin özelliği ile yine obje kurtarılabilir.
Gördüğünüz gibi bu yöntemde de sadece silinen objeler için varsayılan olarak tutulan aşağıdaki attirbute’ ler dışındaki attribute leri kurtarma şansına sahip değiliz.
TombStone süresince saklanan attribute’ ler aşağıdaki gibidir.
Hard-Coded to Be Saved
attributeID
attributeSyntax
dnReferenceUpdate
dNSHostName
flatName
governsID
groupType
instanceType
lDAPDisplayName
legacyExchangeDN
mS-DS-CreatorSID
mSMQOwnerID
nCName
objectClass
objectGUID
objectSid
oMSyntax
proxiedObejctName
replPropertyMetaData
sAMAccountName
securityIdentifier
sIDHistory
subClassOf
systemFlags
trustPartner
trustDirection
trustType
trustAttributes
userAccountControl
uSNChanged
uSNCreated
whenCreated
Saved Due to searchFlags Setting
msDS-AdditionalSamAccountName
msDS-Auxiliary-Classes
msDS–Entry-Time-To-Die
msDS-IntId
msSFU30NisDomain
nTSecurityDescriptor
uid
Peki bunu nasıl kullanıyoruz? Quest Software’ in ücretsiz bir aracını kullanabileceğiniz gibi ldp.exe ile de objeleri reanimation işlemine tabi tutabilirsiniz.
http://www.quest.com/object-restore-for-active-directory/
Virtual Machine Snap Shot
Bu yöntemde 2000 yılların başından itibaren yükselen sanallaştırma teknolojisinin bize sağladığı bir faydadır. Malum artık pek çok sistem odasında fiziksel makinelerin sayısı azalırken, sanal makinelerin sayısı artmaktadır. Hatta mevcut sunucu alt yapısındaki sanallaştırma oranlarını yarıştıran firmalar dahi var J. Özetle artık sanal ortamda çalışan domain controller bulmak çok kolay. Hatta Windows Server 2012’ nin tam olarak sanallaştırma desteği sunması sayesinde ( Virtual Domain Controller – Clone DC ve GenID teknolojileri ) bu oran çok daha yukarılara çıkmaktadır.
Peki sanal makine Snapshot ları ne tür bir yedeklilik sağlar. Aslında Snapshot her şekilde hızlı geri dönüşler için büyük avantaj sağlamaktadır. Ve benimde System state yanında mutlaka barındırılması gereken ikinci sıradaki yedekleme yöntemimdir. Tabiki bunu server 2012 öncesi ve birden çok domain olan ortamlar için öneriyorum, çünkü bu tür ortamlarda ne yazık ki bilinçsizce alınan Snapshot ların geri döndürülmesi sonucu USN Rollback süreci yaşanabiliyor.
Ancak şunuda mutlaka aklımızın bir köşesinde bulundurmalıyız. Evet birden çok DC olan ortamda siz bu DC lerden birini Snapshot sayesinde zamanda geri taşırsanız replikasyon sorunları gözlemlenecektir. Ancak öyle durumlar olur ki siz diğer tüm DC leri yakabilirsiniz J yani gözünüz onları görmez, sağlıklı çalışan tek bir DC malum size yeter, böyle düşünüp bu nedenle kara günler içinde bir snap shot yedeği tutabilirsiniz.
Peki, biz şimdi buraya kadar genel olarak yedekleme türleri hakkında bilgi verdik, şimdi ise bunları detaylı inceleme vakti geldi.
Öncelikle sistemimiz üzerindeki kullanıcı ve grupları inceleyelim
Evet iki kullanıcı ve bunların üye olduğu bir grup var. Şimdi bu ortamda yedekleme işlemlerine başlayalım.
İlk olarak System State yedeği ile işe başlayalım. Bunun için tabiki yapmamız gereken şey Windows Server Backup özelliğini yüklemek olacaktır.
Ben powershel komutu ile yüklüyorum isterseniz siz ara yüzden yükleme yapabilirsiniz
add-windowsfeature windows–server-backup –includeallsubfeature
Ardından yine komut seti ile System state yedeği için zamanlanmış bir görev tanımlıyorum
Wbadmin enable backup –addtarget:e: -schedule:01:00 –systemstate –quiet
Burada “E” sürücüsü benim yedekleme yaptığım sürücü harfidir.
Addtarget parametresi içinde birkaç detay bilgi vermek istiyorum.
Windows Server 2008 işletim sistemi için bu bir disk bilgisi olmak zorunda idi. Ve bu diski Windows backup kullanmadan önce formatlıyordu, bu nedenle bunu çok dikkatli kullanmak gerekli.
Ancak Server 2008 R2 ve sonrasında artık biz buraya sadece disk değil bunun yanında volume veya UNC path verebiliyoruz. Tabiki UNC path için yukarıda yaptığım hatırlatmaları unutmamak lazım. Yani version desteği yoktur. Server 2008 R2 üzerinde de eğer hedef olarak bir disk gösterirseniz 2008 de olduğu gibi o d bu disk’ i kullanmadan önce formatlayacaktır.
Buna ek olarak malum bu sadece System state yedeğini alıyor birde bare metal yedeği için zamanlanmış görev tanımlamanızı tavsiye ederim.
Yukarıdaki komuta ek olarak aşağıdaki komut seti Active Directory için çok daha sağlıklı bir yedek alma yoludur. Çünkü burada gördüğünüz gibi allcritical ve vssfull parametreleri kullanılmıştır.
Wbadmin enable backup –addtarget:f: -schedule:02:00 –systemstate –quiet –allcritical –vssfull
Burada E diskini kullandığım için şimdi F diskini hedef olarak ekledim, çünkü bu iki yedek için aynı hedef belirtemiyoruz.
Tek seferlik yedek almak için ise aşağıdaki komutu kullanabilirsiniz
Wbadmin start systemstatebackup –backuptarget:e: –quiet
Not; vssfull ve allcritical parametreleri start systemstatebackup ile beraber kullanılamaz.
Mevcut durumda aktif olan yedeklemeleri izlemek için ise ağıdaki komutu kullanabiliriz
Wbadmin get status
Yukarıda görüldüğü gibi komutu bir kez daha çalıştırdığım zaman ( get status ) güncel durum hakkında yine bilgileri verdi.
Ve sonuç
Peki, şimdi aldığımız yedekleri listeleyelim
Wbadmin get versions
Tek bir yedek setimiz mevcut.
Bu son hareket ile System state yedeklemesini tamamlamış olduk. Şimdi diğer yedekleme seçeneğimiz olan Snapshot backup yöntemi ile yedek alıyoruz
Bunun için ntdsutil aracını kullanıyoruz
Sırası ile komutlar
Ntdsutil
Activate instance NTDS
Snapshot
Create
List all
İsterseniz bu işlemi zamanlanmış görev olarak tanımlayabilirsiniz
@echo off
ntdsutil snapshot “activate instance ntds” create quit quit
exit
Bunu bir bat dosyası yapıp zamanlanmış görevlerden istediğiniz zaman aralıklarında çalışacak şekilde ayarlayabilirsiniz.
Şimdi bir diğer yedekleme özelliği olan Recycle Bin’ i aktif hale getirelim.
Import-module ActiveDirectory
Enable-ADOptionalFeature -Identity “CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=WindowsNT,CN=Services,CN=Configuration,DC=cozumparkbp,DC=com” –Scope Forest –Target ‘cozumparkbp.com’
Veya ara yüzden de yapabilirsiniz
Veya sağ bölümden
Bunun sonucu olarak “Deleted Objects” konteynırını görebiliyoruz.
Şimdi burada bazı kişiselleştirmeler yapabiliriz.
Bu konu hakkında her ne kadar detaylı anlatım makale linki versem de şimdi bakı konularda değişiklik yapmamız gerektiği için özet geçeceğim.
Öncelikle Recycle Bin yokken durum aşağıdaki gibiydi
Yani obje siliniyordu ancak fiziksel silinmesi için Tombstoned lifetime denilen süreyi bekliyordu. Bu süre geçtikten sonra ise 12 saatte bir çalışan Garbage collection süreci Tombstone süresi dolmuş objeleri active directory veri tabanından kalıcı olarak siliyordu.
Windows 2003 ve önceki işletim sistemlerinde Tombstone life time 60 gün iken 2003 SP1 ve sonrasında bu süre 180 gün olarak değiştirilmiştir. Not; Eğer 2000 veya 2003 sistemlerden geçiş yapmışsanız bu değerli elle set etmeniz gerekmektedir. Yeni kurulumlar için böyle bir gereksinim yoktur.
Server 2000,2003,2008 ve 2008 R2 de bu varsayılan gün değerleri biliniyor olmasına rağmen değer “not set” konumunda iken Server 2012 de yeni kurulumda bu değer 180 gün olarak set edilmiştir.
İstersek ADSIEdit aracı ile bunu değiştirebiliriz.
Fakat ortada Recycle Bin özelliği var ise bu durumda iki farklı zaman ayarı yapabiliyoruz
Bunlardan biri Deleted obje lifetime, diğeri ise Recycled object lifetime’ dır.
Deleted obje lifetime, msDS-deletedObjectLifetime ismindeki attribute ile yönetilmekte iken, Recycle object lifetime ise kullandığımız “tombstoneLifetime” attribute ile yönetilmektedir. Bu durumda eğer siz “tombstoneLifetime” için 180 gün vermişseniz Recycled object lifetime da 180 gün olacaktır.
Windows Server 2012 de varsayılan olarak msDS-deletedObjectLifetime <not set> olarak ayarlanmakta olup eğer bu değer boş ise Recycled object lifetime ile aynı süreye eş değer olur.
Bunu değiştirmek için aşağıdaki Powershell komutunu kullanabilirsiniz
Set-ADObject -Identity “CN=Directory Service,CN=Windows NT,CN=Services, CN=Configuration, DC=cozumparkbp,DC=com” –Partition “CN=Configuration, DC=cozumparkbp,DC=com” –Replace:@{“msDS-DeletedObjectLifetime”=90}
Evet, buraya kadar elimizde olan tüm yedekleme yöntemlerini kullanarak sistemlerimizi yedeklemiş olduk.
Makalemin ikinci bölümünde ise geri dönüş senaryoları üzerinde konuşacağım.
Umarım faydalı bir makale olmuştur.
Bir sonraki makalemde görüşmek dileği ile