Синхронизация времени в домене Active Directory критически важна для корректного функционирования сервисов и механизмов безопасности. Если в домене не настроена четкач схема синхронизации времени, это может вызвать проблемы с аутентификацией, работой криптографических протоколов, сертификатов при взаимодействии со внутренними и внешними системами. Так, например, Kerberos аутентификация требует, чтобы время между клиентом и сервером не отличалась более чем на пять минут. В этой статье, мы рассмотрим, как должна работать синхронизация времени в домене AD, и как настроить синхронизацию контроллера домена с внешним источником точного времени (NTP).
Содержание:
- Как работает синхронизация времени в домене AD?
- Ручная настройка синхронизация времени контроллера домена PDC с внешним NTP источником
- Настройка групповой политики для синхронизации времени PDC с NTP
- Настройка синхронизации времени на клиентах домена
Как работает синхронизация времени в домене AD?
Схема синхронизации времени в домене Active Directory имеет строгую иерархию:
- Главным источником времени в домене является контроллер домена с FSMO ролью эмулятора PDC.
- С PDC синхронизируют время все остальные контроллеры домена.
- Рядовые сервера и рабочие станции синхронизируют свое время с ближайшими DC согласно топологии AD (по умолчанию компьютеры Windows синхронизируют время внешним
time.windows.com
, но после добавления в домен синхронизация выполняется согласно иерархии домена)
Источник
Для обеспечения точного времени на всех компьютерах домена, нужно настроить синхронизацию PDC с неким внешним источником точного времени по протоколу NTP.
Чтобы определить имя контроллера домена, на котором запущена FSMO роль эмулятора PDC, выполните PowerShell команду:
Get-ADDomain | Select-Object PDCEmulator
Ручная настройка синхронизация времени контроллера домена PDC с внешним NTP источником
По умолчанию PDC синхронизирует время с аппаратными часами материнской платы физического сервера, на котором он запущен. Это можно проверить, выполнив на нем команду:
w32tm /query /source
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.
Если 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
Если вы получили ответ от 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
Выполните синхронизацию времени с NTP:
w32tm /resync
Проверьте, что теперь источником времени на PDC является внешние NTP сервера:
w32tm /query /configuration
Настройка групповой политики для синхронизации времени 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
Создайте новую 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
Примените созданный ранее фильтр PDC Emulator к GPO.
Осталось прилинковать новую GPO на контейнер Domain Controllers.
Настройка синхронизации времени на клиентах домена
В домене нужно настраивать время только на контроллере домена с ролью PDC. Он должен синхронизировать время с внешним NTP. Специально какие-то отдельные политики или настройки для синхронизации времени на оставшихся DC или компьютерах делать не нужно (это может быть даже вредно). Синхронизация времени должна отлично работать согласно иерархии AD (NT5DS).
На оставшихся (дополнительных) контроллерах домена и остальных клиентах синхронизация времени должна выполняться согласно иерархии домена. Проверим это:
w32tm /query /configuration
Если все настроено правильно, в качестве типа источника времени в разделе
TimeProviders
должен быть задан 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
Типовые ошибки синхронизации времени на клиентах Windows описаны в статье.
Для управлением службой времени в Windows используется команда win32tm.exe.
Посмотреть текущие настройки службы времени (выполнять из консоли с правами администратора):
w32tm /query /configuration
Посмотреть текущее состояние службы времени можно командой:
w32tm /query /status
Чтобы понять, что это нам там Windows выводит на экран, нужно разобраться как Windows работает со временем. Служба времени зависит от того является ли компьютер частью централизовано администрируемого домена или нет.
Возможные две ситуации:
- компьютер (сервер) входит в состав рабочей группы, т.е. это домашний компьютер или компьютер в небольшом офисе;
- компьютер (сервер) входит в состав домена Active Directory.
Компьютер входит в состав рабочей группы.
В этом случае централизованного управления компьютером нет, он сам заботиться о синхронизации времени. На нем вывод команды
w32tm /query /configuration будет следующим.
Обратите внимание на параметры:
SpecialPollInterval — интервал синхронизации в секундах, 604800 секунд — это неделя, т.е. синхронизация будет проводиться раз в неделю.
Type — определяет источник синхронизации времени. Возможные значени параметра Type:
NoSync. Служба времени вообще не синхронизируется ни с чем.
NTP. Служба времени синхронизируется с серверами указынными в параметре NtpServer. Типично для домашних компьютеров. Как на скриншоте вверху.
NT5DS. Служба времени синхронизируется используя доменную иерархию (только для компьютеров — членов домена Active Directory). Как на самом первом скриншоте.
AllSync. Служба времени использует все возможные механизмы для синхронизации.
NtpServer — указывает сервреры, с которым может синхроинизировать время компьютер.
Как можно видеть, по умолчанию интервал синхронизации 1 неделя, сервер time.windows.com, значение Type NTP.
Компьютер входит в состав домена Active Directory.
Домен AD — иерархичная централизованная структура. Время на всех компьютерах в домене синхронизируется с контроллерами домена, а те в свою очередь синхронизируются с одним контроллером, выполняющим FSMO роль PDC-Emulator. Синхронизация времени происходит раз в 1 час.
Как узнать какой контроллер — PDC-Emulator? Простейший способ — это выполнить команду из командной строки:
netdom /query fsmo
и вот на нем то и надо настраивать синхнонизацию времени в внешним источников времени, которым является какой либо NTP сервер.
Делается это из командной строки с адмнистративными правами следующим образом (один из способов):
- Останавливаем службу времени W32Time: C:\>net stop w32time
- Конфигурируем внешние источники синхронизации:
C:\> w32tm /config /syncfromflags:manual /manualpeerlist:”0.ru.pool.ntp.org, 1.ru.pool.ntp.org, 2.ru.pool.ntp.org” - Делаем PDC-Emulator надежным источником для клиентов: C:\>w32tm /config /reliable:yes
- Запускаем службу времени w32time : C:\>net start w32time
- Служба должна начать синхронизироваться. Можно проверить как применились настройки уже знакомой командой: C:\>w32tm /query /configuration
- Проверяем Event Viewer на наличие ошибок, относящихся к службе времени.
На остальных компьютерах домена вывод команды C:\>w32tm /query /configuration будет следующим:
Если вы по какой-то причине поменяли конфигурацию службы времени на доменном компьютере, то чтобы вернуть настройки по-умолчанию выполните команду:
w32tm /config /syncfromflags:domhier /update
Иногда при переносе роли PDC-Emulator на другой контроллер домена, старый продолжает считает считать себя сервером времени для всего домена, что может стать причиной ошибок в Системном логе, например таких:
«The time provider NtpClient was unable to find a domain controller to use as a time source. NtpClient will try again in 15 minutes.»
и других веселых глюков. «Успокоить» его можно такой-же командой с небольшим дополнением:
w32tm /config /syncfromflags:domhier /reliable:no /update
Несколько комментариев:
- В примере настройки контроллера домена мы останавливали службу времени, меняли настройки, потом запускали опять. Можно этого не делать, а использовать ключ /update, который принуждает службу времени считать конфигурацию заново.
- Для работы протокола NTP необходимо открыть порт UDP 123 на вход и на выход, на файерволе сервера и внешнем файерволе.
- Существует еще одна старая команда конфигурации времени net time, оставленная для совместимости, с меньшим количеством опций, которую все еще можно использовать.
Настройка синхронизации службы времени Windows
w32time — служба времени Windwos синхронизирует время и дату с удалённым NTP сервером для всех устройств частного домена.
По умолчанию компьютер синхронизирует время с ближайшим по иерархии контроллером домена. Обычно тип клиента NT5DS, это означает, что синхронизация времени для ПК происходит из иерархии доменов. Некоторые контроллеры домена настраивают тип клиента NTP, так как они получают время с серверов за пределами частного домена.
Синхронизация времени происходит по протоколу UDP порт 123
w32tm это предпочтительное средство командной строки для настройки синхронизации даты и времени в ОС Windows.
Основные команды для настройки конфигурации службы времени Windows — w32tm
- w32tm /register — Регистрация и включение службы со стандартными параметрами.
- w32tm /unregister — Отключение службы и удаление параметров конфигурации.
- w32tm /monitor — Просмотр информации по домену.
- w32tm /resync — Команда принудительной синхронизации с заданным в конфигурации источником.
- w32tm /config /update — Применить и сохранить конфигурацию.
- w32tm /config /syncfromflags:domhier /update – Задаем настройку синхронизации с контроллером домена.
- w32tm /config /syncfromflags:manual /manualpeerlist:time.windows.com – задать конкретные источники синхронизации времени по протоколу NTP.
Просмотр параметров текущих параметров службы времени Windows
- w32tm /query /computer:<target> — Информация о статусе синхронизации определенной станции (если имя не указано — используется локальный компьютер).
- w32tm /query /Source – Показать источник времени.
- w32tm /query /Configuration — Вывод всех настроек службы времени Windows.
- w32tm /query /Peers – Показать источники времени и их состояние.
- w32tm /query /Status – Статус службы времени.
- w32tm /query /Verbose – Подробный вывод всей информации о работе службы.
Сброс параметров службы времени Windows
- net stop w32time
- w32tm.exe /unregister
- w32tm.exe /register
- net start w32time
Ну и немного старых команд, которые лучше не помнить — синхронизация времени через net time
- net time /setsntp:time.3dlan.ru — Задаем источник синхронизации.
- net time /querysntp — просмотр информации о заданном источнике времени.
- net time \\server.lan.local /set /y – Принудительная синхронизация с указанного источника.
Если у вас нет понимания как выполнять эти команды, то можно и не заморачиваться а просто копить деньги на услуги специалиста.
В этой статье я покажу как можно синхронизировать контроллеры домена с внешним источником времени, например time.windows.com или ntp.pool.org .
По умолчанию все машины в домене синхронизируют время с контроллером домена, который является внутренним сервером времени. Если у вас несколько контроллеров домена, время будет синхронизироваться с контроллером домена, который выполняет роль эмулятора PDC. Чтобы проверить, какой DC является эмулятором PDC в вашем домене, вам нужно выполнить следующую команду:Get-ADDomain | select PDCEmulator
Get-ADDomain | select PDCEmulator
В PowerShell это выглядит так:
После того, как роль эмулятора PDC установлена, нужно выполнить несколько команд, чтобы синхронизировать время. Команды выполняются на эмуляторе PDC в PowerShell:
w32tm /config /syncfromflags:manual /manualpeerlist:»time.windows.com,0x8″ /reliable:yes /updatew32tm /config /updaterestart-service w32time
Если вам нужно добавить более одного NTP-сервера, записи списка узлов разделяются пробелами следующим образом:
«0.ntp.pool.org,0x1 1.ntp.pool.org,0x1 2.ntp.pool.org,0x1»
После завершения выполнения команд служба времени Windows должна начать синхронизацию времени на контроллерах домена с внешним источником. Для просмотра конфигурации времени вы можете использовать:
w32tm /query /configuration
На левом скриншоте показан результат выполнения команды до изменения источника времени на внешний, на правом после
Была настроена синхронизация времени с time.windows.com .
Чтобы настроить клиентский компьютер для автоматической синхронизации времени через домен надо выполнить команду:
w32tm /config /syncfromflags:domhier /update
и проверить, выполняется ли синхронизация:
w32tm /monitor
для повторной синхронизации можно выполнить
w32tm /resync
Между клиентами и эмулятором PDC, а также между эмулятором PDC и интернет должен быть открыт порт NTP 123 tcp/udp.
Для проверки подключения удобно использовать переключатель /stripchart команды w32tm:
w32tm /stripchart /computer:time.windows.com
Найдено тут
…в среде Active Directory разница в часах более 5 минут приводит к проблемам аутентификации Kerberos…
В данной заметке речь пойдет о настройке синхронизации времени в доменной среде Windows 2008 – 2012 R2.
Основой нормального функционирования доменной среды AD является корректная работа службы времени Windows (W32Time).
Как работает синхронизация времени в доменной среде?
1. пользователи получают точное время от ближайшего контроллера домена, на котором они зарегистрировались;
2. все доменные контроллеры запрашивают об этом DC с ролью PDC-эмулятор (одна из ролей FSMO);
3. PDC-эмулятор, в свою очередь, должен синхронизироваться с более авторитетным источником времени;
На практике PDC-эмулятор обычно синхронизируется с выделенным NTP-сервером организации, либо с NTP-сервером провайдера, или же с внешним источником точного времени, такие как: 0.ru.pool.ntp.org, 1.ru.pool.ntp.org, 2.ru.pool.ntp.org
Пример настройки контроллера домена с ролью PDC-эмулятора.
Для настройки нам потребуется консоль PowerShell запущенная от имени администратора.
1. Определим имя PDC-эмулятора – самый простой способ выполнить команду:
netdom query FSMO
Когда мы подключили к DC с ролью PDC можно начинать настраивать.
2. Конфигурируем внешние источники синхронизации – указываем с какими источниками PDC будет синхронизироваться.
w32tm /config /syncfromflags:manual /manualpeerlist:”0.ru.pool.ntp.org 1.ru.pool.ntp.org 2.ru.pool.ntp.org”
где, параметры:
/syncfromflags:manual — синхронизация с узлами из заданного вручную списка.
manualpeerlist:<узлы> — список (адреса DNS или IP) источников времени
Важно! Имя каждого источника времени (если их несколько) должно быть разделено пробелом. А на брандмауэре должно быть разрешено прохождение трафика UDP на порт 123 в обе стороны.
3. Объявляем PDC-Emulator надежным источником времени для клиентов:
w32tm /config /reliable:yes
4. После внесения изменений перезапускаем службу времени:
Restrat-Service W32Time
Или обновляем конфигурацию командой: w32tm /config /update
Если вы перенесли роль PDC-эмулятор на другой контроллер домена, то старый DC все еще продолжает считает считать себя авторитетным сервером времени для всего домена, что может стать причиной ошибок в системных логах. Исправить эту ситуацию можно командой:
w32tm /config /syncfromflags:domhier /reliable:no /update
Несколько, на мой взгляд, полезных команд:
# Настройки для PDC эммулатора: w32tm /config /syncfromflags:manual /manualpeerlist:”0.ru.pool.ntp.org 1.ru.pool.ntp.org 2.ru.pool.ntp.org” w32tm /config /reliable:yes Restart-Service W32Time Get-Service W32Time w32tm /monitor # Настройки для остальных DC в домене: icm -ComputerName DC02 -ScriptBlock {w32tm /config /syncfromflags:domhier /reliable:no /update} icm -ComputerName DC02 -ScriptBlock {Restart-Service W32Time} icm -ComputerName DC02 -ScriptBlock {w32tm /resync /rediscover} # Принудительная синхронизация времени w32tm /resync # Просмотр конфигураций: w32tm /monitor w32tm /query /configurationw32tm /query /configuration — посмотреть текущие настройки службы времени;
![]()
Где:
SpecialPollInterval: 3600 — интервал синхронизации в секундах, 3600 – сутки. Синхронизиция будет проводиться раз в сутки.
NtpServer — указывает сервреры, с которым может синхроинизировать время компьютер.
Type: NTP – вид синхронизации времени.
Параметр Type может иметь следующие параметры:
NoSync — служба времени вообще не синхронизируется ни с чем.
NTP — служба времени синхронизируется с серверами, указанными в параметре NtpServer.
NT5DS — служба времени синхронизируется, используя доменную иерархию (характерно для членов домена Active Directory).
AllSync — служба времени использует все возможные механизмы для синхронизации.w32tm /monitor — отобразит текущую иерархию синхронизации времени по домену;
w32tm /stripchart /computer:0.ru.pool.ntp.org /samples:5 /dataonly — произвести 5 попыток сравнения времени с авторитетным источником времени 0.ru.pool.ntp.org (полезно при проверке доступности источника времени);
w32tm /resync – заставить компьютер синхронизироваться с используемым им сервером времени;
w32tm /unregister — удаляет службу времени с компьютера;
w32tm /register – регистрирует службу времени на компьютере;
Если кому интересно настраивать NTP-сервер через реестр, то милости просим в эту ветку: HKLM\System\CurrentControlSet\services\W32Time\Концепция ярусов STRATA или STRATUM
![]()
Где:
Stratum 0 – эталонные или авторитетные источники точного времени, такие как: путники GPS, цезиевые атомные часы, радио волны WWVB. Авторитетны они потому, что имеют способ поддержания высокоточного хронометража – когда секунда не потеряется за 300 000 лет.
Stratum 1 – компьютеры, которые напрямую берут время у Stratum 0, т.е. Stratum 1 используют аппаратное (проводом) подключение к Stratum 0!
Stratum 2 – уровень компьютеров, берущие время по сети у Stratum 1.
Как уже, наверное, понятно из схемы, Stratum 3 будет брать время у Stratum 2, а Stratum 4 у Stratum 3 и т.д. Самым нижним ярусов является Stratum 16 и время в нем считается не синхронизированным.
Опять же, на практике, самыми распространенными внешними источниками времени являются Stratum 2, Stratum 3, ибо синхронизироваться с Stratum 1 простым пользователям не разрешается, да и это не к чему.