- Настройка NTP на сервере: пошаговая инструкция
- Пошаговая инструкция по настройке NTP-сервера Linux
- Часть 1. Устанавливаем NTP-сервер
- Шаг 1. Обновляем индекс репозитория
- Шаг 2. Устанавливаем сервер
- Шаг 3. Проверяем установку
- Шаг 4. Переключаемся на ближайший пул
- Шаг 5. Перезапускаем сервер
- Шаг 6. Проверяем запуск
- Шаг 7. Настраиваем брандмауэр
- Часть 2. Настраиваем синхронизацию NTP-клиентов
- Шаг 1. Проверяем соединение
- Шаг 2. Указываем IP и хост
- Шаг 3. Проверяем синхронизацию клиента с сервером
- Шаг 4. Отключаем службу timesyncd
- Шаг 5. Устанавливаем NTP на системе клиента
- Шаг 6. Делаем наш NTP-сервер эталонным
- Шаг 7. Перезапускаем сервер
- Шаг 8. Смотрим на очередь синхронизации
- Часть 3. Продвинутые возможности синхронизации
- Предпочитаемый сервер
- Настройки безопасности
- Проверяем корректность работы NTP
- Проверяем, правильно ли сервер отдает время
- Настройка NTP сервера Windows Server
- Настройка NTP сервера Cisco
- Настройка NTP-сервера на роутерах MikroTik
Настройка NTP на сервере: пошаговая инструкция
NTP — протокол для синхронизации системного времени с эталонным, предоставляемым специальными серверами. В статье рассмотрим, как настроить протокол NTP в различных ОС и на некоторых устройствах, а начнем с большой инструкции по настройке NTP Server Linux.
Пошаговая инструкция по настройке NTP-сервера Linux
Настраивать протокол синхронизации будем на примере Ubuntu, однако это руководство также подойдет для Debian и любых других Linux-подобных систем. Инструкцию мы разбили на три части: первая будет посвящена установке NTP-сервера, вторая — синхронизации NTP-клиентов, а третья — продвинутым настройкам протокола синхронизации.
Часть 1. Устанавливаем NTP-сервер
Семь простых шагов помогут без проблем установить NTP-сервер и сделать его доступным для дальнейшей настройки. Работать будем в командной строке и редакторе nano , а также используем Terminal , который открывается по нажатию Ctrl+Alt+T .
Шаг 1. Обновляем индекс репозитория
Это нужно, чтобы иметь возможность скачивать свежие версии ПО. Обновить индекс поможет вот эта инструкция:
Шаг 2. Устанавливаем сервер
Установка запускается следующей инструкцией:
Но перед тем, как вводить ее, следует авторизоваться в sudo . Для подтверждения установки выберите Y, если система попросит сделать такой выбор (Y/N). Теперь ждем, пока ПО скачается и установится.
Шаг 3. Проверяем установку
Делать это не обязательно, но желательно для того, чтобы убедиться, что процесс завершился корректно. Для этого введите в терминале такую инструкцию:
Вывод должен содержать номер версии и время установки.
Шаг 4. Переключаемся на ближайший пул
По умолчанию сервер должен получать корректное время, но для большей надежности лучше переключиться на ближайший к нам пул серверов. Это делается с помощью редактирования ntp.conf , файл находится по пути /etc/ntp.conf . Открываем его при помощи nano (у вас должны быть права sudo), введя инструкцию:
В открывшемся файле вы увидите 4 строчки, которые мы для удобства выделили оранжевым прямоугольником:
Это стандартные пулы, которые мы заменим на российские, а возьмем их, например, с этой страницы . После замены строк выходим из ntp.conf по нажатию Ctrl+O и Ctrl+X .
Шаг 5. Перезапускаем сервер
Это делается просто, при помощи следующей инструкции:
Шаг 6. Проверяем запуск
В этом нам поможет инструкция:
В выводе в одной из первых строк ( Active ) должно быть указано Active (running) , и далее в этой же строке отображено время запуска.
Шаг 7. Настраиваем брандмауэр
Чтобы ваши клиенты могли заходить на сервер, откроем им доступ через UFW, прокинув UDP-порт 123 следующей инструкцией:
sudo ufw allow from any to any port 123 proto udp
Установка завершена, сервер запущен, теперь приступаем к настройке.
Часть 2. Настраиваем синхронизацию NTP-клиентов
Следующие шаги мы выполним для того, чтобы обеспечить возможность синхронизации клиентов с нашим NTP-сервером, который будет служить для них эталонным источником времени.
Шаг 1. Проверяем соединение
Для проверки сетевой конфигурации NTP вводим следующую инструкцию в терминале:
sudo apt-get install ntpdate
Шаг 2. Указываем IP и хост
Это делается путем редактирования файла hosts , который находится по пути /etc/hosts . Вводим:
В третью строчку сверху добавляем актуальные данные (адрес добавлен просто для примера, введите реальный IP своего NTP-сервера):
Теперь жмем Ctrl+X и сохраняем изменения по нажатию Y . Добавим, что эту процедуру можно выполнить и на DNS-сервере, если он у вас есть.
Шаг 3. Проверяем синхронизацию клиента с сервером
Чтобы выяснить наличие синхронизации между системами сервера и клиента, введите:
Значение в выводе будет означать смещение времени. Расхождение в несколько миллисекунд нормально, поэтому на такие цифры можно не обращать внимания.
Шаг 4. Отключаем службу timesyncd
Эта служба синхронизирует время локальной системы, однако нам она не нужна, поскольку в нашей схеме клиенты будут синхронизироваться через NTP-сервер. Поэтому вводим:
sudo timedatectl set-ntp off
Шаг 5. Устанавливаем NTP на системе клиента
Это делается при помощи инструкции:
Шаг 6. Делаем наш NTP-сервер эталонным
Мы хотим, чтобы клиенты сверялись именно с ним, поэтому открываем уже знакомый файл конфигураций ntp.conf и добавляем туда инструкцию следующего вида:
server NTP-server-host prefer iburst
Инструкция prefer добавляется для указания на предпочтение (в данном случае сервера). В свою очередь, iburst позволяет отправлять на сервер несколько запросов, что повышает точность синхронизации. Теперь снова жмем Ctrl+X и сохраняем изменения по нажатию Y .
Шаг 7. Перезапускаем сервер
Эта инструкция тоже простая и в комментариях не нуждается:
Шаг 8. Смотрим на очередь синхронизации
Мы почти закончили, осталось ввести инструкцию:
Она понадобится нам для проверки NTP-сервера, который указан как источник в очереди синхронизации времени.
Часть 3. Продвинутые возможности синхронизации
Итак, мы установили и настроили NTP-сервер, а затем синхронизировали с ним клиентские машины. Теперь снова открываем ntp.conf (напомним, что он находится по пути /etc/ntp.conf ), который содержит немало других интересных настроек, позволяющих обеспечить надежную синхронизацию с внешним миром.
Предпочитаемый сервер
Вызывающий наибольшее доверие сервер или серверный пул сопровождаем инструкцией prefer , которая уже встречалась нам выше. Вот так:
server 1.ru.pool.ntp.org prefer
О том, что мы обращаемся именно к серверу, говорит директива server в начале, а если нужно указать серверный пул, то будет использоваться директива pool .
Также не стоит забывать про строчку server 127.127.1.0 в конце списка пулов: она нужна для того, чтобы подхватывалось системное время, если вдруг не будет соединения.
Настройки безопасности
Обратите внимание на наличие следующих строчек в ntp.conf :
restrict default kod notrap nomodify nopeer noquery
- Команда default служит для установки значений по умолчанию. В данном случае она действует для всех restrict .
- Команда kod используется для отправки kiss of death серверам, отправляющим слишком много запросов.
- о запрете на прием управляющих команд ( notrap );
- и запрете тех, которые изменяют состояние или способны это делать ( nomodify );
- о запрете синхронизации с хостом ( nopeer );
- и о запрете запросов ( noquery );
- если используется протокол IPv4, то перед инструкцией default следует поставить -4, а если IPv6, то, соответственно, -6.
А вот и наглядный пример использования некоторых команд, описанных выше. Следующая строчка разрешает синхронизацию узлов в соответствующей сети, дополнительно запрещая узлам принимать управляющие и изменяющие состояние команды:
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
А эти рестрикты нужны для того, чтобы сервер мог обмениваться данными сам с собой:
restrict 127.0.0.1
restrict ::1
И не забывайте о перезапуске сервера после внесения изменений.
Проверяем корректность работы NTP
Для этого используйте инструкцию ntpq -p . При правильных настройках ответом будет таблица со столбцами, которая выглядит примерно так:
В первом столбце указан адрес сервера для синхронизации, далее показан вышестоящий сервер, уровень (столбец st ) и nup (столбец t ). В следующих 3 столбцах отражена информация о последнем времени сверки, периоде синхронизации, работоспособности (число 377 означает 8 успешных синхронизаций с этим сервером). Последние 2 столбца показывают разницу между временем синхронизируемого и эталонного сервера, а также смещение времени.
Кроме того, обратите внимание на знаки в первом столбце, которые стоят перед IP. Самый хороший знак — это + , который говорит о том, что данный сервер заслуживает доверия в плане синхронизации. Соответственно, – указывает на обратное, а * — это текущий сервер, выбранный для синхронизации. Также иногда встречается значок x , который означает, что сервер недоступен.
Проверяем, правильно ли сервер отдает время
Для этого потребуется ввести на другой системе инструкцию ntpdate с указанием IP проверяемого сервера. Ответ должен быть примерно таким:
adjust time server (здесь будет IP-адрес) offset 0.012319 sec
Число здесь означает время рассинхронизации. В данном случае всё в порядке, рассинхронизация составляет всего около 0,01 сек., а если точнее — 12 миллисекунд, что вполне допустимо.
Что ж, с Linux разобрались, теперь рассмотрим, как настроить протокол NTP в ОС Windows.
Настройка NTP сервера Windows Server
Для этого нам понадобится выполнить несколько операций в реестре и ввести инструкции в командной строке. Но перед тем как приступить к настройке, службу нужно запустить. Это делается путем изменения следующей записи в реестре:
HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpServer
В данной ветке находим Enabled справа и выставляем 1, чтобы запись в столбце Data имела следующий вид:
Теперь открываем cmd и вводим инструкцию, которая нужна для перезапуска протокола:
net stop w32time && net start w32time
Учтите, что вводить инструкцию нужно из-под C:\Users\Administrator . Проверить, что NTP включился, можно следующей командой:
w32tm /query /configuration
Выведется длинная запись, в которой обратите внимание на блок NtpServer : в строке Enabled значение должно быть 1. Теперь откроем в фаерволе UDP-порт 123 для корректного обслуживания клиентов, после чего приступаем к настройке.
Возвращаемся в реестр и ищем запись:
HKLM\System\CurrentControlSet\services\W32Time\Parameters
В этой ветке довольно много параметров, а главным является Type , который принимает одно из 4 значений:
- NoSync — без синхронизации;
- NTP — синхронизация с внешними серверами, определенными в NtpServer в реестре (устанавливается по умолчанию для отдельной машины);
- NT5DS — синхронизация в соответствии с иерархией доменов (устанавливается по умолчанию для машины в составе домена);
- AllSync — синхронизация со всеми доступными серверами.
Теперь снова обратимся к реестру и настроим значения в ветке NtpServer . Скорее всего там указан только сервер Майкрософта. Вы можете добавить другие, обращая внимание на флаг в конце:
- 0x1 , SpecialInterval , стандартный режим, рекомендуемый Microsoft;
- 0x2 , UseAsFallbackOnly , для использования сервера в качестве резервного;
- 0x4 , SymmetricActive , этот режим основной для NTP-серверов;
- 0x8 , Client , при возникновении проблем с синхронизацией.
И последнее, что нужно сделать — задать интервал синхронизации в ветке:
W32Time\TimeProviders\NtpClient
За это отвечает SpecialPollInterval , где поставьте требуемое значение (указывается в секундах). По умолчанию там выставлено значение, равное неделе. Если хотите синхронизироваться чаще, то для 1 дня поставьте 86400, для времени суток (четверть дня или 6 часов) — 21600, а для часа 3600. Последнее значение является оптимальным с точки зрения соотношения нагрузки на систему и приемлемой точности там, где требуется синхронизировать время достаточно часто.
Настройка NTP сервера Cisco
На устройствах Cisco всё делается просто и быстро:
- Запускаем конфигурационный режим командой conf t .
- Устанавливаем часовой пояс инструкцией clock timezone . Если время московское, ставим далее MSK 3 .
- Далее вводим команду ntp source и указываем источник.
- Если требуется сделать сервер главным для других машин в сети, то значение в инструкции ntp master должно быть 2 или больше.
- Инструкция ntp update-calendar нужна для обновления времени.
- Теперь укажите названия или IP серверов.
- Введите часовой пояс командой clock timezone и источник при помощи инструкции ntp source .
- Для проверки и при возникновении проблем поможет инструкция show , которая пригодится для вызова времени ( show clock ), статуса NTP ( show ntp status ) и ассоциаций ( show ntp associations ).
Настройка NTP-сервера на роутерах MikroTik
Выполним настройку при помощи SNTP:
- В Winbox перейдите в System – SNTP Client .
- Найдите пункт SNTP Client и включите его, поставив галочку в поле Enabled .
- В строки Server DNS Names ниже введите IP-адреса эталонных серверов.
- Проверим, всё ли заработало. Перейдите в System – Clock . Там же установите часовой пояс, выбрав его из выпадающего списка, либо поставьте галочку в поле Time Zone Autodetect , и тогда часовой пояс установится автоматически.
- Интервал синхронизации можно посмотреть в поле Poll Interval в меню SNTP Client . А ниже будет показано время последней синхронизации (поле Last Update ).
Вот мы и научились настраивать NTP в распространенных ОС и на отдельных устройствах.