Get Rewarded! We will reward you with up to €50 credit on your account for every tutorial that you write and we publish!

Установка общедоступного NTP сервера на Debian/Ubuntu

profile picture
Author
Noah Seefried
Published
2019-06-04
Time to read
5 minutes reading time

Введение

В этом руководстве мы рассмотрим установку общедоступного NTP сервера и опционально добавим его в пул публичных серверов.

Необходимо

  • По крайней мере минимальный виртуальный сервер, например CX11 с root доступом. Все команды, если не указано иное, должны выполняться от root.
  • Базовые знания Linux

Шаг 1 - Установка

Для начала установим на сервер ntp и ntpdate. apt-get install ntp ntpdate

Шаг 2 - Настройка

Мы добавим 5 "upstream" серверов (источников времени) в нашу конфигурацию. Вы можете использовать как имена хостов, так и их IP адреса. Я предлагаю для трех серверов использовать IPv4 адреса, а для двух серверов их имена.

Опционально: Если вы используете имя хоста, проверьте, доступно ли оно по IPv6

Есть два общедоступных списка серверов:

(Нажмите, чтобы развернуть) Разница между Stratum первого и второго уровня

Основные серверы называются Stratum 1 и они напрямую подключены к источнику точного времени, который называется Stratum 0. Такими источниками могут быть атомные часы, GPS приемник или система радио навигации. Сервер времени Stratum 1 передает время другим устройствам в сети, уровня Stratum 2. Они так же могут использоваться в качестве источника времени и оборудование, выполняющее с ними синхронизацию становятся устройствами с уровнем Stratum 3.

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

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

Откройте файл /etc/ntp.conf, удалите содержимое, добавьте строки ниже и замените ntp_your_host_X на выбранные вами серверы.

driftfile /var/lib/ntp/drift

server ntp_your_host_1 iburst
server ntp_your_host_2 iburst
server ntp_your_host_3 iburst
server ntp_your_host_4 iburst
server ntp_your_host_5 iburst

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

restrict 127.0.0.1
restrict -6 ::1

restrict source notrap nomodify noquery

Что означают все эти параметры? (Нажмите, чтобы развернуть)

driftfile

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

iburst

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

default

Данная опция по умолчанию запрещает все, что явно не разрешено.

kod

Опция kod позволяет отправлять так называемые a «kiss-of-death» пакеты, если доступ запрещен.

notrap

Параметр notrap предотвращает прерывания протокола управления сообщениями ntpdc.

nomodify

Параметр nomodify предотвращает попытки изменения конфигурации.

nopeer

Опция nopeer предотвращает синхронизацию сервера с обслуживаемым хостом

noquery

С опцией noquery сервер игнорирует запросы ntpq и ntpdc, но не запросы на синхронизацию времени.

Ниже приведен пример на разрешение запросов от localhost. Здесь вы также можете добавить необходимые IP адреса или диапазоны IP адресов.

restrict 127.0.0.1
restrict -6 ::1

Шаг 3 - Включение и запуск службы NTP

Запустите службу NTP выполнив systemctl start ntp и включите ее автозапуск в процессе загрузки системы командой systemctl enable ntp.

Теперь командой ntpq -p можно проверить начал ли сервер выполнять синхронизацию с одним из указанных NTP серверов.

Колонка remote показывает имена хостов удаленных серверов, refid говорит о том, какой из серверов выбран в качестве источника. Для серверов уровня Stratum 1 в поле refid должен быть указан GPS, PPS, ACTS или PTB, для уровня Stratum 2 должен быть указан вышестоящий сервер. Колонка st показывает stratum сервера. Delay, offset и jitter говорит о качестве источника времени. Чем меньше значения, тем лучше.

Если на вашем сервере установлен брандмауэр, не забудьте открыть порт 123. В случае с iptables это можно сделать двумя командами:

iptables -A INPUT -p udp -m udp --dport 123 -j ACCEPT
ip6tables -A INPUT -p udp -m udp --dport 123 -j ACCEPT

Шаг 4 - Добавление NTP сервера в пул публичных серверов (не обязательно)

Проект pool.ntp.org представляет собой большой виртуальный кластер серверов времени, обеспечивающих надежный и простой в использовании сервис NTP для миллионов пользователей. Этот пул состоит из сотен миллионов систем по всему миру. Он также является сервером времени по умолчанию для большинства дистрибутивов Linux и различных сетевых устройств.

Если у вас есть домен и IPv6 адрес, вы должны настроить две DNS записи, чтобы данный проект также знал ваш IPv6 адрес. В зависимости от того, сколько NTP-серверов вы хотите развернуть, замените X на соответствующее число или удалите его.

ntpX.example.com. 14400   IN      A       10.0.0.1
ntpX.example.com. 14400   IN      AAAA    2001:db8:1234::1

Чтобы добавить свой NTP сервер в пул, необходимо создать учетную запись. Нажмите Continue to login и зарегистрируйте аккаунт.

После этого вы сможете добавить новый сервер используя доменное имя сервера ntpX.example.com или его IP адрес. Установите максимальную скорость сети Net speed, которую вы можете выделить пулу для запросов клиентов на синхронизацию, вот и все.

Заключение

Теперь у вас есть свой собственный NTP сервер. Вы можете использовать его для синхронизации времени на ваших серверах или просто добавить его в общедоступный пул NTP серверов!

Для поддержания сервера в актуальном состоянии следите за новостями на портале NTP pool. Также доступна RSS лента новостей.

Want to contribute?

Get Rewarded: Get up to €50 in credit! Be a part of the community and contribute. Do it for the money. Do it for the bragging rights. And do it to teach others!

Report Issue

Discover our

Dedicated Servers

Configure your dream server. Top performance with an excellent connection at an unbeatable price!

Want to contribute?

Get Rewarded: Get up to €50 credit on your account for every tutorial you write and we publish!

Find out more