Configurare un NTP Time Server su Debian: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
(8 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili|Squeeze|Wheezy|Jessie}}
__TOC__
__TOC__
== Introduzione ==
== Introduzione ==
Riga 7: Riga 7:
Nei sistemi Linux based a gestire la sincronizzazione oraria è il demone ''ntpd''. Esso dovrà essere adeguatamente "istruito" riguardo ai server NTP di riferimento (siano essi all'interno di una rete locale o in Internet).
Nei sistemi Linux based a gestire la sincronizzazione oraria è il demone ''ntpd''. Esso dovrà essere adeguatamente "istruito" riguardo ai server NTP di riferimento (siano essi all'interno di una rete locale o in Internet).


In questa guida si tratterà una semplice configurazione di un server NTP basato su GNU/Linux Debian e la sua sincronizzazione con i client della lan.
In questa guida si tratterà una semplice configurazione di un server NTP basato su GNU/Linux Debian e la sua sincronizzazione con i client della LAN.


Se si vuole invece solo sincronizzare l'orologio del proprio pc con un server esterno, consultare la guida: [[Impostare e modificare data e ora]].
Se si vuole invece solo sincronizzare l'orologio del proprio PC con un server esterno, consultare la guida: [[Impostare e modificare data e ora]].




== Impostazioni Server ==
== Impostazioni Server ==
Il server della nostra lan avrà indirizzo ip '''192.168.1.4'''.
Il server della nostra LAN avrà indirizzo IP '''192.168.1.4'''.


L'installazione del ''nécessaire'' è a dir poco banale:
L'installazione del ''nécessaire'' è a dir poco banale, con [[privilegi di amministrazione]] basta:
<pre>
<pre>
srv:~# apt-get install ntp ntpdate
# apt-get install ntp ntpdate
</pre>
</pre>


Riga 57: Riga 57:
</pre>
</pre>


I due blocchi da attenzionare maggiormente sono quelli relativi ai server esterni di sincronizzazione e al cluster di timeserver.<br />
I due blocchi a cui perstare maggiormente attenzione sono quelli relativi ai server esterni di sincronizzazione e al cluster di timeserver.<br />
Come si può notare sono stati scelti dei server italiani per la sincronizzazione e il pool relativo a debian. Quest'ultimo è stato inserito in automatico al momento dell'installazione ma è consigliabile cambiarlo poichè la sincronizzazione non è sempre accurata visto che esso non prova neanche ad utilizzare server geograficamente a noi vicini.<br />
Come si può notare sono stati scelti dei server italiani per la sincronizzazione e il pool relativo a Debian. Quest'ultimo è stato inserito in automatico al momento dell'installazione ma è consigliabile cambiarlo poiché la sincronizzazione non è sempre accurata visto che esso non prova neanche ad utilizzare server geograficamente a noi vicini.<br />
Se si ricerca più precisione è meglio utilizzare un pool presente nel proprio continente (ad esempio ''europe.pool.ntp.org'') oppure, meglio ancora, nella propria nazione (ad esempio ''it.pool.ntp.org'').<br />
Se si ricerca più precisione è meglio utilizzare un pool presente nel proprio continente (ad esempio ''europe.pool.ntp.org'') oppure, meglio ancora, nella propria nazione (ad esempio ''it.pool.ntp.org'').<br />
L'elenco completo dei pool disponibili può essere consultato sul sito http://www.pool.ntp.org/.
L'elenco completo dei pool disponibili può essere consultato sul sito http://www.pool.ntp.org/.
Riga 76: Riga 76:
Noi però, dopo aver apportato modifiche al file di configurazione, dovremo fermarlo, sincronizzare l'orario del server con un server NTP esterno e alla fine riavviarlo nuovamente:
Noi però, dopo aver apportato modifiche al file di configurazione, dovremo fermarlo, sincronizzare l'orario del server con un server NTP esterno e alla fine riavviarlo nuovamente:
<pre>
<pre>
srv:~# /etc/init.d/ntp stop
# service ntp stop
Stopping NTP server: ntpd.
Stopping NTP server: ntpd.


srv:~# ntpdate time.ien.it
# ntpdate time.ien.it
9 Nov 19:15:46 ntpdate[3204]: adjust time server 193.204.114.105 offset 0.004975 sec
9 Nov 19:15:46 ntpdate[3204]: adjust time server 193.204.114.105 offset 0.004975 sec


srv:~# /etc/init.d/ntp start
# service ntp start
Starting NTP server: ntpd.
Starting NTP server: ntpd.
</pre>
</pre>
Riga 88: Riga 88:
Per accertarci che tutto stia andando come dovrebbe, eseguiremo una query sui peer di sincronizzazione:
Per accertarci che tutto stia andando come dovrebbe, eseguiremo una query sui peer di sincronizzazione:
<pre>
<pre>
srv:~# ntpq -pn
# ntpq -pn
     remote          refid      st t when poll reach  delay  offset  jitter
     remote          refid      st t when poll reach  delay  offset  jitter
==============================================================================
==============================================================================
Riga 100: Riga 100:
</pre>
</pre>


Gli ip dei server NTP contattati e i dati relativi a ritardo/offset/jitter, etc. ci dicono che la query ha avuto successo. I valori delle colonne ''delay'', ''offset'' e ''jitter'' sono espresse in [ms].
Gli IP dei server NTP contattati e i dati relativi a ritardo/offset/jitter, etc. ci dicono che la query ha avuto successo. I valori delle colonne ''delay'', ''offset'' e ''jitter'' sono espresse in [ms]; ''offset'' indica lo scostamento tra il tempo locale e quello del server NTP della LAN.


== Impostazioni Client ==
== Impostazioni Client ==
Riga 139: Riga 139:
</pre>
</pre>


In pratica stiamo configurando il client affinchè si sincronizzi col server NTP della nostra rete e non con uno esterno.
In pratica stiamo configurando il client affinché si sincronizzi col server NTP della nostra rete e non con uno esterno.


=== Avvio del Servizio ===
=== Avvio del Servizio ===
Come fatto per il server, per avviare correttamente il servizio, ci basteranno pochi semplici passi. L'unica differenza sarà l'iniziale sincronizzazione dell'orologio con quello del server NTP della lan piuttosto che con quello di un server esterno:
Come fatto per il server, per avviare correttamente il servizio, ci basteranno pochi semplici passi. L'unica differenza sarà l'iniziale sincronizzazione dell'orologio con quello del server NTP della LAN piuttosto che con quello di un server esterno:
<pre>
<pre>
client:~# /etc/init.d/ntp stop
# service ntp stop
Stopping NTP server: ntpd.
Stopping NTP server: ntpd.


client:~# ntpdate 192.168.1.4
# ntpdate 192.168.1.4
9 Nov 19:17:24 ntpdate[3497]: adjust time server 192.168.1.4 offset 0.027409 sec
9 Nov 19:17:24 ntpdate[3497]: adjust time server 192.168.1.4 offset 0.027409 sec


client:~# /etc/init.d/ntp start
# service ntp start
Starting NTP server: ntpd.
Starting NTP server: ntpd.
</pre>
</pre>
Riga 156: Riga 156:
La solita query sui peer di sincronizzazione ci confermerà che tutto è andato per il verso giusto:
La solita query sui peer di sincronizzazione ci confermerà che tutto è andato per il verso giusto:
<pre>
<pre>
client:~# ntpq -pn
# ntpq -pn
     remote          refid      st t when poll reach  delay  offset  jitter
     remote          refid      st t when poll reach  delay  offset  jitter
==============================================================================
==============================================================================
Riga 165: Riga 165:
+77.242.176.254  193.204.114.233  2 u    4  64    1  66.015  -1.140  1.181
+77.242.176.254  193.204.114.233  2 u    4  64    1  66.015  -1.140  1.181
</pre>
</pre>
Come si può notare il primo dei peer contattati è adesso il server NTP '''192.168.1.4'''.
Come si può notare il primo dei peer contattati è adesso il server NTP '''192.168.1.4'''. I valori delle colonne ''delay'', ''offset'' e ''jitter'' sono espresse in [ms]; ''offset'' indica lo scostamento tra il tempo locale e quello del server NTP della LAN.
 


== Nota ==
== Nota ==
Riga 175: Riga 174:
9 Nov 19:29:03 ntpdate[3250]: the NTP socket is in use, exiting
9 Nov 19:29:03 ntpdate[3250]: the NTP socket is in use, exiting


# /etc/init.d/ntp stop
# service ntp stop
Stopping NTP server: ntpd.
Stopping NTP server: ntpd.


Riga 181: Riga 180:
9 Nov 19:29:16 ntpdate[3263]: adjust time server 193.204.114.105 offset -0.007507 sec
9 Nov 19:29:16 ntpdate[3263]: adjust time server 193.204.114.105 offset -0.007507 sec


# /etc/init.d/ntp start
# service ntp start
Starting NTP server: ntpd.
Starting NTP server: ntpd.
</pre>
</pre>
Riga 187: Riga 186:


== Reti protette da Firewall ==
== Reti protette da Firewall ==
Come evidenziato all'inizio, affinchè l'orologio riesca a sincronizzarsi con dei server esterni è necessario che la porta ''123/UDP'' sia aperta.<br />
Come evidenziato all'inizio, affinché l'orologio riesca a sincronizzarsi con dei server esterni è necessario che la porta ''123/UDP'' sia aperta.<br />
Ci si può però trovare all'interno di una rete protetta da un firewall che blocchi quella porta.<br />
Ci si può però trovare all'interno di una rete protetta da un firewall che blocchi quella porta.
<br />
 
Avendo la possibilità di modificare la configurazione del firewall è possibile aprire la porta ''123/UDP'' aggiungendo allo script di avvio di [[Impostare un firewall con uno script iptables | iptables]] due regole simili a queste:
Avendo la possibilità di modificare la configurazione del firewall è possibile aprire la porta ''123/UDP'' aggiungendo allo script di avvio di [[Impostare un firewall con uno script iptables | iptables]] due regole simili a queste:
<pre>
<pre>
Riga 197: Riga 196:
</pre>
</pre>


Se invece non è possibile intervenire sul firewall, è comunque possibile configurare un server NTP che si sincronizzi con timeserver esterni ricorrendo a [http://packages.debian.org/squeeze-backports/openntpd OpenNTPD] invece che a ntp. <br />
Se invece non è possibile intervenire sul firewall, è comunque possibile configurare un server NTP che si sincronizzi con timeserver esterni ricorrendo a [http://packages.debian.org/jessie/openntpd OpenNTPD] invece che a ntp. <br />
Esso infatti utilizza porte non privilegiate ed è quindi ''"possibile"'' (non ''"certo"''... dipende sempre dalle politiche restrittive del firewall) che riesca a sincronizzarsi senza problemi.<br />
Esso infatti utilizza porte non privilegiate ed è quindi ''"possibile"'' (non ''"certo"''... dipende sempre dalle politiche restrittive del firewall) che riesca a sincronizzarsi senza problemi.
<br />
OpenNTPD è un pacchetto che (al momento di scrivere questa guida) non è presente in ''Squeeze'' (attuale ''stable'') ma solo in ''Lenny'' (''old-stable''), ''Wheezy'' (''testing'') e ''Sid'' (''unstable''), ragion per la quale, nel caso lo si volesse installare, lo si dovrà "prelevare" da rami diversi da quello stable.<br />
<br />
Per maggiori delucidazioni in merito, consultare le guide:


* [[Il repository Backports]]
Have a really good... time! ;)
* [[APT uso avanzato: mixare releases diverse]]
* [[Introduzione al pinning]]
* [[Repository & pinning]]


 
{{Autori
 
|Autore=[[Utente:Pmate|pmate]] 15:03, 10 nov 2011 (CEST)
Have a really good... time! ;)
|Estesa_da=
<br />
|Verificata_da=
<br />
: [[Utente:HAL 9000|HAL 9000]] 12:33, 22 mag 2015 (CEST)
<br />
|Numero_revisori=1
{{Suggerimento|Per favore se modifichi questa guida aggiungi nel box "NOTE" sottostante "Estesa da: mio_nome_utente", se invece l'hai semplicemente consultata, ma ne hai verificato personalmente la correttezza, aggiungi sempre nello stesso box "Verificata da: mio_nome_utente". In questo modo aiuti la comunità a tenere traccia della [http://guide.debianizzati.org/index.php/Aiuto:Contents#Evoluzione_delle_guide maturità] della guida.}}
{{Box|NOTE|Autore: [[Utente:Pmate|pmate]] 15:03, 10 nov 2011 (CEST)
}}
}}


[[Categoria:Altri servizi di rete]]
[[Categoria:Altri servizi di rete]]

Versione delle 11:08, 22 mag 2015

Edit-clear-history.png Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.

Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione.


Debian-swirl.png Versioni Compatibili

Debian 6 "squeeze"
Debian 7 "wheezy"
Debian 8 "jessie"

Introduzione

NTP (Network Time Protocol) è un protocollo di rete utile a sincronizzare gli orologi dei computer appartenenti ad una rete di qualsiasi dimensione.
È un protocollo di tipo client-server che sfrutta la porta 123/UDP.

Nei sistemi Linux based a gestire la sincronizzazione oraria è il demone ntpd. Esso dovrà essere adeguatamente "istruito" riguardo ai server NTP di riferimento (siano essi all'interno di una rete locale o in Internet).

In questa guida si tratterà una semplice configurazione di un server NTP basato su GNU/Linux Debian e la sua sincronizzazione con i client della LAN.

Se si vuole invece solo sincronizzare l'orologio del proprio PC con un server esterno, consultare la guida: Impostare e modificare data e ora.


Impostazioni Server

Il server della nostra LAN avrà indirizzo IP 192.168.1.4.

L'installazione del nécessaire è a dir poco banale, con privilegi di amministrazione basta:

# apt-get install ntp ntpdate

Configurazione di ntp

Il file di configurazione di ntp è /etc/ntp.conf.
Per la nostra configurazione di test può essere sufficiente dedicarci esclusivamente alle impostazioni di base:

# /etc/ntp.conf, file di configurazione for ntpd

# File nel quale scrivere la frequenza di scostamento dal clock di sistema.
driftfile /var/lib/ntp/ntp.drift

# Statistiche
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# NTP server con i quali sincronizzarsi
server time.ien.it
server ntp1.ien.it
server ntp2.ien.it

# pool.ntp.org è un cluster di timeserver che forniscono un servizio NTP affidabile e facile da usare.
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst

# È permesso "dialogare" con chiunque (via ipv4 e via ipv6) ma non sono autorizzate configurazioni
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Utenti locali
restrict 127.0.0.1
restrict ::1

I due blocchi a cui perstare maggiormente attenzione sono quelli relativi ai server esterni di sincronizzazione e al cluster di timeserver.
Come si può notare sono stati scelti dei server italiani per la sincronizzazione e il pool relativo a Debian. Quest'ultimo è stato inserito in automatico al momento dell'installazione ma è consigliabile cambiarlo poiché la sincronizzazione non è sempre accurata visto che esso non prova neanche ad utilizzare server geograficamente a noi vicini.
Se si ricerca più precisione è meglio utilizzare un pool presente nel proprio continente (ad esempio europe.pool.ntp.org) oppure, meglio ancora, nella propria nazione (ad esempio it.pool.ntp.org).
L'elenco completo dei pool disponibili può essere consultato sul sito http://www.pool.ntp.org/.

Nel caso si sia scelto un pool italiano, il blocco relativo al cluster di timeserver diventerebbe:

server 0.it.pool.ntp.org iburst
server 1.it.pool.ntp.org iburst
server 2.it.pool.ntp.org iburst
server 3.it.pool.ntp.org iburst

L'opzione iburst serve a velocizzare la sincronizzazione iniziale quando usata congiuntamente al comando server.

Avvio del servizio

Una volta completata l'installazione del pacchetto ntp, Debian avvierà in automatico il servizio.
Noi però, dopo aver apportato modifiche al file di configurazione, dovremo fermarlo, sincronizzare l'orario del server con un server NTP esterno e alla fine riavviarlo nuovamente:

# service ntp stop
Stopping NTP server: ntpd.

# ntpdate time.ien.it
9 Nov 19:15:46 ntpdate[3204]: adjust time server 193.204.114.105 offset 0.004975 sec

# service ntp start
Starting NTP server: ntpd.

Per accertarci che tutto stia andando come dovrebbe, eseguiremo una query sui peer di sincronizzazione:

# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 193.204.114.105 .CTD.            1 u   29   64    1   63.418    7.813   0.000
 193.204.114.232 .CTD.            1 u   28   64    1   65.222    7.919   0.000
 193.204.114.233 .CTD.            1 u   27   64    1   64.614    7.786   0.000
+88.149.158.46   193.79.237.14    2 u   16   64    1   67.044   10.351   1.389
+194.116.87.4    212.121.88.250   3 u   15   64    1   67.457   10.341   0.428
-93.62.188.182   193.204.114.233  2 u   14   64    1   73.155    9.194   0.432
*212.45.144.88   193.204.114.233  2 u   13   64    1   62.466   10.558   1.290

Gli IP dei server NTP contattati e i dati relativi a ritardo/offset/jitter, etc. ci dicono che la query ha avuto successo. I valori delle colonne delay, offset e jitter sono espresse in [ms]; offset indica lo scostamento tra il tempo locale e quello del server NTP della LAN.

Impostazioni Client

Anche nel client si dovranno installare i pacchetti ntp e ntpdate.

Configurazione di ntp

Il file /etc/ntp.conf sarà quasi identico a quello visto in precedenza ad eccezione (ovviamente) del blocco relativo al server NTP col quale sincronizzarsi:

# /etc/ntp.conf, file di configurazione for ntpd

# File nel quale scrivere la frequenza di scostamento dal clock di sistema.
driftfile /var/lib/ntp/ntp.drift

# Statistiche
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Questo è l'unico blocco modificato rispetto all'/etc/ntp.conf del server
# NTP server con i quali sincronizzarsi
server 192.168.1.4

# pool.ntp.org è un cluster di timeserver che forniscono un servizio NTP affidabile e facile da usare.
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst

# È permesso "dialogare" con chiunque (via ipv4 e via ipv6) ma non sono autorizzate configurazioni
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Utenti locali
restrict 127.0.0.1
restrict ::1

In pratica stiamo configurando il client affinché si sincronizzi col server NTP della nostra rete e non con uno esterno.

Avvio del Servizio

Come fatto per il server, per avviare correttamente il servizio, ci basteranno pochi semplici passi. L'unica differenza sarà l'iniziale sincronizzazione dell'orologio con quello del server NTP della LAN piuttosto che con quello di un server esterno:

# service ntp stop
Stopping NTP server: ntpd.

# ntpdate 192.168.1.4
9 Nov 19:17:24 ntpdate[3497]: adjust time server 192.168.1.4 offset 0.027409 sec

# service ntp start
Starting NTP server: ntpd.

La solita query sui peer di sincronizzazione ci confermerà che tutto è andato per il verso giusto:

# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 192.168.1.4     85.18.189.242    4 u   18   64    1   23.560    7.767   0.000
*217.194.13.90   193.204.114.233  2 u    7   64    1   53.064   -2.657   2.834
-93.62.188.182   193.204.114.232  2 u    6   64    1   75.131    0.969   1.270
+2.229.10.127    193.204.114.233  2 u    5   64    1   71.776   -4.022   3.909
+77.242.176.254  193.204.114.233  2 u    4   64    1   66.015   -1.140   1.181

Come si può notare il primo dei peer contattati è adesso il server NTP 192.168.1.4. I valori delle colonne delay, offset e jitter sono espresse in [ms]; offset indica lo scostamento tra il tempo locale e quello del server NTP della LAN.

Nota

Si tenga presente che quando il servizio ntp è attivo... ntpdate non funziona:

# ntpdate time.ien.it
9 Nov 19:29:03 ntpdate[3250]: the NTP socket is in use, exiting

# service ntp stop
Stopping NTP server: ntpd.

# ntpdate time.ien.it
9 Nov 19:29:16 ntpdate[3263]: adjust time server 193.204.114.105 offset -0.007507 sec

# service ntp start
Starting NTP server: ntpd.


Reti protette da Firewall

Come evidenziato all'inizio, affinché l'orologio riesca a sincronizzarsi con dei server esterni è necessario che la porta 123/UDP sia aperta.
Ci si può però trovare all'interno di una rete protetta da un firewall che blocchi quella porta.

Avendo la possibilità di modificare la configurazione del firewall è possibile aprire la porta 123/UDP aggiungendo allo script di avvio di iptables due regole simili a queste:

# apre la porta 123/udp 
/sbin/iptables -A INPUT -p udp --dport 123 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --sport 123 -j ACCEPT

Se invece non è possibile intervenire sul firewall, è comunque possibile configurare un server NTP che si sincronizzi con timeserver esterni ricorrendo a OpenNTPD invece che a ntp.
Esso infatti utilizza porte non privilegiate ed è quindi "possibile" (non "certo"... dipende sempre dalle politiche restrittive del firewall) che riesca a sincronizzarsi senza problemi.

Have a really good... time! ;)




Guida scritta da: pmate 15:03, 10 nov 2011 (CEST) Swirl-auth40.png Debianized 40%
Estesa da:
Verificata da:
HAL 9000 12:33, 22 mag 2015 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized