Полномочное восстановление базы Active Directory

Три года назад я столкнулся с проблемой, описываемой в различных книгах как “системный администратор случайно удалил объекты из Active Directory” 🙂

При чистке содержимого базы случайно было удалено подразделение (OU), содержащее учетные записи пользователей и группы безопасности.

Резервных копий не было – моя заслуга. К счастью, нам удалось сохранить нетронутую базу AD в другом городе, вовремя прервав процесс репликации.

Поразвлекавшись с восстановлением удаленных учеток, мы поняли – это не наш выбор. Восстанавливать вручную 400 учетных записей, а потом по бумажным служебкам их права…

Для полномочного восстановления (Authoritative Restore) необходимо перезагрузить сервер в режиме восстановления службы каталогов, а доступа к консоли сервера нет.

Перекрестившись, мы изменили файл Boot.ini и отправили сервер в перезагрузку в режим восстановления AD.

К всеобщей радости, полномочное восстановление OU прошло на ура. Мы еще раз перезагрузились, “пнули” репликацию и пошли релаксировать на улицу.

Не тут-то было

Звонит директор по ИТ и говорит: “меня в интернет не пускает”. Смотрим группу “доступ к интернет” – нет его там. Равно как и десятка других ТОПов, включая генерального.

Гуглим – действительно, при авторитативном восстановлении может пропасть членство в группах. Быстро лабаем скрипт, выдираем членство в группах на “живом” контроллере, применяем на местном. Проверяем – все работает, группы есть, членство восстановлено.

Снова звонит директор по ИТ: “у меня ящик пустой”. Начинаем разбираться – действительно, у части народа в Exchange пустые ящики. Догадка, что это из-за наличия нескольких Mailbox Store на серверах Exchange успешно подтвердилась. До 6 утра восстанавливаем ящики, а потом на автопилоте идем домой. Вся следующая неделя посвящена восстановлению ящиков.

Работа над ошибками

1) Всегда необходимо делать бэкапы. Также необходимо иметь план восстановления из этих бэкапов и хотя бы раз его успешно проверить! Совсем идеальный вариант – периодическая проверка бэкапов.

2) В Active Directory 2008 есть защита от случайного удаления новых объектов. В более старых можно обойтись скриптом – запретить группе Everyone права на удаление объектов и поддеревьев (отсюда)

Также я видел следующую рекомендацию по защите объектов:

вы создаете резервный сайт, в который помещаете резервный контроллер домена. Хитрость в том, что репликация в этот сайт идет в ночное время суток. Если необходимо восстановление учеток – свободно перезагружаете его, так как он никем не используется.

Как вариант, вместо такого сайта вы можете иметь под рукой пакетный файл, останавливающий репликацию между рабочими сайтами (repadmin /?). Иначе вы просто не успеете разобраться, как остановить репликацию.

3) Если вы все же решитесь использовать полномочное восстановление – не поленитесь сходить сюда – известные проблемы с полномочным восстановлением.

Там вы узнаете, что помимо косяков с пропавшим членством в группе, вы можете восстановить ранее удаленное членство (лежащее на “кладбище”) и поломать почтовые ящики Exchange 2003. Остановлюсь на этих проблемах подробнее.

4) В Windows 2003 появилась эффективная модель репликации данных – Linked Value Replication. Это функционал, позволяющий реплицировать только изменения, а не все затронутые объекты целиком. Тут описано, как посмотреть, включен ли LVR для ваших групп. Есть нюанс – он включен по умолчанию для новых объектов, созданных в лесу с функциональным уровнем 2003 Native (или выше). По умолчанию, домен, создаваемый на Windows 2003 имеет уровень 2000 Mixed.

Чем для нас с вами интересен этот механизм? Да тем, что при полномочном восстановлении именно LVR поможет восстановить членство во всех группах, на которых он включен. Без него придется прогонять полномочное восстановление два раза, либо использовать другие инструменты.

В вышеупомянутом документе (известные проблемы при полномочном восстановлении Active Directory) приводится следующая последовательность действий при полномочном восстановлении базы Active Directory:

– Восстановить объекты и проверить, что они успешно реплицировались;

– Применить изменения .LDF-файла на контроллере домена (оказывается, в Windows Server 2003 SP1 и выше NTDSUTIL автоматически создает этот файл для пре-LVR групп);

– еще раз пнуть репликацию (repadmin /syncall).

5) При использовании .LDF вы можете столкнуться с тем, что будет восстановлено членство в группах, которое вы удаляли до инцидента. Чтобы этого не произошло, убедитесь в наличии этого апдейта на контроллере домена.

6) И именно в Exchange 2003, если версия леса – Windows 2003 Native, при полномочном восстановлении может пройти переподключение пользователей в Mailbox Store #1 (отсюда).

Правда, у нас был затронут и Exchange 2007, потому что время жизни удаленного ящика было выставлено в 0 дней. А время жизни было выставлено так коряво потому, что кончилось место на одном из “почтовых” дисков.

Выводы

Для получения столь печального результата наложилось несколько случайных факторов:

– отсутствие бэкапов;

– случайное удаление объектов;

– закончившееся место на почтовом сервере.

В результате несколько админов были заняты неделю разгребанием косяков.

Радует только то, что эта сказка оказалась со счастливым концом.

12 thoughts on “Полномочное восстановление базы Active Directory”

  1. Спасибо за эту статью! =)
    Отлично помню как со стороны Андрея донеслось это “ОЙ!” =)))
    Хорошо что мой сектор ответственности не задело и я со стороны смотрел на ваши мытарства…

  2. У нас работает бесплатная версия. Наши руки чисты!

  3. а у нас нету рабочей версии никакой… репликация очень быстро прошла… Отдел безопасности нас замутил точно такую же тему.. ручки рулят 😀 😀

  4. Репликацию с лаг сайтом можно выполнять вручную, раз в месяц к примеру, а не каждую ночь.

  5. Можно вручную – но можно и забыть среплицировать.
    А если делать раз в месяц, есть вероятность что учетку успеют создать удалить в этот промежуток.

    Рулит корзина в 2008 R2 – там одна команда – и учетка снова в деле (со всеми параметрами/группами/…).

Leave a Reply to Вадим Cancel reply

Your email address will not be published. Required fields are marked *