# [Debian] Serveur NTP

## Introduction

Il peut être utile d'installer un serveur de temps sur un réseau lorsque vous faites des opérations qui nécessitent que les horloges de vos différents systèmes soient synchronisées.

## Installation serveur

Commencez par installer le paquet **ntp** sur le serveur :

```bash
apt update && apt install -y ntp
```

Puis passez à la configuration de votre serveur en éditant le fichier **/etc/ntpsec/ntp.conf**.

Commencez par commenter (avec le #) les pools de Debian définis par défaut :

```
#pool 0.debian.pool.ntp.org iburst
#pool 1.debian.pool.ntp.org iburst
#pool 2.debian.pool.ntp.org iburst
#pool 3.debian.pool.ntp.org iburst
```

Vous pouvez configurer un serveur de temps de strate supérieur (qui servira de référence) en ajoutant cette ligne :

```
server <NTP_SERVER>
```

Dans notre cas, nous utiliserons un serveur de temps public qui est **0.fr.pool.ntp.org** :

```
server 0.fr.pool.ntp.org
```

On peut ensuite configurer les restrictions qui permettent de définir qui aura le droit d'utiliser notre serveur de temps.

Dans notre cas, ce sera l'ensemble du réseau local **192.168.5.0/24** :

```
restrict 0.fr.pool.ntp.org
restrict 192.168.5.0 netmask 255.255.255.0
restrict default none
```

<p class="callout warning">Pensez à supprimer les restrictions par défaut.</p>

Puis il faut en dernier lieu utiliser **fudge** afin de rafraîchir automatiquement l'horloge et définir le niveau de strate :

```
fudge 127.127.0.1 9
```

On peut ensuite redémarrer et activer le serveur de temps pour prendre en compte notre configuration :

```bash
systemctl enable --now ntp
```

## Configuration client

#### Debian

Installez les paquets **ntp** et **ntpdate** :

```bash
apt update && apt install -y ntp ntpdate
```

Puis configurez le serveur à utiliser en éditant le fichier **/etc/ntpsec/ntp.conf** :

```
server <IP|FQDN>
```

On peut ensuite définir la fréquence de rafraîchissement de la récupération du temps sur le serveur :

```
minpoll <VALUE>
maxpoll <VALUE>
```

<p class="callout info">La valeur doit être égale à la racine carré du nombre de seconde que vous souhaitez (ex: pour un rafraîchissement toutes les 16 secondes la valeur sera égale à 4 car 2^**4** = 16).</p>

On peut ensuite redémarrer le service ntp et interroger le serveur avec ntpdate :

```bash
systemctl restart ntp
```

```bash
ntpdate <IP|FQDN>
```

#### Windows

Rendez vous dans le **Panneau de configuration** puis dans **Horloge et région** :

[![Image collée.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-11/scaled-1680-/image-collee.png)](https://wiki.neopipe.fr/uploads/images/gallery/2023-11/image-collee.png)

Cliquez sur **Ajouter des horloges pour des fuseaux horaires variés** :

[![Image collée 1.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-11/scaled-1680-/image-collee-1.png)](https://wiki.neopipe.fr/uploads/images/gallery/2023-11/image-collee-1.png)

Accédez à l'onglet **Temps Internet** et cliquez sur **Modifier les paramètres** :

[![Image collée 2.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-11/scaled-1680-/image-collee-2.png)](https://wiki.neopipe.fr/uploads/images/gallery/2023-11/image-collee-2.png)

Et enfin vous pouvez saisir l'adresse **IP** ou le **FQDN** de votre serveur de temps et cliquer sur **Mettre à jour** puis **OK** :

[![Image collée 3.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-11/scaled-1680-/image-collee-3.png)](https://wiki.neopipe.fr/uploads/images/gallery/2023-11/image-collee-3.png)