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.