128 lines
4.2 KiB
Markdown
128 lines
4.2 KiB
Markdown
---
|
|
categories: system
|
|
title: Howto NTP
|
|
...
|
|
|
|
Le protocole [NTP (Network Time Protocol)](https://fr.wikipedia.org/wiki/Network_Time_Protocol) permet de maintenir à l'heure un système d'exploitation.
|
|
Il s'agit d'éviter les déviations d'heure, et **pas** de gérer les changements de fuseaux horaires ou les décalages d'heure été/hiver.
|
|
On utilise en général le protocole NTP version 4 (NTPv4) publié en juin 2010. Sur des petits équipements, on utilise parfois une version simplifiée de NTP appelée [SNTP (Simple Network Time Protocol)](https://tools.ietf.org/html/rfc4330).
|
|
|
|
Sur un serveur, nous recommandons d'être synchronisé avec les serveurs de temps de référence [pool.ntp.org](http://www.pool.ntp.org/).
|
|
|
|
## Installation
|
|
|
|
Il existe des clients NTP en ligne de commande comme _ntpdate_ mais sur un
|
|
serveur nous conseillons d'utiliser un démon NTP qui maintiendra le système
|
|
synchronisé en permanence avec un temps de référence :
|
|
|
|
~~~
|
|
# apt install ntp
|
|
|
|
# ntpd --help | head -1
|
|
ntpd - NTP daemon program - Ver. 4.2.6p5
|
|
~~~
|
|
|
|
## Configuration en tant que client NTP
|
|
|
|
L'objectif est de maintenir le serveur synchronisé en permanence avec des serveurs NTP de référence.
|
|
|
|
La configuration se fait via le fichier `/etc/ntp.conf` :
|
|
|
|
~~~
|
|
# Le ou les serveurs sur lesquels on veut se synchroniser
|
|
server ntp.evolix.net
|
|
server pool.ntp.org
|
|
|
|
# Cette ligne sert à autoriser le contrôle TOTAL de l'horloge pour la machine locale
|
|
# ce qui est le but recherché.
|
|
# On autorise toute requête de synchronisation DEPUIS notre serveur
|
|
restrict 127.0.0.1
|
|
restrict ::1
|
|
|
|
# On interdit toute requête de synchronisation VERS notre serveur
|
|
restrict -4 ignore
|
|
restrict -6 ignore
|
|
~~~
|
|
|
|
On peut vérifier le bon fonctionnement via la commande :
|
|
|
|
~~~
|
|
# ntpq -p
|
|
remote refid st t when poll reach delay offset jitter
|
|
==============================================================================
|
|
ntp.example.com 213.251.153.35 3 u 50 64 3 19.404 -10.832 8.768
|
|
~~~
|
|
|
|
|
|
## Configuration en tant que serveur NTP
|
|
|
|
Pour un serveur sur lequel viendrait se synchroniser d'autres machines,
|
|
on se synchronise avec plusieurs serveurs de strate 2 et on autorise
|
|
l'accès en lecture depuis d'autres machines via le fichier `/etc/ntp.conf` :
|
|
|
|
On le configure via le fichier _/etc/ntp.conf_.
|
|
|
|
~~~
|
|
# Plusieurs serveurs (de strate 2 a priori)
|
|
# Voir http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers
|
|
server ntp1.example.com
|
|
server ntp2.example.com
|
|
server ntp3.example.com
|
|
server ntp4.example.com
|
|
|
|
# Autoriser l'accès en lecture uniquement depuis partout
|
|
restrict -4 default kod notrap nomodify nopeer noquery
|
|
restrict -6 default kod notrap nomodify nopeer noquery
|
|
|
|
# On autorise toujours notre propre machine à modifier son horloge
|
|
restrict 127.0.0.1
|
|
restrict ::1
|
|
~~~
|
|
|
|
On peut voir la liste des clients qui se connectent au serveur via :
|
|
|
|
~~~
|
|
# ntpdc -c monlist
|
|
remote address port local address count m ver rstr avgint lstint
|
|
================================================================================
|
|
server1.example.com 41342 192.0.43.123 6404 3 4 1d0 27 2
|
|
server2.example.com 34764 192.0.43.123 6412 3 4 1d0 27 2
|
|
server3.example.com 44168 192.0.43.123 6970 3 4 1d0 25 10
|
|
server4.example.com 58051 192.0.43.123 2495 3 4 1d0 70 16
|
|
server5.example.com 123 192.0.43.123 2640 3 4 1d0 66 30
|
|
~~~
|
|
|
|
|
|
## NTP sous OpenBSD
|
|
|
|
Sous OpenBSD on a le démon très léger [OpenNTPD](http://www.openntpd.org/).
|
|
Il est installé et lancé par défaut avec une configuration minimale via le fichier `/etc/ntpd.conf` :
|
|
|
|
~~~
|
|
servers pool.ntp.org
|
|
~~~
|
|
|
|
À noter que par défaut, la synchronisation NTP est lente, il faudra plusieurs minutes voire heures
|
|
si votre horloge a un fort décalage.
|
|
|
|
Pour forcer une synchronisation immédiate :
|
|
|
|
~~~
|
|
# ntpd -s
|
|
~~~
|
|
|
|
On conseille de l'activer au démarrage :
|
|
|
|
~~~
|
|
# rcctl set ntpd flags "-s"
|
|
~~~
|
|
|
|
## Munin
|
|
|
|
Pour les serveurs utilisant un serveur NTP uniquement pour leurs besoins, Munin
|
|
intègre par défaut des scripts pour surveiller le décalage par rapport à un/des serveur(s) de
|
|
temps. Il ne reste qu'à les activer.
|
|
|
|
Pour les serveurs NTP, des plugins non officiels existent : _ntp_queries_ etc.
|
|
|