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