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.

