hostprofi.ru
Подобрать хостинг
Термин·буква N

NTP-сервер

краткое определение

Сервер синхронизации системного времени по протоколу NTP, критичный для TLS, TOTP и корреляции логов.

NTP-сервер (Network Time Protocol) — сервер синхронизации времени, обеспечивающий точное системное время на клиентских устройствах через сеть. Точное время критично для: TLS-сертификатов, TOTP-аутентификации, логов и корреляции событий, баз данных с временными метками, репликации.

Как работает

NTP-клиент периодически опрашивает несколько NTP-серверов, вычисляет задержку сети (RTT), корректирует локальные часы с учётом drift (постепенного ухода времени). Иерархия stratum: атомные часы (stratum 0) → серверы stratum 1 (прямое подключение) → stratum 2 (ссылаются на stratum 1) → клиенты stratum 3. Публичные серверы pool.ntp.org — prestratum 2, достаточны для всех практических целей.

systemd-timesyncd — встроенный минималистичный NTP-клиент в современных Linux-системах. ntpd — традиционный клиент с более гибкой настройкой. Chrony — современная замена ntpd с быстрой начальной синхронизацией.

История

NTP разработан Дэвидом Миллсом в Университете Делавэра в 1985 году (RFC 958). Один из старейших работающих интернет-протоколов. NTPv4 (RFC 5905, 2010) — актуальная версия с поддержкой IPv6. Проблема NTP — отсутствие аутентификации в базовой конфигурации: NTP amplification attacks использовали открытые NTP-серверы для DDoS-атак (2014, крупнейшая тогда атака 400 Gbps).

Настройка синхронизации

# Проверить текущую синхронизацию
timedatectl status

# Включить синхронизацию через systemd-timesyncd
timedatectl set-ntp true

# Конфигурация /etc/systemd/timesyncd.conf
[Time]
NTP=ntp1.vniiftri.ru ntp2.vniiftri.ru   # Российские атомные часы
FallbackNTP=pool.ntp.org

# Применить и проверить
systemctl restart systemd-timesyncd
timedatectl timesync-status

NTP в контексте безопасности

Для TLS-сертификатов: сертификат с датой в будущем или прошлом отклоняется браузером с ошибкой SSL. TOTP-аутентификация (Google Authenticator): коды действительны 30 секунд, расхождение времени > 1 минуты блокирует вход. Логи и journalctl: корреляция событий на разных серверах возможна только при синхронизированном времени. В кластерных решениях (Kubernetes, Galera Cluster для MariaDB) время нод должно различаться не более чем на 1-2 секунды.

На что обращать внимание

Аппаратные часы VPS могут значительно отставать или спешить — без NTP расхождение за сутки составляет минуты. Убедитесь, что timedatectl show показывает NTPSynchronized=yes. Для российских сайтов используйте российские NTP-серверы: ntp1.vniiftri.ru, ntp2.vniiftri.ru (ВНИИФТРИ — метрологический институт). UFW: NTP использует UDP порт 123 — клиент инициирует запрос, ответ приходит на клиентский порт. Блокировать исходящий UDP 123 не нужно для правил allow-outgoing by default.

Безопасность NTP и атаки на протокол

NTP имеет собственный вектор атак — NTP amplification DDoS. Злоумышленник отправляет небольшой запрос с поддельным IP жертвы к публичному NTP-серверу. Сервер возвращает ответ в десятки раз большего размера — прямо жертве. Умножив это на тысячи серверов, атакующий создаёт мощный поток трафика. Для защиты публичных NTP-серверов используется ограничение команды monlist в конфиге /etc/ntp.conf: restrict default noquery nomodify.

На практике для корпоративных и серверных сред рекомендуется строить иерархию NTP: внешние Stratum 1/2 серверы → внутренний NTP-сервер организации (Stratum 3) → все хосты сети синхронизируются с внутренним. Это снижает нагрузку на публичную инфраструктуру и упрощает аудит: все временны́е метки в логах гарантированно согласованы.

Для мониторинга синхронизации используются команды timedatectl status (systemd) или ntpq -p (ntpd). Признак проблемы — offset более 100 мс или потеря связи с источником времени (статус * исчезает из ntpq). Несинхронизированное время — одна из частых причин невалидных SSL-сертификатов и ошибок в двухфакторной аутентификации (TOTP привязан к системному времени с допуском ±30 секунд).

Другие термины