Ntpd

De The Linux Craftsman
Aller à : navigation, rechercher

Principe

Le fichier "/etc/ntp.conf" est le fichier de configuration qui sera utilisé par le client NTP pour mettre à jour l'heure du système. Dans ce fichier, il faut plusieurs chose:

  • driftfile → permet de définir le fichier dans lequel sera stocké le glissement (dirft) du quartz interne de la machine par rapport au temps de l'horloge atomique (sur Internet);
  • restrict → permet de restreindre les interrogations du client NTP;
  • server → permet de définir le ou les serveurs NTP à utiliser.

Installation

yum -y install ntp

Exemple

Voici un exemple de fichier "/etc/ntp.conf" :

driftfile /var/lib/ntp/drift

restrict 127.0.0.1

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server 3.pool.ntp.org

Démarrage et automatisation

Une fois le client installé et configuré, il faut le démarrer et l'enregistrer dans le chargeur de démarrage:

  • CentOS 6 :
# service ntpd start
# chkconfig ntpd on
  • CentOS 7+ :
# systemctl start ntpd.service
# systemctl enable ntpd.service

Vérification de fonctionnement

On va tout simplement vérifier la connectivité avec les serveur NTP:

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*91.121.210.60   195.83.222.27    2 u   60   64  177   20.797    2.114   1.287
-37.187.56.220   145.238.203.14   2 u   69   64  177   22.739    4.218   0.788
+212.47.252.138  193.67.79.202    2 u  136   64  374   18.154    1.459   1.248
+37.187.2.84     193.67.79.202    2 u  150   64  374   20.312    1.856  17.909

On peut également contrôler le bon fonctionnement en affichant la date:

# date
mar. nov. 10 18:55:48 CET 2015

Les options

Les arguments

Dans le fichier /etc/sysconfig/ntpd on peut voir avec quels arguments le démon ntp démarre:

# cat /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"

Ajout d'un fichier de log

Il est possible d'ajouter un fichier de log pour voir ce que fait ntpd. Pour cela modifiez simplement la ligne précédente:


OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g -l /var/log/ntpd.log"

Ntpd loggera maintenant dans le fichier /var/log/ntpd.log.

Problème de privilèges

Lorsque l'on utilise un serveur en ligne chez un hébergeur, la virtualisation avec OpenVZ peut empêcher le changement d'utilisateur:

# cat /var/log/ntpd.log
 8 Jan 08:07:27 ntpd[29175]: proto: precision = 0.151 usec
 
...

 8 Jan 08:07:28 ntpd[29175]: cap_set_proc() failed to drop root privileges: Operation not permitted

Dans ce cas, ntpd ne démarre pas... Il faut alors modifier la ligne d'option en supprimant :

-u ntp:ntp

Changement de timezone

Pour changer de fuseau horaire, il suffit de modifier le lien symbolique du fichier /etc/localtime. Ce fichier à pour origine l'un des fichier de zone présent dans le répertoire /usr/share/zoneinfo:

# ll /etc/localtime
lrwxrwxrwx 1 root root 32 Jan  8 08:22 /etc/localtime -> /usr/share/zoneinfo/Europe/Paris
# date
Fri Jan  8 08:24:35 CET 2016

Si on le modifie, on s'aperçoit que la date change instantanément :

# ln -fs /usr/share/zoneinfo/US/Pacific /etc/localtime
# ll /etc/localtime
lrwxrwxrwx 1 root root 30 Jan  7 23:25 /etc/localtime -> /usr/share/zoneinfo/US/Pacific
# date
Thu Jan  7 23:25:26 PST 2016