web-dev-qa-db-fra.com

Pourquoi NTP requiert-il un accès par pare-feu bidirectionnel au port UDP 123?

De Quelles sont les règles iptables pour autoriser ntp? :

iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p udp --sport 123 -j ACCEPT

En outre, depuis le NTP site Web :

... ntpd nécessite un accès bidirectionnel complet au port UDP privilégié 123. ...

Ma question est, pourquoi? Pour ceux qui ne sont pas familiers avec NTP, cela peut sembler une faille de sécurité, en particulier lorsque je demande à un de mes clients d'ouvrir ce port dans leur pare-feu afin que mes serveurs puissent garder leur heure synchronisée. Quelqu'un at-il une justification décente que je peux donner à mon client pour le convaincre que j'ai besoin de cet accès dans le pare-feu? L'aide est appréciée! :)

17
DuffJ

Vous ne devez autoriser les ports NTP du trafic entrant que si vous agissez en tant que serveur, ce qui permet aux clients de se synchroniser avec vous.

Sinon, l'existence d'un état NTP déterminera automatiquement si le paquet NTP entrant est bloqué ou autorisé par un état de pare-feu existant que nous avons initialisé.

iptables -A OUTPUT -p udp --sport 123 --dport 123 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

S'il vous plaît laissez-moi savoir si les règles iptables sont appropriées. Je n'ai aucune expérience avec iptables. Mon client NTP reste synchronisé sur mon routeur pfSense avec uniquement une règle d'autorisation sortante, car pfSense est un pare-feu avec état.

10
Ben Cook

NTP nécessite un accès bidirectionnel sur le port 123 car le RFC NTP spécifie ce qui suit concernant le port source du client:

Lorsqu'il fonctionne en mode symétrique (1 et 2), ce champ doit contenir le NTP numéro de port PORT (123) attribué par l'IANA.

Étant donné que le port source du client est 123, lorsque le serveur renvoie la réponse, il l'envoie au port 123. Naturellement, pour pouvoir recevoir cette réponse, le client doit autoriser les réponses entrantes sur le port 123. Normalement, les réponses reviennent. sur une gamme de ports éphémères .

Comme Ben Cook a mentionné plus haut, cela n’est nécessaire que s’il s’agit d’un pare-feu sans état, car un pare-feu avec état permettrait à la réponse de revenir sans règle explicite.

1
Gurpreet Atwal

Je pense que la meilleure solution consiste à activer le port 123 en entrée, uniquement pour les adresses IP censées donner le signal ntp à votre serveur.
Dans le fichier de configuration ntp, /etc/ntp.conf, figurent les adresses de plusieurs serveurs ntp sur lesquels votre serveur doit pointer. Vous pouvez utiliser la commande lookup pour trouver l'adresse IP correspondante pour chaque adresse.

Host -t a 0.debian.pool.ntp.org

Vous pouvez ensuite ajouter la règle au pare-feu du serveur:

iptables -I INPUT -p udp -s 94.177.187.22 -j ACCEPT

...etc.
Cela pourrait empêcher toute personne mal intentionnée d’endommager votre serveur.
Je pense qu'il est inutile de limiter la sortie.

0