Installation d'un serveur NTP sous Ubuntu

Publié le 15 mars 2010 par Nicolargo

Si vous disposez de plusieurs machines sur votre réseau, il peut, dans certains cas être intéressant de les synchroniser sur une date et une heure commune (par exemple pour de l'analyse de fichiers de log). Les systèmes d'exploitation modernes utilisent maintenant le protocole NTP pour se synchroniser via le réseau IP.

C'est quoi donc NTP ?

Le principe général est simple: on configure le client NTP pour aller demander à un serveur NTP l'heure de référence (à la seconde près). Le client peut alors modifier sa date système en concéquence. Cette description simpliste est à nuancer par le fait que le protocole NTP est basé sur une architecture en arbre.

Par exemple, sur un système d'exploitation GNU/Linux de type Debian ou Ubuntu, il suffit de saisir la commande suivante pour faire appel à un serveur NTP secondaire (ntp.ubuntu.com définie dans le fichier /etc/default/ntpdate):

sudo ntpdate-debian

15 Mar 10:11:01 ntpdate[5406]: adjust time server 91.189.94.4 offset 0.038837 sec

Nous allons maintenant voir maintenant comment installer un serveur de temps NTP sur votre réseau qui pourra continuer de servir de référence même en cas de coupure de votre liaison Internet.

Installation d'un serveur NTP

On installe les brique NTP (exemple de commandes sous Ubuntu 9.10)

sudo aptitude install ntp

sudo /etc/init.d/ntp stop

On configure ensuite le fichier /etc/ntp.conf:

sudo vi /etc/ntp.conf

# Configuration
driftfile /var/lib/ntp/ntp.drift
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

# Serveur de temps ROOT
# http://www.pool.ntp.org/zone/fr
server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
server 3.fr.pool.ntp.org

# ACL
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
restrict 192.168.2.0 mask 255.255.255.0 notrust

Pour synchroniser mon serveur NTP, j'utilise les serveurs fourni par le projet pool.ntp.org qui propose un cluster de serveurs NTP virtualisés sous un nom unique (fr.pool.ntp.org pour la france).

Il faut également penser à adapter la section ACL en fonction de votre réseau (le mien étant en 192.168.2.0/24)

On peut ensuite synchroniser notre serveur puis lancer le daemon NTP:

sudo ntpdate -dv fr.pool.ntp.org

sudo /etc/init.d/ntp start

Configuration des clients NTP

Il ne reste plus qu'a configurer les clients NTP de votre pour utiliser votre serveur NTP. Sous Ubuntu, il faut se rendre dans le menu "Système / Administration / Date" et heure puis sélectionner "Configuration: Rester synchroniser avec les serveurs sur Internet":

Cliquer ensuite sur "Sélectionner des serveurs":

On ajoute notre serveur NTP local (adresse 192.168.2.254 dans mon cas):

PS: il est possible de sélectionner plusieurs adresses de serveurs.

Et voili, votre PC restera maintenant synchronisié à votre serveur de temps, lui même synchronisé au cluster NTP fr.pool.ntp.org !