Installation d’un serveur NTP sous Ubuntu

Date: 15/03/2010 | Catégories: Open-source,Reseau,Systeme | Tags: ,,,,

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 à quelques millisecondes (ou dizaines de millisecondes) près. En fait la résolution théorique est de 233 ps, mais en pratique la précision est limité par la variabilité des latences réseau. 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):

[shell]

sudo ntpdate-debian

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

[/shell]

Nous allons 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 briques NTP (exemple de commandes sous Ubuntu 9.10)

[shell]

sudo aptitude install ntp

sudo /etc/init.d/ntp stop

[/shell]

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

[shell]

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

[/shell]

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 vérifier que le serveur de temps fonctionne puis lancer le daemon NTP:

[shell]

sudo ntpdate -dv fr.pool.ntp.org

sudo /etc/init.d/ntp start

[/shell]

Configuration des clients NTP

Il ne reste plus qu'à configurer les clients NTP de votre réseau 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 synchronisé 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 synchronisé à votre serveur de temps, lui même synchronisé au cluster NTP fr.pool.ntp.org !

  • Ed

    Mettre les IP des serveurs de temps dans /etc/ntp/step-stickers permet d’éviter le lancement manuel d’un ntpdate avant le service ntpd. C’est le cas sur RedHat, n’y a t-il pas un truc similaire sur debian/ubuntu?

  • Pingback: Maintenir ses machines linux à l’heure avec ntp (exemple sur une Mandriva) – BloGals()

  • Edgar

    Bonjour !

    Merci pour cet article simple et utile. Pour l’améliorer, je me permets de vous suggérer quelques petites corrections :

    —————————————

    > l’heure de référence (à la seconde près)

    à quelques millisecondes (ou dizaines de millisecondes) près. En fait la résolution théorique est de 233 ps, mais en pratique la précision est limité par la variabilité des latences réseau.

    > Nous allons maintenant voir maintenant

    Nous allons voir maintenant

    > On installe les brique NTP

    On installe les briques NTP

    > sudo ntpdate -dv fr.pool.ntp.org

    Cette commande ne synchronise rien du tout. D’après le man : « Enable the debugging mode, in which ntpdate will go through all the steps, but not adjust the local clock. »

    > Il ne reste plus qu’a configurer

    Il ne reste plus qu’à configurer

    > les clients NTP de votre pour utiliser

    les clients NTP de votre réseau pour utiliser

    > menu « Système / Administration / Date » et heure

    menu « Système / Administration / Date et heure »

    > Rester synchroniser avec les serveurs sur Internet

    Rester synchronisé avec les serveurs sur Internet

    —————————————

    Bonne année !

    • Corrigé ! Merci.

      • Edgar

        Merci à vous. Pour le coup vous pouvez aussi effacer mes commentaires…