Настройка синхронизации времени по NTP с помощью групповых политик | Windows для системных администраторов

Основные настройки ntp сервера

NTP сервер включили, теперь надо его настроить. Открываем ветку реестра HKLMSystemCurrentControlSetservicesW32TimeParameters. Здесь в первую очередь нас интересует параметр Type, который задает тип синхронизации. Он может принимать следующие значения:

NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются часы, встроенные в микросхему CMOS самого сервера;NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer;NT5DS —  NTP-сервер производит синхронизацию согласно доменной иерархии;AllSync — NTP-сервер использует для синхронизации все доступные источники.

Значение по умолчанию для компьютера, входящего в домен — NT5DS, для отдельно стоящего компьютера —  NTP.

The NTP socket is in use, exiting

Данная ошибка возникает при попытке синхронизировать время с помощью ntpdate, когда в системе работает демон ntp.

Причина: NTP сокет в системе уже занят ntpd.

Решение: либо не использовать ntpdate, так как ntp умеет сверять время, либо отключить сервис ntpd командой service ntp stop.

Connection refused

Возникает при попытке выполнить команду ntpq -p.

Причина: нет разрешения на обращение к серверу.

Решение: проверьте, удастся ли выполнить запрос командой ntpq -pn 127.0.0.1 или ntpq -pn ::1. Также убедитесь, что настройка restrict позволяет серверу подключаться к самому себе по нужному протоколу.

No server suitable for synchronization found

Ошибка синхронизировать время с другим сервером синхронизации.

Причина: сервер синхронизации не доступен по одной из причин: 1) не работает или выключен, 2) установлен restrict, 3) на сервере не запущен ntpd, 4) нет сетевой доступности из-за проблем на сети или брандмауэра.

Убедиться, что сервер доступен по сети. Проверить настройки ntp.conf — наличие соответствующего restrict. Проверить состояние сервиса командой service ntp status. Проверить настройки брандмауэра — убедиться в наличие правила, которое разрешает UDP порт 123.

Ntp и межсетевой экран

Могут возникнуть проблемы, связанные с Вашим межсетевым экраном. Для ISA следует настроить protocol rule разрешающее для протокол NTP (клиент) (UDP 123 Send-Receive). Перезапустили firewall service.

Теперь надо протестировать. Перезапускаем w32time на PDC. Если Вы меняли cname time.services, рекомендую перед перезапуском выполнить ipconfig /flushdns. И сразу время корректируется (после перезапуска w32time, разумеется, проверяем по журналу событий).

Ntpdate

Утилита командной строки выполняет синхронизацию только при запуске. Для автоматизации процесса, добавляем задание в cron:

* в данном примере задание будет выполняться каждые 30 минут. /usr/sbin/ntpdate — полный путь расположения утилиты, в разных системах может быть разным — проверить стоит командой which ntpdate.

Запуск ntp сервера

Сразу отмечу, что служба времени в Windows Server (начиная с 2000 и заканчивая 2022) не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра. Лично мне ближе второй способ, поэтому идем в реестр.

Итак, первым делом нам надо запустить сервер NTP. Открываем ветку реестраHKLMSystemCurrentControlSetservicesW32TimeTimeProvidersNtpServer.Здесь для включения сервера NTP параметру Enabled надо установить значение 1.

Затем перезапускаем службу времени командой net stop w32time && net start w32time

После перезапуска службы NTP сервер уже активен и может обслуживать клиентов. Убедиться в этом можно с помощью команды  w32tm /query /configuration. Эта команда выводит полный список параметров службы. Если раздел NtpServer содержит строку Enabled :1 , то все в порядке, сервер времени работает.

Для того, чтобы NTP-сервер мог обслуживать клиентов, не забудьте на файерволле открыть UDP порт 123 для входящего и исходящего траффика.

Настройка клиента в linux

Для этих можно использовать 2 способа настройки — с помощью ntp или утилиты ntpdate.

В настройка /etc/ntp.conf в качестве сервера оставляем только наш локальный сервер, например:

Остальные pool и server удаляем или комментируем.

Настройка клиента в windows

В командной строке выполняем:

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

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

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

Затем создайте новую GPO и назначьте ее на контейнер Domain Controllers.

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

В среде Active Directory по умолчанию клиенты домена синхронизируют свое время с контролерами домена (опция Nt5DS – синхронизировать время согласно иерархии домена). Как правило, эта схема работает и не требует перенастройки. Однако при наличии проблем с синхронизацией времени на клиентах домена, можно попробовать принудительно назначить сервер времени для клиентов с помощью GPO.

:/>  Почему не работают некоторые кнопки на клавиатуре ноутбука и компьютера

Служба времени windows (w32time)

Служба времени Windows (Windows Time Service; имя службы W32Time) обеспечивает синхронизацию системных часов. В доменах Active Directory точность времени особенно важна потому, что клиенты работающие под управлением систем Windows 2000 и выше, и контроллеры домена при аутентификации используют протокол Kerberos V5, для нормальной работы которого необходимо, чтобы показания часов на компьютерах отличались не более чем на 5 минут.
В составе стека протоколов TCP/IP имеется протокол NTP (Network Time Protocol, RFC 1119), который служит для синхронизации системных часов компьютеров, связанных сетью TCP/IP. Клиент протокола NTP синхронизирует показания своих часов сервера NTP.
Примечание:
Работа службы времени определяется параметрами реестра, расположенными в разделе HKLMSYSTEMCurentControlSetServicesW32Time.

По умолчанию служба времени Windows синхронизируется от внешнего сервера времени (поскольку параметр TimeProvidersNtpClientEnable равен 1), при этом параметр ParametersType имеет значение NTP, с которым происходит синхронизация. Параметр TimeProvidersNtpServerEnabled изначально равен 0, и компьютер не может выполнять функции сервера времени.
В случае подключения компьютера к домену параметр ParametersType изменяет свое значение на NT5DS, и синхронизация времени осуществляется только от контроллеров домена. (Для систем Windows Server 2008 также можно использовать значение AllSync — тогда компьютер может получать точное время как от контроллеров домена, так и от внешних серверов времени). то же самое происходит и при повышении роли рядового сервера до контроллера домена (при этом параметр TimeProvidersNtpServerEnabled становится равным 1, поскольку каждый контроллер домена может выполнять функции сервера времени).
Примечание:
После каждого изменения параметров в реестре службы времени Windows ее следует перезапустить с помощью оснастки Службы (Service) или в окне консоли (используя команду net stop w32time && net start w32time). Если для настройки параметров используется утилита w32tm.exe, то новые значения начинают действовать только после выполнения команды:
w32tm /config /update

Клиенты, работающие под управлением систем Windows 2000/XP/Windows Server2003 и выше, автоматически синхронизируют время с контроллерами домена Active Directory в процессе загрузки системы. Контроллеры домена сверяют время с контроллером, выполняющим функции эмулятора PDC (PDC Emulator), или с любым контроллером родительского домена. Эмулятор PDC синхронизирует время с эмулятором PDC родительского домена (или корневого домена леса) или с любым сервером этого домена. Эмулятор PDC корневого домена леса должен получать время от внешнего NTP-сервера, либо возможна ситуация, когда синхронизация часов контроллера корневого домена леса не выполняется. В этом случае показания системных часов эмулятора PDC этого домена считаются эталонными.

Настройка синхронизации с источником времени
В общем случае имя или IP-адрес внешнего сервера времени можно задать с помощью команды:
net time /SETSNTP:
а команда
net time /QUERYSNTP
показывает, какой внешний сервер (серверы) времени используются в данный момент.
Примечание:
В качестве внешних можно использовать различные NTP-серверы времени, имеющиеся в Интернете, их примерный список имеется в статье КВ262680 базы знаний Microsoft.

Эту задачу можно выполнить с помощью двух команд:
w32tm /config /syncfromflags:MANUAL /manualpeerlist:
w32tm /config /update

По умолчанию все компьютеры, работающие под управлением Windows, в качетсве сервера времени используют веб-узел time.windows.com
Для того чтобы часы компьютера синхронизировались только в соответствии с иерархической структурой доменов (чтобы параметр ParametrsType изменил назначение на NT5DS), нужно выполнить команду:
w32tm /config /syncfromflags:DOMHIER /update
Команда:
w32tm /config /syncfromflags:ALL /update
позволяет получение точного времени от контроллеров домена и внешних серверов времени (при этом параметр ParametrsType изменит значение на AllSync).

Запуск NTP сервера
Служба времени в Windows Server (начиная с 2000 и выше) не имеет графического интерфейса и настраивается либо из командной строки, либо путем прямой правки системного реестра.
Итак, первым делом нам надо запустить сервер NTP. Открываем ветку реестра
HKLMSystemCurrentControlSetservicesW32TimeTimeProvidersNtpServer.
Здесь для включения сервера NTP параметру Enabled надо установить значение 1.
Настройка синхронизации времени по NTP с помощью групповых политик | Windows для системных администраторов

Затем перезапускаем службу времени командой:
net stop w32time && net start w32time
Настройка синхронизации времени по NTP с помощью групповых политик | Windows для системных администраторов

После перезапуска службы NTP сервер уже активен и может обслуживать клиентов. Убедиться в этом можно с помощью команды 
w32tm /query /configuration
Эта команда выводит полный список параметров службы. Если раздел NtpServer содержит строку Enabled:1, то все в порядке, сервер времени работает.
Настройка синхронизации времени по NTP с помощью групповых политик | Windows для системных администраторов

:/>  Как настроить NTP сервер и синхронизацию времени в домене Active Directory | Настройка серверов windows и linux

Для того, чтобы NTP-сервер мог обслуживать клиентов, не забудьте на файерволле открыть UDP порт 123 для входящего и исходящего трафика.

Основные настройки NTP сервера
NTP сервер включили, теперь надо его настроить. Открываем ветку реестра HKLMSystemCurrentControlSetservicesW32TimeParameters. Здесь в первую очередь нас интересует параметр Type, который задает тип синхронизации. Он может принимать следующие значения:

NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются часы, встроенные в микросхему CMOS самого сервера;
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer;
NT5DS —  NTP-сервер производит синхронизацию согласно доменной иерархии;
AllSync — NTP-сервер использует для синхронизации все доступные источники.

Значение по умолчанию для компьютера, входящего в домен — NT5DS, для отдельно стоящего компьютера —  NTP.

И параметр NtpServer, в котором указываются NTP-сервера, с которыми будет синхронизировать время данный сервер. По умолчанию в этом параметре прописан NTP-сервер Microsoft (time.windows.com, 0x1), при необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. Список доступных серверов времени можно посмотреть например здесь.

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

0x1 –  SpecialInterval, использование специального интервала опроса ;
0x2 – режим UseAsFallbackOnly;
0x4 – SymmetricActive, симметричный активный режим;
0x8 – Client, отправка запроса в клиентском режиме.

При использовании флага SpecialInterval, необходимо установленное значение интервала в ключе SpecialPollInterval. При значении флага UseAsFallbackOnly службе времени сообщается, что данный сервер будет использоваться как резервный и перед синхронизацией с ним будут выполнятся обращения к другим серверам списка. Симметричный активный режим используется NTP-серверами по умолчанию, а клиентский режим можно задействовать в случае проблем с синхронизацией. Подробнее о режимах синхронизации можно посмотреть здесь, либо не морочиться и просто ставить везде ,0x1 (как советует Microsoft).

Настройка синхронизации времени по NTP с помощью групповых политик | Windows для системных администраторов

Еще один важный параметр AnnounceFlags находится в разделе реестра HKLMSystemCurrentControlSetservicesW32TimeConfig. Он отвечает за то, как о себе заявляет NTP-сервер и может принимать следующие значения:

0x0 (Not a time server) — сервер не объявляет себя через NetLogon, как источник времени. Он может отвечать на NTP запросы, но соседи не смогут распознать его, как источник времени;
0x1 (Always time server) — сервер будет всегда объявлять о себе вне зависимости от статуса;
0x2 (Automatic time server) — сервер будет объявлять о себе только, если он получает надежное время от другого соседа (NTP или NT5DS);
0x4 (Always reliable time server) — сервер будет всегда заявлять себя, как надежный источник времени;
0x8 (Automatic reliable time server) — контроллер домена автоматически объявляется надежным если он PDC-эмулятор корневого домена леса. Этот флаг позволяет главному PDC леса заявить о себе как об авторизованном источнике времени для всего леса даже при отсутствии связи с вышестоящими NTP-серверами. Ни один другой контроллер или рядовой сервер (имеющие по умолчанию флаг 0x2) не может заявить о себе, как надежном источнике времени, если он не может найти источник времени для себя.

Значение AnnounceFlags составляет сумму составляющих его флагов, например:

10=2 8 — NTP-сервер заявляет о себе как о надежном источнике времени при условии, что сам получает время из надежного источника либо является PDC корневого домена. Флаг 10 задается по умолчанию как для членов домена, так и для отдельно стоящих серверов.

5=1 4 — NTP-сервер всегда заявляет о себе как о надежном источнике времени. Например, чтобы заявить рядовой сервер (не домен-контроллер) как надежный источник времени, нужен флаг 5.

Настройка синхронизации времени по NTP с помощью групповых политик | Windows для системных администраторов

Ну и настроим интервал между обновлениями. За него отвечает уже упоминавшийся выше ключ SpecialPollInterval, находящийся в ветке реестра HKLMSystemCurrentControlSetservicesW32TimeTimeProvidersNtpClient. Он задается в секундах и по умолчанию его значение равно 604800, что составляет 1 неделю. Это очень много, поэтому стоит уменьшить значение SpecialPollInterval до разумного значения, скажем до  1 часа (3600).

Настройка синхронизации времени по NTP с помощью групповых политик | Windows для системных администраторов

После настройки необходимо обновить конфигурацию сервиса. Сделать это можно командой w32tm /config /update. И еще несколько команд для настройки, мониторинга и диагностики службы времени:

w32tm /monitor – при помощи этой опции можно узнать, насколько системное время данного компьютера отличается от времени на контроллере домена или других компьютерах. Например: w32tm /monitor /computers:time.nist.gov
w32tm /resync – при помощи этой команды можно заставить компьютер синхронизироваться с используемым им сервером времени.
w32tm /stripchart–  показывает разницу во времени между текущим и удаленным компьютером, причем может выводить результат в графическом виде. Например, команда w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly произведет 5 сравнений с указанным источником и выведет результат в текстовом виде.

:/>  Служба поддержки nanoCAD

w32tm /config – это основная команда, используемая для конфигурирования службы NTP. С ее помощью можно задать список используемых серверов времени, тип синхронизации и многое другое. Например, переопределить значения по умолчанию и настроить синхронизацию времени с внешним источником, можно командой w32tm /config /syncfromflags:manual /manualpeerlist:time.nist.gov /update
w32tm /query — показывает текущие настройки службы. Например команда w32tm /query /source  покажет текущий источник времени, а w32tm /query /configuration  выведет все параметры службы.

Ну и на крайний случай
w32tm /unregister — удаляет службу времени с компьютера.
w32tm /register – регистрирует службу времени на компьютере.  При этом создается заново вся ветка параметров в реестре.

Смена часового пояса в Windows
Для смены часового пояса в операционных системах семейства Windows используется специальная утилита командной строки tzutil.exe (Windows Time Zone Utility), устанавливается в виде отдельного обновления KB 2556308. Исполняемый файл утилиты хранится в каталоге %WINDIR%System32.
Запускаем командную строку (cmd.exe). Чтобы узнать текущий часовой пояс и его идентификатор (TimeZoneID), выполните команду:
tzutil /g

Выведем список всех часовых поясов с их названием и идентификаторами так:
tzutil /l

Для быстрого вывода всех доступных часовых поясов, например, со сдвигом UTC 5, используем следующую команду:
tzutil /l | find /I «utc 05»

Изменим текущий часовой пояс на (UTC 05:00) Ашхабад, Ташкент (West Asia Standart Time). Для этого нужно указать идентификатор часового пояса.
tzutil /s «West Asia Standard Time»

Проверим, что пояс сменился другим способом:
reg query HKLMSYSTEMCurrentControlSetControlTimeZoneInformation

Чтобы отключить переход на летнее время для конкретного пояса, указываем идентификатор часового пояса с суффиксом _dstoff, например
tzutil /s “West Asia Standard Time_dstoff”

После выполнения данной команды Мы изменим часовой пояс рабочей станции или сервера и отключим сезонный перевод часов.
Выведем информацию о часовом поясе и настройках сезонного перевод часов:
w32tm /tz

Управление часовым поясом из консоли PowerShell

Получаем настройки текущего часового пояса в консоли PowerShell, выполняем следующую команду
[TimeZoneInfo]::Local
Или
Get-TimeZone

Чтобы посмотреть все возможные часовые пояса, доступные в Windows можно использовать команду Powershell:
[System.TimeZoneInfo]::GetSystemTimeZones()
Или
Get-TimeZone -ListAvailable

Для смены часового пояса из PowerShell, выполните команду:
Set-TimeZone -Name «West Asia Standard Time»

Тестирование

Проверить состояние получения эталонного времени можно командой:

Ее вывод будет представлен в виде таблицы:

В таблице указываются следующие параметры:

Проверить, пригоден ли сервер из списка для синхронизации, можно при помощи утилиты ntpdate: Устанавливаем ее

В данном случае вывода видно, что сервер пригоден для синхронизации, его уровень — 2, смещение — 0.000000 мс, задержка — 0.02563 мс.

Устанавливаем ntp

Все настройки производятся в одном единственном файле ntp.conf. Добавляем данные в него.

разрешим доступ к серверу времени только из нашей локальной сети

Посмотрим конфигурационный файл ntp.conf

если указанной ниже строки нет то добавляем ее или изменяем.

Устанавливаем ntp для нашего домена

Как и обычно, исходим из того, что нам придётся не один раз указать сервер NTP. Поэтому нужна некая инкапсуляция этого параметра. И в качестве дополнительного уровня абстракции для нас будет CNAME запись в нашей DNS зоне:

в субдомене time.services мы заводим CNAME записи для тех NTP серверов, которые выбираем в качестве источника времени. Лучше выбрать более одного источника на тот случай, если один из них станет недоступным (чтобы потом не пришлось долго искать). Как уже ранее было указано, устанавливаем для нашего PDC в качестве источника time.services.

Не забываем после изменения настроек перезапустить сервис w32time.

О выборе NTP написано много статей, повторяться не будут.

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

Adblock
detector