@JS's Notes

Site with notes from my work.

Instalacja serwera i klienta NTP w systemach Fedora 30 / CentOS 7 / RHEL 8

2019-10-05 System @JS

W RHEL 8 pakiet ntp nie jest już dostępny a obsługa protokołu NTP jest realizowana przez demona chronyd, który dostarcza nam pakiet o nazwie chrony. Do wykonania instalacji oraz konfiguracji wymagany jest użytkownik root lub dowolny użytkownik z uprawnieniami sudo.

Środowisko testowe:

  1. NTP serwer - Fedora 30 / RHEL 8: 192.168.1.187 (ctx07vm.local.lnxorg)
  2. NTP klient - Centos 7: 192.168.1.183 (ctx03vm.local.lnxorg)

W obu przypadkach pakiet chrony został domyślnie zainstalowany wraz z instalacją systemu. W przypadku jego braku zainstalujemy go poleceniem:

# Fedora 30 / RHEL 8
dnf update -y && dnf install chrony -y
# Centos 7
yum update -y && yum install chrony -y

Stan usługi sprawdzamy za pomocą polecenia systemctl. W przypadku gdy pakiet został doinstalowany, uruchamiamy usługę chronyd oraz włączamy automatyczne uruchamianie wraz z systemem:

systemctl status chronyd.service
sudo systemctl start chronyd.service
sudo systemctl enable chronyd.service

Na serwerze edytujemy plik konfiguracyjny /etc/chrony.conf i ustawiamy dyrektywę allow na adres sieci, z której klienci będą się łączyć do naszego serwera NTP, np.:

allow 192.168.1.0/24

Restartujemy usługę chronyd. Jeśli korzystamy z zapory firewalld otwieramy port dla serwera NTP w jej konfiguracji:

systemctl restart chronyd.service
firewall-cmd --permanent --add-service=ntp
firewall-cmd --reload

Konfigurację klienta NTP również przeprowadzamy w pliku /etc/chrony.conf. Komentujemy domyślne serwery NTP określone jako wartość dyrektywy server i w ich miejsce ustawiamy adres naszego serwera:

server 192.168.1.187

Restartujemy usługę chronyd:

systemctl restart chronyd.service
systemctl status chronyd.service

Za pomocą polecenia chronyc sources wyświetlamy bieżące źródła czasu, do których chronyd uzyskuje dostęp. W wyniku powinien pojawić się adres naszego serwera NTP:

[serwis@ctx03vm ~]$ sudo chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* ctx07vm.local.lnxorg          3   6    17     0   +523us[+4075us] +/-   55ms

Na serwerze uruchamiamy polecenie:

chronyc clients

Tym razem w wyniku powinna pojawić się informacja o klientach NTP podłączonych do naszego serwera.

[sysadmin@ctx07vm ~]$ sudo chronyc clients
Hostname                      NTP   Drop Int IntL Last     Cmd   Drop Int  Last
===============================================================================
ctx03vm.local.lnxorg            3      0   6   -    13       0      0   -     -

W pliku konfiguracyjnym można również wskazać lokalizację zawierającą klucze uwierzytelniające podnoszące bezpieczeństwo połączenia między serwerem a klientami. Odpowiada za to dyrektywa keyfile. Domyślną lokalizacją jest /etc/chrony.keys natomiast klucze generujemy za pomocą polecenia:

chronyc keygen