wiki/HowtoNTP.md

128 lines
4.2 KiB
Markdown
Raw Normal View History

2017-05-30 15:51:39 +02:00
---
categories: system
title: Howto NTP
...
2016-12-29 11:25:39 +01:00
2017-05-30 15:51:39 +02:00
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).
2016-12-29 11:25:39 +01:00
2017-05-30 15:51:39 +02:00
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/).
2016-12-29 11:25:39 +01:00
## Installation
2017-05-30 15:51:39 +02:00
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 :
2016-12-29 11:25:39 +01:00
~~~
# apt install ntp
2017-05-30 15:51:39 +02:00
# ntpd --help | head -1
ntpd - NTP daemon program - Ver. 4.2.6p5
2016-12-29 11:25:39 +01:00
~~~
2017-05-30 15:51:39 +02:00
## Configuration en tant que client NTP
L'objectif est de maintenir le serveur synchronisé en permanence avec des serveurs NTP de référence.
2016-12-29 11:25:39 +01:00
2017-05-30 15:51:39 +02:00
La configuration se fait via le fichier `/etc/ntp.conf` :
2016-12-29 11:25:39 +01:00
~~~
# Le ou les serveurs sur lesquels on veut se synchroniser
server ntp.evolix.net
2017-05-30 15:51:39 +02:00
server pool.ntp.org
2016-12-29 11:25:39 +01:00
# 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
2017-05-30 15:51:39 +02:00
~~~
2016-12-29 11:25:39 +01:00
2017-05-30 15:51:39 +02:00
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
2016-12-29 11:25:39 +01:00
~~~
2017-05-30 15:51:39 +02:00
## 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_.
2016-12-29 11:25:39 +01:00
~~~
# Plusieurs serveurs (de strate 2 a priori)
2017-05-30 15:51:39 +02:00
# Voir http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers
2016-12-29 11:25:39 +01:00
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
2017-05-30 15:51:39 +02:00
remote address port local address count m ver rstr avgint lstint
================================================================================
2016-12-29 11:25:39 +01:00
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
~~~
2017-05-30 15:51:39 +02:00
## 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
2016-12-29 11:25:39 +01:00
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.
2017-05-30 15:51:39 +02:00
Pour les serveurs NTP, des plugins non officiels existent : _ntp_queries_ etc.
2016-12-29 11:25:39 +01:00