🔏
Инструкция по настройке NTP сервера
  • ИНСТРУКЦИИ ПО НАСТРОЙКЕ NTP СЕРВЕРА НА РАЗЛИЧНЫХ ОПЕРАЦИОННЫХ СИСТЕМАХ
  • Windows
  • Linux
  • Cisco
Powered by GitBook
On this page

Was this helpful?

Linux

Настройка NTP сервера на Linux ОС

PreviousWindowsNextCisco

Last updated 4 years ago

Was this helpful?

Перед установкой сервера времени нужно убедиться, что в системе правильно настроен часовой пояс, проверить и изменить это можно командой ниже, данную и все последующие команды следует выполнять с правами суперпользователя:

root@debian:~# dpkg-reconfigure tzdata

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

root@debian:~# date

Сейчас по умолчанию используется служба timedatectl, в Debian она встроенна в подсистему инициализации systemd, порт 123 (NTP) занят этой службой, для настройки утилиты ntp нужно отключить timedatectl следующей командой:

root@debian:~# systemctl disable systemd-timesyncd.service

Теперь приступаем к установки пакета NTP-сервера, для этого нужно обновить список пакетов и установить ntp следующими командами:

root@debian:~# apt update
root@debian:~# apt install ntp

Пакет работоспособен сразу после установки и стандартная конфигурация достаточно актуальна, но лучше внести в нее некоторые дополнительные изменения. Для изменения настроек откроем файл ntp.conf командой:

root@debian:~# nano /etc/ntp.conf

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

Удалим резервные пулы адресов NTP сервером, т. к. воспользуемся одним:

pool 1.ru.pool.ntp.org iburst

В данном примере приведены настройки для использования российских серверов времени. Ниже зададим настройку для синхронизации с аппаратными часами на случай отсутствия синхронизации с серверами в интернет:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

Первая строка задает адрес аппаратных часов - 127.127.1.0, вторая указывает приоритет - stratum - он выбран таким образом, чтобы при наличии интернета NTP-сервер не синхронизировался с аппаратными часами. У серверов входящих в пулы ntp.org значение stratum равно двум. Затем перейдем к списку контроля доступа, который состоит из сетевых адресов отсортированных по возрастанию адресов и масок. Запись по умолчанию - default соответствует адресу 0.0.0.0 с маской 0.0.0.0, если в записи не указана маска, то автоматически подставляется значение 255.255.255.255, что соответствует конечному хосту. Кроме адресов строки списка содержат флаги, они указывают на те или иные ограничения, если строка не содержит флагов - это означает полный доступ к серверу. По умолчанию список контроля доступа, следующий:

Разберем его подробнее. Первые две строки задают значения по умолчанию, т.е. для любых клиентов, в сетях IPv4 и IPv6:

restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

Перечисленные флаги имеют значения:

  • kod - отправка клиенту, посылающему нежелательные запросы, пакета KoD (Kiss O'Death), получатель такого пакета обязан выполнить предписанную ему проверку и изменить свое поведение, в противном случае такой клиент будет отключен от сервера;

  • notrap - запрет приема управляющих сообщений;

  • nomodify - запрет приема сообщений, изменяющих состояние сервера;

  • nopeer - запрет установки одноранговых отношений с другими NTP-серверами;

  • noquery - запрет любых запросов для синхронизации времени поступающих с других серверов;

  • limited - запрет обслуживания, если интервал между пакетами от клиента превышает разрешенные значения.

Под ними расположены строки, дающие полный доступ к серверу локальной системе:

restrict 127.0.0.1
restrict ::1

Отсутствие маски указывает на то, что это конечный узел, а отсутствие флагов предоставляет полный доступ. После внесения изменений следует перезапустить службу:

root@debian:~# systemctl restart ntp

Проверить ее статус можно командой:

root@debian:~# systemctl status ntp

Состояние синхронизации с вышестоящими серверами можно узнать командой:

root@debian:~# ntpq -p

Которая выдаст нам следующий вывод:

О чём говорят названия столбцов:

  • remote - удалённые сервера, с которыми вы синхронизируете время;

  • refid - вышестоящий stratum для данного сервера;

  • st - уровень stratum. От 0 (нам недоступно) до 16 (нам не желательно). Идеально - 2.

  • t - тип соединения. "u" - unicast или manycast, "b" - broadcast или multicast, "l" local reference clock, "s" - симметричный узел, "A" - manycast сервер, "B" - broadcast server, "M" - multicast сервер;

  • when - время, когда последний раз сервер ответил нам. Параметр отображает число в секундах, но может в минутах, если число с m или в часах, если h;

  • poll - частота опроса. Минимум 16 секунд, максимум 32 часа. Число должно быть 2n. Обычно в данном параметре наблюдается или 64 секунды или 1024;

  • reach - 8 бит октета, показывающий статус общения с удалённым сервером времени: успешный или сбойный. Если биты установлены - то успешно, иначе - сбой. Значение 377 - бинарное это 0000 0000 1111 1111;

  • delay - значение в миллисекундах показывает время между отправкой и получения ответа (round trip time - RTT);

  • offset - смещение в миллисекундах между вами и серверами времени. Может быть положительным и отрицательным числом;

  • jitter - абсолютное значение в миллисекундах с указанием среднеквадратичного отклонения вашего смещения.

Перед IP адресом NTP сервера есть символ - это tally code. Виды tally code:

  • " " - отброшен как недопустимый. Например, нет связи с ним или он в оффлайн, он слишком высокого ранга и не обслуживает таких как вы.

  • "x" - отброшен алгоритмом "пересечения" (intersection algorithm). Алгоритм пересечения подготавливает список кандидатов партнеров, могущих стать источниками синхронизации и вычисляет доверительный интервал для каждого из них.

  • "." - отброшен из-за переполнения таблицы.

  • "-" - отброшен алгоритмом кластеризации (cluster algorithm). Алгоритм кластеризации сортирует список кандидатов по кодам слоя и расстояния синхронизации.

  • "+" - сервер включён алгоритмом "комбинирования" (combine algorithm). Этот сервер - отличный кандидат если текущий сервер времени начнёт отказывать вам.

  • "#" - сервер является отличным альтернативным сервером времени. Сервер с # можно увидеть только если у вас более 10 записей server в /etc/ntp.conf

  • "*" - текущий сервер времени. Его показания используются для синхронизации ваших часов.

  • "o" - сервер Pulse per second (PPS). Обычно это означает, что данный сервер времени использует источники времени типа GPS спутников и другие сигналы точного времени. Если рисуется о, то другие типы tally code уже отображаться не будут.

NTP-сервер настроен!

Теперь осталось синхронизировать клиентскую машину. Повторяем предыдущие действия, а именно:

  1. Меняем часовой пояс;

  2. Отключаем службу timedatectl;

  3. Обновляем список пакетов;

  4. Качаем пакет ntp;

  5. Настраиваем конфигурационный файл ntp.conf. В секции с адресами убираем все адреса строчке pool debian.pool.ntp.org iburst на pool "IP адрес сервера" iburst;

  6. Перезапускаем службу;

  7. Проверяем синхронизации с серверами. Если в выводе видим сервер с символом "*", значит все настроено верно!

ntppool.org
Рис. 4 - параметры выбранных по умолчанию серверов в конфигурационном файле NTP сервера
Рис. 5 - параметры контроля доступа по умолчанию в конфигурационном файле NTP сервера
Рис. 6 - состояние синхронизации с вышестоящими NTP серверами