Резервное копирование и восстановление AD
Edb*.log — файл журнала транзакций Любое изменение сначала заносится в журнал транзакций и только потом записывается в базу AD, обеспечивая ее целостность. Файл Edb.log имеет размер 10Mб. Если файл журнала транзакций переполняется, AD создает новый EdbX.log, где X — число начинающееся с 1.
Edb.chk — файл контрольной точки используемый для отслеживания изменений, записываемых в базу данных AD, он указывает на информацию которая в случае сбоя должна быть восстановлена (записана в дальнейшем)
Res1.log и Res2.log — резервные файлы журнала транзакций, позволяющие AD вести журнал в случае отсутствия свободного места на жестком диске.
С целью повысить быстродействие системы Microsoft рекомендует размещать файлы журналов и базу данных на разных дисках. Для перемещения базы данных и файлов журнала транзакций используется утилита Ntdsutil в режиме Directory Services Restore Mode:
Ntdsutil — files — move DB to drive:directory — quit —
Ntdsutil — files — Move logs to drive:directory — quit —
Резервное копирование AD
Для резервного копирования AD используется стандартная утилита Windows – NTBackup, копируются данные о состоянии системы (System State Data). Данные о состоянии системы на контроллере домена содержат:
- реестр содержащий сведения о конфигурации компьютера
- базу данных AD
- папку SYSVOL содержащую шаблоны групповой политики и сценарии входа
- базу данных зарегистрированных классов СОМ+
- загрузочные файлы системы и системные файлы
- базу данных служб сертификации (на сервере сертификатов)
- информацию необходимую для восстановления кластера, если запущена служба Cluster.
- базу данных IIS, если IIS установлен
- системные файлы защищенные Windows File Protection
Для выполнения резервного копирования необходимо входить в группу Администраторы, Операторы архива или Операторы сервера. Утилита NTBackup поддерживает только локальный режим, т.е. резервное копирование с удаленного компьютера выполнить невозможно. Резервное копирование контроллеров домена необходимо выполнять по меньшей мере один раз в течение половины периода Tombstone Lifetime (TSL).
С помощью оснастки Active Directory Users and Computers (ADUC), ADSIEdit, LDP или утилиты DSACLS можно предотвратить случайное удаление объекта. Защитим с помощью ADUC Организационное подразделение (ОП) Sales вложенное в ОП Company домена karba.local от случайного удаления или перемещения:
ОП Company — добавляем DENY ACE группе Everyone на удаление DELETE CHILD с областью действия This object only:
DSACLS OU=Company,DC=KARBA,DC=LOCAL /D EVERYONE:DC
ОП Sales — добавляем DENY ACE группе на удаление DELETE and DELETE TREE с областью действия This object only:
DSACLS OU=Sales,OU=Company,DC=KARBA,DC=LOCAL /D EVERYONE:SDDT
Восстановление AD
Для восстановления AD сервер должен быть перегружен в режим восстановления службы каталога (Directory Service Restore Mode).
Существует два способа восстановления данных из резервной копии, принудительное (Authoritative) и непринудительное (Non-Authoritative).
Принудительное используется в случае, если нужно восстановить случайно удаленный объект. Принудительное восстановление гарантирует, что восстановленный объект не будет изменен в ходе репликации.
Непринудительное восстановление возвращает AD в состояние на момент создания резервной копии, а репликация с других серверов (партнеров по репликации) обновляет данные, приводя объекты к текущему состоянию (если используется один контроллер домена, то все изменения произошедшие с момента резервного копирования, будут утрачены).
Каждый контроллер домена имеет номер последовательных обновлений (Update Sequence Number, USN). USN увеличивается на единицу при каждом изменении объектов AD. Например, если после изменения адреса пользователя USN равен 1000, то при следующем изменении любого другого объекта USN будет равен 1001. Объекту помеченному для принудительного восстановления назначается наивысший номер обновлений (он увеличивается на 100000 единиц за каждый день прошедший с момента резервного копирования).
Для принудительного восстановления объекта, сразу после восстановления данных состояния системы, запускается утилита Ntdsutil и в командной строке вводится:
authoritative restore — restore subtree distinguished name of object — quit — quit
Для принудительного восстановления всей базы AD в командной строке Ntdsutil вводится:
authoritative restore — restore database — quit — quit
После окончания процедуры восстановления контроллер домена можно перезапустить в обычном режиме.
Все принудительно восстановленные объекты реплицируются на другие контроллеры — партнеры по репликации.
Некоторые компоненты AD не следует или невозможно восстанавливать принудительно (например схема AD не может быть восстановлена). После принудительного восстановления учетной записи пользователя данные о его членстве в группах могут быть удалены из AD, нужно вновь добавить пользователя в его группы (см. http://support.microsoft.com/kb/840001).
Удаленный из AD объект помещается в скрытый контейнер CN=Deleted Objects, атрибут объекта isDeleted принимает значение True, к Distinguished Name добавляется флаг ADEL и устанавливается значение Tombstone Lifetime (TSL). Помеченный на удаление объект (Tombstoned) может быть восстановлен в течение TSL, затем запись об объекте окончательно удаляется из базы данных Active Directory.
На контроллере домена каждые 12 часов запускается процесс Garbage Collection, при этом окончательно удаляются объекты у которых закончилось TSL и выполняется дефрагментация базы данных AD. Можно изменить этот интервал с помощью ADSI Edit присвоив значение атрибуту garbageCollPeriod (CN=Directory Service,CN=Windows NT,CN=Services, DC=DomainName,DC=local,CN=Configuration)
Время жизни помеченного на удаление объекта (TSL) по умолчанию равно 60 дням, после выхода Windows Server 2003 SP1 стало равным 180 дням. TSL можно изменить при помощи ADSI Edit. Для этого нужно запустить ADSI Edit, найти CN=Directory Service, CN=Windows NT, CN=Services,CN=Configuration, DC=DomainName,DC=local и щелкнуть правой кнопкой мыши на контейнере CN=Directory Service и выбрать Properties. Найти Tombstone Lifetime в списке атрибутов, нажать кнопку Edit и ввести количество дней, необходимое для хранения удаленных объектов.
Для восстановления помеченного на удаление объекта нужно удалить атрибут isDeleted и восстановить прежнее значение DistinguishedName. Для этого запускаем Ldp.exe из Windows Support Tools, выбираем из меню Connections команду Connect, указываем NetBios имя контроллера домена и порт 389 (LDAP). В меню Connections выбираем команду Bind, вводим учетные данные администратора предприятия (Enterprise Admins). В меню Options выбираем Controls и в поле Load Predefined из списка выбираем Return deleted objects и жмем Ок. Выбираем в меню View пункт Tree, в поле BaseDN вводим DC=DomainName,DC=local. В списке контейнеров левой панели ищем контейнер CN=Deleted Objects, DC=DomainName,DC=local и щелкаем по нему два раза. Находим удаленный объект, например:
CN= Елена Муратова ADEL:a49bb628-11b5-427f-85cf-6441b8b94970,CN=Deleted Objects, DC=DomainName,DC=local
Выделяем его, щелкаем правой кнопкой мыши и выбираем Modify. В разделе Edit Entry, в поле Attribute вводим isDeleted, в панели Operation выбираем Delete, затем жмем кнопку Enter.
В разделе Edit Entry в поле Attribute вводим distinguishedName, в поле Values вводим Common Name объкта и после запятой значение lastKnownParent из списка атрибутов объекта (см.правую панель), например:
CN=Елена Муратова,OU=Sales Users,OU=Sales,DC=DomainName,DC=local
В разделе Operation выбираем Replace и жмем кнопку Enter. Устанавливаем флажки Synchronous и Extended нажимаем кнопку Run
При восстановлении учетной записи пользователя нужно заново прописать все ее атрибуты, за исключением sAMAccountName, SID и GUID, установить пароль и включить ее.
Восстановление доверительных отношений в домене
Бывает такая ситуация, что компьютер не может пройти проверку подлинности в домене. Вот несколько примеров:
- После переустановки ОС на рабочей станции машина не может пройти проверку подлинности даже с использованием того же имени компьютера. Поскольку в процессе новой установки ОС генерируется SID-идентификатор и компьютер не знает пароль учетной записи объекта компьютера в домене, он не принадлежит к домену и не может пройти проверку подлинности в домене.
- Компьютер полностью восстановлен из резервной копии и не может пройти проверку подлинности. Возможно, после архивации объект компьютера изменил свой пароль в домене. Компьютеры изменяют свои пароли каждые 30 дней, а структура Active Directory помнит текущий и предыдущий пароль. Если была восстановлена резервная копия компьютера с давно устаревшим паролем, компьютер не сможет пройти проверку подлинности.
- Секрет LSA компьютера давно не синхронизировался с паролем, известным домену. Т.е. компьютер не забыл пароль — просто этот пароль не соответствует реальному паролю в домене. В таком случае компьютер не может пройти проверку подлинности и безопасный канал не будет создан.
Основные признаки возможных неполадок учетной записи компьютера:
- Сообщения при входе в домен указывают, что компьютеру не удалось установить связь с контроллером домена, отсутствует учетная запись компьютера, введен неправильный пароль учетной записи компьютера или потеряно доверие (безопасная связь) между компьютером и доменом.
- Сообщения или события в журнале событий, указывающие аналогичные ошибки или предполагающие неполадки паролей, доверительных отношений, безопасных каналов либо связи с доменом или контроллером домена. Одна из таких ошибок — отказ проверки подлинности с кодом ошибки 3210 в журнале событий компьютера.
- Учетная запись компьютера в Active Directory отсутствует.
Необходимо переустановить учетную запись компьютера. В сети есть рекомендации по такой переустановки: удалить компьютер из домена, чтобы потом повторно присоединить его. Да, это работает, но данный вариант не рекомендуется делать по причине того, что теряется SID-идентификатор и членство компьютера в рабочей группе.
Поэтому необходимо сделать так :
Открыть оснастку Active Directory, выбрать «Пользователи и компьютеры», щелкнуть объект компьютера правой кнопкой мыши и применить команду «Переустановить учетную запись». После этого компьютер следует заново присоединить к домену и перезагрузиться.
Чтобы перезагрузка после сброса безопасного канала не требовалось, нужно использовать либо команду Netdom, либо Nltest.
C помощью учетной записи, относящейся к локальной группе «Администраторы»:
netdom reset Имя_машины /domain Имя_домена /Usero Имя_пользователя /Passwordo
Ситуация: Членство в группах домена не восстановлено
Полномочное восстановление объекта пользователя не восстанавливает членство пользователя в группах. Собственно, почему? Потому, что отношения членства сохраняются и реплицируются при помощи атрибута члена объектов групп (ссылки вперед), а не атрибута memberOf пользователя (ссылки назад). Проблема состоит в том, чтобы найти членство пользователей в старой группе и, узнав это, правильно их восстановить.
Корпорация Майкрософт постоянно вносит улучшения в процесс восстановления членства в группах, поэтому используемая методика зависит от версии Active Directory. Следующие разделы прежде всего применимы для Windows 2000 Active Directory.
Определить членство пользователя в старых группах достаточно просто: посмотрите атрибут ссылки назад на восстановленном контроллере домена — в данном случае это атрибут memberOf объекта пользователя. Атрибут memberOf будет содержать все сведения о членстве в локальных и глобальных группах домена пользователя. Для составления списка членства пользователя в группах можно использовать оснастку «Active Directory – пользователи и компьютеры» (ADUC), или программу LDIFDE, которая включена в состав Windows Server.
Следующая команда LDIFDE выведет список групп домена DRNET, членом которых состоит Molly Clark, сохранив результат в файле output.ldf:
Помните, что для использования программы LDAP необходимо загрузить контроллер домена в обычном режиме и затем запретить входящую репликацию, иначе восстановленные данные будут переписаны. Простейший способ запретить входящую репликацию — использовать команду REPADMIN:
Здесь — имя восстанавливаемого контроллера домена. Не забудьте после окончания заново включить репликацию с помощью параметра -DISABLE_INBOUND_REPL.
Если восстанавливаются только некоторые пользователи, можно просто вручную добавить пользователя в группы с помощью ADUC. Для восстановления большого числа пользователей существуют средства, позволяющие автоматизировать некоторые процессы. Служебная программа Microsoft GROUPADD (доступна через службу поддержки Microsoft) может использовать созданный файл LDIF для просмотра членства пользователя в старых группах и, в свою очередь, для создания файла LDIF, который восстанавливает это членство. Например, можно использовать команду GROUPADD для обработки файла LDIF, ранее созданного для пользователя Molly Clark:
Эта команда создаст новый файл LDIF для каждого домена, в группы которого входит Molly Clark с именем groupadd_.ldf (где — полное доменное имя (FQDN) домена, в котором будут обновлены группы). Импортировать ранее созданный файл LDIF можно при помощи следующей команды:
С выходом Windows Server 2003 корпорация Microsoft улучшила NTDSUTIL, добавив преимущества дополнительных метаданных, присутствующих в атрибуте членства для поддержки репликации связанных значений (LVR). Если восстанавливаемый объект пользователя являлся членом любых групп домена, а членство пользователя хранилось с метаданными LVR, служебная программа NTDSUTIL увеличивает номер версии соответствующего значения атрибута пользователя, что приводит к репликации восстановленного членства.
Служебная программа NTDSUTIL в составе Windows Server 2003 SP1 объединена с функциями GROUPADD и автоматически будет создавать файлы LDIF при полномочном восстановлении объекта пользователя. На рис. 5 показана новая версия NTDSUTIL, а на рис. 6 — содержимое автоматически созданного файла LDIF.
Рис. 5 Новая служебная программа NTDSUTIL со встроенными функциями GROUPADD
Рис 6 Содержание файла LDIF, созданного программой NTDSUTIL
При восстановлении целого подразделения, содержащего ряд пользователей и групп, добавлять в эти группы пользователей вручную довольно утомительно. Другой способ возвращения членства для восстановленных групп — полномочное восстановление самих групп.
В то же время при полномочном восстановлении групп существуют две проблемы. Первая проблема очевидна: при восстановлении группы членство в ней будет отражать момент создания резервной копии. Это означает, что к группе необходимо заново применить любые изменения, произошедшие после создания архива. Вторая проблема не такая явная и связана с тем, как происходит репликация в Active Directory. После полномочного восстановления пользователей и групп нет гарантии, что репликация пойдет в нужном порядке. Если объект пользователя реплицируется позднее, он не будет добавлен в группу.
Простейшее решение этой проблемы — выполнить полномочное восстановление группы позже. После выполнения первого полномочного восстановления перезагрузитесь в обычном режиме и убедитесь, что репликация прошла правильно. Затем перезагрузитесь в режиме восстановления службы каталога и запустите программу NTDSUTIL, чтобы выполнить полномочное восстановление групп, членом которых является пользователь. При этом гарантируется, что при загрузке в обычном режиме объекты пользователей будут реплицированы до того, как объекты групп сошлются на их реплику.
Поиск и восстановление объектов AD — Метод второй — утилита Adrestore.NET
GUI оболчка для утилиты Adrestore от Марка Руссиновича.
До безобразия все просто, после установки и запуска в появившемся окне отображается имя домена и в списке Domain Controller можно выбрать имя домен котроллера, если необходимо совершить поиск из под другой учетной записи необходимо снять флажок с параметра Currently logged on account и ввести требуемые данные, далее нажать кнопку Enumerate Tombstones в списке ниже отобразятся удаленные объекты.
Для восстановления объекта выбрать требуемый объект, нажать кнопку Restore Object.
По окончанию процесса восстановления появится окно сообщающее о результатах восстановления.
Использование AD Recycle Bin (Windows Server 2008 R2)
В Windows Server 2008 R2 появилась корзина Active Directory Recycle Bin (AD RB), Чтобы ее активировать, необходимо, чтобы уровень леса был Windows Server 2008 R2. AD RB напоминает обыкновенную корзину Windows — случайно удаленный объект может быть быстро и со всеми атрибутами восстановлен. Причем восстановленный из AD RB объект сразу же получает и все свои атрибуты. По умолчанию время «жизни» удаленного объекта в AD RB составляет 180 дней, после этого переходит в состояние Recycle Bin Lifetime, теряет атрибуты и через некоторое время полностью удаляется.
В самом простом случае восстановление объекта происходит с помощью Powershell командлетов Get-ADObject и Restore-ADObject (в том случае, если Вы точно знаете, что именно Вам необходимо восстановить). Командлет Get-ADObject используется для извлечения удаленного объекта, который затем передается с помощью конвейера в командлет Restore-ADObject:
1. Запускаем от имени администратора Модуль Active Directory для Windows PowerShell.
2. В командной строке Active Directory module for Windows PowerShell введите следующую команду:
В данном примере
-Filter указывает, что какую информацию об объекте AD необходимо получить (в примере – об объекте с отображаемым именем пользователя “user),
-IncludeDeletedObjects означает, что поиск осуществляется по удаленным объектам
Restore-ADObject непосредственно осуществляет восстановление объекта AD.
Поиск удаленных объектов
1. Запускаем от имени администратора Модуль Active Directory для Windows PowerShell.
2. В командной строке Active Directory module for Windows PowerShell вводим следующие команды для получения необходимой информации:
Вывод информации об удаленных объектах в домене acme.com
Получаем информацию о том, в какой OU состоял удаленный пользователь
Где User – отображаемое имя пользователя
В итоге получаем информацию о принадлежности к OU указанного пользователя (с помощью -Properties lastKnownParent)
Поиск всех удаленных объектов, которые входили в данную OU
В качестве примера берем различающееся имя OU Finance_Department, которое было получено после запуска предыдущего командлета (Finance_Department\0ADEL:e954edda-db8c-41be-bbbd-599bef5a5f2a).
Внимание! Если у Вас имеется вложенная OU, восстановление осуществляется начиная с наивысшего уровня иерархии. В данном случае таковым является OU=Finance_Department.
Восстановление объектов
1. Запускаем Модуль Active Directory для Windows PowerShell
2. Восстанавливаем подразделение Finance_Department, выполнив в командной строке следующую команду:
3. Восстанавливаем учетные записи и OU, которые являются непосредственными дочерними объектами OU Finance_Department (помните, что на этом этапе различающееся имя Finance_Department уже восстановлено в значение OU=Finance_Department,DC=acme,DC=com)
Опционально (восстановление вложенных OU)
4. Восстанавливаем учетные записи, входящие во вложенную OU (например, OU Admins, которая входит в состав OU Finance Department. Различающееся имя в нашем примере было восстановлено в значение OU=Admins,OU=Finance_Department,DC=acme,DC=com)
Подробную справку о командлетах и их параметрах вызвав командлет Get-Help, например Get-Help Get-ADObject
Итог:
Объекты будут восстановлены в первоначальный вид – со всеми атрибутами.
Однако, как мы можем видеть, данный метод довольно сложен, когда приходится работать с большим количеством объектов.
Также требуется, все сервера в лесу должны быть Windows 2008 R2.
Для восстановления объектов с атрибутами при включенной корзине AD можно использовать описанные выше инструменты LDP и AdRestore.
Восстановление удаленных объектов AD в Windows 2008
Active Directory (Active Directory Recycle Bin).
Корзина Active Directory – это специальная функция/фича/возможность восстановления удалённых объектов. Теперь после удаления объекта из Active Directory, он не просто удаляется, а перемещается в специальный контейнер Deleted Objects (хотя и раньше объект не просто удалялся, но об этом ниже).
И если вы потом захотите восстановить объект, то это можно будет сделать, вытащив его из контейнера Deleted Objects.
Функция Корзины Active Directory работает только в режиме работы леса и домена Windows Server 2008 R2! И кроме того эта функция по умолчанию выключена.
Включаем корзину Active Directory.
>У меня домен зовется net.local, поэтому вы меняйте эти значения на свои.
Включить функцию корзины можно двумя способами, либо через ldp.exe либо при помощи командлетов PowerShell.
1) При помощи ldp.exe (входит в состав Support Tools).
Запускаем Ldp.exe. Затем нажимаем Connection>Connect, пишем localhost, порт 389.