Guida per configurare Chrony come server e client NTP su AlmaLinux 9
NTP, o Network Time Protocol, è un protocollo di rete per la sincronizzazione dell'ora e dell'orologio nella rete di computer.
Chrony implementa l'NTP o Network Time Protocol e rappresenta un'alternativa ad altre applicazioni come up. Chrony può essere eseguito su sistemi operativi simili a Unix, rilasciati sotto GNU GPL v2. Chrony viene utilizzato come software server NTP predefinito per alcune distribuzioni Linux ed è disponibile anche per più distribuzioni Linux.
Nella seguente guida ti mostrerò come installare Chrony su un server AlmaLinux 9. Installeremo Chrony come server NTP e client NTP. Inoltre, imparerai anche come utilizzare la riga di comando di chronyc per gestire e monitorare Chrony.
Prerequisiti
Per iniziare, assicurati di avere quanto segue:
- Un server AlmaLinux 9: questa demo utilizza un server con il nome host alma9 e l'indirizzo IP 192.168.10.15.
- La macchina client Linux utilizza anche una macchina AlmaLinux con nome host node1 e indirizzo IP 192.168.10.20.
- Un utente non root con privilegi di amministratore root.
Impostazione del fuso orario del sistema
Per impostare un fuso orario su Linux, puoi utilizzare l'utilità timedatectl. La sezione seguente mostrerà come impostare e verificare il fuso orario del sistema prima di installare il server Chrony NTP.
Innanzitutto, controlla l'elenco dei fusi orari disponibili utilizzando il comando seguente e decidi quale fuso orario desideri utilizzare.
sudo timedatectl list-timezones
Ora esegui il comando seguente per modificare il fuso orario predefinito sul tuo server. Il seguente comando configurerà il fuso orario predefinito su Europa/Amsterdam.
sudo timedatectl set-timezone Europe/Amsterdam
Successivamente, verifica il fuso orario corrente utilizzando il comando seguente.
sudo timedatectl
Nella sezione Fuso orario puoi vedere il tuo fuso orario attuale.
Oppure puoi anche controllare il fuso orario predefinito del sistema controllando il file /etc/localtime. Assicurati che il file sia un collegamento simbolico del fuso orario corretto.
ls -lah /etc/localtime
Installazione di Chrony
Il Chrony è un'implementazione del protocollo NTP che può essere utilizzato come server NTP e client NTP. La sezione seguente ti mostrerà come installare Chrony e gestire il servizio Chrony tramite l'utilità systemctl.
Per iniziare, esegui il comando dnf di seguito per trovare il pacchetto chrony nel repository AlmaLinux. Dovresti vedere che il repository baseos predefinito fornisce chrony ed è pronto per l'installazione.
sudo dnf search chrony
Installa chrony tramite il seguente comando dnf. Quando richiesto, inserire y per confermare e premere ENTER.
sudo dnf install chrony
Una volta installato Chrony, eseguire il comando seguente per avviare e abilitare il servizio chronyd. chronyd è un servizio systemd per Chrony, con questi comandi chronyd sarà in esecuzione e si avvierà automaticamente all'avvio del sistema.
sudo systemctl start chronyd
sudo systemctl enable chronyd
Verifica il servizio chronyd utilizzando il comando seguente per assicurarti che il servizio sia in esecuzione.
sudo systemctl status chronyd
Il seguente output conferma che chronyd è in esecuzione, poiché viene visualizzato il messaggio di output attivo (in esecuzione).
Configurazione di Firewalld
Dopo aver installato Chrony, è necessario aprire la porta NTP sul server NTP. Ora aggiungerai il servizio NTP a firewalld tramite la riga di comando firewall-cmd.
Se utilizzi un server NTP pubblico, esegui il comando firewall-cmd di seguito per consentire a chiunque di accedere all'installazione del tuo server NTP.
sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload
Tuttavia, se utilizzi un server NTP per le tue reti locali, esegui il comando firewall-cmd di seguito per specificare la sottorete di rete tramite la regola firewalld rich.
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.5.0/24' service='ntp' accept"
sudo firewall-cmd --reload
Se tutto è completo, verifica l'elenco delle regole firewalld utilizzando il comando seguente.
sudo firewall-cmd --list-all
Dovresti aggiungere il servizio ntp all'elenco dei servizi firewalld.
Configurazione di Chrony come server NTP
Un server NTP è la destinazione in cui i tuoi client possono sincronizzare l'ora del sistema. Per impostare Chrony come server NTP, è necessario modificare due configurazioni principali:
- Aggiungi il pool NTP come origine: visita https://www.ntppool.org/en/ per ottenere server NTP disponibili che possono essere utilizzati come origine.
- Consenti rete interna: aggiungi le sottoreti della rete interna a cui sarà consentito accedere e utilizzare il server NTP. In questo modo puoi creare un server NTP privato/locale per il tuo ambiente.
Apri la configurazione predefinita di chrony /etc/chrony.conf utilizzando il seguente comando dell'editor nano.
sudo nano /etc/chrony.conf
Visita https://www.ntppool.org/en/ e scegli i server NTP pubblici disponibili che verranno utilizzati come origini. Principalmente, dipende dalla posizione dei server, scegli i server NTP vicini come origine.
Quindi aggiungi al parametro server in questo modo:
# list servers
server 0.nl.pool.ntp.org iburst
server 1.nl.pool.ntp.org iburst
server 2.nl.pool.ntp.org iburst
server 3.nl.pool.ntp.org iburst
Aggiungi il parametro consenti e specifica la sottorete della tua rete. Qualsiasi sottorete di rete all'interno del parametro consenti sarà autorizzata ad accedere all'installazione del server NTP.
# allowed clients
allow 192.168.10.0/24
Inoltre, potrebbe essere necessario modificare anche le seguenti opzioni:
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *
# Specify the file containing keys for NTP authentication.
keyfile /etc/chrony.keys
# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC
Al termine, salva e chiudi l'editor.
Ora esegui il comando systemctl riportato di seguito per riavviare il servizio chronyd e applicare le modifiche.
sudo systemctl restart chronyd
Una volta riavviato chronyd, eseguire il comando chronyc riportato di seguito per verificare le origini del server NTP correnti. chronyc è un'utilità della riga di comando fornita da Chrony per la gestione sia del server NTP che del client.
chronyc sources
Se tutto va bene, dovresti vedere l'elenco delle fonti del server NTP più vicino.
Inoltre, puoi anche ottenere versioni dettagliate del report aggiungendo l'opzione -v, che significa output dettagliato.
chronyc sources -v
Configurazione di Chrony come client NTP
In alto, hai imparato come creare un server NTP con Chrony. Imparerai come configurare Chrony come client NTP. Il pacchetto Chrony è installato sulla macchina client con nome host node1 e indirizzo IP 192.168.10.20 nell'esempio seguente.
Per configurare Chrony come client NTP, è necessario aggiungere il proprio server NTP al parametro server all'interno del file di configurazione di Chrony /etc/chrony.conf.
Innanzitutto, esegui il comando seguente per assicurarti che il servizio chronyd sia in esecuzione sul tuo computer client.
sudo systemctl status chronyd
Se in esecuzione, dovrebbe essere visualizzato il seguente output:
Ora apri il file di configurazione di chrony /etc/chrony.conf utilizzando l'editor nano.
sudo nano /etc/chrony.conf
Aggiungi il tuo server NTP al parametro server. Puoi utilizzare l'indirizzo IP o il fqdn del tuo server NTP.
Un parametro aggiuntivo iburst consente al servizio Chronyd di effettuare il primo aggiornamento dell'orologio poco dopo l'avvio, e il parametro prefer darà la priorità alla sorgente del server NTP tra gli altri server senza preferire opzione.
server 192.168.10.15 iburst prefer
Ora esegui il comando systemctl seguente per riavviare il servizio chronyd e applicare le modifiche. Quindi, verifica il chronyd per assicurarti che il servizio sia in esecuzione.
sudo systemctl restart chronyd
sudo systemctl status chronyd
Infine, inserisci il comando seguente per verificare le origini del server NTP sul tuo computer client.
chronyc sources
chronyc sources -v
In caso di successo, dovresti vedere che il tuo server NTP è utilizzato come origine del server NTP sul computer client.
Utilizzo di base di Chronyc Command
Chronyc è un'interfaccia a riga di comando per la gestione di Chrony, sia come server NTP che come client NTP. Nell'ultima sezione imparerai alcuni comandi chronyc di base per gestire la tua installazione NTP.
Il parametro di monitoraggio ti mostrerà le prestazioni dell'orologio di sistema.
chronyc tracking
Nella sezione ID di riferimento, dovresti vedere l'origine del server NTP attualmente sincronizzato.
Con il parametro ntpdata è possibile misurare e verificare la sorgente NTP.
chronyc ntpdata
Nell'Indirizzo remoto puoi vedere l'indirizzo IP della sorgente del server NTP. Nella sezione Porta remota, dovresti ottenere la porta del server NTP predefinita attualmente utilizzata. Infine, nella sezione Indirizzo locale, dovresti vedere l'indirizzo IP del computer client come ID di riferimento corrispondente.
Successivamente, utilizza il parametro attività per mostrare il numero di server NTP sul peer.
chronyc activity
Puoi vedere l'output online se il server NTP è raggiungibile e unico e lo stato offline se il peer del server è offline.
Infine, puoi anche consentire/negare la sottorete di rete su Chrony tramite la riga di comando di chronyc.
Utilizzare il parametro allow per consentire alle sottoreti di accedere e utilizzare il server Chrony NTP.
chronyc allow IP/subnet
Per negare alle sottoreti l'accesso al tuo server Chrony NTP, utilizza il parametro deny in questo modo:
chronyc deny IP/subnet
Conclusione
Buon lavoro! Ora hai installato con successo Chrony sul server AlmaLinux 9. Hai anche imparato come configurare un server NTP con Chrony e come configurare un client NTP utilizzando Chrony. Inoltre, hai anche configurato il fuso orario del sistema tramite timedatectl e hai imparato alcune righe di comando di base di Chronyc per gestire l'installazione di Chrony.