Come configurare NTP su Ubuntu: sincronizzazione temporale accurata con Chrony

1. Importanza di NTP su Ubuntu

Che cos’è NTP?

NTP (Network Time Protocol) è un protocollo progettato per sincronizzare l’orario dei sistemi informatici con precisione su una rete. Mantenere l’orario di sistema accurato è essenziale per la coerenza dei log, l’elaborazione delle transazioni e l’affidabilità della comunicazione di rete. Se l’orologio di sistema deriva, possono verificarsi errori di rete o incoerenze nei dati, rendendo la sincronizzazione precisa dell’orario cruciale, soprattutto negli ambienti server.

Su Ubuntu, chrony è consigliato perché fornisce una sincronizzazione dell’orario accurata anche in ambienti di rete instabili. Chrony offre inoltre bassa latenza e sincronizzazione rapida, rendendolo adatto sia per ambienti server che client.

2. Come configurare NTP

Installazione e configurazione di Chrony

Chrony è il client NTP predefinito su Ubuntu 18.04 e versioni successive. Utilizza i seguenti passaggi per installare Chrony e configurare la sincronizzazione dell’orario utilizzando i server NTP.

Passaggi di installazione

sudo apt update
sudo apt install chrony

Successivamente, avvia il servizio Chrony e abilitalo per l’avvio automatico.

sudo systemctl start chrony
sudo systemctl enable chrony

Il file di configurazione si trova in /etc/chrony/chrony.conf. Se desideri utilizzare server NTP situati in Giappone, configurarlo come segue:

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

L’opzione iburst accelera la sincronizzazione iniziale quando ci si connette a un server NTP.

3. Ottimizzazione e selezione dei server NTP

Utilizzo del progetto NTP Pool

Il progetto NTP Pool fornisce server NTP ottimizzati per regione provenienti da tutto il mondo. Configurando più server NTP, l’affidabilità aumenta, garantendo che se un server diventa non disponibile, gli altri possano continuare senza interruzioni la sincronizzazione dell’orario.

L’esempio seguente mostra una configurazione che utilizza server situati in Giappone:

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. Impostazione del fuso orario

Utilizzo del comando timedatectl

Per impostazione predefinita, Ubuntu utilizza UTC come fuso orario di sistema. Puoi cambiarlo in Japan Standard Time (JST) utilizzando il seguente comando:

sudo timedatectl set-timezone Asia/Tokyo

Dopo aver effettuato la modifica, verifica le impostazioni del fuso orario corrente con:

timedatectl

5. Risoluzione dei problemi

Quando NTP non si sincronizza

Controlla il firewall

NTP utilizza la porta UDP 123, e la sincronizzazione può fallire se il firewall blocca questa porta. Apri la porta 123 utilizzando il seguente comando:

sudo ufw allow 123/udp

Verifica i falsi orologi

Utilizza il comando ntpq -p per verificare se i server NTP funzionano correttamente. I server che forniscono orari imprecisi sono contrassegnati con un simbolo x. Se rilevati, rimuovi o sostituisci quei server nella tua configurazione.

Errore Stratum 16

Se il server NTP non riesce a sincronizzarsi con un server upstream, si verifica un errore Stratum 16. Ciò indica un problema di connettività o di configurazione. Verifica le impostazioni di rete e riconfigura i tuoi server NTP per garantire la sincronizzazione con fonti upstream affidabili.

Sincronizzazione manuale dell’orario

Per sincronizzare manualmente l’orario utilizzando Chrony, esegui il seguente comando:

sudo ntpdate ntp.nict.jp

Puoi anche esaminare i log di Chrony per diagnosticare problemi di sincronizzazione:

sudo journalctl -u chrony

6. Ottimizzazione di NTP in ambienti ad alto carico

Regolazione di minpoll e maxpoll

In ambienti che richiedono una sincronizzazione dell’orario ad alta precisione, regolare gli intervalli di polling NTP consente aggiornamenti più frequenti e aiuta a ridurre al minimo il drift temporale. L’esempio di configurazione seguente aumenta la frequenza di sincronizzazione:

server ntp.nict.jp iburst minpoll 4 maxpoll 10

Gestione di NTP con Juju

In ambienti cloud su larga scala, Juju può automatizzare le distribuzioni del servizio NTP. Juju monitora i carichi degli host e seleziona automaticamente l’host ottimale come server NTP. Distribuisci NTP tramite Juju come segue:

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

Questo consente la gestione automatizzata di NTP, distribuendo il carico in modo efficace e garantendo una sincronizzazione temporale efficiente.

7. Migliorare la Sicurezza

Controllo degli Accessi per i Server NTP

Per migliorare la sicurezza, è possibile limitare l’accesso al server NTP a indirizzi IP specifici. Aggiungi regole di controllo degli accessi a /etc/chrony/chrony.conf come mostrato di seguito per consentire richieste solo dalle reti approvate:

allow 192.168.1.0/24

Ciò impedisce richieste NTP non autorizzate da host esterni e rafforza la sicurezza della rete interna.

侍エンジニア塾