Синхронизация времени
Для корректной работы аутентификации Kerberos, исключения некоторых угроз безопасности (например, replay attacks) и корректного разрешения конфликтов при репликации на контроллерах, рабочих станциях и рядовых серверах в доменах Эллес должна быть настроена синхронизация времени.
| Настоящий раздел содержит общие рекомендации по настройке. Ожидается, что настройка синхронизации с источниками точного времени в доменах выполняется администраторами в соответствии с внутренними регламентами и правилами. |
Схема синхронизации времени в домене
Для исключения риска возникновения расхождений во времени между участниками домена Эллес рекомендуется настраивать синхронизацию в соответствии со следующей схемой:
На схеме все контроллеры домена, включая контроллер с FSMO-ролью PDC Emulator, синхронизируют время напрямую с внешним (по отношению к домену) пулом NTP-серверов. Введенные в домен рабочие станции и рядовые серверы синхронизируют время с любым из контроллеров домена или с определенными контроллерами, явно указанными в настройках chrony (в случае участников на ОС Linux) либо заданными групповой политикой (в случае участников на ОС Windows).
При такой схеме при недоступности сервера с FSMO-ролью PDC Emulator остальные контроллеры в домене будут продолжать синхронизировать время с внешним пулом NTP-серверов. Тем самым обеспечивается корректная синхронизация времени в домене до момента восстановления сервера с FSMO-ролью PDC Emulator или передачи FSMO-роли PDC Emulator другому серверу.
По умолчанию введенные в домен участники под управлением ОС Windows синхронизируют время с контроллерами в домене по протоколу NT5DS, в рамках которого используется цифровое подписание пакетов NTP. Данная функциональность поддерживается контроллерами Эллес в том случае, если сервер времени работает на том же сервере, что и контроллер, и в конфигурации сервиса синхронизации времени корректно задана соответствующая опция (ntpsigndsocket при использовании chrony). Также возможна настройка клиентских машин на ОС Windows для использования стандартного протокола NTP. Однако рекомендуется использовать NT5DS.
| Для обеспечения корректной синхронизации времени рядовыми участниками домена на всех контроллерах Эллес должен быть настроен сервер времени. |
Настройка синхронизации времени
Для синхронизации времени в доменах Эллес рекомендуется использовать демон chrony версии 3.0 и выше с поддержкой подписания пакетов NTP (использование флага --enable-ntp-signd при сборке).
Для установки выполните:
sudo apt install chrony -y
При установке пакета chrony автоматически удаляется ранее установленный пакет ntp.
Служба chronyd запускается с настройками по умолчанию без конфигурационного файла.
sudo dnf install chrony -y
Для добавления службы chronyd в автозагрузку и запуска после установки выполните:
sudo systemctl enable --now chronyd.service
По умолчанию после установки служба chronyd работает в режиме клиента.
Конфигурация содержится в файле:
Для переключения в режим NTP-сервера с целью обработки клиентских запросов добавьте в конфигурационный файл директиву allow с указанием маски IP-адресов клиентов, которые могут обращаться с запросами на синхронизацию времени.
Например:
allow 192.168.0.0/24
Для добавления источников времени закомментируйте пулы и серверы по умолчанию, добавляемые в конфигурационный файл при установке, и укажите требуемые источники точного времени либо непосредственно в конфигурационном файле, либо путем создания отдельного файла со списком источников.
Например:
sed -i 's/^pool/#pool/g;s/^server/#server/g' /etc/chrony/chrony.conf echo 'pool samdom.example.com iburst' > /etc/chrony/sources.d/samdom.sources
Основные команды для работы с chrony:
-
обновление списка источников времени для синхронизации после внесения изменений в конфигурацию:
sudo chronyc reload sources 200 OK
-
просмотр текущих источников времени для синхронизации:
chronyc sources MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* dc01.samdom.example.com 8 7 377 83 -895us[ -930us] +/- 1853us
-
просмотр текущих источников времени для синхронизации с описанием каждого столбца:
chronyc sources -v .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current best, '+' = combined, '-' = not combined, | / 'x' = may be in error, '~' = too variable, '?' = unusable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* dc01.samdom.example.com 8 7 377 62 -895us[ -930us] +/- 1853us
-
просмотр текущих параметров синхронизации:
chrony tracking Reference ID : C0A8002D (dc01.samdom.example.com) Stratum : 9 Ref time (UTC) : Wed Jul 17 14:00:27 2024 System time : 0.000050370 seconds fast of NTP time Last offset : +0.000066218 seconds RMS offset : 0.000305005 seconds Frequency : 12.866 ppm fast Residual freq : +0.012 ppm Skew : 0.491 ppm Root delay : 0.001245186 seconds Root dispersion : 0.000206852 seconds Update interval : 129.1 seconds Leap status : Normal
-
просмотр статистики синхронизации по источникам:
chrony sourcestats Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== dc01.samdom.example.com 26 12 37m +0.000 0.210 +95ns 197us
-
принудительная синхронизация:
sudo chrony makestep 200 OK
-
проверка статуса источников времени:
chronyc activity 200 0K 3 sources online 0 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
|
См. подробное описание доступных команд и опций в справочных страницах: man chronyc man chronyd man chrony.conf |
Настройка на контроллере домена
Для настройки работы chrony на контроллере домена с возможностью обработки клиентских запросов на синхронизацию времени с подписанием пакетов NTP:
-
Задайте внешние и внутренние источники точного времени в конфигурации chrony.
-
Добавьте следующие строки в конфигурационный файл chrony.conf (/etc/chrony/chrony.conf на ОС Astra Linux и /etc/chrony.conf на РЕД ОС), заменив
<dns netmask>маской IP-адресов, которым будет разрешено обращаться с клиентскими запросами на синхронизацию времени:allow <dns netmask> ntpsigndsocket /app/inno-samba/var/lib/ntp_signd
Пример конфигурационного файла chrony.conf с минимальным набором параметров:
keyfile /etc/chrony/chrony.keys driftfile /var/lib/chrony/chrony.drift logdir /var/log/chrony maxupdateskew 100.0 rtcsync makestep 1 3 pool samdom.example.com iburst allow 192.168.0.0/24 ntpsigndsocket /app/inno-samba/var/lib/ntp_signd
-
Проверьте наличие у демона синхронизации времени прав на чтение в каталоге /app/inno-samba/var/lib/ntp_signd:
ls -ld /app/inno-samba/var/lib/ntp_signd/ drwxr-x--- 2 root _chrony 4096 Jul 18 11:33 /app/inno-samba/var/lib/ntp_signd/
-
При необходимости скорректируйте права:
chown root:_chrony /app/inno-samba/var/lib/ntp_signd/ chmod 750 /app/inno-samba/var/lib/ntp_signd/
-
Выполните перезапуск службы
chronyd:sudo systemctl restart chronyd.service
-
Проверьте корректность списка источников точного времени, выполните синхронизацию и убедитесь в корректности параметров синхронизации:
chronyc sources sudo chronyc makestep chronyc tracking
-
Сравните время на сервере с текущим временем на других контроллерах в домене:
date
Настройка на рядовом участнике домена на ОС Linux
На рабочих станциях и рядовых серверах на ОС Linux достаточно добавить в конфигурацию chrony корректный пул или определенные контроллеры домена в качестве источников точного времени.
Примеры конфигурации:
-
с указанием в качестве источника пула NTP-серверов в домене:
keyfile /etc/chrony/chrony.keys driftfile /var/lib/chrony/chrony.drift logdir /var/log/chrony maxupdateskew 100.0 rtcsync makestep 1 3 pool samdom.example.com iburst
-
с указанием в качестве источников определенных контроллеров домена:
keyfile /etc/chrony/chrony.keys driftfile /var/lib/chrony/chrony.drift logdir /var/log/chrony maxupdateskew 100.0 rtcsync makestep 1 3 server dc01.samdom.example.com iburst server dc02.samdom.example.com iburst
Настройка на рядовом участнике домена на ОС Windows
По умолчанию рабочие станции и рядовые серверы под управлением ОС Windows, являющиеся участниками домена Эллес, синхронизируют время с любым контроллером домена с настроенным NTP-сервером времени в текущем домене в соответствии со схемой на Рис. 1. Дополнительная настройка не требуется.
Для проверки корректности работы NTP-клиента на ОС Windows могут использоваться следующие команды, которые должны выполнятся от имени пользователя с правами администратора в терминале, запущенном в режиме администрирования (см. полный список доступных инструментов и опций в документации Microsoft):
-
принудительная синхронизация времени с текущим источником:
w32tm /resync /nowait
-
просмотр списка всех контроллеров домена, с которыми может выполняться синхронизация времени:
w32tm /monitor
-
просмотр текущего источника для синхронизации времени:
w32tm /query /Source
-
запрос текущих настроек службы времени:
w32tm /query /Configuration /verbose
-
перенастройка службы времени на синхронизацию с NTP-серверами в домене:
w32tm /config /syncfromflags:domhier /update w32tm /resync /nowait
Для явного задания источников времени и изменения настроек может быть создан объект групповой политики (GPO) с помощью консоли Group Policy Management (gpmc.msc) в составе инструментов для удаленного администрирования Remote Server Administration Tools (RSAT):
-
Выполните вход на компьютер, используя учетную запись с правами на редактирование групповых политик, и откройте консоль Group Policy Management (gpmc.msc).
-
Правой кнопкой щелкните на имени домена и выберите Create a GPO in this domain, and Link it here.
-
Укажите имя для объекта GPO и нажмите OK.
-
Правой кнопкой щелкните на имени созданного объекта GPO в списке в области просмотра и выберите Edit.
-
В открывшемся редакторе групповых политик (Group Policy Management Editor) выберите Computer Configuration → Policies → Administrative Templates → System → Windows Time Service → Time Providers и дважды щелкните на строке Configure Windows NTP Client в области просмотра.
-
В окне настройки параметров NTP-клиента:
-
выберите Enabled;
-
в области Options:
-
в поле NtpServer укажите полное доменное имя (FQDN) контроллера домена с настроенным NTP-сервером, добавив в конце флаг
0x9;Для задания списка серверов укажите их полные доменные имена через пробел. -
в поле Type сохраните значение
NT5DS; -
при необходимости измените прочие настройки;
-
-
нажмите Apply и OK.
Рис. 2. Диалоговое окно настройки параметров NTP-клиента
-
-
В области просмотра Time Providers дважды щелкните на строке Enable Windows NTP Client, в открывшемся окне выберите Enabled и нажмите OK.
При активированной групповой политике участника домена на ОС Windows будут использовать для синхронизации времени только те контроллеры домена, которые перечислены в параметрах политики.