1. Důležitost NTP na Ubuntu
Co je NTP?
NTP (Network Time Protocol) je protokol používaný k přesnému synchronizování času počítačových systémů přes síť. Udržování přesného času je nezbytné pro konzistenci logů, zpracování transakcí a přesnou síťovou komunikaci. Časové nesrovnalosti mohou vést k síťovým chybám a nekonzistencím dat, což je zvláště kritické pro provoz serverů.
Na Ubuntu je doporučenou volbou chrony, protože umožňuje přesnou synchronizaci času i v nestabilních síťových podmínkách. Navíc je Chrony optimalizován pro nízkou latenci a rychlou synchronizaci, což jej činí vhodným jak pro serverová, tak i klientská prostředí.
2. Konfigurace NTP
Instalace a nastavení Chrony
Chrony je standardní NTP klient pro Ubuntu 18.04 a novější. Postupujte podle níže uvedených kroků pro instalaci a nastavení synchronizace času pomocí NTP serveru.
Kroky instalace
sudo apt update
sudo apt install chrony
Dále spusťte službu Chrony a povolte její automatické spouštění.
sudo systemctl start chrony
sudo systemctl enable chrony
Konfigurační soubor se nachází v /etc/chrony/chrony.conf. Pokud používáte NTP servery v blízkosti Japonska, nakonfigurujte je následovně:
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
Volba iburst umožňuje rychlejší synchronizaci během počátečního připojení.

3. Optimalizace a výběr NTP serveru
Použití projektu NTP Pool
Projekt NTP Pool je celosvětová iniciativa, která poskytuje optimalizované NTP servery podle geografických regionů. Konfigurací více NTP serverů se zvyšuje spolehlivost, což zajišťuje, že pokud jeden server selže, převezmou jej ostatní.
Následující příklad konfigurace používá NTP servery umístěné v Japonsku:
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. Nastavení časové zóny
Použití příkazu timedatectl
Ve výchozím nastavení je Ubuntu nastaveno na časovou zónu UTC. Pro změnu na Japonský standardní čas (JST) použijte následující příkaz:
sudo timedatectl set-timezone Asia/Tokyo
Po změně časové zóny můžete ověřit aktuální nastavení pomocí následujícího příkazu:
timedatectl
5. Řešení problémů
Když se NTP nesynchronizuje
Kontrola firewallu
NTP používá UDP port 123, který může být blokován firewallem. Použijte následující příkaz pro otevření portu 123:
sudo ufw allow 123/udp
Kontrola falešných tikérů
Použijte příkaz ntpq -p k ověření, zda NTP servery fungují správně. Falešní tikéři (servery poskytující nesprávný čas) jsou označeni znakem x. Pokud jsou detekováni, zvažte výběr alternativních serverů nebo úpravu konfigurace.
Chyba Stratum 16
Pokud NTP server nedokáže synchronizovat s vyššími servery, může nastat chyba Stratum 16. To naznačuje, že server není správně připojen nebo existuje síťový problém. Ověřte nastavení serveru a sítě a znovu nakonfigurujte spolehlivý NTP server.
Ruční synchronizace času
Pro ruční synchronizaci času pomocí Chrony spusťte následující příkaz:
sudo ntpdate ntp.nict.jp
Můžete také zkontrolovat logy Chrony pro diagnostiku problémů se synchronizací:
sudo journalctl -u chrony

6. Optimalizace NTP pro prostředí s vysokým zatížením
Úprava minpoll a maxpoll
V prostředích, kde je vyžadována vysoce přesná synchronizace času, může úprava intervalu dotazování NTP zajistit častější synchronizaci a minimalizovat časový drift. Níže je ukázková konfigurace pro zvýšení frekvence synchronizace:
server ntp.nict.jp iburst minpoll 4 maxpoll 10
Správa NTP pomocí Juju
V rozsáhlých cloudových prostředích lze Juju použít k automatizaci správy služby NTP. Juju monitoruje zatížení každého hostitele a vybírá optimální hostitele jako NTP server. Následující příkazy nasazují NTP pomocí Juju:
juju deploy cs:ntp ntp
juju config ntp auto_peers=true
Tato automatizace zlepšuje správu NTP a zajišťuje efektivní synchronizaci času při rozloženém zatížení.
7. Zvyšování bezpečnosti
Omezení přístupu k NTP serverům
Pro zvýšení bezpečnosti můžete omezit přístup k NTP serveru na konkrétní IP adresy. Přidáním pravidel řízení přístupu do /etc/chrony/chrony.conf můžete povolit NTP požadavky pouze z konkrétních sítí nebo IP adres:
allow 192.168.1.0/24
Tím se zabrání neoprávněným NTP požadavkům z externích zdrojů, čímž se posílí bezpečnost vaší interní sítě.


