Option | Paramètre | Paramètre optionnel ? | Explication | Exemple |
-t (table) | "filter", "nat", "mangle" | Oui | Indique sur quelle table nous voulons travailler. Si aucun paramètre n'est fourni, c'est la table filter qui est sélectionnée par défaut. Par la suite, si aucun paramètre "-t" n'est utilisé dans une commande "iptables", c'est que cette commande est destinée à la table filter. | "iptables -t nat ..." permet de travailler sur ta table "NAT". |
-F (Flush) | "filter", "nat", "mangle" | Oui | Supprime toutes les règles d'une chaîne prédéfinie (tel "PREROUTING", "INPUT", "FORWARD", "OUTPUT" et "POSTROUTING"). Si aucun paramètre n'est donné, toutes les chaînes prédéfinies sont supprimés. | "iptables -F" supprime toutes les chaînes prédéfinies de la table "filter". |
-X (eXclude) | [Chaîne utilisateur] | Oui | Supprime une chaîne utilisateur. Si il n'y a aucun paramètre, toutes les chaînes utilisateurs sont supprimées. | "iptables -X perso_3" supprime la chaîne utilisateur "perso_3". |
-P (Policy) | "filter", "nat", "mangle" | Non | Définie la politique (ou cible) par défaut d'une chaîne. Seules les chaînes prédéfinies peuvent avoir un comportement par défaut. Cette cible ne sera appliquée qu'après l'exécution de la dernière règle de la chaîne. | "iptables -P INPUT DROP" supprime par défaut tout les trames dans la chaîne "INPUT". Si aucune règle plus "souple" n'est définie, aucun paquet réseau n'arrivera aux processus utilisateurs de notre machine. C'est efficace comme technique, mais peu fonctionnel. |
-N (New) | [Chaîne utilisateur] | Non | Cette option crée une nouvelle chaîne utilisateur. Par la suite, des règles doivent êtres créées, afin de remplir cette chaîne. Sinon, elle ne sera pas très utile ! | "iptables -N LogAndDrop" crée une chaîne utilisateur dont le nom laisse supposer que l'on va logger les paquets, puis les supprimer. |
-A (Append) | [Chaîne] | Non | Ajoute une règle à une chaîne prédéfinie ou utilisateur. Nous allons utiliser majoritairement cette commande. | "iptables -A INPUT ..." ajoute une règle à la table des paquets entrant dans l'espace des programmes. |
-D (Delete) | [Chaîne] [Numéro de règle] | Non | Supprime une règle dans une chaîne particulière. Le numéro de la règle peut être retrouvé avec la commande "iptables -L" ou "iptables -L -n" | "iptables -D OUTPUT 1 -t mangle" supprime la 1ère règle de la chaîne "OUTPUT" de la table "Mangle". |
-L (Liste) | [Chaîne] | Oui | Affiche la liste des règles pour la chaîne indiquée. Ou, si aucune chaîne n'est indiquée, cela affichera les règles pour toutes les chaînes de la table indiquée. Note : Rajouter à "-L" les options "-n" et "-v" est très utile. | "iptables -L -n -v" affiche le maximum d'informations sur les règles de la table "filter". |
-j (jump) | [Cible] | Non | Défini l'action à prendre si un paquet répond aux critères de cette règle. Les principales valeurs sont : ACCEPT, DROP, REJECT, LOG | "iptables -A OUPUT -j DROP" supprime tous les paquets sortant des processus locaux. Ca, c'est de la censure !! |
-i (input) | [Interface réseau] | Non | Critère sur l'interface réseau dont provient le paquet | "iptables -A INPUT -i eth0 ..." filtre les paquets arrivant aux programmes et venant de l'interface réseau eth0. |
-o (output) | [Interface réseau] | Non | Critère sur l'interface réseau d'où les paquets vont sortir | "iptables -A OUTPUT -o ppp0" filtre les paquets créés par les programmes et sortant sur Internet. |
-s (source) | [!] [Adresse IP ou réseau] | Non | Critère sur l'adresse IP source du paquet | "iptables -t nat -A PREROUTING -i 192.168.0.0/24 ..." travaille sur le routage des paquets du réseau interne sky.net. |
-d (destination) | [!] [Adresse IP ou réseau] | Non | Critère sur l'adresse IP de destination du paquet | "iptables -A OUTPUT -d 192.168.0.0/24 ..." filtre les paquets sortant de l'espace utilisateur, à destination du réseau sky.net. |
-p (protocole) | [!] "all", "tcp", "udp", "icmp", ou un numéro | Non | Critère sur le type de trames utilisé dans le paquet. D'autres numéros de protocoles peuvent être utilisés. Voir votre fichier "/etc/procoles" | "iptables -A INPUT -p udp ..." filtre uniquement les paquets de type UDP. |
--sport | [!] [Port ou service] | Non | Critère sur le port source des paquets IP | "iptables -A INPUT -sport 80 ... " filtre tout ce qui vient du port HTTP (80). |
--dport | [!] [Port ou service] | Non | Critère sur le port de destination des paquets IP | "iptables -O OUPUT -dport ! 21 ... " filtre tout ce qui n'est pas à destination du FTP (21). |
-m (module) | [Nom d'un module] | Non | Demande d'utiliser un module particulier | "iptables ... -m state ..." utilise le module de suivi de connexion ("state" veut dire "statut" en français). |
--state | [!] "NEW", "ESTABLISHED", "RELATED", "INVALID" | Non | Cette option ne s'utilise que cumulée avec l'option "-m state", afin d'être utilisé pour le suivi de connexion | "iptables ... --state NEW,ESTABLISHED ..." filtre les paquets de nouvelles connexions, ou de connexions déjà établies via une "poignée de main". |
--log-prefix --ulog-prefix | [Un mot] | Non | Rajoute un commentaire pour les cibles LOG et ULOG | "iptables ... -j LOG --log-prefix toto" rajoutera le mot "toto" au log de cette règle. |