Свой NTP сервер на FreeBSD

Если в Вашей сети становится много устройств, которым необходимо точное время, значит пора делать свой NTP сервер. И делать его мы будем на FreeBSD. Хотя на Linux-системах конфигурация будет идентична.

Устанавливаем из портов:
cd /usr/ports/net/ntp/
make install clean
rehash

Или из пакетов:
pkg update
pkg install ntp

Создаём/редактируем файл конфигурации демона:
vim /etc/ntp.conf

Содержимое этого файла должно быть примерно следующим:

# сервера с которыми будем сверяться:
# prefer - приоритетный сервер
server lt.pool.ntp.org iburst burst prefer
server by.pool.ntp.org iburst burst
# файл смещения и логов
driftfile /var/db/ntpd.drift
logfile /var/log/ntpd.log
# по-умолчанию запрещаем всем взаимодействовать
restrict default ignore
# разрешим следующим серверам времени
restrict lt.pool.ntp.org
restrict by.pool.ntp.org
# и localhost
restrict localhost
# разрешим пользоваться нашим NTP устройствам в локальной сети
restrict 10.0.0.0 mask 255.0.0.0 nomodify notrap
restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap

Создадим файлы для логов и смещения:
touch /var/log/ntpd.log
touch /var/db/ntpd.drift

В /etc/rc.conf прописываем:
ntpd_enable="YES"
ntpd_program="/usr/local/bin/ntpd"
ntpd_sync_on_start="YES"

Запускаем службу:
/etc/rc.d/ntpd start

Проверим, работает ли наш NTP сервер времени:
ntpdate -q localhost

Должны увидеть, что то вроде
server 127.0.0.1, stratum 4, offset -0.000011, delay 0.02568
2 Nov 21:10:06 ntpdate[2130]: adjust time server 127.0.0.1 offset -0.000011 sec

если видите
server ip_адрес, stratum 0, offset 0.000000, delay 0.00000
1 Nov 23:19:03 ntpdate[40529]: no server suitable for synchronization found

значит не работает.

Узнать эти же параметры, но на другом сервере в интернете можно командой:
ntpdate -q lt.pool.ntp.org

Так же проверить синхронизацию можно выполнив:
ntpq -p

Должны увидеть нечто похожее на:

Символы перед remote серверами:
* — значит, что с него мы синхронизировались последний раз
+ — подходящий для обновления сервер
— — не подходящий для обновления сервер
x — сервер не доступен
delay — задержка в миллисекундах
when показывает, когда последний раз обновлялись мы с этого сервера.

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

Узнать нынешнее время на вашем сервере можно, выполнив:
date

Для настройки FreeBSD в качестве клиента синхронизации в /etc/rc.conf надо вписать:

ntpdate_enable="YES"
ntpdate_program="/usr/sbin/ntpdate"
ntpdate_flags="-u имя_сервера_ntp"

Кстати, не забудьте открыть на фаерволе порт udp 123, иначе ничего не получится 🙂

По материалам


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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

UNLIX © 2019

При копировании материалов ОБЯЗАТЕЛЬНО указывать актуальную ссылку на сайт.