Comment activer ou désactiver (bloquer) le ping sous Linux ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à activer ou désactiver le ping (IPv4 ou IPv6) sous Linux, que ce soit de façon temporaire ou permanente ! Cette méthode fonctionne aussi bien sur Debian, qu'Ubuntu, Kali Linux, Rocky Linux, etc...
Pour des raisons de sécurité, il est souvent conseillé sous Linux (comme sur les autres OS), de désactiver le ping. Cela permet entre autre de se prémunir contre les scans réseaux, dont les plus basiques sont souvent effectués avec un ping successif de toutes les adresse IP d'une plage donnée.
Note : bien que cela soit intéressant au niveau de la sécurité, la désactivation du ping peut poser des problèmes au niveau de la gestion quotidienne des serveurs lors de laquelle on utilise souvent le ping pour diagnostiquer des problèmes réseaux.
Il est à noter que la désactivation du ping n’entraîne pas une incapacité de la machine à émettre des pings mais va faire en sorte que la machine ne répondra plus au "echo request" (ping des autres machines) qui lui sont destinées.
Version originale de l'article : 26/05/2014
II. Activer ou désactiver le ping temporairement sous Linux
Pour désactiver le ping, il faut passer par la modification des paramètres système de la machine. Nous allons voir à présent comment modifier ce paramétrage de façon temporaire, c'est à dire jusqu'au prochain redémarrage de la machine.
Pour désactiver le ping IPv4 , il faut saisir la commande suivante :
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
Pour réactiver le ping IPv4 :
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
L'effet est immédiat. Vous l'aurez compris, c'est en indiquant "0" ou "1" que l'on peut activer ou désactiver le ping de façon temporaire.
III. Activer ou désactiver le ping de façon permanente sous Linux
Pour que le changement s'effectue de façon permanente, il faut aller dans le fichier "/etc/sysctl.conf" qui est le fichier de configuration de sysctl, permettant d'agir directement sur la configuration du noyau Linux de la machine.
sudo nano /etc/sysctl.conf
A la fin du fichier, vous devez ajouter cette ligne :
net.ipv4.conf.icmp_echo_ignore_all = 1
Ce qui donne :
Une fois la modification effectuée, il faut recharger "sysctl" pour que la nouvelle configuration soit effective. Cette opération s'effectue avec la commande suivante :
sudo sysctl -p
Bien sûr pour faire l'opération inverse, il faudra remettre ce paramètre à 0 et réexécuter la commande ci-dessus.
Pour consulter la valeur de cette option sous ouvrir le fichier, vous pouvez utiliser cette commande :
sysctl net.ipv4.icmp_echo_ignore_all
Le meilleur moyen de tester étant d'effectuer un ping avant et après avoir effectué la modification. L'exemple ci-dessous met bien en évidence que la machine distante ne répond plus au ping :
IV. Conclusion
Voilà, grâce à ces quelques commandes, vous êtes capable de désactiver (ou d'activer) le ping sur votre machine Linux ! Une autre approche consisterait à ne pas toucher à ce paramétrage et à bloquer les flux ICMP directement dans le pare-feu local du système (via iptables, par exemple).
Remarque : pour désactiver/activer le ping IPv6, il suffit d'utiliser les mêmes commandes mais en indiquant "ipv6" dans le chemin ou les noms de paramètres à la place de "ipv4".