Outils pour utilisateurs

Outils du site


sysadmin:linux:serveur-ntp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
sysadmin:linux:serveur-ntp [2022/01/06 21:55] yoannsysadmin:linux:serveur-ntp [2025/11/10 14:57] (Version actuelle) yoann
Ligne 1: Ligne 1:
 {{tag>sysadmin netadmin linux ntp service config}} {{tag>sysadmin netadmin linux ntp service config}}
  
-====== Installer serveur ntp ======+====== Installer un serveur ntp ======
  
 **NTP**((**N**etwork **T**ime **P**rotocol)) permet de distribuer l'heure sur le réseau. L'heure du système impacte le fonctionnement de nombreux services. Une heure locale fortement décalée peut perturber/interrompre le fonctionnement normal de certains services notamment: **NTP**((**N**etwork **T**ime **P**rotocol)) permet de distribuer l'heure sur le réseau. L'heure du système impacte le fonctionnement de nombreux services. Une heure locale fortement décalée peut perturber/interrompre le fonctionnement normal de certains services notamment:
Ligne 9: Ligne 9:
 Le système est pyramidal pour éviter la surcharge des serveurs. Les sources sont de niveau 0 (strate), Chaque serveur est configuré sur un serveur parent Le système est pyramidal pour éviter la surcharge des serveurs. Les sources sont de niveau 0 (strate), Chaque serveur est configuré sur un serveur parent
  
-==== Installation =====+===== Installation ===== 
 + 
 +Sur les systèmes de type Debian :
  
 <code bash> <code bash>
 $ sudo apt-get install ntp $ sudo apt-get install ntp
 +</code>
 +
 +<note>
 +Sur les versions récentes de Debian (bullseye, bookworm) la version historique du serveur ntp est remplacée par le projet NTPsec : une implémentation sécurisée, renforcée et améliorée, dérivée du projet NTP originel.
 +</note>
 +
 +<code bash>
 +apt install -y ntpsec{,-doc}
 </code> </code>
  
Ligne 19: Ligne 29:
 Le protocole NTP communique en **UDP** sur le **port 123** pour se synchroniser avec les serveurs distants. Le protocole NTP communique en **UDP** sur le **port 123** pour se synchroniser avec les serveurs distants.
  
-La configuration du serveur se fait via **/etc/ntp.conf**. Ici on définit les serveurs de référence:+La configuration du serveur se fait via ''/etc/ntp.conf'' ou ''/etc/ntpsec/ntp.conf''. Ici on définit les serveurs de référence:
  
 <file> <file>
Ligne 33: Ligne 43:
 </note> </note>
  
-Une machine peut être à la fois serveur de temps et cliente de son propre service, dans ce cas **ntpd** assure le service et **ntpdate** le rôle de client.+La machine exécutant le service est à la fois serveur de temps et cliente de son propre service. On peut avoir également besoin du client **ntpdate** dans certains cas (lorsque la dérive de temps est trop importante confère section [[sysadmin:linux:serveur-ntp#le_client_ntpdate]]).
  
 La configuration du client ntp se fait via /etc/ntpdate.conf La configuration du client ntp se fait via /etc/ntpdate.conf
Ligne 131: Ligne 141:
 ===== Paramétrage du pare-feu ===== ===== Paramétrage du pare-feu =====
  
-Si l'on souhaite contrôler précisément le trafic NTP au tarvers un pare-feu restrictif, il est possible de créer des règles exploitant les ensembles (ipsets). +Si l'on souhaite contrôler précisément le trafic NTP au travers d'un pare-feu restrictif, il est possible de créer des règles exploitant les ensembles (ipsets). 
  
-creation d'un ensemble ipset+création d'un ensemble ipset
  
 <code bash> <code bash>
Ligne 144: Ligne 154:
 dig +short 2.fr.pool.ntp.org | xargs --max-args=1 ipset add set_ntp_servers  dig +short 2.fr.pool.ntp.org | xargs --max-args=1 ipset add set_ntp_servers 
 dig +short 3.fr.pool.ntp.org | xargs --max-args=1 ipset add set_ntp_servers dig +short 3.fr.pool.ntp.org | xargs --max-args=1 ipset add set_ntp_servers
 +
 </code> </code>
  
-Création/test des règles iptable+Création/test des règles netfilter
 <code bash> <code bash>
 # Journalise le trafic NTP sortant # Journalise le trafic NTP sortant
Ligne 154: Ligne 165:
 iptables -A ufw-after-output -o wan -m set --match-set set_ntp_servers dst -p udp --dport 123 -j ACCEPT iptables -A ufw-after-output -o wan -m set --match-set set_ntp_servers dst -p udp --dport 123 -j ACCEPT
 </code> </code>
 +
 +Si le système utilise **UFW**, on ne peut pas créer directement de règle exploitant les ipset via la commande **ufw**. Néanmoins il est possible d'intégrer des règles iptables au framework UFW en les ajoutant dans le fichier **/etc/ufw/after.rules**. Ce fichier script, s'il est exécutable est utilisé par lors du démarrage/arrêt du pare-feu UFW.
 +
 +<code bash>
 +# Rendre le script exécutable pour qu'il soit automatiquement appelé par ufw-init
 +chmod ug+x /etc/ufw/after.rules
 +
 +# Sauvegarder les ensembles existants pour qu'ils puissent être rechargés
 +ipset save > /etc/ufw/sets.ipset
 +</code>
 +
 +Modifier le fichier **/etc/ufw/after.rules**, dans la section start, on reconstruit les ensembles ipset à partir du fichier de sauvegarde puis on crée les règles via les appels **iptable**. Dans la section stop, les ensembles sont détruits.
 +
 +<file bash after.rules>
 +#
 +# Copyright 2013 Canonical Ltd.
 +#
 +#    This program is free software: you can redistribute it and/or modify
 +#    it under the terms of the GNU General Public License version 3,
 +#    as published by the Free Software Foundation.
 +#
 +#    This program is distributed in the hope that it will be useful,
 +#    but WITHOUT ANY WARRANTY; without even the implied warranty of
 +#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +#    GNU General Public License for more details.
 +#
 +#    You should have received a copy of the GNU General Public License
 +#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 +#
 +set -e
 +
 +case "$1" in
 +start)
 +    # typically required
 +    if [ -r /etc/ufw/sets.ipset ]
 +    then
 +      ipset -f /etc/ufw/sets.ipset restore
 +      # Journalise et autorise le trafic NTP a destination des serveurs des pools *.fr.pool.ntp.org
 +      iptables -A ufw-after-output -o wan -m set --match-set set_ntp_servers dst -p udp --dport 123 -j ufw-logging-allow -m comment --comment "Autorise trafic NTP vers fr.pool.ntp.org"
 +      iptables -A ufw-after-output -o wan -m set --match-set set_ntp_servers dst -p udp --dport 123 -j ACCEPT -m comment --comment "Autorise trafic NTP vers fr.pool.ntp.org"
 +    fi
 +    ;;
 +stop)
 +    # typically required
 +    ipset destroy
 +    ;;
 +status)
 +    # optional
 +    ;;
 +flush-all)
 +    # optional
 +    ;;
 +*)
 +    echo "'$1' not supported"
 +    echo "Usage: after.init {start|stop|flush-all|status}"
 +    ;;
 +esac
 +
 +</file>
 +
 +
  
 ===== Troubleshooting ===== ===== Troubleshooting =====
Ligne 214: Ligne 286:
  
   * https://doc.ubuntu-fr.org/ntp   * https://doc.ubuntu-fr.org/ntp
-  * https://www.pool.ntp.org/zone/fr+  * https://www.ntppool.org/zone/fr
   * https://docs.ntpsec.org/latest/ntp_conf.html   * https://docs.ntpsec.org/latest/ntp_conf.html
 +  * [[https://wiki.debian.org/fr/NTP|Configurer le service NTP sur Debian (debian.org)]]
sysadmin/linux/serveur-ntp.1641506106.txt.gz · Dernière modification : 2022/01/06 21:55 de yoann