Настройка синхронизации времени с NTP в домене Active Directory

Синхронизация времени в домене Active Directory критически важна для корректного функционирования сервисов и механизмов безопасности. Если в домене не настроена четкач схема синхронизации времени, это может вызвать проблемы с аутентификацией, работой криптографических протоколов, сертификатов при взаимодействии со внутренними и внешними системами. Так, например, Kerberos аутентификация требует, чтобы время между клиентом и сервером не отличалась более чем на пять минут. В этой статье, мы рассмотрим, как должна работать синхронизация времени в домене AD, и как настроить синхронизацию контроллера домена с внешним источником точного времени (NTP).

Как работает синхронизация времени в домене AD?

Схема синхронизации времени в домене Active Directory имеет строгую иерархию:

  • Главным источником времени в домене является контроллер домена с FSMO ролью эмулятора PDC.
  • С PDC синхронизируют время все остальные контроллеры домена.
  • Рядовые сервера и рабочие станции синхронизируют свое время с ближайшими DC согласно топологии AD (по умолчанию компьютеры Windows синхронизируют время внешним time.windows.com , но после добавления в домен синхронизация выполняется согласно иерархии домена)

Иерархическая схема синхронизации времени в AD

Источник

Для обеспечения точного времени на всех компьютерах домена, нужно настроить синхронизацию PDC с неким внешним источником точного времени по протоколу NTP.

Чтобы определить имя контроллера домена, на котором запущена FSMO роль эмулятора PDC, выполните PowerShell команду:

Get-ADDomain | Select-Object PDCEmulator

найти PDC эмулятор в домене

Ручная настройка синхронизация времени контроллера домена PDC с внешним NTP источником

По умолчанию PDC синхронизирует время с аппаратными часами материнской платы физического сервера, на котором он запущен. Это можно проверить, выполнив на нем команду:

w32tm /query /source

Local CMOS Clock - по умолчанию время синхронизируется с локальными часами

Local CMOS Clock указывает, что в качестве источника времени используются локальные часы. При этом в логе Event Viewe на PDC будет регистрироваться событие Event ID 12 от Time-Service:

Time Provider NtpClient: This machine is configured to use the domain hierarchy to determine its time source, but it is the AD PDC emulator for the domain at the root of the forest, so there is no machine above it in the domain hierarchy to use as a time source. It is recommended that you either configure a reliable time service in the root domain, or manually configure the AD PDC to synchronize with an external time source. Otherwise, this machine will function as the authoritative time source in the domain hierarchy. If an external time source is not configured or used for this computer, you may choose to disable the NtpClient.

Event ID 12 от Time-Service:

Если DC запущен на виртуальной машине, в настройках которой включена синхронизация времени с хостом (гипервизором), эта команда вернет:

VM IC Time Synchronization Provider

Поэтому для всех DC нужно отключить синхронизацию времени в настройках ВМ, или запретить DC получать время с хоста, создав параметр реестра:

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\VMICTimeProvider /v Enabled /t REG_DWORD /d 0 /f

Перенастроим настройки Windows Time на PDC так, чтобы он использовал в качестве источника времени внешний NTP сервер. В качестве источника времени можно использовать ближайшие к вам сервера NTP из пула проекта https://www.ntppool.org

Для России это будут сервера 0.ru.pool.ntp.org, 1.ru.pool.ntp.org и 2.ru.pool.ntp.org

Проверьте с PDC эмулятора, что доступ к этим NTP серверам доступен (и порт 123/UDP не блокируется файерволами):

w32tm /stripchart /computer:0.ru.pool.ntp.org

w32tm /stripchart проверить доступность внешнего NTP сервера

Если вы получили ответ от NTP сервера, можно задать эти внешние сервера в качестве источников времени для Primary DC. Выполните команды:

net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"0.ru.pool.ntp.org,0x8 1.ru.pool.ntp.org,0x8 3.ru.pool.ntp.org,0x8 4.ru.pool.ntp.org,0x8"

w32tm /config /reliable:yes
net start w32time
w32tm /config /update

Настройка контроллера домена PDC на синхронизацию времени с внешним NTP сервером

Выполните синхронизацию времени с NTP:

w32tm /resync

Проверьте, что теперь источником времени на PDC является внешние NTP сервера:

w32tm /query /configuration

Проверить, что DC получает время от внешнего NTP пула

Настройка групповой политики для синхронизации времени PDC с NTP

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

Для этого в консоли управления Group Policy Management Console ( GPMC.msc ), создайте новый WMI фильтр групповых политик. Перейдите разделе WMI Filters, создайте фильтр с именем PDC Emulator и WMI запросом:

Select * from Win32_ComputerSystem where DomainRole = 5

WMI фильтр GPO для PDC

Создайте новую GPO, откройте ее и перейдите в раздел Computer Configuration-> Administrative Templates -> System -> Windows Time Service -> Time Providers

Нас интересуют три политики:

  • Configure Windows NTP Client: Enabled (настройки политики описаны ниже)
  • Enable Windows NTP Client: Enabled
  • Enable Windows NTP Server: Enabled

В настройках политики Configure Windows NTP Client укажите следующие параметры:

  • NtpServer: 0.ru.pool.ntp.org,0x8 1.ru.pool.ntp.org,0x8 2.ru.pool.ntp.org,0x8 3.ru.pool.ntp.org,0x8
  • Type: NTP
  • CrossSiteSyncFlags: 2
  • ResolvePeerBackoffMinutes: 15
  • Resolve Peer BAckoffMaxTimes: 7
  • SpecilalPoolInterval: 1024
  • EventLogFlags: 0

Групповая политики для автоматической синхронизации времени с NTP для PDC эмулятора

Примените созданный ранее фильтр PDC Emulator к GPO.

Назначить WMI фильтр для GPO

Осталось прилинковать новую GPO на контейнер Domain Controllers.

Назначить политику синхронизации времени для контроллеров домена

Настройка синхронизации времени на клиентах домена

В домене нужно настраивать время только на контроллере домена с ролью PDC. Он должен синхронизировать время с внешним NTP. Специально какие-то отдельные политики или настройки для синхронизации времени на оставшихся DC или компьютерах делать не нужно (это может быть даже вредно). Синхронизация времени должна отлично работать согласно иерархии AD (NT5DS).

На оставшихся (дополнительных) контроллерах домена и остальных клиентах синхронизация времени должна выполняться согласно иерархии домена. Проверим это:
w32tm /query /configuration

Если все настроено правильно, в качестве типа источника времени в разделе TimeProviders должен быть задан NT5DS.

Клиенты должны синхронизировать время согласно иерархии NT5DS

Настройки службы времени хранятся в ветке реестра HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters .

Если это не так, можно сбросить настройки синхронизации времени на клиенте и принудительно указать, что нужно использовать схему синхронизации по-умолчанию (по доменной иерархии):

net stop w32time
w32tm.exe /unregister
w32tm.exe /register
net start w32time
w32tm /config /syncfromflags:DOMHIER /update
w32tm /resync

Проверьте что теперь в качестве источника времени на клиенте используется ближайший контроллер домена (LogonServer):

w32tm /query /source

w32tm /query /source - проверить откуда берет время рабочая станция Windows

Типовые ошибки синхронизации времени на клиентах Windows описаны в статье.

Предыдущая статья Следующая статья


Комментариев: 62 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)