Как настроить NTP сервер с помощью Chrony на CentOS 8
В этом руководстве мы узнаем, как установить и настроить NTP-сервер с помощью Chrony на CentOS 8. Chrony — это реализация протокола сетевого времени (NTP). По сравнению с реализацией NTP , chrony хорошо работает в широком диапазоне условий, включая:
- прерывистые сетевые соединения,
- сильно перегруженные сети
- изменение температуры
- системы, которые не работают постоянно
Chrony можно использовать для синхронизации системных часов с NTP-серверами, эталонными часами. Он также может работать как сервер NTPv4 и одноранговый узел, чтобы обеспечивать обслуживание времени другим компьютерам в сети.
Настройте NTP-сервер с помощью Chrony на CentOS 8
Запустить обновление системы
Чтобы синхронизировать системные пакеты с их последними версиями, просто выполните команду;
dnf update
Установка Chrony на CentOS 8
Пакет Chrony по умолчанию устанавливается на производных от RHEL, включая CentOS 8. Однако вы можете проверить это, выполнив команду ниже;
rpm -q chrony
Если пакет установлен, вы должны получить такой вывод:
chrony-3.5-1.el8.x86_64
В противном случае вы получите такой результат:
package chrony is not installed
Чтобы увидеть больше информации о Chrony;
rpm -qi chrony
Name : chrony
Version : 3.5
Release : 1.el8
Architecture: x86_64
Install Date: Sun 01 Mar 2020 08:07:16 PM EAT
Group : System Environment/Daemons
Size : 692391
License : GPLv2
Signature : RSA/SHA256, Thu 05 Dec 2019 01:51:32 AM EAT, Key ID 05b555b38483c65d
Source RPM : chrony-3.5-1.el8.src.rpm
Build Date : Tue 19 Nov 2019 06:32:41 PM EAT
Build Host : x86-01.mbox.centos.org
Relocations : (not relocatable)
Packager : CentOS Buildsys <[email protected]>
Vendor : CentOS
URL : https://chrony.tuxfamily.org
Summary : An NTP client/server
Description :
chrony is a versatile implementation of the Network Time Protocol (NTP).
It can synchronise the system clock with NTP servers, reference clocks
(e.g. GPS receiver), and manual input using wristwatch and keyboard. It
can also operate as an NTPv4 (RFC 5905) server and peer to provide a time
service to other computers in the network.
Если по каким-то причинам он не установлен по умолчанию, вы всегда можете установить его, выполнив команду ниже;
dnf install chrony
Настройте Chrony как NTP-сервер в CentOS 8
Предполагая, что Chrony установлен, вы можете приступить к его настройке для обеспечения синхронизации времени.
Файл конфигурации Chrony по умолчанию — /etc/chrony.conf
. Поэтому мы внесем большинство изменений конфигурации в этот файл.
Установить серверы времени
По умолчанию Chrony использует в 2.centos.pool.ntp.org
качестве сервера времени по умолчанию. Вам необходимо определить серверы времени, близкие к вашему региону.
Чтобы получить список серверов NTP, близких к вашему региону, перейдите на страницу « Интернет-кластер серверов NTP» и выберите свой регион. Например, если вы находитесь в Европе, ниже перечислены доступные серверы NTP;
server 0.europe.pool.ntp.org server 1.europe.pool.ntp.org server 2.europe.pool.ntp.org server 3.europe.pool.ntp.org
Чтобы использовать пул серверов NTP в вашем регионе, просто закомментируйте ( добавьте # в начале ) строку, pool 2.centos.pool.ntp.org iburst
заменив ее следующим образом;
vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). # pool 2.centos.pool.ntp.org iburst server 0.europe.pool.ntp.org server 1.europe.pool.ntp.org server 2.europe.pool.ntp.org server 3.europe.pool.ntp.org
Настройка контроля доступа к серверу NTP
Chrony не разрешает доступ к серверу NTP. Чтобы ограничить или контролировать доступ к NTP
службе, работающей в системе, используйте директиву allow. Эта директива просто предназначена для обозначения определенных серверов, с которых клиентам NTP разрешен доступ к компьютеру, в качестве сервера NTP.
Например, чтобы разрешить всем серверам в сетевой подсети 192.168.56.0/24 доступ к вашему серверу NTP;
# Allow NTP client access from local network. #allow 192.168.0.0/16 allow 192.168.56.0/24
Подробнее на man chrony.conf
,.
Откройте порт 123 UDP NTP на брандмауэре
Чтобы разрешить клиентам NTP доступ к вашему серверу NTP, вам необходимо открыть порт 123 / UDP на брандмауэре.
firewall-cmd --add-port=123/udp --permanent
firewall-cmd --reload
Открыть доступ NTP клиенту и серверу в IPTables необходимо добавить правила:
sudo iptables -A OUTPUT -p udp -m udp -m multiport --dports 123 -m state --state NEW -j ACCEPT sudo iptables -A INPUT -m state --state NEW -p udp --dport 123 -j ACCEPT
Чтобы открыть доступ только конкретной сети, например 10.0.0.0/24:
sudo iptables -A OUTPUT -p udp -m udp -m multiport --dports 123 -m state --state NEW -j ACCEPT sudo iptables -A INPUT -s 10.0.0.0/24 -m state --state NEW -p udp --dport 123 -j ACCEPT
Удалить правило укажем ту же команду, заменив -A на -D, например:
sudo iptables -D OUTPUT -p udp -m udp -m multiport --dports 123 -m state --state NEW -j ACCEPT sudo iptables -D INPUT -m state --state NEW -p udp --dport 123 -j ACCEPT
Посмотреть список правил можно командой:
sudo iptables -nvL sudo iptables -nvL | grep 10.0.0
Запуск Chrony на CentOS 8
Chronyd
демон управляет реализацией NTP. Таким образом, вы можете запустить и разрешить его запуск при загрузке системы, выполнив команду ниже;
systemctl enable --now chronyd
systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-03-01 20:59:01 CET; 10s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 6685 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
Process: 6681 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 6683 (chronyd)
Tasks: 1 (limit: 5047)
Memory: 828.0K
CGroup: /system.slice/chronyd.service
└─6683 /usr/sbin/chronyd
...
Проверьте синхронизацию хронического времени
Команды chronyc используются для проверки синхронизации времени Chrony с помощью параметров командной строки, таких как sources, tracking, sourcestats
.
Чтобы отобразить информацию об источниках текущего времени, к которым обращается chronyd, выполните команду;
chronyc sources
210 Number of sources = 4
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^+ 85.129.0.126 2 6 77 30 -1023us[-1499us] +/- 124ms
^+ valoo.patate.ninja 2 6 77 29 +3687us[+3687us] +/- 123ms
^* leeto.nicolbolas.org 2 6 77 30 -79us[ -555us] +/- 75ms
^+ backup.kabelnetveendam.nl 2 6 77 30 -3653us[-4129us] +/- 146ms
М колонка указывает режим источника;
- ^ означает сервер
- = означает одноранговый
- # указывает на локально подключенные опорные часы
S колонка показывает состояние источников;
- “*” Указывает на источник, с которым в настоящее время синхронизируется хронид.
- “+” Указывает на приемлемые источники, которые объединены с выбранным источником.
- “-” Допустимые источники, которые исключаются алгоритмом объединения.
- “?” Источники, подключение к которым было потеряно или чьи пакеты не проходят все тесты. Это состояние также отображается при запуске, пока не будет собрано по крайней мере 3 образца.
- “x” Обозначает часы, которые хронид считает фальшивыми (их время несовместимо с большинством других источников).
- “~” Указывает на источник, время которого кажется слишком изменчивым.
Для отображения параметров о тактовой работе системы;
chronyc tracking
Reference ID : C39AAED1 (leeto.nicolbolas.org)
Stratum : 3
Ref time (UTC) : Sun Mar 01 18:14:38 2020
System time : 0.001563942 seconds fast of NTP time
Last offset : +0.001314329 seconds
RMS offset : 0.002229846 seconds
Frequency : 2.614 ppm fast
Residual freq : +0.147 ppm
Skew : 24.449 ppm
Root delay : 0.150412217 seconds
Root dispersion : 0.008927128 seconds
Update interval : 128.5 seconds
Leap status : Normal
Дополнительные параметры команды см man chronyc
. В.
Настройка клиента NTP с помощью Chrony на CentOS 8
Поскольку наш NTP-сервер, использующий Chrony в CentOS 8, настроен и работает, пришло время проверить, может ли он обслуживать наших клиентов NTP, как ожидалось.
В этой демонстрации мы используем другую виртуальную машину CentOS 8 в качестве нашего NTP-клиента.
Проверьте, установлен ли Chrony;
rpm -q chrony
chrony-3.5-1.el8.x86_64
Настройка клиента NTP в CentOS 8 аналогична настройке сервера NTP, как описано выше, за исключением того, что у клиента не установлены разрешения на доступ, поэтому ни один сервер не может запрашивать у него информацию о времени.
Откройте файл конфигурации и настройте сервер NTP, как показано ниже;
vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #pool 2.centos.pool.ntp.org iburst server ntp.kifarunix-demo.com iburst
Убедитесь, что имя хоста сервера NTP разрешимо, в противном случае используйте IP-адрес.
Проверьте подключение к NTP-серверу UDP-порт 123
Чтобы убедиться, что клиент NTP подключен к серверу NTP через порт 123 UDP, просто используйте команду netcat, как показано ниже;
dnf install nc -y
Для проверки подключения к UDP-порту 123;
nc -uzv ntp.kifarunix-demo.com 123
Ncat: Connected to 192.168.56.133:123. Ncat: UDP packet sent successfully Ncat: 1 bytes sent, 0 bytes received in 2.14 seconds.
Отлично. Теперь вы можете перейти к перезагрузке и разрешить запуск chronyd при загрузке системы.
systemctl restart chronyd
systemctl enable chronyd
Проверить синхронизацию времени NTP
Чтобы убедиться, что синхронизация времени работает,можна использовать команду отслеживания источников с командой chronyc, как показано ниже;
chronyc tracking
Reference ID : C0A83885 (ntp.kifarunix-demo.com) Stratum : 4 Ref time (UTC) : Sun Mar 01 18:56:03 2020 System time : 0.000000034 seconds slow of NTP time Last offset : +0.000032892 seconds RMS offset : 0.000032892 seconds Frequency : 2.246 ppm fast Residual freq : +14.373 ppm Skew : 0.564 ppm Root delay : 0.151499271 seconds Root dispersion : 0.001610240 seconds Update interval : 2.0 seconds Leap status : Normal
Используя команду sources;
chronyc sources
210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* ntp.kifarunix-demo.com 3 6 37 7 -671ns[ -12us] +/- 77ms
Проверить статистику источников
chronyc sourcestats
210 Number of sources = 1 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== ntp.kifarunix-demo.com 5 3 70 +0.408 4.663 +24us 27us
Клиент NTP теперь подключен к нашему серверу NTP. На этом мы подошли к концу нашего руководства по настройке NTP-сервера с использованием Chrony на CentOS 8. Мы надеемся, что это было информативным.