Как установить и настроить OpenNTPd на FreeBSD 10.2

Вступление

NTP, сетевой протокол времени, является стандартизированным протоколом, обеспечивающим способы синхронизации времени в различных операционных системах. http://openntpd.org [OpenNTPd] - это бесплатная и простая в использовании реализация протокола сетевого времени (NTP), первоначально разработанная в рамках проекта http://openbsd.org [OpenBSD]. Он обеспечивает возможность синхронизации локальных часов с удаленных серверов NTP, а также может выступать в роли самого сервера.

Из этого туториала вы узнаете, как установить OpenNTPd на FreeBSD.

Предпосылки

Чтобы следовать этому уроку, вам необходимо иметь:

  • Одна FreeBSD 10.2 Droplet с пользователем * root *; пользователь * freebsd * по умолчанию в DigitalOcean - это нормально.

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

Перед установкой OpenNTPd обновите информацию о репозитории, используемую + pkg +:

sudo pkg update

Затем установите пакет OpenNTPd:

sudo pkg install openntpd

Конфигурация OpenNTPd по умолчанию использует + pool.ntp.org + в качестве серверов времени по умолчанию и настроена для работы только в качестве клиентского компьютера. В оставшейся части этого руководства будет показано, как изменить используемый сервер времени и как настроить OpenNTPd в качестве сервера времени.

Шаг 2 - Изменение сервера времени ((необязательно)

Следующие несколько шагов отредактируют + / usr / local / etc / ntpd.conf +, файл конфигурации по умолчанию. Используйте + ee +, + vi + или ваш любимый текстовый редактор для редактирования файла конфигурации.

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

При поддержке Ask Bjørn Hansen GeoDNS, + pool.ntp.org + обычно возвращает IP-адреса для серверов в вашей стране или рядом с ней. Для большинства пользователей это даст лучшие результаты.

Кроме того, вы также можете использовать зону страны, например + br.pool.ntp.org id.pool.ntp.org или` + ru.pool.ntp.org + `, чтобы принудительно / ограничивать результаты в соответствии с вашими личными потребностями. , Чтобы узнать больше о проекте NTP Pool, посетите http://www.pool.ntp.org [pool.ntp.org].

Для примера в этом руководстве мы будем использовать http://ntp.br [NTP.br], проект в Бразилии, который сохраняет и распределяет законное время на территории Бразилии. Если вы не в Бразилии, используйте аналогичный проект в вашей стране или регионе.

Определите свой желаемый сервер времени следующим образом, заменив + pool.ntp.br + выбранным вами сервером времени.

/usr/local/etc/ntpd.conf

# $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


# 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"

Шаг 3 - Изменение ограничений

Пользовательская настройка клиента также может добавить поддержку ограничений, чтобы + ntpd + мог запрашивать заголовки + Date: + с доверенных HTTPS-серверов через TLS.

Страница man + ntpd.conf (5) + `гласит:« Полученные NTP-пакеты с информацией о времени, выходящей за пределы диапазона, близкого к ограничению, будут отброшены, и такие NTP-серверы будут помечены как недействительные ». Это предотвращает некоторые атаки MITM, сохраняя точность часов.

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

/usr/local/etc/ntpd.conf

# $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


# 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.

Окончательные результаты для конфигурации сервера должны выглядеть следующим образом, с заменой ++ на IPv4 или IPv6-адрес вашего сервера.

/usr/local/etc/ntpd.conf

# $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)


# 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"

Шаг 5 - Запуск OpenNTPd при загрузке

Конфигурация службы по умолчанию для OpenNTPd не запускает демон во время процесса загрузки FreeBSD. Чтобы добавить службу NTP, предоставляемую + ntpd + во FreeBSD, выполните следующее:

sudo sysrc openntpd_enable="YES"

Выход должен быть:

Outputopenntpd_enable:  -> YES

Если вы хотите установить время сразу при запуске, добавьте + -s + к + openntpd_flags +. + -v + также можно использовать для регистрации всех вызовов + adjtime +. Передача + -s + в + ntpd + заставит демона ответить одному из настроенных серверов NTP. Это и пользовательская настройка, подобная этой, должна быть настроена так:

sudo sysrc openntpd_flags="-s -v"

Выход должен быть:

Outputopenntpd_flags:  -> -s -v

Шаг 6 - Управление сервисом OpenNTPd

Теперь, когда у вас есть файл конфигурации, отредактированный и настроенный в соответствии со всеми вашими потребностями, вы можете запустить сервис, предоставляемый OpenNTPd.

Чтобы запустить сервис:

sudo service openntpd start

Если он начнется успешно, вы увидите:

OutputStarting openntpd.

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

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

Вы можете управлять сервисом OpenNTPd с помощью обычных команд: + status,` + restart` и т. Д.

Шаг 7 - Устранение неполадок (необязательно)

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

В этом разделе показано, как использовать + ntpctl +, + nc + и + sockstat + для устранения неполадок в службе NTP, предоставляемой OpenNTPd и его демоном. Если у вас есть работающий сервис или вы просто хотите проверить, работает ли ваш сервис другим способом, используйте этот раздел.

Получение статуса и сверстников

+ Ntpctl + в OpenNTPd использует локальный сокет для связи с демоном OpenNTPd. По умолчанию это + / var / run / ntpd.sock +. В этом руководстве рассматриваются два вида запросов, которые вы можете запускать с помощью + ntpctl:` + status` и + peers.

+ status + показывает состояние одноранговых узлов и датчиков, а также синхронизируются ли системные часы. Когда системные часы синхронизируются, отображается слой. Когда системные часы не синхронизированы, отображается смещение системных часов, сообщаемое системным вызовом + adjtime +. Когда медианное ограничение установлено, отображается смещение по местному времени.

Чтобы показать статус с помощью ntpctl:

sudo ntpctl -s status

Вывод должен быть похож на следующее:

Выход

8/8 peers valid, clock synced, stratum 2

+ peers + показывает следующую информацию о каждом узле: вес (wt), уровень доверия (tl), уровень (st) и количество секунд до следующего обновления однорангового узла (следующий опрос). Значения смещения, задержки в сети и дрожания сети указаны в миллисекундах. Когда системные часы синхронизируются с одноранговым узлом, слева от столбца веса для этого однорангового узла отображается звездочка (*).

Чтобы показать информацию о пирах, используя + ntpctl +:

sudo ntpctl -s peers

В следующих выходных данных показана информация о том, что OpenNTPd запущен и синхронизирован с сервером уровня 1, отвечающим как «200.160.7.193» (разрешено из pool.ntp.br), и ваш демон OpenNTPd будет обновлять время через NTP через 31 секунду:

Output        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.20.186.76 from pool pool.ntp.br
           1 10  1   18s   31s         0.023ms    37.481ms     0.031ms

. . .

Розетки для прослушивания

Вы можете использовать + sockstat + для отображения списка открытых сокетов доменов 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-адресами; `: 123 `, представляющий сокет IPv4, и `: 123 +`, показывающий прослушивающий сокет IPv6.

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

Используйте + nc + для устранения неполадок не только NTP, но и множества сетевых демонов и их сокетов (UNIX, TCP или UDP). На странице руководства написано: «В отличие от` + telnet + , netcat хорошо выполняет сценарии и разделяет сообщения об ошибках на стандартные ошибки, а не отправляет их на стандартный вывод, как + telnet + `делает с некоторыми».

Чтобы проверить, можете ли вы подключиться к NTP-серверу или узлу пула через IPv4:

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

Чтобы проверить, можете ли вы подключиться к NTP-серверу или узлу пула через IPv6:

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

Использование ntpdate

Используйте + ntpdate + для устранения неполадок на некоторых серверах, которые вы можете использовать. Вы можете получить некоторую информацию о машине, на которой запущена служба NTP: + stratum +, + offset + и + delay +.

sudo ntpdate -q  ntp.cais.rnp.br

Вывод будет выглядеть примерно так:

Outputserver 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 +. Смотрите параметр командной строки + -q + в справочной странице FreeBSD + ntpd + или используйте + ntpq +.

Чтение страниц руководства

+ Ntpd +, + ntpd.conf + и + ntpctl + в OpenNTPd не являются частью базовой системы FreeBSD, поэтому ее страницы руководства также не являются частью стандартной операционной системы + MANPATH +. Чтобы быть уверенным, что вы будете читать справочные страницы OpenNTPd, вы должны запустить + man + с + -M / usr / local / man +. Не путайте со стандартной страницей FreeBSD + ntpd (8) +.

man -M /usr/local/man ntpd

Повторите ту же процедуру, чтобы прочитать справочную страницу + ntpctl (8) + или + ntpd.conf (5) + в OpenNTPd.

Заключение

Время неотъемлемо важно для работы рабочих станций, серверов, маршрутизаторов и сетей. Без синхронизированного времени точное сопоставление информации между устройствами становится трудным, если не невозможным. Когда дело доходит до безопасности, если вы не можете успешно сравнить журналы между каждым из ваших маршрутизаторов и всеми вашими сетевыми серверами, вам будет очень трудно составить достоверную картину инцидента.

Related