1. Znaczenie NTP w Ubuntu
Co to jest NTP?
NTP (Network Time Protocol) to protokół używany do dokładnej synchronizacji czasu systemów komputerowych w sieci. Utrzymanie dokładnego czasu jest niezbędne dla spójności logów, przetwarzania transakcji i precyzyjnej komunikacji sieciowej. Rozbieżności czasowe mogą prowadzić do błędów sieciowych i niespójności danych, co czyni go szczególnie krytycznym dla działania serwerów.
W Ubuntu chrony jest zalecaną opcją, ponieważ umożliwia dokładną synchronizację czasu nawet w niestabilnych środowiskach sieciowych. Dodatkowo Chrony jest zoptymalizowany pod kątem niskiej latencji i szybkiej synchronizacji, co czyni go odpowiednim zarówno dla środowisk serwerowych, jak i klienckich.
2. Konfigurowanie NTP
Instalacja i konfiguracja Chrony
Chrony jest standardowym klientem NTP dla Ubuntu 18.04 i nowszych. Postępuj zgodnie z poniższymi krokami, aby zainstalować go i skonfigurować synchronizację czasu przy użyciu serwera NTP.
Kroki instalacji
sudo apt update
sudo apt install chrony
Następnie uruchom usługę Chrony i włącz jej automatyczne uruchamianie.
sudo systemctl start chrony
sudo systemctl enable chrony
Plik konfiguracyjny znajduje się w /etc/chrony/chrony.conf. Jeśli używasz serwerów NTP w pobliżu Japonii, skonfiguruj je w następujący sposób:
server ntp.nict.jp iburst
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
Opcja iburst pozwala na szybszą synchronizację podczas początkowego połączenia.

3. Optymalizacja i wybór serwera NTP
Korzystanie z projektu NTP Pool
Projekt NTP Pool to globalna inicjatywa, która udostępnia zoptymalizowane serwery NTP w zależności od regionów geograficznych. Konfigurując wiele serwerów NTP, zwiększasz niezawodność, zapewniając, że w razie awarii jednego serwera, inne przejmą jego zadania.
Poniższy przykład konfiguracji używa serwerów NTP zlokalizowanych w Japonii:
server ntp.nict.jp iburst
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
4. Konfigurowanie strefy czasowej
Użycie polecenia timedatectl
Domyślnie Ubuntu jest ustawione na strefę czasową UTC. Aby zmienić ją na Japonię Standard Time (JST), użyj następującego polecenia:
sudo timedatectl set-timezone Asia/Tokyo
Po zmianie strefy czasowej możesz zweryfikować bieżące ustawienia za pomocą następującego polecenia:
timedatectl
5. Rozwiązywanie problemów
Gdy NTP nie synchronizuje się
Sprawdzanie zapory sieciowej
NTP używa portu UDP 123, który może być zablokowany przez zaporę. Użyj następującego polecenia, aby otworzyć port 123:
sudo ufw allow 123/udp
Sprawdzanie fałszywych zegarów
Użyj polecenia ntpq -p, aby sprawdzić, czy serwery NTP działają prawidłowo. Fałszywe zegary (serwery podające nieprawidłowy czas) są oznaczone literą x. Jeśli zostaną wykryte, rozważ wybór alternatywnych serwerów lub dostosowanie konfiguracji.
Błąd Stratum 16
Jeśli serwer NTP nie może się synchronizować z serwerami wyższego poziomu, może wystąpić błąd Stratum 16. Oznacza to, że serwer nie jest prawidłowo podłączony lub występuje problem sieciowy. Zweryfikuj ustawienia serwera i sieci oraz skonfiguruj niezawodny serwer NTP.
Ręczna synchronizacja czasu
Aby ręcznie zsynchronizować czas przy użyciu Chrony, uruchom następujące polecenie:
sudo ntpdate ntp.nict.jp
Możesz także sprawdzić logi Chrony, aby zdiagnozować problemy z synchronizacją:
sudo journalctl -u chrony

6. Optymalizacja NTP dla środowisk o dużym obciążeniu
Dostosowanie minpoll i maxpoll
W środowiskach, w których wymagana jest wysokiej precyzji synchronizacja czasu, dostosowanie interwału odpytywania NTP może zapewnić częstsze synchronizacje i zminimalizować dryf czasu. Poniżej znajduje się przykładowa konfiguracja zwiększająca częstotliwość synchronizacji:
server ntp.nict.jp iburst minpoll 4 maxpoll 10
Zarządzanie NTP za pomocą Juju
W dużych środowiskach chmurowych Juju może być używane do automatyzacji zarządzania usługą NTP. Juju monitoruje obciążenie każdego hosta i wybiera optymalny host jako serwer NTP. Poniższe polecenia wdrażają NTP przy użyciu Juju:
juju deploy cs:ntp ntp
juju config ntp auto_peers=true
Ta automatyzacja usprawnia zarządzanie NTP i zapewnia efektywną synchronizację czasu przy rozproszonych obciążeniach.
7. Zwiększanie bezpieczeństwa
Ograniczanie dostępu do serwerów NTP
Aby poprawić bezpieczeństwo, możesz ograniczyć dostęp do serwera NTP do konkretnych adresów IP. Dodając reguły kontroli dostępu do /etc/chrony/chrony.conf, możesz zezwolić na żądania NTP tylko z określonych sieci lub adresów IP:
allow 192.168.1.0/24
Zapobiega to nieautoryzowanym żądaniom NTP z zewnętrznych źródeł, wzmacniając bezpieczeństwo Twojej wewnętrznej sieci.

 
 


