Jak konfigurovat NTP v Ubuntu: Přesná synchronizace času pomocí Chrony

1. Důležitost NTP na Ubuntu

Co je NTP?

NTP (Network Time Protocol) je protokol navržený k přesnému synchronizování času počítačových systémů přes síť. Udržování přesného systémového času je nezbytné pro konzistenci logů, zpracování transakcí a spolehlivost síťové komunikace. Pokud systémový hodinový zdroj driftuje, mohou nastat síťové chyby nebo nesoulad dat, což činí přesnou synchronizaci času klíčovou, zejména v serverových prostředích.

Na Ubuntu se doporučuje chrony, protože poskytuje přesnou synchronizaci času i v nestabilních síťových podmínkách. Chrony také nabízí nízkou latenci a rychlou synchronizaci, což jej činí vhodným jak pro serverová, tak i klientská prostředí.

2. Jak nakonfigurovat NTP

Instalace a konfigurace Chrony

Chrony je výchozí NTP klient na Ubuntu 18.04 a novějších. Použijte následující kroky k instalaci Chrony a nastavení synchronizace času pomocí NTP serverů.

Kroky instalace

sudo apt update
sudo apt install chrony

Dále spusťte službu Chrony a povolte ji pro automatické spouštění.

sudo systemctl start chrony
sudo systemctl enable chrony

Konfigurační soubor se nachází v /etc/chrony/chrony.conf. Pokud chcete používat NTP servery umístěné v Japonsku, nakonfigurujte jej 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 urychluje počáteční synchronizaci při připojení k NTP serveru.

3. Optimalizace a výběr NTP serverů

Použití projektu NTP Pool

Projekt NTP Pool poskytuje regionálně optimalizované NTP servery získané z celého světa. Konfigurací více NTP serverů se zvyšuje spolehlivost, protože pokud jeden server přestane být dostupný, ostatní mohou plynule pokračovat v synchronizaci času.

Níže uvedený příklad ukazuje konfiguraci, která používá 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í používá Ubuntu UTC jako systémovou časovou zónu. Můžete ji změnit na japonský standardní čas (JST) pomocí následujícího příkazu:

sudo timedatectl set-timezone Asia/Tokyo

Po provedení změny ověřte aktuální nastavení časové zóny pomocí:

timedatectl

5. Řešení problémů

Když se NTP nesynchronizuje

Zkontrolujte firewall

NTP používá UDP port 123 a synchronizace může selhat, pokud firewall tento port blokuje. Otevřete port 123 následujícím příkazem:

sudo ufw allow 123/udp

Kontrola falešných tiků

Použijte příkaz ntpq -p k ověření, zda NTP servery fungují správně. Servery poskytující nepřesný čas jsou označeny symbolem x. Pokud jsou takové servery detekovány, odstraňte je nebo je nahraďte ve své konfiguraci.

Chyba Stratum 16

Pokud NTP server nemůže synchronizovat s upstream serverem, nastane chyba Stratum 16. To naznačuje problém s konektivitou nebo konfigurací. Zkontrolujte nastavení sítě a přenastavte své NTP servery tak, aby se synchronizovaly s spolehlivými upstream zdroji.

Manuální synchronizace času

Pro ruční synchronizaci času pomocí Chrony spusťte následující příkaz:

sudo ntpdate ntp.nict.jp

Můžete také prohlédnout logy Chrony k diagnostice problémů se synchronizací:

sudo journalctl -u chrony

6. Optimalizace NTP v prostředích s vysokým zatížením

Úprava minpoll a maxpoll

V prostředích vyžadujících vysoce přesnou synchronizaci času umožňuje úprava intervalů dotazování NTP častější aktualizace a pomáhá minimalizovat časový drift. Níže uvedený konfigurační příklad zvyšuje frekvenci synchronizace:

server ntp.nict.jp iburst minpoll 4 maxpoll 10

Správa NTP pomocí Juju

V rozsáhlých cloudových prostředích může Juju automatizovat nasazení služeb NTP. Juju monitoruje zátěž hostitelů a automaticky vybírá optimálního hostitele jako NTP server. Nasaděte NTP prostřednictvím Juju následovně:

juju deploy cs:ntp ntp
juju config ntp auto_peers=true

Toto umožňuje automatizovanou správu NTP, efektivní distribuci zátěže a zajištění efektivní synchronizace času.

7. Zlepšení bezpečnosti

Řízení přístupu k NTP serverům

Pro zlepšení bezpečnosti můžete omezit přístup k NTP serveru na specifické IP adresy. Přidejte pravidla řízení přístupu do /etc/chrony/chrony.conf následovně, aby byly povoleny požadavky pouze z schválených sítí:

allow 192.168.1.0/24

Toto zabraňuje neoprávněným požadavkům NTP z externích hostitelů a posiluje bezpečnost interní sítě.

侍エンジニア塾