Ping est un utilitaire d'administration réseau utilisé pour tester la disponibilité d'un système sur un réseau IP. Ping est également utilisé pour tester la qualité de la connexion réseau en surveillant le temps d'aller-retour et les pertes de paquets.
D'autre part, les intrus et les pirates du réseau utilisent également le ping pour identifier les sous-réseaux du réseau afin de trouver des hôtes potentiels ou pour effectuer des attaques par inondation ICMP. Par conséquent, il est recommandé de bloquer les requêtes ping vers vos serveurs pour empêcher tout type d'attaque.
Ici à LinuxAPT, dans le cadre de nos Server Management Services , nous aidons régulièrement nos clients à effectuer des tâches liées à Linux.
Dans ce contexte, nous verrons comment bloquer les requêtes ping vers Linux Server.
Comment bloquer/débloquer les requêtes ping vers le serveur Linux ?
Ici, nous travaillons avec Ubuntu 20.04 LTS avec un utilisateur avec des privilèges sudo.
Ping fonctionne en envoyant un paquet ICMP (requête d'écho) au système de destination, puis reçoit un paquet ICMP de réponse (réponse d'écho). Sous Linux, la commande ping continue d'envoyer des paquets ICMP jusqu'à ce que vous l'arrêtiez en utilisant Ctrl+C.
Afin de bloquer les requêtes ping, vous devrez ignorer/bloquer les requêtes d'écho ICMP qui sont envoyées à votre serveur.
Vous pouvez bloquer/débloquer les requêtes d'écho ICMP vers le serveur Linux de deux manières.
je. Via les paramètres du noyau.
ii. Via iptables.
Commençons maintenant.
Comment bloquer/débloquer les requêtes ping via les paramètres du noyau ?
Grâce aux paramètres du noyau, vous pouvez bloquer les requêtes ping de manière temporaire ou permanente. Les paramètres du noyau peuvent être modifiés via la commande sysctl, le répertoire /sys/proc et le fichier /etc/sysctl.conf.
Comment bloquer/débloquer temporairement les requêtes ping ?
La commande sysctl sous Linux est utilisée pour lire et écrire les paramètres du noyau dans le répertoire /proc/sys. En utilisant cette commande, nous pouvons configurer les paramètres du noyau pour bloquer/débloquer les requêtes ping. Le paramètre du noyau net.ipv4.icmp_echo_ignore_all contrôle si le système doit répondre à la requête d'écho ICMP. La valeur par défaut de celui-ci est '0' ce qui signifie répondre à la requête ICMP.
Pour bloquer la demande de ping à l'aide de la commande sysctl :
Pour bloquer la requête ping, lancez la commande suivante dans Terminal :
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1
Cette commande définit le paramètre du noyau sur '1', ce qui signifie ignorer toutes les requêtes ICMP.
Désormais, toutes les requêtes ping adressées à votre système seront bloquées et l'expéditeur ne recevra aucune réponse.
Pour débloquer la commande sysctl de demande de ping :
Pour débloquer les requêtes ping, exécutez à nouveau la même commande en changeant la valeur du paramètre par défaut '0' :
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=0
Vous pouvez également bloquer les requêtes ping en modifiant la valeur du paramètre du noyau dans le répertoire /proc/sys à l'aide de la commande echo.
Cependant, pour utiliser cette méthode, vous devrez exécuter la commande en tant que root.
Lancez ensuite la commande suivante dans Terminal :
$ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Pour débloquer les requêtes ping, la commande serait :
$ echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Comment bloquer définitivement les requêtes ping ?
Les paramètres du noyau peuvent également être modifiés via le fichier /etc/sysctl.conf. Ce fichier vous permettra de bloquer définitivement les requêtes ping vers votre serveur.
Pour bloquer la demande de ping via le fichier sysctl.conf :
je. Afin de bloquer la demande de ping sur votre système, modifiez le fichier /etc/sysctl.conf :
$ sudo nano /etc/sysctl.conf
ii. Ajoutez ensuite la ligne suivante dans le fichier :
net.ipv4.icmp_echo_ignore_all = 1
iii. Enregistrez et fermez le fichier.
iv. Lancez ensuite la commande suivante dans Terminal pour appliquer cette configuration sans redémarrage :
$ sysctl -p
Pour débloquer la requête Ping via le fichier sysctl.conf :
je. Pour débloquer les requêtes ping, modifiez le fichier /etc/sysctl.conf :
$ sudo nano /etc/sysctl.conf
ii. Modifiez ensuite la valeur de net.ipv4.icmp_echo_ignore_all à '0' :
net.ipv4.icmp_echo_ignore_all = 0
iii. Enregistrez et fermez le fichier.
iv. Lancez ensuite la commande suivante dans Terminal pour appliquer cette configuration sans redémarrage :
$ sysctl -p
Comment bloquer/débloquer les requêtes ping à l'aide d'iptables ?
Iptables est un utilitaire de pare-feu sous Linux qui contrôle le trafic entrant et sortant en fonction de certaines règles. Il est préinstallé dans le système Ubuntu. Au cas où il manquerait au système, vous pouvez l'installer en utilisant la commande suivante dans Terminal :
$ sudo apt install iptables
Pour bloquer la demande de ping à l'aide d'iptables :
je. Pour bloquer les requêtes ping vers votre système, tapez la commande suivante dans Terminal :
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j REJECT
Où le drapeau A est utilisé pour ajouter une règle dans iptables et icmp-type 8 est le numéro de type ICMP utilisé pour la demande d'écho.
La commande ci-dessus ajoutera une règle dans le pare-feu qui bloquera toutes les requêtes ping entrantes sur votre système. En ajoutant cette règle, toute personne envoyant la requête ping à votre système verra le message "Destination Port Unreachable".
ii. Si vous ne souhaitez pas que ce message apparaisse, utilisez la commande suivante en remplaçant REJECT par DROP :
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j DROP
Désormais, toute personne envoyant la requête ping à votre système.
Pour débloquer la requête Ping à l'aide d'iptables :
je. Afin de débloquer les requêtes ping vers votre serveur, tapez la commande suivante dans Terminal :
$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j REJECT
Où le drapeau D est utilisé pour supprimer une règle dans iptables et icmp-type 8 est le numéro de type ICMP utilisé pour une requête d'écho.
ii. Afin de rendre ces règles persistantes après un redémarrage du système, vous aurez besoin du package iptables-persistent. Exécutez la commande ci-dessous dans Terminal pour installer iptables-persistent :
$ sudo apt install iptables-persistent
Il vous sera demandé de confirmer si vous souhaitez poursuivre l'installation ou non. Appuyez sur y pour continuer, après quoi le système démarrera l'installation et une fois terminé, il sera prêt à l'emploi.
Après avoir ajouté ou supprimé une règle, exécutez les commandes suivantes dans Terminal pour les faire survivre au redémarrage du système.
$ sudo netfilter-persistent save
$ sudo netfilter-persistent reload
Pour afficher toutes les règles ajoutées à vos iptables, lancez la commande suivante dans Terminal :
$ sudo iptables -L