J'ai remarqué cela pendant un moment, et ça n'a jamais eu de sens pour moi:
Pourquoi ntpd
doit écouter autant d'adresses?
Par exemple, une machine debian:
[.____] $ NetStat Donnée locale Proto Nom du programme d'adresse étrangère [.____] UDP 0.0.0.0:123 0.0.0.0:* NTPD [ : * NTPD UDP [LAN]: 123 0.0.0.0:* NTPD [.____] [____] UDP [IPv4]: 123 0.0.0.0:* NTPD UDP6 ::: 123 ::: * NTPD [.____] UDP6 :: 1: 123 ::: * NTPD [.____] UDP6 [Link-local] ::: * NTPD [.____] UDP6 [IPv6] ::: * NTPD
Ceci (expurgé) netstat
liste indique nptd
Écoute sur les adresses de diffusion, locales, LAN et globales, pour IPv4 et IPv6.
Pourquoi ntpd
si promiscuité?
De mon 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.
Premier port 123, est inférieur à 1024, et est donc considéré comme un port privilégié, et la racine ne peut se lier à ce port. PNT est généralement définie à abandonner les privilèges après son démarrage. D'après ce que je comprends des listes de courrier, et l'article une fois que les privilèges sont supprimés ne peuvent pas ouvrir un socket pour répondre du port source correcte de 123, de sorte que ntp ouvre des prises pour chaque adresse assignée avant qu'elle ne tombe privilèges.
D'après ce que j'ai lu quelques-uns des mécanismes d'authentification pour ntp exigent essentiellement que la source et le port de destination soit 123, et rien d'autre.
La question est pas tout à fait claire. Voir la section sur le adresse générique0.0.0.0
, Il est ouvert par ntpd pour une raison quelconque, mais des commentaires ne doit jamais être utilisé en fait, à l'exception possible dans certains cas rares particuliers, que les développeurs ne sont pas tout à fait sûr, mais ils ne veulent pas enlever la prise, juste au cas où ils cassent les choses.
Notez que devrait normalement ntpd pas accepter des 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 de l'expéditeur. DannyMayer - 27 avril 2009
Je pense que la principale réponse à votre question est dans le commentaire ci-dessus ici.
Ce n'est pas du tout promiscuité. Il s'agit simplement d'une liaison avec les adresses IP de l'interface et localhost, sur les protocoles IPv4 et IPv6. Si vous pensez que cela ne devrait pas écouter certaines de celles-ci, changez simplement la configuration listen
décrit dans le manuel (cela peut être 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 modifier les options sur le démon ntpd
démon lui-même pour modifier les protocoles/interfaces à écouter (options telles que -4
, -6
, -I
)