1.10. Gestion des requêtes ICMP
Le protocole Internet Control Message Protocol
(ICMP
) est un protocole de support utilisé par divers dispositifs de réseau pour envoyer des messages d'erreur et des informations opérationnelles indiquant un problème de connexion, par exemple, qu'un service demandé n'est pas disponible. ICMP
diffère des protocoles de transport tels que TCP et UDP parce qu'il n'est pas utilisé pour échanger des données entre systèmes.
Malheureusement, il est possible d'utiliser les messages ICMP
, en particulier echo-request
et echo-reply
, pour révéler des informations sur votre réseau et les utiliser à des fins frauduleuses. C'est pourquoi firewalld
permet de bloquer les requêtes ICMP
afin de protéger les informations de votre réseau.
1.10.1. Liste et blocage des requêtes ICMP
Listing ICMP
requêtes
Les demandes ICMP
sont décrites dans des fichiers XML individuels qui se trouvent dans le répertoire /usr/lib/firewalld/icmptypes/
. Vous pouvez lire ces fichiers pour obtenir une description de la demande. La commande firewall-cmd
contrôle la manipulation des demandes ICMP
.
Pour dresser la liste de tous les types de
ICMP
disponibles :#
firewall-cmd --get-icmptypes
La requête
ICMP
peut être utilisée par IPv4, IPv6 ou par les deux protocoles. Pour savoir pour quel protocole la requêteICMP
a été utilisée :#
firewall-cmd --info-icmptype=<icmptype>
L'état d'une demande
ICMP
indiqueyes
si la demande est actuellement bloquée ouno
si elle ne l'est pas. Pour savoir si une demandeICMP
est actuellement bloquée :#
firewall-cmd --query-icmp-block=<icmptype>
Blocage ou déblocage des demandes ICMP
Lorsque votre serveur bloque les requêtes ICMP
, il ne fournit pas les informations qu'il devrait normalement fournir. Toutefois, cela ne signifie pas qu'aucune information n'est fournie. Les clients sont informés que la requête ICMP
est bloquée (rejetée). Le blocage des requêtes ICMP
doit être envisagé avec prudence, car il peut entraîner des problèmes de communication, en particulier avec le trafic IPv6.
Pour savoir si une demande
ICMP
est actuellement bloquée :#
firewall-cmd --query-icmp-block=<icmptype>
Pour bloquer une demande
ICMP
:#
firewall-cmd --add-icmp-block=<icmptype>
Pour supprimer le blocage d'une demande
ICMP
:#
firewall-cmd --remove-icmp-block=<icmptype>
Blocage des demandes ICMP
sans fournir la moindre information
Normalement, si vous bloquez les requêtes ICMP
, les clients savent que vous les bloquez. Ainsi, un attaquant potentiel qui recherche des adresses IP en direct peut toujours voir que votre adresse IP est en ligne. Pour masquer complètement cette information, vous devez supprimer toutes les requêtes ICMP
.
-
Bloquer et abandonner toutes les demandes de
ICMP
: Réglez l'objectif de votre zone sur
DROP
:#
firewall-cmd --permanent --set-target=DROP
Désormais, tout le trafic, y compris les requêtes ICMP
, est supprimé, à l'exception du trafic que vous avez explicitement autorisé.
Pour bloquer et abandonner certaines demandes ICMP
et en autoriser d'autres :
Réglez l'objectif de votre zone sur
DROP
:#
firewall-cmd --permanent --set-target=DROP
Ajoutez l'inversion de bloc ICMP pour bloquer toutes les demandes
ICMP
en même temps :#
firewall-cmd --add-icmp-block-inversion
Ajoutez le bloc ICMP pour les requêtes
ICMP
que vous souhaitez autoriser :#
firewall-cmd --add-icmp-block=<icmptype>
Les nouveaux paramètres doivent être conservés :
#
firewall-cmd --runtime-to-permanent
La commande block inversion inverse les paramètres de blocage des demandes de ICMP
, de sorte que toutes les demandes qui n'étaient pas bloquées auparavant sont bloquées en raison du changement de la cible de votre zone à DROP
. Les demandes qui étaient bloquées ne sont pas bloquées. Cela signifie que si vous souhaitez débloquer une requête, vous devez utiliser la commande de blocage.
Pour rétablir l'inversion de bloc à un niveau totalement permissif :
Réglez l'objectif de votre zone sur
default
ouACCEPT
:#
firewall-cmd --permanent --set-target=default
Supprimer tous les blocs ajoutés pour les demandes
ICMP
:#
firewall-cmd --remove-icmp-block=<icmptype>
Retirer le bloc d'inversion
ICMP
:#
firewall-cmd --remove-icmp-block-inversion
Les nouveaux paramètres doivent être conservés :
#
firewall-cmd --runtime-to-permanent
1.10.2. Configuration du filtre ICMP à l'aide de l'interface graphique
-
Pour activer ou désactiver un filtre
ICMP
, démarrez l'outil firewall-config et sélectionnez la zone du réseau dont les messages doivent être filtrés. Sélectionnez l'ongletICMP Filter
et cochez la case correspondant à chaque type de messageICMP
que vous souhaitez filtrer. Décochez la case pour désactiver un filtre. Ce réglage s'effectue par direction et la valeur par défaut autorise tout. -
Pour activer l'inversion de
ICMP Filter
, cliquez sur la case à cocherInvert Filter
à droite. Seuls les typesICMP
marqués sont désormais acceptés, tous les autres sont rejetés. Dans une zone utilisant la cible DROP, ils sont abandonnés.