Неволно изтриване на обект от Active Directory – Какво трябва да знаем, преди да се поддадем на паниката? (част 1)

Ако случайно (или не съвсем) се случи така, че загубите някой обект от базата на Active Directory Domain Services (AD DS), например потребителски или компютърен акаунт, то ситуацията може да придобие особено драматичен привкус, ако да речем потребителският акаунт се използва от важна услуга (service) или пък компютърният акаунт принадлежи на критичен, инфраструктурен сървър. Какво може да се направи в този случай?

Ако продължите да четете текста по-долу, ще се запознаете с някои превантивни мерки за предотвратяване загубата и възстановяване на загубените обекти в рамките на няколко минути.

На първо място трябва да се запитаме, как може да предотвратим една такава ситуация в бъдеще? Най-лесният начин да предпазите чувствителни акаунти пък и други обектите от инцидентно изтриване е да направите изтриването им малко по-трудно. За тази цел в конзолата на Active Directory Users and Computers, налична при Windows Server 2008, има възможност да изберете отметката Protect from accidental deletion. Това действие прави невъзможно изтриването на въпросния обект директно през бутона Delete или от контекстното меню. Отметката е налична в таба Object, при избран изглед Advanced View.

Object_Properties_protect

Ако не разполагате сaмо с конзолата на Windows Server 2000 или 2003, същият ефект може да се постигне, като зададете забрана за изтриване на обекта на групата Everyone. Това става, като от таба Security изберете Advanced и след това зададете права като на картинката по-долу за групата Everyone:

Ако обектът е организационна единица и желаете да защитите от случайно изтриване всички обекти в нея, то може да поставите отметка и на Delete Subtree и укажете това действие да се изпълни върху всички обекти, които се съдържат в тази организационна единица.

Нека да допуснем, че обектът е бил изтрит. Оттук нататък логичният подход би бил да търсим съществуващо резервно копие (backup) и да се втурнем да възстановяваме. За жалост това е един доста трудоемък вариант, който като начало изисква да имаме предварително направено резервно копие поне на ntds.dit файла, в който Active Directory пази информацията за своите обекти. Ако желаете да разберете повече за процеса на Backup и Restore, драснете един ред в полето за коментари под статията ми и ще отделя време да ви разкажа за възможните подводни камъни в този процес.

Ако не сте се погрижили за създаването на резервно копие, то не кършете нещастно ръце, за щастие не всичко е загубено. В така създалата се ситуация, може да се възползваме от специфичното поведението на Active Directory спрямо изтритите обекти.

Когато акаунт, група, организационна единица и т.н., биват изтрити, то те не изчезват безвъзвратно, а само се отбелязват за изтриване и се преместват в скрития контейнер “DeletedObjects”, където остават до изтичане на Tombstone интервала, който преди Windows Server 2003 SP1 e 60 дни, a след него, както и в Windows Server 2008, е 180 дни. За жалост, при преместването повечето атрибути на обектите биват изтрити с цел да се пести място, но въпреки това един от най-важните атрибути на акаунтите и групите се запазва, а именно Security Identifier (SID). Всъщност единствените атрибути, които се запазват, са: CN, objectSid и sAMAccountName, а в lastKnownParent се запазва LDAP името на организационната единица или контейнер, от който е бил изтрит обектът.

За да възстановим такъв обект (процедурата всъщност е позната като „Reanimate“), ще ви покажа три различни начина, като и трите на практика правят едно и също: премахват атрибута isDeleted, който указва, че това е обект, предвиден за изтриване, след което преместват обекта в изрично указана организационна единица или контейнер. Оттам нататък обектът е видим във конзолата Active Directory Users and Computer и може да се попълнят липсващите атрибути по добре познатия начин.

Първият и най-трудоемък, но пък най-показателен за процеса метод за възстановяване на изтрити обекти е посредством инструмента ldp.exe . Това приложение може да инсталирате като част от пакета Support tools, който се разпространява с инсталационното CD на Windows Server 2003, докато при Server 2008 се инсталира заедно с ролята AD DS.

1. Стартирайте ldp.exe с домейн администратор, след което от менюто Connections избирате Connect, а след това и Bind.

2. За да покажете контейнера Deleted Objects от менюто Option, изберете Control и от падащото меню Load Predefined селектирайте Return Deleted objects.

3. Покажете дървовидната структура на вашия домейн, като за целта от меню View изберете Tree и в отворилия се прозорец изберете LDAP името на вашия домейн (в полето Base DN).

4. Навигирайте се до контейнера CN=Deleted Objects и изберете обекта, който искате да „върнете към живот“. Забележете полето вляво, където са посочени всички запазили и се атрибути на изтрития обект.

5. От менюто на десния бутон върху обекта изберете Modify и в диалоговия прозорец, който се отваря, изпълнете следните действия:

a. В полето Edit Entry Attribute въведете „ isDeleted“.
b. Оставете Values празно.
c. В секцията Operation изберете Delete и натиснете бутона Enter.

d. Отново в полето Edit Entry Attribute този път въведете distinguishedName.
e. В полето Values въведете DN (Distinguished Name) името на контейнер, в който искате да възстановите обекта. За това име можете да използвате стойността на атрибута lastKnownParent, който в моя пример е „CN=Users,DC=HQ,DC=local“, като не забравяте да допълните отпред и CN (Common Name) на обекта.
f. В секцията Operation изберете Replace, проверете дали е избрано Extended и натиснете бутона Enter, за да добавите това действие към списъка с модификации, след което натиснете бутона Run, за да приложите промените.

Резултатът от процедурата е видима през Active Directory User and Computers, а именно, възстановеният обект без голяма част от атрибутите му. Тъй като обектът няма стойност за полето парола, то той се възстановява в състояние Disable.

Другите два начина за възстановяване на изтрити обекти очаквайте утре, в продължението на статията.

Дарин Йончев е старши инструктор в New Horizons Bulgaria.
Сертифициран е като: MCT, MCSE+Security, MCITP, MCTS, CHFI, CompTIA Security+
Профил на Дарин Йончев
Публикации от Дарин Йончев
Личен блог

Интересувате се от темата? Пишете ни!

    Бързо запитване

    Вашите имена *

    Вашият Email *

    Вашето съобщение *

    captcha

    Добавете коментар

    Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *