GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi ntpd écoute-t-il sur tant de ports/adresses ?

Solution 1 :

Ce n'est pas du tout la promiscuité. Il s'agit simplement de se lier aux adresses IP de l'interface et à l'hôte local, à la fois sur les protocoles ipv4 et ipv6. Si vous pensez qu'il ne devrait pas écouter certains d'entre eux, modifiez simplement le listen config comme expliqué dans le manuel (cela peut être pour une version différente que vous utilisez) :

 listen on address
         Specify a local IP address or a hostname the ntpd(8) daemon
         should listen on. If it appears multiple times, ntpd(8) will
         listen on each given address. If the exact string '*' is given as
         an address, ntpd(8) will listen on all local addresses. Other-
         wise, address can be followed by an asterisk ('*') and a UDP port
         number to listen on instead of the default 123. ntpd(8) does not
         listen on any address by default. For example:

               listen on *
               listen on 127.0.0.1
               listen on ::1

Dans certaines autres versions, vous devrez changer les options en ntpd démon lui-même pour changer sur quels protocoles/interfaces écouter (des options comme -4 , -6 , -I )

Solution 2 :

D'après ma lecture de cette page, il semble que ntp n'utilise pas le INADDR_ANY 0.0.0.0 adresse exclusivement en partie pour des raisons de sécurité, et en partie pour des raisons d'authentification.

Le premier port 123 est inférieur à 1024 et est donc considéré comme un port privilégié, et seul root peut se connecter à ce port. Ntp est généralement configuré pour supprimer les privilèges après son démarrage. D'après ce que je comprends des listes de diffusion, et l'article, une fois les privilèges supprimés, ne peut pas ouvrir de socket pour répondre à partir du port source correct de 123, donc ntp ouvre des sockets pour chaque adresse attribuée avant de supprimer les privilèges.

D'après ce que j'ai lu, certains des mécanismes d'authentification pour ntp exigent essentiellement que le port source et le port de destination soient 123, et rien d'autre.

La chose n'est pas tout à fait claire. Voir la section sur l'adresse joker 0.0.0.0 , il est ouvert par ntpd pour une raison quelconque, mais d'après les commentaires, il ne doit jamais être utilisé, sauf dans de rares cas particuliers, dont les développeurs ne sont pas tout à fait sûrs, mais ils ne veulent pas supprimer le socket, juste au cas où ils cassent des choses.

Notez que normalement ntpd ne devrait pas accepter les paquets sur les adresses génériques car il y a un certain nombre de problèmes si vous le faites, y compris l'envoi de paquets de retour sur une adresse différente de l'adresse demandée par l'expéditeur.DannyMayer - 27 avril 2009

Je pense que la réponse principale à votre question se trouve dans le commentaire ci-dessus ici.


Linux
  1. Pourquoi l'homme imprime-t-il "donne-moi, donne-moi, donne-moi" à 00h30 ?

  2. Linux - Pourquoi Setuid ne fonctionne-t-il pas ??

  3. Pourquoi `exit &` ne fonctionne pas ?

  4. Pourquoi ‘/’ a-t-il une entrée ‘..’ ?

  5. Pourquoi le conteneur Docker invite-t-il l'autorisation refusée ?

Comment trouver votre adresse IP sous Linux

Pourquoi Mv(1) copie-t-il des objets si l'autorisation de déplacement est refusée ?

Pourquoi l'heure Unix commence-t-elle au 1970-01-01 ?

Qu'est-ce que le DNS et comment ça marche ?

Obtenir une adresse IP sous Linux :découvrez les nombreuses façons

Pourquoi git échoue-t-il sur push/fetch avec trop de fichiers ouverts