Manuel FreeBSD
Précédent | Chapitre 28. Serveurs réseau | Suivant

# 28.10. Synchronisation de l'horloge avec NTP

Contribution de Tom Hukins.

## 28.10.1. Généralités

Avec le temps, l'horloge d'un ordinateur tend à dériver. Le protocole NTP (``Network Time Protocol'') est une des manières pour s'assurer que votre horloge reste précise.

De nombreux services Internet ont besoin, ou tirent partie, de la précision des horloges des ordinateurs. Par exemple, un serveur web, peut recevoir des requêtes pour n'envoyer un fichier que s'il a été modifié depuis un certain temps. Sur un réseau local, il est essentiel que les ordinateurs partageant des fichiers à partir du même serveur de fichiers aient des horloges synchronisées de manière à ce que les dates de création ou de dernière modification d'un fichier (``timestamp'') soient cohérentes. Des services comme cron(8) reposent sur une horloge système précise pour exécuter des commandes à des moments précis.

FreeBSD est fourni avec le serveur NTP ntpd(8) qui peut être utilisé pour contacter d'autres serveurs NTP pour régler l'horloge de votre machine ou pour jouer le rôle de serveur de temps pour d'autres.

## 28.10.2. Choisir les serveurs NTP appropriés

Afin de synchroniser votre horloge, vous devrez trouver un ou plusieurs serveurs NTP. Votre administrateur réseau ou votre FAI peuvent avoir mis en place un serveur NTP dans cet objectif--consultez leur documentation pour voir si c'est le cas. Il existe une liste en ligne de serveurs NTP accessibles par le public que vous pouvez utiliser pour trouver un serveur NTP proche de vous. Assurez-vous d'avoir pris connaissance de la politique d'utilisation des serveurs que vous choisissez, et demandez la permission si nécessaire.

Choisir plusieurs serveurs NTP non-connectés entre eux est une bonne idée au cas où un des serveurs que vous utilisez devient inaccessible ou que son horloge n'est plus fiable. ntpd(8) utilise intelligemment les réponses qu'il reçoit d'autres serveurs--il favorisera les plus fiables par rapport aux moins fiables.

## 28.10.3. Configuration de votre machine

### 28.10.3.1. Configuration de base

Si vous désirez synchroniser votre horloge uniquement lors du démarrage de la machine, vous pouvez alors employer ntpdate(8). Cela peut être approprié pour certaines machines de bureau qui sont fréquemment redémarrées et qui ne nécessites qu'une synchronisation épisodique, cependant la plupart des machines devraient utiliser ntpd(8).

Utiliser ntpdate(8) au moment du démarrage est également une bonne idée pour les machines qui exécutent ntpd(8). Le programme ntpd(8) modifie l'horloge graduellement, alors que ntpdate(8) change directement l'horloge, peu importe la différence entre l'heure actuelle de la machine et l'heure correcte.

Pour activer ntpdate(8) au démarrage, ajoutez la ligne `ntpdate_enable="YES"` au fichier `/etc/rc.conf`. Vous devrez également préciser tous les serveurs avec lesquels vous désirez vous synchroniser et tous les indicateurs devant être passés à ntpdate(8) avec `ntpdate_flags`.

### 28.10.3.2. Configuration générale

NTP est configuré par l'intermédiaire du fichier `/etc/ntp.conf` suivant le format décrit dans la page de manuel ntp.conf(5). Voici un exemple simple:

    server ntplocal.example.com prefer
    server timeserver.example.org
    server ntp2a.example.net

    driftfile /var/db/ntp.drift

L'option `server` précise quels serveurs doivent être utilisés, avec un serveur listé par ligne. Si un serveur est spécifié avec l'argument `prefer`, comme c'est le cas pour `ntplocal.example.com`, ce serveur est préféré par rapport aux autres serveurs. Une réponse en provenance d'un serveur préféré sera ignorée si elle diffère de façon significative des réponses des autres serveurs, sinon elle sera utilisée sans considérer les autres réponses. L'argument `prefer` est normalement employé pour les serveurs NTP qui sont connus pour leur grande précision, comme ceux avec des systèmes spéciaux de contrôle du matériel.

L'option `driftfile` précise quel fichier est utilisé pour stocker le décalage de fréquence de l'horloge. Le programme ntpd(8) l'utilise pour compenser automatiquement la dérive naturelle de l'horloge, permettant de maintenir un réglage raisonnablement correct même s'il est coupé d'autres sources extérieures de temps pendant une certaine période.

L'option `driftfile` précise également quel fichier est utilisé pour stocker l'information concernant les réponses précédentes des serveurs NTP que vous utilisez. Il ne devrait pas être modifié par un autre processus.

### 28.10.3.3. Contrôler l'accès à votre serveur

Par défaut, votre serveur NTP sera accessible par toutes les machines sur l'Internet. L'option `restrict` du fichier `/etc/ntp.conf` vous permet de contrôler quelles machines peuvent accéder à votre serveur.

Si vous voulez refuser à tout le monde l'accès à votre serveur NTP, ajoutez la ligne suivante au fichier `/etc/ntp.conf`:

    restrict default ignore

> Note : Cela empêchera également à votre serveur d'accéder à tout serveur listé dans votre configuration locale. Si vous avez besoin de synchroniser votre serveur NTP avec un serveur NTP externe, vous devez alors autoriser le serveur en question. Consultez la page de manuel de ntp.conf(5) pour plus d'information.

Si vous désirez autoriser uniquement l'accès aux machines de votre réseau pour qu'elles puissent synchroniser leur horloge, tout en vous assurant qu'elles ne peuvent configurer le serveur ou être utilisées comme point de de synchronisation, ajoutez:

    restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

à la place, où `192.168.1.0` est une adresse IP de votre réseau et `255.255.255.0` est votre masque de sous-réseau.

Le fichier `/etc/ntp.conf` peut contenir plusieurs options `restrict`. Pour plus de détails, lisez la section `Access Control Support` de la page de manuel ntp.conf(5).

## 28.10.4. Exécuter le serveur NTP

Pour s'assurer que le serveur NTP est lancé au démarrage, ajoutez la ligne `ntpd_enable="YES"` dans le fichier `/etc/rc.conf`. Si vous désirez passer des indicateurs supplémentaires à ntpd(8), éditez les paramètres de l'option `ntpd_flags` dans `/etc/rc.conf`.

Pour lancer le serveur sans redémarrer votre machine, exécutez `ntpd` en étant sûr de préciser tout paramètre supplémentaire de `ntpd_flags` dans `/etc/rc.conf`. Par exemple:

    # ntpd -p /var/run/ntpd.pid

## 28.10.5. Utiliser ntpd avec une connexion Internet temporaire

Le programme ntpd(8) n'a pas besoin d'une connexion permanente à l'Internet pour fonctionner correctement. Cependant, si vous disposez d'une connexion temporaire qui est configurée de telle sorte qu'il y ait établissement de la connexion à la demande, c'est une bonne idée d'empêcher le trafic NTP de déclencher la numérotation ou de maintenir constamment établie la connexion. Si vous utilisez PPP en mode utilisateur, vous pouvez employer les directives `filter` dans le fichier `/etc/ppp/ppp.conf`. Par exemple:

     set filter dial 0 deny udp src eq 123
     # Empêche le trafic NTP de lancer une connexion
     set filter dial 1 permit 0 0
     set filter alive 0 deny udp src eq 123
     # Empêche le trafic NTP entrant de garder la connexion établie
     set filter alive 1 deny udp dst eq 123
     # Empêche le trafic NTP sortant de garder la connexion établie
     set filter alive 2 permit 0/0 0/0

Pour plus de détails lisez la section `PACKET FILTERING` de la page de manuel ppp(8) et les exemples du répertoire `/usr/share/examples/ppp/`.

> Note : Certains fournisseurs d'accès Internet bloquent les ports dont le numéro est faible, empêchant NTP de fonctionner puisque les réponses n'atteignent jamais votre machine.

## 28.10.6. Information supplémentaire

La documentation pour le serveur NTP peut être trouvée dans le répertoire `/usr/share/doc/ntp/` sous le format HTML.

Précédent | Sommaire | Suivant
Serveur de fichiers et d'impression pour clients Microsoft® Windows® (Samba) | Niveau supérieur | Firewalls ** Traduction en Cours **

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.