mardi 23 janvier 2018

Harmonisation de la synchronisation du temps sur Debian et Windows

Aujourd'hui j'ai pris un peu le temps de mettre à plat ma configuration concernant les horloges et la synchronisation de celles-ci sur les différents serveurs que je fais fonctionner sur mon environnement personnel. Les horloges étant disparates sur les systèmes, j'ai donc défini la configuration suivante :

  • L'hyperviseur ESXi se synchronisant sur des serveurs NTP publics : http://www.pool.ntp.org/ ;
  • Mes deux contrôleurs de domaine Windows se synchronisant sur ces mêmes serveurs NTP ;
  • Toutes mes autres machines se synchronisant sur mes contrôleurs de domaine.

Sur Windows, j'ai développé un script Powershell - qu'il m'aurait été possible d'appliquer via GPO - qui s'occupe de modifier la configuration dans la base de registre afin que le serveur utilise comme source les contrôleurs de domaine. Ce script (disponible sur mon miroir de téléchargement) nécessite évidemment des droits d'administration sur le serveur pour être exécuté - on s'assurera de remplacer time-srvX par le nom du serveur de temps, en conservant bien ,0x1 et en séparant les noms de serveurs par un espace :

Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\w32time\Config -name "AnnounceFlags" -value "5"
Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\w32time\Parameters -name "Type" -value "NTP"
Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\w32time\TimeProviders\NtpServer -name "Enabled" -value "1"
Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\w32time\Parameters -name "NtpServer" -value "time-srv1,0x1 time-srv2,0x1"

A noter qu'en fonction de la politique d'exécution des scripts sur la machine, il est possible que le script ne s'exécute pas, on va donc l'autoriser si cette politique n'est pas gérée au niveau du domaine.

Set-ExecutionPolicy Unrestricted

Une fois ces instructions interprétées par Powershell, on redémarre le service de temps :

net stop w32time
net start w32time

Puis, on peut s'assurer que la source est correcte et faire une synchronisation grâce aux commandes suivantes - l'interrogation de la source devrait renvoyer l'un des serveurs spécifiés plus haut :

w32tm /query /source
w32tm /resync

Ensuite, sur mes machines Debian, grâce au paquet ntpdate, il est possible de spécifier au système l'adresse d'un serveur sur lequel synchroniser l'horloge.

apt-get install ntpdate

On modifie le fichier de configuration :

nano /etc/default/ntpdate

Afin de forcer ntpdate a bien utiliser ce fichier de configuration, on passe le paramètre NTPDATE_USE_NTP_CONF à no, puis on modifie NTPSERVERS pour y intégrer les serveurs de temps, ce qui donne ceci :

NTPDATE_USE_NTP_CONF=no
NTPSERVERS="time-srv1 time-srv2"

Et enfin, pour synchroniser la machine avec les serveurs tout juste renseignés :

ntpdate-debian

Aucun commentaire:

Enregistrer un commentaire