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).
on se synchronise avec plusieurs serveurs de strate 2 (ie: Les serveurs NTP sont organisés en strates, se synchronisant entre eux et avec la strate supérieure. La strate 1 est la plus haute, elle regroupe les machines reliées directement à des horloges atomique ou recepteurs GPS/grandes ondes).
On autorise aussi l'accès en lecture depuis d'autres machines via le fichier `/etc/ntp.conf` :
Le démon d'OpenBSD a une fonctionnalité supplémentaire : il sait demander la date à un serveur https via TLS. Cela ne permet pas d'améliorer la précision mais rajoute une contrainte sur la date synchronisée et réduit ainsi la possibilité d'une attaque man in the middle (MITM) sur le protocol NTP lui-même. Les paquets NTP n'étant pas en accord avec la contrainte sont ignorés et le serveur NTP dont ils proviennent est marqué comme invalide.
La commande _timedatectl_ (qui fait partie de [systemd](HowtoSystemd)) donne une vue d'ensemble des paramètres d'horloge d'un système :
~~~
$ timedatectl
Local time: Wed 2017-05-31 12:53:11 CEST
Universal time: Wed 2017-05-31 10:53:11 UTC
RTC time: Wed 2017-05-31 10:53:10
Time zone: Europe/Paris (CEST, +0200)
NTP enabled: no
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2017-03-26 01:59:59 CET
Sun 2017-03-26 03:00:00 CEST
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2017-10-29 02:59:59 CEST
Sun 2017-10-29 02:00:00 CET
~~~
On peut également activer la synchronisation NTP directement avec [systemd](HowtoSystemd) via le fichier `/etc/systemd/timesyncd.conf` mais nous conseillons d'éviter sur un serveur.