Průvodce konfigurací a optimalizací NTP v Ubuntu | Zajištění přesné synchronizace času a zvýšené bezpečnosti

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ě.