Безопасная виртуализация доменных служб Active Directory (AD DS)

Область применения: Windows Server 2022, Windows Server 2019, Windows Server

Начиная с Windows Server 2012, службы AD DS поддерживают виртуализацию контроллеров доменов, предоставляя возможности безопасной виртуализации. В этой статье объясняется роль USN и InvocationID в репликации контроллера домена и обсуждаются некоторые возможные проблемы.

Порядковый номер обновления и InvocationID

Виртуальные среды представляют особую трудность для распределенных рабочих потоков, зависящих от логической схемы репликации по времени. Например, репликация AD DS использует равномерно увеличивающееся значение (которое называется USN, или номер последовательного обновления), назначенное транзакциям в каждом контроллере домена. Каждый экземпляр базы данных контроллера домена также получает идентификатор InvocationID. InvocationID контроллера домена и его номер последовательного обновления вместе служат уникальным идентификатором, который связан с каждой транзакцией записи, выполняемой на каждом контроллере домена, и должны быть уникальны в пределах леса.

Репликация AD DS использует InvocationID и номер последовательного обновления на каждом контроллере домена, чтобы определить, какие изменения необходимо повторить на других контроллерах домена. Если контроллер домена откатывается за пределы осведомленности контроллера домена, а usN повторно используется для совершенно другой транзакции, реплика tion не будет конвергентировать, так как другие контроллеры домена считают, что они уже получили обновления, связанные с повторно используемым USN в контексте этого вызова.

Например, следующая иллюстрация показывает последовательность событий, происходящих в ОС Windows Server 2008 R2 и более ранних версиях, когда обнаруживается откат номера последовательного обновления на VDC2 — целевом контроллере домена, работающем на виртуальной машине. В этом примере откат порядкового номера обновления обнаруживается на контроллере VDC2, когда партнер репликации замечает, что VDC2 отправил в векторе синхронизации то же значение порядкового номера обновления, которое этот партнер репликации уже отправлял ранее, что указывает на неправильный откат базы данных контроллера VDC2.

The sequence of events when USN rollback is detected

Виртуальная машина помогает администраторам гипервизора выполнять откат USN контроллера домена (логических часов), например, путем применения снимка за пределами информированности контроллера домена. Дополнительные сведения о номере последовательного обновления и его откате, включая другую иллюстрацию, демонстрирующую невыявленные экземпляры отката номера последовательного обновления, см. в разделе Номер последовательного обновления и его откат.

Начиная с Windows Server 2012, виртуальные контроллеры доменов AD DS, размещенные на платформах гипервизоров, которые предоставляют идентификатор VM-Generation, могут применять меры безопасности для защиты среды AD DS, если откат виртуальной машины был своевременно выполнен путем применения снимка виртуальной машины. Структура ИД создания виртуальной машины использует независимый механизм поставщика гипервизора для предоставления этого идентификатора в пространстве адресов гостевой виртуальной машины, поэтому безопасная виртуализация обеспечивается любым гипервизором, который поддерживает ИД создания виртуальной машины. С помощью этого идентификатора службы и приложения, работающие на виртуальной машине, могут определить, выполнялся ли откат виртуальной машины.

Влияние отката USN

При откате usN изменения объектов и атрибутов не являются входящего реплика с контроллерами целевого домена, которые ранее видели usN.

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

Откат номера последовательного обновления может затронуть репликацию любого объекта или атрибута в любом разделе. Наиболее часто наблюдаемый побочный эффект заключается в том, что учетные записи пользователей и учетные записи компьютеров, созданные на контроллере домена отката, не существуют на одном или нескольких партнерах реплика. Кроме того, обновления паролей, возникшие на контроллере домена отката, не существуют в партнерах реплика tion.

Откат USN может помешать репликации объектов Active Directory любого типа в любой секции. Вот некоторые примеры таких типов объектов:

  • топология и расписание репликации Active Directory;
  • наличие контроллеров домена в лесу и ролей на этих контроллерах домена;
  • наличие секций домена и приложений в лесу;
  • наличие групп безопасности и участников в этих группах;
  • регистрация записей DNS в зонах DNS, которые интегрированы с Active Directory.

Брешь в USN может означать сотни, тысячи или даже десятки тысяч изменений в данных о пользователях, компьютерах, отношениях доверия, паролях и группах безопасности. Размер бреши в USN определяется разницей между самым высоким значением USN, которое существовало на момент создания резервной копии состояния системы, и количеством исходящих изменений, примененных в контроллере домена до его отключения, из-за которого был выполнен откат.

Обнаружение отката USN

Так как откат USN довольно трудно обнаружить, контроллер домена регистрирует событие 2095, когда исходный контроллер домена отправляет ранее подтвержденное значение USN на целевой контроллер домена без соответствующего изменения в invocationID.

Чтобы предотвратить создание уникальных исходящих обновлений Active Directory на неправильно восстановленном контроллере домена, приостанавливается работа службы сетевого входа в систему. Когда служба входа в сеть приостановлена, учетные записи пользователей и компьютеров не могут изменить пароль на контроллере домена, который не будет исходящим реплика te таких изменений. Аналогичным образом, при обновлении объектов в Active Directory средства администрирования Active Directory будут предпочитать работоспособный контроллер домена.

В контроллере домена создаются сообщения о событиях, которые представлены ниже, когда соблюдаются следующие условия:

  • исходный контроллер домена отправляет ранее подтвержденное значение USN в целевой контроллер домена;
  • В идентификаторе вызова нет соответствующих изменений.

Такие события могут регистрироваться в журнале событий службы каталогов. Однако они могут быть перезаписаны перед наблюдением администратора.

Если вы подозреваете, что откат USN произошел, но не увидите соответствующее событие в журналах событий, проверка для записи DSA Not Writable в реестре. Эта запись служит доказательством того, что случился откат USN.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NTDS\Parameters
Registry entry: Dsa Not Writable
Value: 0x4

Предупреждение

Если вы вручную удалите или измените запись реестра DSA Not Writable (Запись DSA невозможна), контроллер домена перейдет в невосстановимое и неподдерживаемое состояние. Такие изменения считаются неподдерживаемыми. В частности, изменение этого значения отменяет состояние карантина, которое создается по коду обнаружения отката USN. Разделы Active Directory на восстановленном контроллере домена будут невосстановимо рассогласованными с прямыми и транзитивными партнерами репликации в лесу Active Directory.

Дополнительные сведения об этом разделе реестра и шагах разрешения см. в статье об ошибке репликации Active Directory 8456 или 8457: "Источник | Целевой сервер в настоящее время отклоняет запросы реплика tion".

Меры безопасности на основе виртуализации

Во время установки контроллера домена службы AD DS изначально сохраняют идентификатор VM-GenerationID в составе атрибута msDS-GenerationID на объекте компьютера контроллера домена в локальной базе данных (которую часто называют информационным деревом каталога). ИД создания виртуальной машины независимо отслеживается драйвером Windows на виртуальной машине.

Когда администратор восстанавливает машину из предыдущего снимка, текущее значение ИД создания виртуальной машины от драйвера виртуальной машины сравнивается со значением в DIT.

Если эти два значения отличаются, идентификатор вызова сбрасывается и пул RID отключается карта тем самым предотвращая повторное использование USN. Если значения совпадают, транзакция проводится в обычном режиме.

Службы AD DS также сравнивают текущее значение ИД создания виртуальной машины от виртуальной машины со значением в DIT при каждой перезагрузке контроллера домена. Если значения отличаются, службы сбрасывают InvocationID, отклоняют пул относительного идентификатора и записывают в DIT новое значение. Кроме того, службы синхронизируют папку SYSVOL недоверенным методом, чтобы завершить безопасное восстановление. Это позволяет обеспечить защиту для применения моментальных снимков на виртуальных машинах, которые были выключены. Эти меры безопасности, добавленные в Windows Server 2012, позволяют администраторам AD DS пользоваться уникальными преимуществами развертывания и администрирования контроллеров доменов в виртуализованной среде.

Следующая иллюстрация показывает, как применяются меры безопасности виртуализации при обнаружении отката того же USN на виртуализованном контроллере домена, который работает под управлением Windows Server 2012 на гипервизоре с поддержкой VM-GenerationID.

Safeguards applied when the same USN rollback is detected

В этом случае, когда гипервизор обнаруживает изменение ИД создания виртуальной машины, срабатывают средства безопасности виртуализации, включая сброс кода обращения виртуализованного контроллера домена (с A на B в предыдущем примере) и обновление ИД создания виртуальной машины, сохраненного на виртуальной машине, для обеспечения соответствия новому значению (G2), которое хранит гипервизор. Меры безопасности обеспечивают выполнение репликации на обоих контроллерах доменов.

В Windows Server 2012 AD DS использует средства защиты виртуальных контроллеров домена, размещенных на гипервизорах с поддержкой VM-GenerationID, и гарантирует, что случайное применение моментальных снимков или других таких механизмов с поддержкой гипервизора, которые могут откатить состояние виртуальной машины, не нарушает среду AD DS (предотвращая реплика проблемы, такие как пузырьк USN или задерживающиеся объекты).

Восстановление контроллера домена путем применения моментального снимка виртуальной машины не рекомендуется в качестве альтернативного механизма резервного копирования контроллера домена. Рекомендуется продолжать использовать резервное копирование Windows Server или другие решения для резервного копирования на основе VSS.

Внимание

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

Дополнительные сведения см. в разделе Virtualized domain controller safe restore architecture.

Восстановление после отката USN

Есть два подхода к восстановлению после отката номера последовательного обновления.

  • Удаление контроллера домена из домена
  • восстановление состояния системы из хорошей резервной копии.

Удаление контроллера домена из домена

  1. Удалите Active Directory из контроллера домена, чтобы он стал автономным сервером.
  2. Завершите работу сервера с пониженной ролью.
  3. На работоспособном контроллере домена очистите метаданные контроллера домена с пониженной ролью.
  4. Если на неверно восстановленном контроллере домена размещены роли хозяина операций, переместите эти роли на работоспособный контроллер домена.
  5. Перезапустите сервер с пониженной ролью.
  6. Если вам нужно, установите Active Directory на автономном сервере еще раз.
  7. Если контроллер домена раньше был глобальным каталогом, настройте его как глобальный каталог.
  8. Если на контроллере домена раньше размещались роли хозяина операций, переместите их обратно на контроллер домена.

восстановление состояния системы из хорошей резервной копии.

Определите, есть ли действительные резервные копии состояния системы для этого контроллера домена. Если действительная резервная копия состояния системы была создана до неправильного восстановления контроллера домена с выполненным откатом и содержит последние изменения, внесенные на контроллере домена, восстановите состояние системы по самой актуальной резервной копии.

Вы также можете использовать моментальный снимок в качестве источника резервной копии. Или можно задать базу данных для предоставления себе нового идентификатора вызова с помощью процедуры в разделе "Восстановление виртуального контроллера домена", если соответствующая резервная копия данных состояния системы недоступна.

Следующие шаги