Windows Server 2012 Active Directory Backup and Disaster Recovery Procedures Bölüm-1

Windows Server 2012 AD Backup and Disaster Recovery Procedures

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

 

 

 

image001

 

 

 

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

 

https://www.cozumpark.com/blogs/windows_server/archive/2009/10/12/windows-server-2008-r2-recycle-bin-active-directory-p-kutusu.aspx

 

Server 2012

 

https://www.cozumpark.com/blogs/windows_server/archive/2009/10/12/windows-server-2008-r2-recycle-bin-active-directory-p-kutusu.aspx

 

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

 

https://www.cozumpark.com/blogs/windows_server/archive/2010/03/22/windows-server-2008-active-directory-snapshot.aspx

 

Server 2012

 

https://www.cozumpark.com/blogs/windows_server/archive/2012/04/29/windows-server-2012-active-directory-snapshot-zelli-i.aspx

 

 

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-AdditionalSam­AccountName

msDS-Auxiliary-Classes

msDSEntry-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.

 

https://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

 

 

image002

 

 

 

image003

 

 

 

image004

 

 

 

image005

 

 

 

image006

 

 

 

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 windowsserver-backup –includeallsubfeature

 

 

 

image007

 

 

Ardından yine komut seti ile System state yedeği için zamanlanmış bir görev tanımlıyorum

 

 

image008

 

 

 

image009

 

 

 

Wbadmin enable backup –addtarget:e: -schedule:01:00 –systemstatequiet

 

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 –systemstatequietallcriticalvssfull

 

 

image010

 

 

 

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 systemstatebackupbackuptarget:e: –quiet

 

 

image011

 

 

 

image012

 

 

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

 

 

image013

 

 

 

image014

 

 

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ç

 

 

image015

 

 

Peki, şimdi aldığımız yedekleri listeleyelim

 

Wbadmin get versions

 

 

image016

 

 

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

 

 

image017

 

 

İsterseniz bu işlemi zamanlanmış görev olarak tanımlayabilirsiniz

 

@echo off

ntdsutil snapshot “activate instance ntdscreate 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

 

 

 

image018

 

 

Veya sağ bölümden

 

 

image019

 

 

Bunun sonucu olarak “Deleted Objects” konteynırını görebiliyoruz.

 

 

image020

 

 

 

Ş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

 

 

image021

 

 

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.

 

 

 

image022

 

 

İstersek ADSIEdit aracı ile bunu değiştirebiliriz.

 

Fakat ortada Recycle Bin özelliği var ise bu durumda iki farklı zaman ayarı yapabiliyoruz

 

 

image023

 

 

Bunlardan biri Deleted obje lifetime, diğeri ise Recycled object lifetimedır.

 

Deleted obje lifetime, msDS-deletedObjectLifetime ismindeki attribute ile yönetilmekte iken, Recycle object lifetime ise kullandığımız “tombstoneLifetimeattribute 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}

 

 

image024

 

 

 

image025

 

 

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

Bu makalenin hazırlanması için bana DEMO ortamını açan değerli ADEO Bilişim Danışmanlık ve Eğitim Hizmetlerine teşekkür ederim.