iptables | Types d'ICMP: lesquels sont (potentiellement) nuisibles?

8

J'ai lu que certains types¹ de paquets ICMP peuvent être dangereux. Des questions:

  • Lesquels et pourquoi?
  • Comment dois-je disposer un ensemble de règles iptables pour gérer chaque type de paquet ICMP?
  • Dois-je limiter le débit de l'un de ces types de paquets ICMP? Et comment?

[¹] Les types que j'ai lus: Redirection (5), Horodatage (13) et Demande de masque d'adresse (17). Veuillez ne pas tenir compte uniquement de ces éléments dans votre réponse.

En savoir plus
C'est un serveur Web sur un VPS avec Ubuntu Server.

L'objectif
que j'essaie de rendre le système plus sûr, d'atténuer le risque de certaines attaques D / DoS et d'abus en général.

Connexes
est mon linux pare - feu sécurisé?
Pourquoi ne pas bloquer ICMP?

ML--
la source

Réponses:

10

Il semble que vous soyez victime du mantra "ICMP IS EVIL".
ICMP n'est PAS mauvais, simplement mal compris. La triste réalité est que de nombreux administrateurs craignent ce qu'ils ne comprennent pas, et ils rejettent donc ICMP de leur univers réseau, le fuyant au niveau du pare-feu de bord et l'empêchant de prendre sa place juste et appropriée au profit de leur réseau.

Cela dit, permettez-moi de répondre à vos questions:


Quels types de messages ICMP peuvent être dangereux et pourquoi?
Presque tous.

  • Echoles paquets peuvent être utilisés pour interrompre les services (en particulier pour les systèmes avec des piles IP mal implémentées); Utilisés légitimement, ils peuvent fournir des informations sur votre réseau.

  • Destination Unreachablepeut être injecté par malveillance; Utilisés légitimement, ils peuvent fournir des informations sur * votre pare-feu / structure de routage, ou sur une machine spécifique sur votre réseau.

  • Source Quench peut être envoyé par malveillance pour que votre serveur soit effectivement assis dans un coin et suce son pouce.

  • redirect peut être utilisé comme son nom l'indique.

  • router advertisementet les router solicitationrequêtes peuvent être utilisées pour créer des topologies de trafic "intéressantes" (et faciliter les attaques MITM) si vos hôtes y prêtent réellement attention.

  • tracerouteest conçu pour fournir des informations sur la topologie du réseau.

…etc...

Les noms des différents messages ICMP détaillent à peu près ce qu'ils sont capables de faire. Exercez votre paranoïa innée en imaginant des scénarios de cauchemar :-)


Comment dois-je disposer un ensemble de règles iptables pour gérer chaque type de paquet ICMP?
En l'absence d'une bonne raison de jouer avec le trafic ICMP, laissez-le tranquille!
Le détournement du trafic ICMP empêche l'utilisation appropriée des messages ICMP (gestion du trafic et dépannage) - ce sera plus frustrant qu'utile.


Dois-je limiter le débit de l'un de ces types de paquets ICMP? Et comment?
Il s'agit peut-être de la seule exception légitime à la philosophie du «laissez-le tranquille» - les messages ICMP limitant le débit ou la bande passante peuvent être utiles pour vous aider à éviter les utilisations illégitimes des messages ICMP. FreeBSD est livré avec ICMP Bande passante / Limitation de débit par défaut, et je suppose que Linux a des fonctionnalités similaires.

La limitation du débit / de la bande passante est de loin préférable à une règle de pare-feu général supprimant le trafic ICMP: elle permet toujours à ICMP de remplir sa fonction sur le réseau, et atténue également partiellement les tentatives d'utilisation abusive de votre serveur.


Ce qui précède représente les opinions d'un administrateur système, qui pour sa part est FREAKIN 'TIRED OF HAVING TO TROUBLESHOOT NETWORKS WHERE ALL ICMP TRAFFIC DROPPED - C'est ennuyeux, frustrant, et cela prend plus de temps pour trouver et résoudre les problèmes. :-)

voretaq7
la source
Mais .. mais .. le Ping of Death est à craindre, à des niveaux irrationnels! (est-ce mauvais que je sache qui a écrit cette réponse après le premier paragraphe?)
Shane Madden
En effet, ICMP est utile. Si j'ai été victime de "ICMP is evil", je préfère tout bloquer et ne pas ouvrir cette question :) Tout ce que je veux, c'est de l'aide pour prendre une décision éclairée. Vous pouvez être sûr que je ne vais pas tous les bloquer :)
ML--
@Shane Madden: va --state INVALIDlaisser tomber Ping of Death?
ML--
7
@ ML-- Ne vous inquiétez pas du ping de la mort. Aucun OS de ce millénaire n'est vulnérable.
Shane Madden
2
@ ML-- Le seul vecteur qui m'inquiéterait est Source Quench, et vous pouvez bloquer cela avec une impunité relative (TCP finira par le comprendre par lui-même). Ping & Traceroute sont certainement des fuites d'informations, mais dans la pratique, je ne pense pas que cela ajoute trop de sécurité à votre environnement. Votre kilométrage (et le niveau de paranoïa requis) peut varier (en fonction de la sensibilité de vos données / environnement).
voretaq7
4

Il ne s'agit pas autant de types que de vecteurs d'attaque possibles. Il y a eu un vecteur d'attaque DoS assez efficace utilisant le paquet de désactivation de source ICMP dans de nombreuses piles TCP / IP de l'hôte Internet commun pendant des années - et pourtant cela ne signifie pas que les messages ICMP de désactivation de source doivent être filtrés en général. Comme pour tout ce qui concerne la sécurité du réseau, pesez les avantages d'un certain protocole ou service par rapport à la surface d'attaque possible en fonction de vos priorités personnelles . Si vous avez des hôtes dans vos réseaux qui sont sensibles à un vecteur d'attaque via ICMP, vous ne pouvez pas les corriger et vous n'avez pas besoin des fonctionnalités spécifiques, vous devriez certainement envisager de les filtrer.

Pour mes réseaux v4 administrés, j'ai trouvé à la fois sûr et pratique d'autoriser les types ICMP 0, 8 (demande / réponse d'écho), 11 (TTL expiré), 3 (destination inaccessible) et 12 (erreur d'en-tête IP) et de supprimer tout le reste.

le-wabbit
la source