iptables

IPTABLES(8)                                                        IPTABLES(8)



NOM
       iptables - Outil d'administration pour le filtrage de paquets IPv4 et
       le NAT

RÃSUMÃ
       iptables [-t table] -[AD] chaîne règle [options]
       iptables [-t table] -I chaîne [numéro-de-règle] règle [options]
       iptables [-t table] -R chaîne numéro-de-règle règle [options]
       iptables [-t table] -D chaîne numéro-de-règle [options]
       iptables [-t table] -[LFZ] [chaîne] [options]
       iptables [-t table] -N chaîne
       iptables [-t table] -X [chaîne]
       iptables [-t table] -P chaîne cible [options]
       iptables [-t table] -E ancien-nom-de-chaîne nouveau-nom-de-chaîne

DESCRIPTION
       iptables est utilisé pour mettre en place, maintenir et inspecter les
       tables des règles de filtrage des paquets IP du noyau Linux.
       Différentes tables peuvent être définies. Chaque table contient
       plusieurs chaînes prédéfinies et peut aussi contenir des chaînes
       définies par l'utilisateur.

       Chaque chaîne est une liste de règles que peuvent vérifier un
       ensemble de paquets ; dans ce cas, on dit qu'on cherche à établir une
       correspondance avec la règle. Chaque règle détermine ce qui doit
       être fait avec un paquet qui correspond. Cette action est appellée
       une «cible», qui peut être un saut vers une chaîne définie par
       l'utilisateur dans la même table.


CIBLES
       Une règle de pare-feu spécifie des critères de correspondance pour
       un paquet, et une cible. Si le paquet ne correspond pas, la règle
       suivante de la chaîne est examinée ; s'il correspond, la règle
       suivante est déterminée par la valeur de la cible, qui peut être le
       nom d'une chaîne définie par l'utilisateur ou l'une des valeurs
       spéciales suivantes : ACCEPT, DROP, QUEUE ou RETURN.

       ACCEPT signifie que le paquet est autorisé à passer.  DROP signifie
       que le paquet est détruit.  QUEUE signifie que le paquet est transmis
       Ã  l'espace utilisateur (si cette option est reconnue par le noyau).
       RETURN signifie que l'on cesse de parcourir cette chaîne pour
       retourner dans la chaîne précédente (appelante) en passant à la
       règle suivante.  Si on atteint la fin d'une chaîne prédéfinie ou
       s'il y a correspondance avec une règle dans une chaîne prédéfinie
       ayant pour cible RETURN, la cible désignée par le comportement par
       défaut de la chaîne détermine le sort du paquet.

TABLES
       Il y a actuellement trois tables indépendantes (le moment où sont
       présentes les tables dépend des options de configuration du noyau et
       des modules chargés).

       -t, --table table
              Cette option désigne la table de correspondance des paquets sur
              laquelle la commande doit opérer. Si le noyau est configuré
              avec le chargement automatique des modules, une tentative sera
              faite pour charger le module approprié pour cette table, si ce
              n'est pas déjà fait.

              Les tables sont les suivantes :

              filter :
                  C'est la table par défaut (si l'option -t est omise). Elle
                  contient les chaînes prédéfinies INPUT (pour les paquets
                  entrants dans la machine), FORWARD (pour les paquets routés
                  Ã  travers la machine) et OUTPUT (pour les paquets
                  générés localement).

              nat :
                  Cette table est consultée lorsqu'on rencontre un paquet qui
                  crée une nouvelle connexion. La table est composée de
                  trois chaînes prédéfinies : PREROUTING (pour modifier les
                  paquets dès qu'ils entrent), OUTPUT (pour modifier les
                  paquets générés localement, avant le routage) et
                  POSTROUTING (pour modifier les paquets lorsqu'ils sont sur
                  le point de sortir).

              mangle :
                  Cette table est employée pour effectuer une modification
                  spéciale des paquets.  Jusqu'au noyau 2.4.17, elle offrait
                  deux chaînes prédéfinies : PREROUTING (pour modifier les
                  paquets entrants, avant le routage) et OUTPUT (pour modifier
                  les paquets générés localement, avant le routage).
                  Depuis le noyau 2.4.18, trois autres chaînes prédéfinies
                  sont aussi prises en charge : INPUT (pour les paquets
                  entrants, destinés à la machine elle-même), FORWARD (pour
                  modifier les paquets routés à travers la machine) et
                  POSTROUTING (pour modifier les paquets lorsqu'ils sont sur
                  le point de sortir).

OPTIONS
       Les options reconnues par iptables peuvent être réparties en
       plusieurs groupes.

   COMMANDES
       Ces options précisent une action particulière à accomplir. Une seule
       option peut être indiquée sur la ligne de commande, sauf indication
       contraire. Pour tous les noms en version longue des commandes et des
       options, vous avez le droit d'utiliser un nombre restreint de lettres
       du moment qu' iptables peut identifier chaque commande sans
       ambiguïté.

       -A, --append chaîne règle
              Ajoute une ou plusieurs règles à la fin de la chaîne
              sélectionnée.  Lorsque les noms source et/ou destination
              désignent plus d'une adresse, une règle sera ajoutée pour
              chaque combinaison d'adresses possible.

       -D, --delete chaîne règle
       -D, --delete chaîne numéro-de-règle
              Efface une ou plusieurs règles de la chaîne sélectionnée. Il
              y a deux versions de cette commande : on peut désigner la
              règle par sa position dans la chaîne avec un numéro
              (commençant à 1 pour la première règle) ou bien par une
              règle de correspondance avec sa syntaxe exacte.

       -I, --insert chaîne [numéro-de-règle] règle
              Insère une ou plusieurs règles dans la chaîne sélectionnée
              à la position donnée par le numéro de règle. Si ce numéro
              est 1, la ou les règles sont insérées au début de la
              chaîne. C'est le comportement par défaut si aucun numéro
              n'est spécifié.

       -R, --replace chaîne numéro-de-règle règle
              Remplace une règle dans la chaîne sélectionnée. Si les noms
              source et/ou destination désignent de multiples adresses, la
              commande échouera. Les règles sont numérotées en partant de
              1.

       -L, --list [chaîne]
              Liste toutes les règles de la chaîne sélectionnée. Si aucune
              chaîne n'est sélectionnée, toutes les chaînes sont listées.
              Comme toute commande, elle s'applique à la table spécifiée
              (filter par défaut), ainsi les règles de NAT sont listées
              avec
               iptables -t nat -n -L
              Notez qu'on l'utilise souvent avec l'option -n, pour éviter de
              longues résolutions DNS inverses.  Il est autorisé de
              spécifier simultanément l'option -Z (zéro), auquel cas la ou
              les chaînes seront automatiquement listées et les compteurs
              remis à zéro. La sortie exacte dépend des autres arguments
              fournis. Les règles complètes sont omises sauf si vous
              exécutez
               iptables -L -v

       -F, --flush [chaîne]
              Vide la chaîne sélectionnée (ou toutes les chaînes de la
              table si aucune n'est précisée). Ceci équivaut à effacer
              toutes les règles une par une.

       -Z, --zero [chaîne]
              Met à zéro le compteur de paquets et d'octets dans toutes les
              chaînes.  Il est autorisé d'associer l'option -L, --list
              (liste), pour visualiser les compteurs juste avant qu'ils ne
              soient initialisés (voir ci-dessus).

       -N, --new-chain chaîne
              Crée une nouvelle chaîne définie par l'utilisateur avec le
              nom indiqué.  Il ne doit pas déjà exister de cible de même
              nom.

       -X, --delete-chain [chaîne]
              Efface la chaîne désignée définie par l'utilisateur. Il ne
              doit plus exister de référence à cette chaîne. S'il en
              reste, vous devez effacer ou remplacer les règles concernées
              avant de pouvoir effacer cette chaîne. Si aucun argument n'est
              fourni, une tentative aura lieu pour effacer dans la table
              toutes les chaînes non prédéfinies.

       -P, --policy chaîne cible
              Configure le comportement par défaut (la stratégie) de la
              chaîne avec la cible fournie. Voir la section CIBLES pour
              connaître les cibles autorisées. Seules les chaînes
              prédéfinies (donc non définies par l'utilisateur) peuvent
              avoir un comportement par défaut, et ni les chaînes
              prédéfinies ni les chaînes définies par l'utilisateur ne
              peuvent être des cibles stratégiques.

       -E, --rename-chain ancien-nom-de-chaîne nouveau-nom-de-chaîne
              Renomme la chaîne définie par l'utilisateur spécifiée avec
              le nom fourni. C'est un changement cosmétique qui n'a aucun
              effet sur la structure de la table.

       -h     Aide.  Donne une description (pour l'instant succincte) de la
              syntaxe d'une commande.

   PARAMÃTRES
       Les paramètres suivants composent une spécification de règle (quand
       ils sont utilisés dans les commandes add, delete, insert, replace et
       append).

       -p, --protocol [!] protocole
              Protocole de la règle ou du paquet à vérifier. Le protocole
              spécifié est l'un des suivants : tcp, udp, icmp ou all, ou
              bien sous forme d'une valeur numérique, représentant un de ces
              protocoles ou un protocole différent. Un nom de protocole issu
              du fichier /etc/protocols est aussi autorisé. Un «!» avant le
              protocole inverse le test. La valeur zéro est équivalente Ã
              all.  Le protocole all correspond à tous les protocoles ; c'est
              aussi la valeur par défaut lorsque cette option est omise.

       -s, --source [!] adresse[/masque]
              Spécification de la source. L'adresse peut être un nom de
              réseau, un nom d'hôte (attention : spécifier un nom Ã
              résoudre avec une requête distante de type DNS est vraiment
              une mauvaise idée), une adresse de réseau IP (avec /masque) ou
              une simple adresse IP.  Le masque peut être un masque de
              réseau ou un nombre entier spécifiant le nombre de bits égaux
              à 1 dans la partie gauche du masque de réseau (bits de poids
              fort). Par conséquent, un masque de 24 est équivalent Ã
              255.255.255.0.  Un «!» avant la spécification d'adresse
              inverse la sélection d'adresse.  L'option --src est un synonyme
              de --source.

       -d, --destination [!] adresse[/masque]
              Spécification de la destination. Voir la description du
              paramètre -s (source) pour une description détaillée de la
              syntaxe. L'option --dst est un synonyme de --destination.

       -j, --jump cible
              Ceci détermine la cible de la règle ; c'est-à -dire ce qu'il
              faut faire si le paquet correspond à la règle. La cible peut
              être une chaîne définie par l'utilisateur (autre que celle
              dans laquelle se situe cette règle), une des cibles
              prédéfinies qui décide immédiatement du sort du paquet, ou
              une extension (voir EXTENSIONS ci-dessous). Si cette option est
              omise dans une règle, la correspondance d'un paquet avec la
              règle n'aura aucun effet sur le sort du paquet, mais les
              compteurs seront incrémentés.

       -i, --in-interface [!] [nom]
              Nom de l'interface qui reçoit les paquets (seulement pour les
              paquets passant par les chaînes INPUT, FORWARD et PREROUTING).
              Lorsqu'un «!» est utilisé avant le nom d'interface, la
              sélection est inversée. Si le nom de l'interface se termine
              par un «+», il désigne toutes les interfaces commençant par
              ce nom. Si cette option est omise, toutes les interfaces réseau
              sont désignées.

       -o, --out-interface [!] [nom]
              Nom de l'interface qui envoie les paquets (seulement pour les
              paquets passant par les chaînes FORWARD, OUTPUT et
              POSTROUTING).  Lorsqu'un «!» est utilisé avant le nom
              d'interface, la sélection est inversée. Si le nom de
              l'interface se termine par un «+», il désigne toutes les
              interfaces commençant par ce nom. Si cette option est omise,
              toutes les interface réseau sont désignées.

       [!]  -f, --fragment
              Avec cette option, la règle s'applique seulement aux paquets
              fragmentés, mais seulement à partir du deuxième fragment.
              Comme il est impossible d'en déterminer les ports source ou
              destination (ou le type ICMP), aucune règle ne pourra établir
              de correspondance sur ces critères.  Lorsqu'un «!» précède
              l'option «-f», la règle ne s'applique qu'aux fragments d'en-
              tête ou aux paquets non fragmentés.

       -c, --set-counters paquets octets
              Ceci autorise l'administrateur à initialiser les compteurs de
              paquets et d'octets d'une règle (lors des opérations INSERT,
              APPEND, REPLACE).

   AUTRES OPTIONS
       Les options supplémentaires suivantes peuvent être employées :

       -v, --verbose
              Sortie verbeuse. Cette option indique à la commande --list
              d'afficher le nom de l'interface, les options de la règle (s'il
              y en a) et les masques de TOS (type de service). Les compteurs
              de paquets et d'octets sont aussi affichés, avec les suffixes
              'K', 'M' ou 'G' qui multiplient respectivement par 1 000,
              1 000 000 et 1 000 000 000 (mais vous pouvez affiner ça avec
              l'option -x).  Pour les ajouts, insertions, effacements et
              remplacements, sont fournies des informations détaillées sur
              la ou les règles à afficher.

       -n, --numeric
              Sortie numérique. Les adresses IP et les numéros de ports sont
              affichés au format numérique. Par défaut, le programme essaie
              de les afficher sous forme de noms d'hôtes, de noms réseaux ou
              de services (lorsque c'est applicable).

       -x, --exact
              Nombres étendus. Affiche la valeur exacte des compteurs de
              paquets et d'octets, au lieu d'afficher un nombre arrondi avec K
              (multiple de 1 000), M (multiple de 1 000K) ou G (multiple de
              1 000M). Cette option n'est utile qu'avec la commande -L.

       --line-numbers
              Lorsque les règles sont listées, ceci ajoute un numéro de
              ligne au début de chaque règle, équivalant à la position de
              cette règle dans la chaîne.

       --modprobe=commande
              Lorsqu'on ajoute ou insère des règles dans une chaîne,
              utilisez la commande pour charger les modules nécessaires
              (cibles, extensions de correspondance, etc).

EXTENSIONS DE CORRESPONDANCE
       iptables peut utiliser des modules additionnels de correspondance de
       paquets. Ceux-ci peuvent être chargés de deux manières :
       implicitement, lorsque -p ou --protocol est employé, ou avec l'option
       -m ou --match, suivie du nom du module de correspondance ; après cela,
       des options supplémentaires en ligne de commande deviennent
       disponibles, en fonction du module. Vous pouvez spécifier plusieurs
       modules de correspondance sur une même ligne, et utiliser l'option -h
       ou --help après avoir spécifié le module, pour visualiser l'aide
       relative à ce module.

       Ce qui suit est inclus dans le paquetage de base et la plupart des
       options peuvent être précédées par un !  pour inverser la
       sélection.

   ah
       Ce module cherche une correspondance avec les indices SPI présents
       dans l'en-tête AH des paquets IPSec.

       --ahspi [!] spi[:spi]

   conntrack
       Ce module, lorsqu'il est combiné avec du traçage de connexion, permet
       d'accéder à davantage d'informations sur le traçage de connexion que
       la correspondance «state» (ce module n'est disponible que si iptables
       a été compilé avec un noyau acceptant cette particularité).

       --ctstate état-de-connexion
              Le paramètre est une liste d'états de connexion (séparés par
              des virgules) à vérifier. Les états possibles sont INVALID
              signifiant que le paquet n'est associé à aucune connexion
              connue, ESTABLISHED signifiant que le paquet est associé à une
              connexion qui a déjà vu passer des paquets dans les deux sens,
              NEW signifiant soit que le paquet a initié une nouvelle
              connexion, soit qu'il est associé à une connexion qui n'a pas
              vu passer de paquets dans les deux sens, et RELATED signifiant
              que le paquet initie une nouvelle connexion, mais qu'il est
              associé avec une connexion existante, comme un transfert de
              données FTP ou une erreur ICMP.  SNAT Un état virtuel,
              vérifié si l'adresse de source initiale diffère de l'adresse
              de destination de la réponse.  DNAT Un état virtuel, vérifié
              si l'adresse de destination initiale diffère de l'adresse de
              source de la réponse.

       --ctproto protocole
              Le protocole à vérifier (donné par le numéro ou le nom).

       --ctorigsrc [!] adresse[/masque]
              Correspondance avec l'adresse de source initiale.

       --ctorigdst [!] adresse[/masque]
              Correspondance avec l'adresse de destination initiale.

       --ctreplsrc [!] adresse[/masque]
              Correspondance avec l'adresse de source de la réponse.

       --ctrepldst [!] adresse[/masque]
              Correspondance avec l'adresse de destination de la réponse.

       --ctstatus [NONE|EXPECTED|SEEN_REPLY|ASSURED][,...]
              Correspondance avec les états internes du module conntrack.

       --ctexpire temps[:temps]
              Correspondance avec la durée de validité restante (en
              secondes) donnée sous forme d'une valeur fixe ou d'un
              intervalle (bornes incluses).

   dscp
       Ce module cherche une correspondance avec le champ DSCP de 6 bits dans
       le champ TOS de l'en-tête IP. DSCP a remplacé le TOS au sein de
       l'IETF.

       --dscp valeur
              Correspondance avec une valeur numérique [0-32] (sous forme
              décimale ou hexa).

       --dscp-class Classe DiffServ
              Correspondance avec la classe DiffServ. Cette donnée peut être
              une des classes BE, EF, AFxx ou CSx. Elle pourra aussi être
              convertie en sa valeur numérique équivalente.

   esp
       Ce module cherche une correspondance avec les indices SPI présents
       dans l'en-tête ESP des paquets IPSec.

       --espspi [!] spi[:spi]

   helper
       Ce module cherche une correspondance avec les paquets en relation avec
       un module spécifique d'aide au traçage de connexion (module
       conntrack-helper).

       --helper chaîne
              Correspondance avec les paquets en relation avec le module
              d'aide au traçage de connexion désigné.

              La chaîne peut être «ftp» pour les paquets liés à une
              session FTP sur le port par défaut. Pour d'autres ports,
              ajoutez -numérodeport à la chaîne, par exemple «ftp-2121».

              Les mêmes règles s'appliquent aux autres modules d'aide au
              traçage de connexion.

   icmp
       Cette extension est chargée si «--protocol icmp» est spécifié.
       Elle procure l'option suivante :

       --icmp-type [!] nom_du_type_icmp
              Ceci autorise la spécification d'un type ICMP, soit avec un
              type ICMP numérique, soit avec l'un des noms de type ICMP
              fourni par la commande
               iptables -p icmp -h

   length
       Ce module cherche une correspondance avec la longueur d'un paquet,
       donnée par une valeur fixe ou un intervalle.

       --length longueur[:longueur]

   limit
       Ce module établit une correspondance avec les paquets en respectant un
       débit limité, à l'aide d'un filtre à seau de jetons («token bucket
       filter»). Une règle utilisant cette extension établira une
       correspondance jusqu'Ã  ce que cette limite soit atteinte (sauf si le
       «!» est employé).  Il peut être utilisé conjointement avec la
       cible LOG, par exemple afin de limiter les messages de journalisation
       (log).

       --limit taux
              Taux de correspondance moyen maximum : déterminé par un
              nombre, avec un suffixe optionnel  «/second»,  «/minute»,
              «/hour», ou  «/day» ; la valeur par défaut est 3/hour.

       --limit-burst nombre
              Nombre initial maximum de paquets pouvant correspondre : ce
              nombre est rechargé de 1 chaque fois que la limite définie
              précédemment n'est pas atteinte, jusqu'à retrouver la valeur
              initiale ; la valeur par défaut est 5.

   mac
       --mac-source [!] adresse
              Ãtablit une correspondance avec l'adresse MAC source. Elle doit
              être de la forme XX:XX:XX:XX:XX:XX. Notez que ceci n'a de sens
              que pour les paquets en provenance d'une interface Ethernet et
              passant par les chaînes PREROUTING, FORWARD ou INPUT.

   mark
       Ce module cherche une correspondance avec le champ de marquage de
       Netfilter associé à un paquet (celui-ci peut être positionné en
       utilisant la cible MARK décrite ci-dessous).

       --mark valeur[/masque]
              Ãtablit une correspondance avec les paquets associés à  la
              valeur de marquage non-signée fournie (si un masque est
              spécifié, on effectue un ET logique avec le masque avant la
              comparaison).

   multiport
       Ce module cherche les correspondances avec un ensemble de ports source
       ou destination. On peut spécifier jusqu'à 15 ports. Il ne peut être
       utilisé qu'en conjonction avec -p tcp ou -p udp.

       --source-ports port[,port[,port...]]
              Ãtablit la correspondance si le port source est l'un des ports
              spécifiés. Et --sports est un synonyme commode pour cette
              option.

       --destination-ports port[,port[,port...]]
              Ãtablit la correspondance si le port destination est l'un des
              ports spécifiés. Et --dports est un synonyme commode pour
              cette option.

       --ports port[,port[,port...]]
              Ãtablit la correspondance si les ports source et destination
              sont identiques, et égaux à l'un des ports spécifiés.

   owner
       Ce module tente d'établir une correspondance avec différentes
       caractéristiques du créateur d'un paquet, pour les paquets générés
       localement. Il est valide uniquement dans la chaîne OUTPUT, et même
       si certains paquets sans propriétaire (comme les réponses ICMP d'un
       ping) ne correspondront jamais.

       --uid-owner id_utilisateur
              Ãtablit une correspondance si le paquet a été créé par un
              processus avec l'identifiant d'utilisateur donné.

       --gid-owner id_de_groupe
              Ãtablit une correspondance si le paquet a été créé par un
              processus avec l'identifiant de groupe donné.

       --pid-owner id_du_processus
              Ãtablit une correspondance si le paquet a été créé par un
              processus avec le numéro de processus donné.

       --sid-owner id_de_session
              Ãtablit une correspondance si le paquet a été créé par un
              processus dans le groupe de session donné.

       --cmd-owner nom_de_commande
              Ãtablit une correspondance si le paquet a été créé par un
              processus avec le nom de commande donné (cette option n'est
              disponible que si iptables a été compilé avec un noyau
              acceptant cette particularité).

   physdev
       Ce module cherche une correspondance sur un port de pont avec les
       dispositifs d'entrée/sortie attachés à ce pont. Ce module fait
       partie de l'infrastructure qui permet d'avoir un pare-feu IP
       transparent sur un pont et n'est utile que pour les versions de noyaux
       supérieures à 2.5.44.

       --physdev-in nom_de_port
              Nom d'un port de pont par lequel un paquet est reçu (seulement
              pour les paquets entrant dans les chaînes INPUT, FORWARD et
              PREROUTING).  Si le nom de l'interface se termine par un «+»,
              il désigne toutes les interfaces commençant par ce nom. Si le
              paquet ne provient pas d'un pont, ce paquet ne correspondra pas
              avec cette option, sauf si un «!» est employé.

       --physdev-out nom_de_port
              Nom d'un port de pont par lequel un paquet est prêt à être
              envoyé (seulement pour les paquets entrant dans les chaînes
              FORWARD, OUTPUT et POSTROUTING).  Si le nom de l'interface se
              termine par un «+», il désigne toutes les interfaces
              commençant par ce nom. Notez que dans les chaînes OUTPUT des
              tables nat et mangle, aucune règle ne peut correspondre sur un
              port de sortie de pont, mais que c'est possible dans la chaîne
              OUTPUT de la table filter.  Si un paquet ne sort pas par un pont
              ou si l'on ne sait pas encore quel est le dispositif de sortie,
              le paquet ne correspondra pas avec cette option, sauf si un
              «!» est employé.

       --physdev-is-in
              Ãtablit une correspondance si le paquet est entré par une
              interface de pont.

       --physdev-is-out
              Ãtablit une correspondance si le paquet sort par une interface
              de pont.

       --physdev-is-bridged
              Ãtablit une correspondance si le paquet est prêt à  traverser
              un pont et ne sera donc pas routé. Ce n'est utile que pour les
              chaînes FORWARD et POSTROUTING.

   pkttype
       Ce module cherche une correspondance avec le type du paquet de la
       couche liaison de données.

       --pkt-type [unicast|broadcast|multicast]

   state
       Ce module, lorsqu'il est associé avec du traçage de connexion, permet
       d'accéder à l'état du traçage de connexion pour ce paquet.

       --state état-de-connexion
              Le paramètre est une liste d'états de connexion (séparés par
              des virgules) avec lesquels on cherche une correspondance. Les
              états possibles sont INVALID signifiant que le paquet ne peut
              être identifié pour une raison quelconque comme une exécution
              avec mémoire insuffisante et des erreurs ICMP ne correspondant
              Ã  aucune connexion connue, ESTABLISHED signifiant que le paquet
              est associé à une connexion qui a vu passer des paquets dans
              les deux sens, NEW signifiant que le paquet a initié une
              nouvelle connexion, ou bien qu'il est associé à une connexion
              qui n'a pas vu passer de paquets dans les deux sens, et RELATED
              signifiant que le paquet initie une nouvelle connexion, mais
              qu'il est associé à une connexion existante, comme un
              transfert de données FTP ou une erreur ICMP.

   tcp
       Ces extensions sont chargées si l'option «--protocol tcp» est
       spécifiée. Elle procure les options suivantes :

       --source-port [!] port[:port]
              Spécification d'un port source ou d'un intervalle de ports. Ce
              peut être le nom d'un service ou le numéro d'un port. Un
              intervalle (bornes incluses) peut aussi être défini en
              utilisant le format suivant port:port.  Si le premier port est
              omis, on considère que c'est «0» ; si le dernier port est
              omis, on considère que c'est «65535». Si le second port est
              plus petit que le premier, ils seront intervertis. Et --sport
              est un synonyme commode pour cette option.

       --destination-port [!] port[:port]
              Spécification d'un port destination ou d'un intervalle de
              ports. Et --dport est un synonyme commode pour cette option.

       --tcp-flags [!] masque comp
              Ãtablit une correspondance lorsque les fanions TCP («TCP
              flags») coïncident avec ceux spécifiés. Le premier argument
              identifie les fanions à examiner (sous la forme d'un liste de
              fanions séparés par des virgules) et le deuxième argument
              identifie les fanions devant être positionnés (toujours sous
              la forme d'une liste de fanions séparés par des virgules). Les
              fanions sont : SYN ACK FIN RST URG PSH ALL NONE.  Par
              conséquent, la commande
               iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST SYN
              ne sélectionnera que les paquets ayant le fanion SYN
              positionné mais également les fanions ACK, FIN et RST
              désactivés.

       [!] --syn
              Ãtablit une correspondance seulement avec les paquets TCP dont
              le bit SYN est positionné et les bits ACK et RST sont
              désactivés. De tels paquets sont utilisés pour les requêtes
              d'établissement de connexion TCP ; par exemple, si l'on bloque
              ce type de paquets entrants sur une interface, on empêchera les
              connexions TCP entrantes, mais les connexions TCP sortantes ne
              seront pas affectées.  C'est équivalent à --tcp-flags
              SYN,RST,ACK SYN.  Si le signe «!» précède le «--syn», la
              sélection est inversée.

       --tcp-option [!] numéro
              Ãtablit une correspondance si l'option TCP indiquée est
              positionnée.

       --mss valeur[:valeur]
              Ãtablit une correspondance avec les paquets TCP de type SYN ou
              SYN/ACK caractérisés par la valeur ou l'intervalle MSS
              spécifié, contrôlant la taille maximale du paquet pour cette
              connexion.

   tos
       Ce module cherche une correspondance avec les 8 bits du champ Type de
       Service (TOS) dans l'en-tête IP (ceci inclut les bits de priorité).

       --tos type_de_service
              Cet argument à détecter est soit un nom standard (utiliser
               iptables -m tos -h
              pour afficher la liste), soit une valeur numérique.

   ttl
       Ce module cherche une correspondance avec le champ de durée de
       validité («Time To Live» ou TTL) de l'en-tête IP.

       --ttl valeur_ttl
              Ãtablit une correspondance avec la valeur TTL donnée.

   udp
       Ces extensions sont chargées si «--protocol udp» est spécifié.
       Elles procurent les options suivantes :

       --source-port [!] port[:port]
              Spécification d'un port source ou d'un intervalle de ports.
              Voir la description de l'option --source-port de l'extension TCP
              pour obtenir des précisions.

       --destination-port [!] port[:port]
              Spécification d'un port destination ou d'un intervalle de
              ports.  Voir la description de l'option --destination-port de
              l'extension TCP pour obtenir des précisions.

   unclean
       Ce module n'a aucune option, mais il tente d'établir une
       correspondance avec les paquets qui semblent mal formés ou
       inhabituels. Cette option est considérée comme expérimentale.

EXTENSIONS DE CIBLE
       iptables peut utiliser des modules de cible additionnels : les suivants
       sont inclus dans la distribution standard.

   DNAT
       Cette cible est seulement valide dans la table nat, dans les chaînes
       PREROUTING et OUTPUT, et dans les chaînes définies par l'utilisateur
       appelées par celles-ci.  Elle spécifie que l'adresse de destination
       du paquet doit être modifiée (comme toutes celles des paquets Ã
       venir dans le cadre de cette connexion), et que les règles doivent
       cesser d'être examinées. Elle accepte une option :

       --to-destination adresse-ip[-adresse-ip][:port-port]
              qui peut définir une nouvelle et unique adresse IP de
              destination, un intervalle d'adresses IP (bornes incluses) et
              éventuellement un intervalle de ports (qui n'est valide que si
              la règle contient aussi -p tcp ou -p udp).  Si aucun intervalle
              n'est spécifié, alors le port destination ne sera jamais
              modifié.

              Vous pouvez ajouter plusieurs options --to-destination. Si vous
              définissez plus d'une adresse de destination, via un intervalle
              d'adresses ou via plusieurs options --to-destination, un simple
              équilibrage de charge de type «round-robin» (tour de rôle)
              sera effectué entre ces adresses.

   DSCP
       Cette cible permet de modifier la valeur des bits DSCP dans l'en-tête
       TOS d'un paquet IPv4. Comme ceci transforme le paquet, on ne peut
       l'utiliser que dans la table mangle.

       --set-dscp valeur
              Donne au champ DSCP une valeur numérique (décimale ou hexa).

       --set-dscp-class classe
              Donne au champ DSCP une classe DiffServ (services
              différenciés).

   ECN
       Cette cible permet de travailler de façon sélective sur les trous
       noirs ECN connus. On ne peut l'utiliser que dans la table mangle.

       --ecn-tcp-remove
              Supprime tous les bits ECN de l'en-tête TCP. Naturellement,
              ceci ne peut être utilisé qu'avec -p tcp.

   LOG
       Met en service la journalisation par le noyau pour les paquets qui
       correspondent. Lorsque cette option est définie dans une règle, le
       noyau Linux affichera des informations sur tous les paquets
       correspondant avec cette règle (comme la plupart des champs de l'en-
       tête IP) par l'intermédiaire des journaux du noyau (que l'on peut
       lire avec dmesg ou syslogd(8)).  Ceci est une cible «non
       déterminante», c.-à -d. que l'analyse de cette règle enchaîne
       nécessairement sur la règle suivante. Ainsi, si vous voulez
       journaliser des paquets à rejeter, utilisez deux règles distinctes
       avec le même critère de correspondance, en plaçant en premier la
       cible LOG et ensuite la cible DROP (ou REJECT).

       --log-level niveau
              Niveau de journalisation (sous forme numérique, ou voir
              syslog.conf(5)).

       --log-prefix préfixe
              Préfixe les messages de journalisation avec le préfixe
              indiqué ; jusqu'à 29 lettres de long, il est très utile pour
              différencier les différents messages dans les fichiers
              journaux.

       --log-tcp-sequence
              Journalise les numéros de séquence TCP. Ce peut être un
              risque pour la sécurité si les fichiers journaux sont lisibles
              par les utilisateurs ordinaires.

       --log-tcp-options
              Journalise les options de l'en-tête des paquets TCP.

       --log-ip-options
              Journalise les options de l'en-tête des paquets IP.

   MARK
       Ceci est utilisé pour activer la valeur de marquage de Netfilter
       associée au paquet. Ceci est valide uniquement avec la table mangle.
       On peut l'utiliser par exemple conjointement avec iproute2.

       --set-mark marque

   MASQUERADE
       Cette cible est seulement valide dans la table nat, dans la chaîne
       POSTROUTING.  Elle ne doit être utilisée que dans le cas d'une
       connexion où l'adresse IP est assignée dynamiquement (liaison
       téléphonique) : si vous avez une adresse IP statique, vous devez
       utiliser la cible SNAT. Le camouflage («masquerading») revient Ã
       effectuer une association (et une substitution) de l'adresse de source
       avec l'adresse IP de l'interface par laquelle les paquets sortent, mais
       cela a pour conséquence d' oublier les connexions lorsque l'interface
       est déconnectée. C'est un comportement approprié, car au prochain
       établissement de la liaison, il y a peu de chance d'obtenir la même
       adresse d'interface (par conséquent les connexions déjà établies
       seront inévitablement perdues). Il existe une option

       --to-ports port[-port]
              qui définit un intervalle de ports source à utiliser, annule
              et remplace la sélection heuristique de ports source du SNAT
              (voir ci-dessus). Ceci n'est valide que si la règle contient
              aussi -p tcp ou -p udp.

   MIRROR
       Ceci est une cible de démonstration expérimentale qui inverse les
       champs source et destination dans l'en-tête IP et retransmet le
       paquet. Il est valide uniquement avec les chaînes INPUT, FORWARD et
       PREROUTING, et avec les chaînes définies par l'utilisateur appelées
       par celles-ci.  Notez que les paquets sortants NE sont PAS vus par les
       autres chaînes de filtrage de paquets, de traçage de connexions ou de
       traduction d'adresses (NAT), afin d'éviter les boucles infinies et
       d'autres problèmes.

   REDIRECT
       Cette cible est seulement valide dans la table nat, dans les chaînes
       PREROUTING et OUTPUT, et dans les chaînes définies par l'utilisateur
       appelées par celles-ci.  Elle modifie l'adresse IP de destination pour
       envoyer le paquet à la machine elle-même (les paquets générés
       localement sont convertis vers l'adresse 127.0.0.1). Il existe une
       option

       --to-ports port[-port]
              qui définit un port destination ou un intervalle de ports Ã
              utiliser : sans cela, le port destination ne sera jamais
              modifié. Ceci n'est valide que si la règle contient aussi -p
              tcp ou -p udp.

   REJECT
       Cette cible est utilisée pour répondre par un paquet d'erreur à un
       paquet qui correspond : à part cela, c'est équivalent à DROP, donc
       c'est une cible déterminante, concluant l'analyse d'une règle.  Cette
       cible est uniquement valide dans les chaînes INPUT, FORWARD et OUTPUT,
       et dans les chaînes définies par l'utilisateur appelées par celles-
       ci.  L'option suivante contrôle la nature du paquet d'erreur
       retourné :

       --reject-with type
              Le type donné peut être icmp-net-unreachable (réseau
              inaccessible), icmp-host-unreachable (machine inaccessible),
              icmp-port-unreachable (port inaccessible), icmp-proto-
              unreachable (protocole non utilisable), icmp-net-prohibited
              (réseau interdit), icmp-host-prohibited (machine interdite) ou
              icmp-admin-prohibited(*) (communication interdite par
              l'administrateur), chacun retournant le message d'erreur ICMP
              approprié (par défaut, port inaccessible).  L'option tcp-reset
              peut être utilisée dans les règles associées uniquement avec
              le protocole TCP : on envoie en retour un paquet TCP RST. On
              l'utilise principalement pour bloquer les sondes ident
              (113/tcp), ce qui arrive fréquemment lorsqu'on envoie des
              courriels à des hôtes de messagerie inaccessibles (qui
              d'ailleurs n'accepteront pas votre courrier).

       (*) L'utilisation du type icmp-admin-prohibited avec des noyaux qui
              ne l'acceptent pas entraîne l'application de la cible DROP au
              lieu de REJECT.

   SNAT
       Cette cible est seulement valide dans la table nat, dans la chaîne
       POSTROUTING.  Elle spécifie que l'adresse source du paquet doit être
       modifiée (ainsi que tous les futurs paquets de cette même connexion),
       et que les règles doivent cesser d'être examinées. Elle prend un
       seul type d'option :

       --to-source  adresse-ip[-adresse-ip][:port-port]
              qui peut définir une nouvelle et unique adresse IP de
              destination, un intervalle d'adresses IP (bornes incluses) et
              éventuellement un intervalle de ports (qui n'est valide que si
              la règle contient aussi -p tcp ou -p udp).  Si aucun intervalle
              de ports n'est spécifié, les ports source inférieurs à 512
              seront convertis vers d'autres ports inférieurs à 512 : ceux
              compris entre 512 et 1023 inclus seront convertis vers des ports
              inférieurs à 1024, et les autres seront convertis vers des
              ports supérieurs à 1024.  Lorsque c'est possible, aucune
              modification de ports n'est effectuée.

              Vous pouvez ajouter plusieurs options --to-source. Si vous
              définissez plus d'une adresse source, via un intervalle
              d'adresses ou via plusieurs options --to-source, une simple
              alternance de type «round-robin» (tour de rôle) sera
              effectuée entre ces adresses.

   TCPMSS
       Cette cible permet de modifier la valeur MSS des paquets TCP SYN, pour
       contrôler la taille maximale des segments pour cette connexion
       (habituellement, on la limite au MTU de l'interface de sortie moins
       40). Naturellement, elle ne peut être utilisée qu'avec -p tcp.
       Cette cible est utilisée pour triompher des FAI à tendance criminelle
       ou des serveurs qui bloquent les paquets ICMP de type «Fragmentation
       Needed» (fragmentation nécessaire). Pour comprendre les symptômes
       d'un tel problème, tout semble bien fonctionner sur votre pare-
       feu/routeur Linux, mais les machines retranchées derrière ne peuvent
       échanger des paquets volumineux :
        1) Les navigateurs web se connectent, puis s'interrompent sans plus
           recevoir de données.
        2) Les petits messages fonctionnent bien, mais les plus gros
           s'arrêtent.
        3) ssh fonctionne bien, mais scp s'arrête après l'initialisation
           initiale en trois étapes («three-way handshake».
       Solution de rechange : activer cette option et ajouter une règle Ã
       votre configuration de pare-feu comme :
        iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
                    -j TCPMSS --clamp-mss-to-pmtu

       --set-mss valeur
              Fixe explicitement l'option MSS à la valeur spécifiée.

       --clamp-mss-to-pmtu
              Limite automatiquement le MSS Ã  la valeur (MTU_de_la_liaison -
              40).

       Ces options sont mutuellement exclusives.

   TOS
       Ceci est utilisé pour définir le champ de Type de Service (TOS)
       représenté sur 8 bits dans l'en-tête IP. Ceci n'est valide que dans
       la table mangle.

       --set-tos type_de_service
              Pour le Type de Service, vous pouvez utiliser une valeur
              numérique, ou exécuter
               iptables -j TOS -h
              pour afficher la liste des noms de TOS valides.

   ULOG
       Cette cible permet de journaliser dans un espace utilisateur des
       paquets qui établissent une correspondance avec une règle. Lorsque
       cette cible est désignée dans une règle, le noyau de Linux va multi-
       diffuser le paquet par l'intermédiaire d'un connecteur («socket»)
       netlink.  Un ou plusieurs processus de l'espace utilisateur peuvent
       alors souscrire à divers groupes de multi-diffusion et recevoir les
       paquets. Tout comme la cible LOG, c'est une règle non-déterminante,
       c'est-à -dire que l'analyse d'une règle enchaîne sur la règle
       suivante.

       --ulog-nlgroup groupe_netlink
              Définit le groupe netlink (1-32) vers lequel le paquet est
              envoyé.  La valeur par défaut est 1.

       --ulog-prefix préfixe
              Préfixe les messages du journal avec le préfixe indiqué ;
              jusqu'à 32 caractères de long, et très utile pour
              différencier les messages dans les journaux.

       --ulog-cprange taille
              Nombre d'octets à copier dans l'espace utilisateur. Une valeur
              de 0 copie le paquet entier, sans tenir compte de sa taille. La
              valeur par défaut est 0.

       --ulog-qthreshold taille
              Nombre de paquets à mettre dans la file d'attente du noyau.
              Fixer cette valeur par exemple à 10, accumule 10 paquets dans
              le noyau et les transmet en un seul message «netlink» de
              multi-contenus (type «multipart») vers l'espace utilisateur.
              La valeur par défaut est 1 (pour la rétro-compatibilité,
              c'est-à -dire avec les implémentations précédentes).

DIAGNOSTICS
       Divers messages d'erreur sont envoyés vers la sortie d'erreur
       standard.  Un code de sortie de 0 correspond à un fonctionnement
       normal. Une ligne de commande contenant des paramètres invalides ou
       abusifs génère un code de sortie égal à 2, et les autres erreurs
       renvoient un code de sortie égal à 1.

BOGUES
       Des bogues ?  Qu'est-ce que c'est ? ;-) Bon... les compteurs ne sont
       pas fiables sur l'architecture sparc64.

COMPATIBILITÃ AVEC IPCHAINS
       Cet iptables est très similaire à l'ipchains de Rusty Russell. La
       différence principale est que les chaînes INPUT et OUTPUT sont
       uniquement traversées, respectivement par les paquets entrant dans la
       machine locale et sortant de la machine locale. Par conséquent, tous
       les paquets passent uniquement par une seule des trois chaînes (sauf
       le trafic vers la boucle locale, qui implique à la fois les chaînes
       INPUT et OUTPUT) ; auparavant, un paquet redirigé serait passé par
       les trois chaînes.

       L'autre différence principale est que -i fait référence Ã
       l'interface d'entrée ; -o fait référence à l'interface de sortie,
       et toutes les deux sont disponibles pour les paquets entrant dans la
       chaîne FORWARD.

       iptables est un pur filtre à paquets lorsqu'il utilise la table par
       défaut «filter», avec d'éventuels modules d'extensions. Cela
       devrait éliminer la confusion qu'il pouvait y avoir avec la
       combinaison du camouflage d'adresses IP et du filtrage de paquets vu
       précédemment. Les options suivantes sont donc gérées
       différemment :
        -j MASQ
        -M -S
        -M -L
       Il y a quelques autres changements dans iptables.

VOIR AUSSI
       iptables-save(8), iptables-restore(8), ip6tables(8), ip6tables-save(8),
       ip6tables-restore(8)

       Le «Guide pratique du filtrage de paquets» (Packet-Filtering-HOWTO)
       qui détaille l'utilisation d'iptables pour les techniques de filtrage,
       le «Guide pratique de la traduction d'adresses réseau» (NAT-HOWTO)
       qui détaille la traduction d'adresse réseau, et le Netfilter-Hacking-
       HOWTO qui détaille le fonctionnement interne de Netfilter.
       Consulter http://www.netfilter.org/.

TRADUCTION
       Christophe Donnier (mars 2002), Guillaume Audirac (août 2004)

AUTEURS
       Rusty Russell a écrit iptables, avec la collaboration de Michael
       Neuling.

       Marc Boucher a suggéré à Rusty l'abandon d'ipnatctl en proposant une
       structure générique de sélection de paquets dans iptables, puis il
       écrivit la table mangle, la correspondance avec le propriétaire, des
       choses sur le marquage, puis s'en fut faire d'autres choses géniales
       un peu partout.

       James Morris a écrit la cible du Type de Service (TOS) et les
       correspondances de TOS.

       Jozsef Kadlecsik a écrit la cible REJECT.

       Harald Welte a écrit la cible ULOG, les correspondances et les cibles
       TTL, DSCP, ECN.

       L'équipe principale de Netfilter est composée de : Marc Boucher,
       Martin Josefsson, Jozsef Kadlecsik, James Morris, Harald Welte et Rusty
       Russell.

       La page de manuel a été écrite par Hervé Eychenne
       <rv@wallfire.org>.

AVERTISSEMENT SUR LA TRADUCTION
       Il est possible que cette traduction soit imparfaite ou périmée. En
       cas de doute, veuillez vous reporter au document original en langue
       anglaise fourni avec le programme.



                                  9 mars 2002                      IPTABLES(8)