Comment utiliser les tables IP pour bloquer ICMP

Comment utiliser les tables IP pour bloquer ICMP

Le protocole de message de contrôle Internet, également connu sous le nom d'ICMP, est un protocole utilisé pour vérifier la connectivité des hôtes dans un réseau. Nous pouvons également utiliser ce protocole pour diagnostiquer les problèmes d'un réseau. Mais d'un point de vue de sécurité, il peut également être utilisé par quelqu'un pour effectuer une attaque DDOS. Une inondation de ping ou une attaque de déni de service distribué (DDOS) est une forme d'attaque dans laquelle quelqu'un envoie beaucoup de demandes de ping à un hôte et l'hôte devient presque inaccessible au trafic de routine. Pour éviter ce type de situation, les administrateurs de réseau bloquent généralement l'ICMP sur leur réseau. Dans cet article, nous découvrirons comment les tables IP peuvent être utilisées pour bloquer ICMP sur notre serveur.

Quelles sont les tables IP?

IP Tables est un programme d'utilité de pare-feu pour les systèmes d'exploitation Linux. Il peut être utilisé pour accepter, refuser ou retourner le trafic réseau vers ou depuis une source. Il observe le trafic réseau à venir en utilisant différents ensembles de règles définies dans un tableau. Ces ensembles de règles sont appelés chaînes. Les tables IP observent des paquets de données et quels paquets correspondent aux règles qui sont dirigés vers une autre chaîne ou attribués l'une des valeurs suivantes.

  • ACCEPTÉ: Le paquet sera autorisé à passer
  • GOUTTE: Le paquet ne sera pas autorisé à passer
  • RETOUR: La chaîne rendra le paquet à la chaîne précédente.

Installation de tables IP

Pour la plupart des distributions Linux, les tables IP sont préinstallées. Vous pouvez vérifier si les tables IP sont installées ou non en tapant la commande suivante dans le terminal.

ubuntu @ ubuntu: ~ $ iptables --version

Si les tables IP ne sont pas installées, vous pouvez les installer en exécutant la commande suivante dans le terminal.

ubuntu @ ubuntu: ~ $ sudo apt-get update
ubuntu @ ubuntu: ~ $ sudo apt-get install iptables

Nous pouvons vérifier l'état par défaut des tables IP en exécutant la commande suivante dans le terminal.

ubuntu @ ubuntu: ~ $ sudo iptables -l -v

Le drapeau '-l' répertorie toutes les règles, et l'indicateur '-v' affiche des informations détaillées.

Alternativement, nous pouvons également énumérer toutes les règles ajoutées aux tables IP par l'exécution de la commande suivante dans le terminal.

ubuntu @ ubuntu: ~ $ sudo iptables -s

Par défaut, toutes les chaînes acceptent les paquets et ces chaînes n'ont aucune règle attribuée.

Attribuer des règles aux chaînes

Initialement, aucune règle n'est attribuée à aucune chaîne, et ils acceptent tous le trafic réseau. Maintenant dans cette section, nous verrons comment nous pouvons définir des règles personnalisées pour bloquer ou permettre le trafic réseau. Afin de définir une nouvelle règle, nous utilisons le drapeau «A» (APPEND), qui indique aux tables IP qu'une nouvelle règle va être définie. Les options suivantes sont également utilisées avec le drapeau «A» pour décrire la règle.

-je (Interface): Cette option indique quelle interface vous souhaitez que votre trafic réseau soit autorisé ou bloqué. Vous pouvez obtenir une liste de toutes les interfaces sur votre système en exécutant la commande suivante dans le terminal.

ubuntu @ ubuntu: ~ $ ifconfig

-p (Protocole): Cette option définit le protocole que vous souhaitez filtrer à l'aide de tables IP. Cela peut être TCP, UDP, ICMP, ICMPV6, etc. Vous pouvez appliquer des règles à tous les protocoles en utilisant toutes les options.

-s (Source): Cette option affiche la source du trafic réseau comme l'adresse IP ou le nom de domaine.

-dport (Port de destination): Cette option est utilisée pour indiquer le port de destination pour le trafic réseau.

-J (cible): cette option est utilisée pour afficher la cible. Il peut être accepté, abandonner, rejeter ou retourner. Cette option est obligatoire pour chaque règle.

En général, la syntaxe de base pour l'ajout d'une règle sera la suivante:

ubuntu @ ubuntu: ~ $ sudo iptables -a -i -j
-p -dport -s

Bloquer ICMP à l'aide de tables IP

Jusqu'à présent, nous avons une compréhension de base des tables IP et de leur utilisation pour permettre ou bloquer le trafic sur des ports spécifiques via des interfaces spécifiques. Maintenant, nous utiliserons des tables IP pour bloquer ICMP sur notre serveur.

La commande suivante ajoutera une règle pour bloquer ICMP sur votre machine:

ubuntu @ ubuntu: ~ $ sudo iptables -a entrée -j rejet -p icmp --icmp-type echo-request

Après avoir exécuté la commande ci-dessus, vérifiez maintenant l'état des tables IP.

ubuntu @ ubuntu: ~ $ sudo iptables -l -v

Nous pouvons voir qu'une règle a été ajoutée à la chaîne d'entrée, ce qui montre que tout le trafic ICMP sera rejeté. Maintenant, si nous cinglons notre système à partir d'un autre système du même réseau, il rejetera la demande. Nous pouvons voir le résultat en faisant une demande de ping du localhost

ubuntu @ ubuntu: ~ $ ping 127.0.0.1

Nous pouvons voir que nous recevons des messages de rejet du système si nous essayons de faire une demande de ping.

Alternativement, les deux commandes suivantes peuvent être utilisées pour ajouter des règles pour bloquer ICMP sur notre serveur.

ubuntu @ ubuntu: ~ $ sudo iptables -a entrée -p icmp -j drop --icmp-type echo request
ubuntu @ ubuntu: ~ $ sudo iptables -a sortie -p icmp -j drop --icmp-type echo reply

Après avoir ajouté ces deux règles, vérifiez maintenant l'état des tables IP.

ubuntu @ ubuntu: ~ $ sudo iptables -l -v

Nous pouvons voir que la commande ci-dessus a ajouté deux règles, une à la chaîne d'entrée et l'autre à la chaîne de sortie.

La différence entre la chute et le rejet est que lorsque nous utilisons Reject, il nous montre un avertissement (port de destination inaccessible) lorsque nous ping. D'un autre côté, lorsque nous utilisons une goutte, il laisse simplement tomber la sortie. L'entrée n'est pas rejetée, elle est traitée, mais la sortie n'est pas affichée comme indiqué ci-dessous

Conclusion

Les pirates adoptent différentes méthodes pour effectuer des attaques de déni de service distribué (DDOS) aux serveurs. Ping Flood est également une forme d'attaque DDOS. Les pirates envoient autant de demandes de ping au serveur que le serveur utilise toute sa puissance de calcul pour traiter les demandes de ping et n'effectue pas son traitement réel. Dans ce scénario ou plusieurs autres scénarios, vous devrez peut-être bloquer ICMP sur votre serveur.

Dans cet article, nous avons appris différentes façons de bloquer l'ICMP à l'aide de tables IP. Nous avons discuté de la façon dont nous pouvons ajouter différentes règles pour bloquer ICMP sur notre serveur. De la même manière, nous pouvons utiliser des tables IP pour bloquer tout type de trafic sur n'importe quel port utilisant des tables IP.