Установка и настройка OpenNTPd в FreeBSD 10.2

NTP (Network Time Protocol) – это стандартизированный протокол, предусматривающий способы синхронизации времени на различных операционных системах. OpenNTPD – это свободная и простая в использовании реализация протокола NTP, первоначально разработанная в рамках проекта OpenBSD. OpenNTPd дает возможность синхронизировать локальные часы с удаленными серверами NTP.

Данное руководство поможет установить OpenNTPd в FreeBSD.

Требования

  • Сервер FreeBSD 10.2.
  • Пользователь с доступом root.
  • Для удалённого доступа к серверу FreeBSD нужен ключ SSH.

Примечание: Больше информации о FreeBSD можно найти в этом руководстве.

1: Установка OpenNTPd

Обновите индекс пакетов:

sudo pkg update

Установите OpenNTPd:

sudo pkg install openntpd

По умолчанию OpenNTPd использует серверы pool.ntp.org и работает только как клиент.

2: Изменение сервера времени (опционально)

Стандартный конфигурационный файл находится в /usr/local/etc/ntpd.conf. Откройте его в текстовом редакторе:

sudo ee /usr/local/etc/ntpd.conf

Поддерживаемый проектом GeoDNS, pool.ntp.org обычно возвращает IP-адреса вашей страны (или рядом). В большинстве случаев это подходит.

Также можно указать часовой пояс (например, br.pool.ntp.org, de.pool.ntp.org, orru.pool.ntp.org), чтобы подогнать или ограничить результаты согласно вашим требованиям.

Примечание: Чтобы узнать больше о NTP Pool Project, посетите сайт проекта.

В данном руководстве для примера используется NTP. Br, бразильский проект, показывающий правильное время на территории Бразилии.

Выберите сервер времени, как показано выше.

# $OpenBSD: ntpd.conf,v 1.2 2015/02/10 06:40:08 reyk Exp $
# sample ntpd configuration file, see ntpd.conf(5)
# Addresses to listen on (ntpd does not listen by default)
#listen on *
# sync to a single server
#server ntp.example.org
# use a random selection of NTP Pool Time Servers
# see http://support.ntp.org/bin/view/Servers/NTPPoolServers
servers pool.ntp.br
# use a specific local timedelta sensor (radio clock, etc)
#sensor nmea0
# use all detected timedelta sensors
#sensor *
# get the time constraint from a well-known HTTPS site
#constraints from "https://www.google.com/search?q=openntpd"

Примечание: Вместо pool.ntp.br укажите свой сервер.

3: Настройка ограничений

Пользовательские настройки клиента позволяют добавлять поддержку ограничений, чтобы ntpd  мог запрашивать дату.

В руководстве ntpd.conf сказано: «Принятые NTP-пакеты с информацией о времени, которые не входят в диапазон, будут отброшены, а такие серверы NTP будут помечены как недействительные». Это предотвращает атаки «человек посередине», сохраняя при этом точность часов.

Добавьте ограничения в файл /usr/local/etc/ntpd.conf, чтобы установить доверенный диапазон. При этом используйте несколько надёжных, проверенных HTTPS сайтов. Чтобы раскомментировать строку, удалите символ #.

# $OpenBSD: ntpd.conf,v 1.2 2015/02/10 06:40:08 reyk Exp $
# sample ntpd configuration file, see ntpd.conf(5)
# Addresses to listen on (ntpd does not listen by default)
#listen on *
# sync to a single server
#server ntp.example.org
# use a random selection of NTP Pool Time Servers
# see http://support.ntp.org/bin/view/Servers/NTPPoolServers
servers pool.ntp.br
# use a specific local timedelta sensor (radio clock, etc)
#sensor nmea0
# use all detected timedelta sensors
#sensor *
# get the time constraint from a well-known HTTPS site
# constraints from "https://www.google.com/search?q=openntpd"

4: Сервер времени OpenNTPd

Этот раздел покажет, как изменить стандартное поведение OpenNTPd и превратить FreeBSD в NTP-сервер, обслуживающий IPv4 и IPv6.

Эти настройки имеют такой вид:

# $OpenBSD: ntpd.conf,v 1.2 2015/02/10 06:40:08 reyk Exp $
# sample ntpd configuration file, see ntpd.conf(5)
# Addresses to listen on (ntpd does not listen by default)
listen on your_server_ip
# sync to a single server
#server ntp.example.org
# use a random selection of NTP Pool Time Servers
# see http://support.ntp.org/bin/view/Servers/NTPPoolServers
servers pool.ntp.br
# use a specific local timedelta sensor (radio clock, etc)
#sensor nmea0
# use all detected timedelta sensors
#sensor *
# get the time constraint from a well-known HTTPS site
#constraints from "https://www.google.com/search?q=openntpd"

Примечание: Вместо your_server_ip укажите адрес IPv4 или IPv6 сервера.

5: Автоматический запуск OpenNTPd

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

sudo sysrc openntpd_enable="YES"
openntpd_enable:  -> YES

Чтобы при загрузке сервер сразу показывал правильное время, добавьте флаг -s в openntpd_flags. Флаг –v будет регистрировать изменения времени. Флаг –s будет держать демон ntpd на переднем плане в течение 15 секунд в ожидании ответа NTP-сервера. Чтобы настроить такое поведение, введите:

sudo sysrc openntpd_flags="-s -v"
openntpd_flags:  -> -s -v

6: Управление OpenNTPd

Теперь можно запустить сервис OpenNTPd.

sudo service openntpd start

Если сервис запущен успешно, команда вернёт:

Starting openntpd.

Если OpenNTPd регистрирует отладочную информацию, то вывод будет выглядеть следующим образом:

Starting openntpd.
constraint certificate verification turned off
ntp_adjtime returns frequency of 8.643158ppm

Для управления сервисом OpenNTPd используются стандартные команды: status, restart и т.п.

7: Устранение неполадок (опционально)

OpenNTPd использует два бинарных файла: ntpd и ntpctl. Первый – это сам демон, который отвечает за сервис NTP. Второй отображает информацию о запущенном демоне.

Данный раздел научит вас устранять неполадки OpenNTPd с помощью ntpctl, nc и sockstat.

Состояние

Для взаимодействия с демоном OpenNTPd ntpctl использует локальный сокет, по умолчанию это /var/run/ntpd.sock.

Чтобы узнать состояние с помощью ntpctl, введите:

sudo ntpctl -s status

Команда вернёт примерно такую строку:

8/8 peers valid, clock synced, stratum 2

Чтобы просмотреть данные о peers, введите:

sudo ntpctl -s peers
peer
wt tl st  next  poll          offset       delay      jitter
200.160.0.8 from pool pool.ntp.br
1 10  2    8s   30s        -0.005ms    44.814ms     0.023ms
200.160.7.193 from pool pool.ntp.br
*  1 10  1   26s   31s        -0.012ms    44.814ms     0.027ms
200.20.186.76 from pool pool.ntp.br
1 10  1   18s   31s         0.023ms    37.481ms     0.031ms

Сокеты

Вы можете просмотреть список открытых сокетов IPv4, IPv6 и UNIX. Чтобы получить список прослушиваемых сокетов NTP по протоколам IPv4 и IPv6, введите:

sudo  sockstat -4 -6 -p 123
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
_ntp     ntpd       44208 7  udp4   203.0.113.123:16987  200.160.0.8:123
_ntp     ntpd       44208 8  udp4   203.0.113.123:38739  200.160.7.193:123
. . .

Если вы используете OpenNTPd для обслуживания времени по сети, столбец LOCAL ADDRESS покажет список ваших IP-адресов.

Подключение к интернету

Утилита nc устраняет неполадки NTP, а также других сетевых демонов и их сокетов (UNIX, TCP, UDP).

Чтобы узнать, доступен ли NTP по IPv4, введите:

sudo nc pool.ntp.br 123 -z -4 -u -v
Connection to pool.ntp.br 123 port [udp/ntp] succeeded!

Чтобы узнать, доступен ли NTP по IPv6, введите:

sudo nc pool.ntp.br 123 -z -6 -u -v
Connection to pool.ntp.br 123 port [udp/ntp] succeeded!

Утилита ntpdate

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

sudo ntpdate -q -4 ntp.cais.rnp.br
server 200.144.121.33, stratum 3, offset -0.000049, delay 0.09001
1 Sep 17:28:54 ntpdate[66740]: adjust time server 200.144.121.33 offset -0.000049 sec

Примечание: Теперь функции ntpdate доступны в программе FreeBSD под названием ntpd.

Мануал

Утилиты OpenNTPd (ntpd, ntpd.conf и ntpctl) не входят в систему FreeBSD по умолчанию, потому и справку о них нельзя получить в MANPATH по умолчанию. Чтобы узнать больше о OpenNTPd, запустите мануал:

man -M /usr/local/man ntpd

Заключение

Точное время – очень важный аспект работы серверов, роутеров, сетевых демонов и т.п. Если время на сервере не синхронизировано, это может вызвать несогласованность данных и усложнить обмен данными этого сервера с другими устройствами.

Tags: , ,

Добавить комментарий