Синхронизация времени

Для корректной работы аутентификации Kerberos, исключения некоторых угроз безопасности (например, replay attacks) и корректного разрешения конфликтов при репликации на контроллерах, рабочих станциях и рядовых серверах в доменах Эллес должна быть настроена синхронизация времени.

Настоящий раздел содержит общие рекомендации по настройке. Ожидается, что настройка синхронизации с источниками точного времени в доменах выполняется администраторами в соответствии с внутренними регламентами и правилами.

Схема синхронизации времени в домене

Для исключения риска возникновения расхождений во времени между участниками домена Эллес рекомендуется настраивать синхронизацию в соответствии со следующей схемой:

time synchronization
Рис. 1. Схема синхронизации времени в домене Эллес

На схеме все контроллеры домена, включая контроллер с 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 при сборке).

Для установки выполните:

  • Astra Linux

  • РЕД ОС

sudo apt install chrony -y

При установке пакета chrony автоматически удаляется ранее установленный пакет ntp.

Служба chronyd запускается с настройками по умолчанию без конфигурационного файла.

sudo dnf install chrony -y

Для добавления службы chronyd в автозагрузку и запуска после установки выполните:

sudo systemctl enable --now chronyd.service

По умолчанию после установки служба chronyd работает в режиме клиента.

Конфигурация содержится в файле:

  • Astra Linux

  • РЕД ОС

/etc/chrony/chrony.conf

/etc/chrony.conf

Для переключения в режим 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:

  1. Задайте внешние и внутренние источники точного времени в конфигурации chrony.

  2. Добавьте следующие строки в конфигурационный файл 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
  3. Проверьте наличие у демона синхронизации времени прав на чтение в каталоге /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/
  4. При необходимости скорректируйте права:

    chown root:_chrony /app/inno-samba/var/lib/ntp_signd/
    chmod 750 /app/inno-samba/var/lib/ntp_signd/
  5. Выполните перезапуск службы chronyd:

    sudo systemctl restart chronyd.service
  6. Проверьте корректность списка источников точного времени, выполните синхронизацию и убедитесь в корректности параметров синхронизации:

    chronyc sources
    sudo chronyc makestep
    chronyc tracking
  7. Сравните время на сервере с текущим временем на других контроллерах в домене:

    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):

  1. Выполните вход на компьютер, используя учетную запись с правами на редактирование групповых политик, и откройте консоль Group Policy Management (gpmc.msc).

  2. Правой кнопкой щелкните на имени домена и выберите Create a GPO in this domain, and Link it here.

  3. Укажите имя для объекта GPO и нажмите OK.

  4. Правой кнопкой щелкните на имени созданного объекта GPO в списке в области просмотра и выберите Edit.

  5. В открывшемся редакторе групповых политик (Group Policy Management Editor) выберите Computer ConfigurationPoliciesAdministrative TemplatesSystemWindows Time ServiceTime Providers и дважды щелкните на строке Configure Windows NTP Client в области просмотра.

  6. В окне настройки параметров NTP-клиента:

    • выберите Enabled;

    • в области Options:

      • в поле NtpServer укажите полное доменное имя (FQDN) контроллера домена с настроенным NTP-сервером, добавив в конце флаг 0x9;

        Для задания списка серверов укажите их полные доменные имена через пробел.
      • в поле Type сохраните значение NT5DS;

      • при необходимости измените прочие настройки;

    • нажмите Apply и OK.

      configure win ntp client
      Рис. 2. Диалоговое окно настройки параметров NTP-клиента
  7. В области просмотра Time Providers дважды щелкните на строке Enable Windows NTP Client, в открывшемся окне выберите Enabled и нажмите OK.

При активированной групповой политике участника домена на ОС Windows будут использовать для синхронизации времени только те контроллеры домена, которые перечислены в параметрах политики.