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.
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.
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
.
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.
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
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).
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
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/
.
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.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://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>.