Перейти к содержанию

Системное время, NTP и сертификаты TLS

Неверное время влияет на журналирование, проверку сертификатов TLS, работу Kerberos, токенов, сбор метрик и согласованность распределённых приложений. В НАЙС.ОС CLOUD используйте timedatectl и подтверждённую установленную службу синхронизации. SPEC содержит systemd-timesyncd как часть systemd и отдельный рецепт chrony; нельзя считать, что обе службы установлены/включены в каждом образе.

1. Диагностика времени

date -Is
timedatectl status
timedatectl show -p NTPSynchronized -p NTP
systemctl list-unit-files 'systemd-timesyncd*' 'chronyd*' --no-pager
ss -ulnp | grep ':123' || true

Команда date -Is показывает текущую дату и смещение; timedatectl различает локальное время, RTC и факт NTP-синхронизации. Значение NTP=yes не всегда означает, что время уже синхронизировано.

2. Часовой пояс

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

timedatectl list-timezones | grep -F 'Europe/Moscow'
timedatectl set-timezone Europe/Moscow
timedatectl status

Менять часовой пояс не значит изменить абсолютное время или включить NTP. В логах с несколькими системами указывайте смещение/UTC.

3. Какая служба работает

systemctl is-active systemd-timesyncd 2>/dev/null || true
systemctl is-active chronyd 2>/dev/null || true
systemctl cat systemd-timesyncd 2>/dev/null || true
systemctl cat chronyd 2>/dev/null || true

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

Для systemd-timesyncd, если установлен и выбран:

timedatectl timesync-status
journalctl -u systemd-timesyncd -b --no-pager -n 80

Для chrony, если установлен и выбран:

chronyc tracking
chronyc sources -v
journalctl -u chronyd -b --no-pager -n 80

chronyc может отсутствовать. Если обе команды неизвестны, сначала посмотрите список установленных пакетов и сетевую политику.

4. Firewall при OUTPUT DROP

NTP-клиенту может требоваться исходящий UDP-порт 123 к доверенному серверу времени, а обратные пакеты должны проходить правила состояния. В изолированных контурах часто используется внутренний NTP сервер. Не открывайте UDP/123 «на весь Интернет» и не включайте серверную роль NTP, если нужен только клиент.

5. Если время сильно расходится

Проверьте сеть, DNS, доверенные NTP-источники, политику OUTPUT, работу гипервизорных гостевых агентов и состояние RTC. Перед ручной установкой времени выясните последствия для баз данных и распределённых транзакций.

6. Контроль после перезагрузки

Запишите timedatectl status, состояние выбранного клиента, время ближайшей синхронизации и последние журналы. Для TLS проверьте, что дата попадает в период действия сертификата, а цепочка доверия отдельна от синхронизации времени.

Источники: Core/systemd/SPECS/systemd.spec, Core/chrony/SPECS/chrony.spec; timedatectl.