Установка и настройка NTP-сервера на Linux CentOS 8

Тематические термины: NTP, CentOS.
Сервер синхронизации времени NTP помогает актуализировать время на всех узлах сети. В инструкции рассказано о его установке и настройке на Linux CentOS 8.
Установка
Настройка
Тестирование
Настройка клиента Linux
chrony
ntp
ntpdate
Настройка клиента Windows
Установка сервера
В CentOS 8 пакетом для синхронизации времени является chrony — он пришел на смену ntpd.
Устанавливаем его командой:
dnf install chrony
Разрешаем автозапуск и стартуем сервис:
systemctl enable chronyd --now
Настройка NTP
Открываем файл с настройками:
vi /etc/chrony.conf
Настраиваем серверы, с которых наш NTP будет брать эталонное время. Например:
#pool 2.centos.pool.ntp.org iburst
server 192.168.0.100 iburst prefer
server 192.168.0.110 iburst
server 127.127.1.0
* где:
- pool — указывает на выполнение синхронизации с пулом серверов.
- server — указывает на выполнение синхронизации с сервером.
- iburst — отправлять несколько пакетов (повышает точность).
- prefer — указывает на предпочитаемый сервер.
- server 127.127.1.0 — позволит в случае отказа сети Интернет брать время из своих системных часов.
* в данном примере мы закомментировали указанный пул по умолчанию и добавили свои серверы 192.168.0.100 и 192.168.0.110.
Настраиваем безопасность:
allow 192.168.0.0/24
* в данном примере мы разрешаем синхронизацию времени с нашим сервером для узлов сети 192.168.0.0/255.255.255.0.
Перезапускаем сервис:
systemctl restart chronyd
Добавляем правило в брандмауэр:
firewall-cmd --permanent --add-service=ntp
firewall-cmd --reload
Тестирование
Проверить состояние получения эталонного времени можно командой:
chronyc sources
Мы должны увидеть, примерно, следующее:
210 Number of sources = 2
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 127.127.1.0 0 6 0 - +0ns[ +0ns] +/- 0ns
^* server-01.dmosk.local 2 6 17 55 +629us[+1184us] +/- 152ms
Отобразить текущее время можно командой:
date
Для настройки часового пояса применяем команду:
timedatectl set-timezone Europe/Moscow
* московское время (GMT+3).
Проверить отдачу времени сервером можно введя команду на другом Linux:
ntpdate 192.168.0.15
* где 192.168.0.15 — адрес нашего NTP-сервера.
Правильный ответ имеет следующий вид:
ntpdate[3576]: adjust time server 192.168.0.15 offset 0.017657 sec
* время было рассинхронизировано на 0.017657 секунд.
Настройка клиента Linux
Для клиентов можно выбрать несколько стратегий настройки — мы рассмотрим 3:
- С помощью Chrony.
- Сервис ntpd.
- Утилиты ntpdate.
Начнем с Chrony.
Chrony
Команда для установки зависит от типа дистрибутива Linux.
а) Ubuntu / Debian:
apt-get install chrony
б) CentOS 7,8
yum install chrony
После установки открываем /etc/chrony.conf:
vi /etc/chrony.conf
... и в качестве сервера оставляем только наш локальный сервер, например:
server 192.168.156.215 iburst
Разрешаем автозапуск сервиса:
systemctl enable chronyd || systemctl enable chrony
Перезапускаем сервис:
systemctl restart chronyd || systemctl restart chrony
Проверить состояние работы можно командой:
chronyc sources
NTP
Устанавливаем ntp:
а) Ubuntu / Debian:
apt-get install ntp
б) CentOS 7:
yum install ntp
В настройка /etc/ntp.conf в качестве сервера оставляем только наш локальный сервер, например:
server 192.168.0.15
Остальные pool и server удаляем или комментируем.
Перезапускаем NTP:
systemctl restart ntp || systemctl restart ntpd
Проверить состояние можно командой:
ntpq -p
ntpdate
Утилита командной строки выполняет разовую синхронизацию. Ее можно установить из репозитория.
а) Ubuntu / Debian:
apt-get install ntpdate
б) CentOS 7:
yum install ntpdate
Чтобы автоматизировать процесс, добавляем задание в cron:
crontab -e
0 0 * * * /usr/sbin/ntpdate 192.168.0.15
* в данном примере задание будет выполняться раз в день в 00:00. /usr/sbin/ntpdate — полный путь расположения утилиты, в разных системах может быть разным — проверить стоит командой which ntpdate.
Настройка клиента Windows
В командной строке выполняем:
w32tm /config /manualpeerlist:"192.168.0.15,0x8" /syncfromflags:manual /update