GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel sur le pare-feu Linux :Tables IPTables, chaînes, principes de base des règles

Le pare-feu iptables est utilisé pour gérer le filtrage de paquets et les règles NAT. IPTables est livré avec toutes les distributions Linux. Comprendre comment installer et configurer iptables vous aidera à gérer efficacement votre pare-feu Linux.

L'outil iptables est utilisé pour gérer les règles du pare-feu Linux. À première vue, iptables peut sembler complexe (voire déroutant). Mais, une fois que vous aurez compris les bases du fonctionnement et de la structure d'iptables, il sera facile de lire et d'écrire les règles de pare-feu d'iptables.

Cet article fait partie d'une série de tutoriels iptables en cours. Ceci est le 1er article de cette série.

Cet article explique comment iptables est structuré et explique les principes fondamentaux des tables, des chaînes et des règles iptables.

À un niveau élevé, iptables peut contenir plusieurs tables. Les tables peuvent contenir plusieurs chaînes. Les chaînes peuvent être intégrées ou définies par l'utilisateur. Les chaînes peuvent contenir plusieurs règles. Des règles sont définies pour les paquets.

Ainsi, la structure est :iptables -> Tables -> Chaînes -> Règles. Ceci est défini dans le schéma suivant.


Fig  :Table, chaîne et structure de règles IPTables

Juste pour réitérer, les tables sont des tas de chaînes, et les chaînes sont des tas de règles de pare-feu.

Je. TABLES et CHAÎNES IPTABLES

IPTables a les 4 tables intégrées suivantes.

1. Tableau de filtrage

Le filtre est la table par défaut pour iptables. Donc, si vous ne définissez pas votre propre table, vous utiliserez une table de filtrage. La table de filtrage d'Iptables comporte les chaînes intégrées suivantes.

  • Chaîne INPUT – Entrant vers le pare-feu. Pour les paquets arrivant sur le serveur local.
  • Chaîne OUTPUT - Sortant du pare-feu. Pour les paquets générés localement et sortant du serveur local.
  • Chaîne FORWARD - Paquet pour une autre carte réseau sur le serveur local. Pour les paquets acheminés via le serveur local.

2. Tableau NAT

La table NAT d'Iptable possède les chaînes intégrées suivantes.

  • Chaîne PREROUTING - Modifie les paquets avant le routage. c'est-à-dire que la traduction de paquets se produit immédiatement après que le paquet arrive au système (et avant le routage). Cela aide à traduire l'adresse IP de destination des paquets en quelque chose qui correspond au routage sur le serveur local. Ceci est utilisé pour le DNAT (NAT de destination).
  • Chaîne POSTROUTING – Modifie les paquets après le routage. c'est-à-dire que la traduction de paquets se produit lorsque les paquets quittent le système. Cela aide à traduire l'adresse IP source des paquets en quelque chose qui pourrait correspondre au routage sur le serveur de destination. Ceci est utilisé pour SNAT (source NAT).
  • Chaîne de SORTIE :NAT pour les paquets générés localement sur le pare-feu.

3. Table de mutilation

La table Mangle d'Iptables est destinée à la modification spécialisée des paquets. Cela modifie les bits QOS dans l'en-tête TCP. La table Mangle a les chaînes intégrées suivantes.

  • Chaîne PREROUTING
  • Chaîne de SORTIE
  • Chaîne AVANT
  • Chaîne INPUT
  • Chaîne POSTROUTING

4. Tableau brut

La table Raw d'Iptable est destinée aux exceptions de configuration. La table brute a les chaînes intégrées suivantes.

  • Chaîne PREROUTING
  • Chaîne de SORTIE

Le diagramme suivant montre les trois tables importantes dans iptables.

Fig :Tables intégrées IPTables

II. RÈGLES IPTABLES

Voici les points clés à retenir pour les règles iptables.

  • Les règles contiennent un critère et une cible.
  • Si les critères correspondent, il passe aux règles spécifiées dans la cible (ou) exécute les valeurs spéciales mentionnées dans la cible.
  • Si le critère ne correspond pas, il passe à la règle suivante.

Valeurs cibles

Voici les valeurs spéciales possibles que vous pouvez spécifier dans la cible.

  • ACCEPTER – Le pare-feu acceptera le paquet.
  • DROP :le pare-feu supprimera le paquet.
  • FILE D'ATTENTE :le pare-feu transmettra le paquet à l'espace utilisateur.
  • RETURN - Le pare-feu arrêtera d'exécuter le prochain ensemble de règles dans la chaîne actuelle pour ce paquet. Le contrôle sera rendu à la chaîne appelante.

Si vous faites iptables –list (ou) service iptables status, vous verrez toutes les règles de pare-feu disponibles sur votre système. L'exemple iptable suivant montre qu'aucune règle de pare-feu n'est définie sur ce système. Comme vous le voyez, il affiche la table d'entrée par défaut, avec la chaîne d'entrée, la chaîne avant et la chaîne de sortie par défaut.

# iptables -t filter --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Procédez comme suit pour afficher la table mangle.

# iptables -t mangle --list

Procédez comme suit pour afficher la table nat.

# iptables -t nat --list

Procédez comme suit pour afficher le tableau brut.

# iptables -t raw --list

Remarque :Si vous ne spécifiez pas l'option -t, la table de filtrage par défaut s'affichera. Ainsi, les deux commandes suivantes sont identiques.

# iptables -t filter --list
(or)
# iptables --list

L'exemple iptable suivant montre que certaines règles sont définies dans la chaîne d'entrée, de transfert et de sortie de la table de filtrage.

# iptables --list
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255
3    ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0
5    ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353
6    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:631
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:631
8    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
10   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Les règles de la sortie de la commande iptables –list contiennent les champs suivants :

  • num - Numéro de règle dans la chaîne particulière
  • target – Variable cible spéciale dont nous avons parlé plus haut
  • prot – Protocoles. tcp, udp, icmp, etc.
  • opt - Options spéciales pour cette règle spécifique.
  • source - Adresse IP source du paquet
  • destination – Adresse IP de destination du paquet

Linux
  1. Comment bloquer les adresses usurpées locales à l'aide du pare-feu Linux

  2. Comment ajouter des règles iptables personnalisées dans le pare-feu CSF

  3. Comment consigner les paquets rejetés par le pare-feu Linux IPTables dans un fichier journal

  4. Comment vérifier si iptables est en cours d'exécution ou si le pare-feu est activé

  5. Comment gérez-vous votre configuration Linux iptables sur une machine faisant office de routeur ?

Comment configurer le pare-feu iptables sous Linux

50 règles IPtables utiles et simples pour l'administrateur Linux

Tutoriel Iptables pour débutants - Concepts clés

Comment sécuriser un pare-feu Linux avec les règles IPTables

Top 5 des meilleurs pare-feu Linux

Comment configurer un pare-feu sur votre serveur Linux