Comment utiliser les commandes Iptables Netfilter sous Linux

Table des matières

La sécurité doit toujours être l'un des prémisses sur lesquelles les administrateurs, le personnel de gestion et de support et, en général, tous les utilisateurs de tout système d'exploitation actuel doivent travailler en raison des multiples menaces présentes sur le réseau.

Dans le cas des distributions Linux, la plupart d'entre elles disposent des outils avancés pour appliquer un filtre aux paquets réseau tant au niveau du traitement de contrôle des paquets réseau qu'en entrée, mouvement, contrôle et sortie des réseaux au sein du noyau du système utilisé , par conséquent, à partir du noyau 2.4, les iptables ont été introduits, qui sont également appelés netfilter et ceux-ci ont un niveau de sécurité plus élevé et des fonctionnalités pratiques pour la protection du système.

iptables gère le filtrage IPv4 tandis que ip6tables gère le filtrage IPv6 sur les réseaux actuels.
Solvetic analysera le fonctionnement d'iptables et certaines des commandes les plus pratiques que nous pouvons en tirer.

1. Filtrage de paquets sous Linux


Le noyau des distributions Linux utilise l'outil Netfilter pour effectuer le processus de filtrage des paquets, et ainsi effectuer les tâches de réception ou d'arrêt.

Règles intégrées à NetfilterNetfilter est incorporé par défaut dans le noyau Linux et possède trois tables ou listes de règles intégrées comme ceci :

  • filter : Fait référence à la table par défaut conçue pour la gestion des paquets.
  • nat : Sa fonction est de modifier les paquets qui ont été créés dans une nouvelle connexion utilisée principalement par NAT.
  • mangle : son utilisation s'applique lorsque des paquets réseau spécifiques doivent être modifiés.

Maintenant, chaque table a un groupe de chaînes intégrées qui sont liées aux actions qui peuvent être effectuées par netfilter, ce sont :

Règles pour les tables de filtrageLes chaînes intégrées pour la table de filtrage sont :

  • ENTRÉE : Elle est liée aux paquets qui ont été destinés à l'hôte.
  • SORTIE : Cela fonctionne sur les paquets réseau qui ont été générés localement.
  • FORWARD : associe les paquets qui ont été acheminés via l'hôte principal.

Règles pour les tables natLes chaînes intégrées pour la table nat sont :

  • PREROUTING : Sa fonction est de modifier les paquets réseau dès leur arrivée.
  • SORTIE : Il a été conçu pour modifier les paquets réseau créés localement et est activé avant leur envoi.
  • POSTROUTING : créé pour modifier les packages avant d'être envoyés dans le monde entier.

Règles pour les planches de mangroveLes chaînes intégrées pour la table de mangrove sont :

  • INPUT : Conçu pour modifier les paquets réseau destinés à l'hôte principal.
  • SORTIE : créé pour modifier les paquets réseau créés localement et fonctionne avant qu'ils ne soient envoyés.
  • FORWARD : modifie les paquets qui ont été acheminés via l'hôte principal.
  • PREROUTAGE : votre tâche consiste à modifier les paquets entrants avant qu'ils ne soient routés.
  • POSTROUTING : modifie les paquets réseau avant que le processus d'envoi n'ait lieu.

Chaque paquet réseau reçu ou envoyé depuis le système d'exploitation Linux est toujours lié à au moins une table. Maintenant, comprenons certaines des commandes les plus utiles que nous pouvons utiliser avec iptables.

2. Afficher l'état du pare-feu

Étape 1
Pour connaître l'état actuel du pare-feu, nous exécutons la ligne suivante :

 sudo iptables -L -n -v 

AGRANDIR

Étape 2
Là, nous pouvons valider chaque chaîne avec ses niveaux respectifs de packages gérés, les paramètres utilisés dans cette commande sont :

-LAffichez les règles de la liste.

-vGénère des informations détaillées telles que le nom de l'interface, ainsi que les options de règle, ainsi que les compteurs de paquets et d'octets sont également répertoriés, avec le suffixe « K », « M » ou « G » pour les options de 1000, 1 000 000 et 1 000 000 000, respectivement.

-nAffiche l'adresse IP et le port au format numérique.

Étape 3
Si vous le souhaitez, voyez ce résultat avec le nombre de lignes, nous pouvons exécuter ce qui suit :

 iptables -n -L -v --line-numbers 

AGRANDIR

3. Arrêter, redémarrer ou démarrer iptables sous Linux

Étape 1
Les principales commandes pour gérer les tâches iptables au niveau du démarrage ou de l'arrêt sont :

 service iptables arrêter le service iptables démarrer le service iptables redémarrer
Étape 2
Il sera également possible d'utiliser la commande iptables pour arrêter le pare-feu et éliminer toutes les règles comme celle-ci :
 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
Étape 3
Les paramètres définis sont :

-FSupprimez toutes les règles.

-XSupprimer une chaîne.

-ttable_name : sélectionnez la table (nommée nat ou mangle) et supprimez ou supprimez les règles.

-PDéfinissez la stratégie par défaut telle que DROP, REJECT ou ACCEPT.

4. Ajouter de nouvelles règles de pare-feu sous Linux

Étape 1
Une des tâches les plus pratiques d'iptables est de créer certaines règles pour la bonne gestion des paquets, pour insérer une ou plusieurs règles dans la chaîne sélectionnée nous utiliserons la syntaxe suivante où les numéros de ligne doivent d'abord être découverts :

 iptables -L INPUT -n --line-numbers 
Étape 2
par exemple, ajoutons la règle suivante :
 iptables -I INPUT 2 -s 192.168.0.50 -j DROP 
Étape 3
Plus tard, nous verrons les règles en utilisant la commande ci-dessus. Là, nous voyons que la règle créée a été ajoutée à la ligne 3 comme indiqué.

AGRANDIR

5. Supprimer une règle de pare-feu sous Linux

Étape 1
Tout d'abord, nous devons afficher les règles qui sont créées pour déterminer exactement laquelle doit être éliminée, pour obtenir ces informations, nous avons les options suivantes :

 iptables -L INPUT -n --line-numbers iptables -L OUTPUT -n --line-numbers iptables -L OUTPUT -n --line-numbers | moins
Étape 2
Maintenant, pour supprimer la règle 3 créée précédemment, nous allons exécuter ce qui suit :
 iptables -D ENTREE 3 

AGRANDIR

6. Stocker et restaurer les règles iptables sur Linux

Étape 1
Chaque fois que nous modifions les règles iptables, nous devons procéder à l'enregistrement de ces modifications, pour cela il suffit d'exécuter la ligne suivante :

 service iptables sait 
Étape 2
Nous pouvons simplement restaurer les règles que nous avons stockées en exécutant ce qui suit :
 service iptables redémarrer 

7. Définir des règles par défaut sous Linux


Avec iptables, il sera possible d'autoriser ou de refuser les règles par défaut qui doivent être appliquées à l'ensemble du système de la manière suivante.

Étape 1
Pour éliminer tout le trafic, nous exécutons :

 iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Étape 2
Pour supprimer tout le trafic entrant :
 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m state - NOUVEAU, ÉTABLI -j ACCEPT

AGRANDIR

8. Bloquer une adresse IP sous Linux

Avec iptables, il sera possible de bloquer une adresse IP particulière pour l'empêcher d'accéder au système par paquets réseau. Pour cette tâche, nous avons les options suivantes :

 iptables -A INPUT -s 192.168.0.14 -j DROP (IP spécifique) iptables -A INPUT -s 192.168.0.0/24 -j DROP (Plage d'adresses)

9. Bloquer les demandes de port entrantes sur Linux

Étape 1
Une autre tâche de sécurité typique consiste à restreindre l'accès aux paquets via un port spécifique, avec iptables, nous avons les options suivantes :

Bloquer toutes les actionsBloquez toutes les actions pour un port spécifique en exécutant :

 iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP

Bloquer un portBloquer un port pour une adresse IP spécifique :

 iptables -A INPUT -p tcp -s 192.168.0.14 --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp -s 192.168.0.1/24 --dport 80 -j DROP

Bloquer l'adresse IP sortante
Il est possible de bloquer le trafic sortant vers un hôte ou un domaine spécifique, par exemple Solvetic.com, pour cela nous exécutons les opérations suivantes :

 héberger -t vers solvetic.com 

AGRANDIR

Étape 2
Maintenant, avec cette adresse IP, nous procédons au blocage :

 iptables -A SORTIE -d 178.33.118.246 -j DROP 
Étape 3
Il sera également possible de bloquer tout le domaine comme ceci :
 iptables -A SORTIE -p tcp -d www.solvetic.com -j DROP 

10. Autoriser ou non le trafic réseau à l'aide de l'adresse MAC sous Linux

Une autre possibilité à utiliser est de restreindre ou d'autoriser l'utilisation de paquets en fonction de l'adresse MAC du périphérique sélectionné. Pour cela, nous utiliserons l'une des options suivantes :

 iptables -A INPUT -m mac --mac-source 00: 2F: EF: 85: 04: 09 -j DROP (Refuser le trafic de l'adresse MAC sélectionnée) iptables -A INPUT -p tcp --destination-port 22 - m mac --mac-source 00: 2F: EF: 85: 04: 09 -j ACCEPT (Prend en charge les paquets à partir de l'adresse indiquée uniquement par le port 22)

11. Bloquer ou autoriser les requêtes ICMP sous Linux


Le protocole ICMP (Internet Control Message Protocol) est un protocole développé pour gérer les informations liées aux erreurs dans les ordinateurs du réseau local, afin qu'avec ce protocole des requêtes à distance puissent être faites pour vérifier la disponibilité d'une équipe et cela en termes de sécurité peut être délicat .

Étape 1
Nous pouvons exécuter les lignes suivantes pour éviter les requêtes ICMP sous Linux :

 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
Étape 2
Les réponses ping peuvent également être limitées à certains réseaux ou hôtes comme celui-ci :
 iptables -A INPUT -s 192.168.0.1/24 -p icmp --icmp-type echo-request -j ACCEPT 
Étape 3
Nous ne pourrons accepter qu'un type limité de requêtes ICMP comme celle-ci :
 iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPTER iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPTER iptables -A INPUT -p icmp --icmp-type time- dépassé -j ACCEPTER

12. Ouvrir une plage de ports et d'adresses IP sous Linux

Étape 1
Ceci est utile si nous devons activer une plage définie de ports pour effectuer des actions administratives ou d'exécution de programme :

 iptables -A INPUT -m state --state NOUVEAU -m tcp -p tcp --dport 9000: 9020 -j ACCEPT 
Ainsi nous avons ouvert la gamme des ports 9000 à 9020 pour les connexions TCP.

Étape 2
Une autre alternative consiste à activer une plage d'adresses IP en définissant un port spécifique comme celui-ci. Là, nous avons autorisé cette gamme à utiliser le port 80.

 iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.0.70-192.168.0.80 -j ACCEPT 

13. Restreindre le nombre de connexions parallèles à un serveur par IP client sous Linux

Étape 1
On peut utiliser le module connlimit pour définir ces restrictions, par exemple, pour autoriser 5 connexions ssh par client, on rentre ce qui suit :

 iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 5 -j REJECT 

AGRANDIR

Étape 2
Pour restreindre l'accès HTTP à 10 :

 iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP 
Étape 3
Nous avons indiqué ce qui suit :
  • --connlimit-above 5 : Correspond si le nombre de connexions existantes est supérieur à 5.
  • --connlimit-mask 24 : ce sont les hôtes de groupe qui utilisent la longueur du préfixe. Pour IPv4, il doit s'agir d'un nombre compris entre (y compris) 0 et 32.

14. Restreindre le nombre de connexions parallèles à un serveur par IP client sous Linux

Étape 1
NAT (Network Address Translation) est un système permettant de traduire les adresses réseau et ainsi faciliter la navigation. Pour les lister, nous allons exécuter ce qui suit :

 iptables -t nat -L -n -v 

AGRANDIR

Étape 2
Il sera possible de voir ce résultat avec leurs lignes respectives comme ceci :

 iptables -t nat -v -L -n --line-number 

15. Effacer les règles NAT sous Linux


Étape 1
Si nous voulons supprimer les règles NAT établies, nous allons exécuter ce qui suit :
 iptables -t nat -v -L -n --numéro de ligne iptables -t nat -v -L PREROUTING -n --numéro de ligne iptables -t nat -v -L POSTROUTING -n --numéro de ligne
Étape 2
Pour supprimer toutes les règles de "PRÉROUTAGE", nous exécutons la syntaxe suivante :
 iptables -t nat -D PREROUTING {Numéro de règle} 
Étape 3
Pour supprimer toutes les règles "POSTROUTING" nous exécutons :
 iptables -t nat -D POSTROUTING {numéro de règle} 

16. Réinitialiser les compteurs de packages sous Linux


Tout d'abord, nous devons exécuter la commande "iptables -L -n -v", que nous avons vue précédemment, pour lister les compteurs.

Étape 1
Pour effacer ces compteurs, exécutez simplement ce qui suit :

 iptables -Z 
Étape 2
Pour réinitialiser les compteurs d'accès uniquement, nous exécutons :
 iptables -Z ENTRÉE 

17. Valider le pare-feu sous Linux

Étape 1
Tout d'abord, il faut valider si les ports sont ouverts ou non avec la commande suivante :

 netstat -tulpn 

AGRANDIR

Étape 2
Pour valider un port spécifique, nous exécutons :

 netstat -tulpn | grep: 80 

AGRANDIR

Étape 3
Si le port n'est pas ouvert, nous exécutons :

 service httpd démarrer 
Étape 4
Ensuite, nous devons nous assurer qu'iptables a accès via ce port :
 iptables -L ENTRÉE -v -n | grep 80 

18. Autoriser l'accès en boucle avec iptables sous Linux

L'accès en boucle dont l'accès provient de l'IP 127.0.0.1 est important et doit toujours être laissé actif pour les tâches d'administration et de gestion du réseau. Pour l'activer dans iptables, exécutez simplement ce qui suit.

 iptables -A ENTRÉE -i lo -j ACCEPTER iptables -A SORTIE -o lo -j ACCEPTER

19. Définir de nouvelles chaînes iptables sous Linux


Étape 1
Avec iptables, nous avons la possibilité de définir notre propre chaîne et d'y stocker des règles personnalisées. Pour définir une chaîne, nous exécutons les opérations suivantes :
 iptables -N "Nom de la chaîne" 
Étape 2
Ensuite, nous exécutons "iptables -L" pour lister les chaînes iptables :

AGRANDIR

Étape 3
Dans le résultat, nous verrons notre chaîne créée :

AGRANDIR

20. Effacer les chaînes ou règles de pare-feu iptables sous Linux

Pour effectuer cette suppression, nous devons exécuter les opérations suivantes :

 iptables -F 
Comme nous pouvons le voir, iptables est une solution complète pour gérer de manière centralisée divers aspects de la sécurité dans les distributions Linux afin d'améliorer tout ce qui concerne la confidentialité.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave