27.10 Sincronizzazione del Clock con NTP

Grazie al contributo di Tom Hukins.

27.10.1 Uno sguardo d'insieme

Al passare del tempo, il clock di un computer tende a perdere la sincronizzazione. Il Network Time Protocol (NTP) fornisce un modo per assicurarti che il tuo clock sia accurato.

Molti servizi Internet si basano sul fatto che il clock del computer sia accurato, o comunque traggono notevole beneficio da questo fatto. Per esempio, un web server può ricevere richieste di inviare un file se questo è stato modificato da una certa data. In un ambiente locale di rete, è essenziale che i computer che condividono i file dallo stesso file server abbiano clock sincronizzati cosicchè i timestamp dei file siano consistenti. Anche servizi come cron(8) si basano su un clock di sistema accurato per eseguire comandi al momento specificato.

FreeBSD è dotato del server ntpd(8) NTP che può essere usato per interrogare altri server NTP per impostare il clock sulla tua macchina o fornire servizi di time ad altri.

27.10.2 Scegliere Server NTP Appropriati

Per sincronizzare il tuo clock, avrai bisogno di scegliere uno o più server NTP da usare. Il tuo amministratore di rete o ISP potrebbe aver impostato un server NTP, a questo scopo -- controlla la loro documentazione per vedere se questo è il caso. C'è una lista online di server NTP pubblicamente accessibili che tu puoi usare per trovare un server NTP vicino a te. Accertati di essere al corrente della politica di ogni server che scegli, e chiedi il permesso se necessario.

Scegliere molti server NTP non connessi fra loro è una buona idea in caso uno dei server che stai usando diventa irraggiungibile o il suo clock è inaffidabile. ntpd(8) usa le risposte che riceve da altri server in modo intelligente; favorirà server inaffidabili meno di quelli affidabili.

27.10.3 Configurare la tua Macchina

27.10.3.1 Configurazione Base

Se desideri solo sincronizzare il tuo clock al momento del boot della macchina, puoi usare ntpdate(8). Questo può essere appropriato per alcune macchine desktop che sono rebootate di frequente e richiedono sincronizzazione non frequente, ma le altre macchine dovrebbero eseguire ntpd(8).

Usare ntpdate(8) al momento del boot è una buona idea per le macchine che eseguono ntpdate(8). Il programma ntpd(8) cambia il clock gradualmente, mentre ntpdate(8) imposta il clock, indipentemente da quanto grande sia la differenza fra l'impostazione di clock corrente di una macchina e l'ora corretta.

Per abilitare ntpdate(8) al momento del boot, aggiungi ntpdate_enable="YES" a /etc/rc.conf. Avrai anche bisogno di specificare tutti i server con i quali ti desideri sincronizzare ed ogni flags passato a ntpdate(8) in ntpdate_flags.

27.10.3.2 Configurazione Generale

NTP è configurato dal file /etc/ntp.conf nel formato descritto da ntp.conf(5). Questo è un semplice esempio:

server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net

driftfile /var/db/ntp.drift

L'opzione server specifica quali server siano da usare, con un server elencato su ogni linea. Se un server è specificato con l'argomento prefer, come con ntplocal.example.com, quel server saraà preferito rispetto ad altri. Una risposta da un server preferito sarà scartata se differisce in modo significativo dalle risposte di altri server, altrimenti sarà usata senza nessuna considerazione delle altre risposte. L'argomento prefer è normalmente usato per server NTP che sono noti per essere molto accurati, come quelli con hardware a monitoraggio speciale del tempo.

L'opzione driftfile specifica quale file sia usato per conservare la frequenza di scostamento dal clock di sistema. Il programma ntpd(8) usa questo dato per compensare automaticamente le imprecisioni naturali del clock, permettendo di mantenere una impostazione ragionevolmente corretta anche se gli è impedito di accedere a tutte le sorgenti di sincronizzazione tempo esterne per un certo periodo di tempo.

L'opzione driftfile specifica quale file sia usato per conservare informazioni sulle risposte precedenti dai server NTP che usi. Questo file contiene informazioni interne per NTP. Non dovrebbe essere modificato da altri processi.

27.10.3.3 Controllare l'Accesso ad i tuoi Server

Di default, il tuo server NTP sarà accessibile a tutti gli host su Internet. L'opzione restrict in /etc/ntp.conf ti permette di controllare quali macchine possano accedere al tuo server.

Se vuoi negare a tutte le macchine accesso al tuo server NTP, aggiungi la seguente linea a /etc/ntp.conf:

restrict default ignore

Nota: Inoltre questo settaggio vieta l'accesso al tuo server dai server elencati nella tua configurazione locale. Se hai bisogno di sincronizzare il tuo server NTP con un server NTP esterno devi permettere il server che vuoi usare. Guada la pagina man ntp.conf(5) per ulteriori dettagli.

Se vuoi permettere solo alle macchine della tua rete di sincronizzare il loro clock con il tuo server, ma assicurarti che non gli sia permesso configurare il server o che non sianousate come punto di riferimento per sincronizzarsi, aggiungi

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

invece, dove192.168.1.0 è un indirizzo IP sulla tua rete e 255.255.255.0 è la netmask della tua rete.

/etc/ntp.conf può contenere molte opzioni restrict. Per maggiori dettagli, consulta la sezione Access Control Support di ntp.conf(5).

27.10.4 Eseguire il Server NTP

Per assicurarsi che il server NTP sia avviato al momento del boot, aggiungi la linea ntpd_enable="YES" a /etc/rc.conf. Se desideri passare flag addizionali a ntpd(8), edita il parametro ntpd_flags in /etc/rc.conf.

Per avviare il server senza riavviare la tua macchina, esegui ntpd accertandoti di specificare ogni parametro addizionale in ntpd_flags presente in /etc/rc.conf. Per esempio:

# ntpd -p /var/run/ntpd.pid

27.10.5 Usare ntpd con una Connessione Temporanea ad Internet

Il programma ntpd(8) non necessita di una connessione permanente ad Internet per funzionnare correttamente. Comunque, se hai una connessione temporanea che è configurata per effettuare una chiamata su richiesta, è una buona idea evitare che il traffico NTP causi la chiamata o mantenga la connessione attiva. Se stai usando PPP utente, puoi usare le direttive filter in /etc/ppp/ppp.conf. Per esempio:

 set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0

Pre maggiori dettagli consulta la sezione PACKET FILTERING in ppp(8) e gli esempi in /usr/share/examples/ppp/.

Nota: Alcuni provider di accesso ad Internet bloccano le porte dal numero basso, impedendo ad NTP di funzionare dato che le repliche non raggiungono mai la tua macchina.

27.10.6 Informazioni Ulteriori

La documentazione per il server NTP può essere trovata in formato HTML in /usr/share/doc/ntp/.

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.