Question Quelle est la table mangle dans iptables?


J'utilise des règles iptables pour filtrer et manipuler les paquets sur mon serveur Ubuntu. mais je ne peux pas comprendre la table mangle.

Citant de ce tutoriel iptables:

Comme nous l'avons déjà noté, ce tableau devrait principalement être utilisé pour modifier des paquets. En d'autres termes, vous pouvez utiliser librement les correspondances mangle, etc., qui pourraient être utilisées pour modifier les champs TOS (Type de service), etc.

Il est fortement déconseillé d'utiliser cette table pour un filtrage; DNAT, SNAT ou Masquerading ne fonctionneront pas non plus dans ce tableau.

Quelqu'un peut-il me décrire la table mangle et fournir des exemples pour comprendre quand je devrais l'utiliser?


21
2018-01-14 04:49


origine


le iptables(8) La page de manuel contient toutes les informations souhaitées, y compris plusieurs exemples intéressants d'utilisation de la table mangle. - Michael Hampton♦


Réponses:


En plus des autres bonnes réponses, j'ai récemment dû utiliser la table mangle pour ajuster les divergences entre les unités de transmission maximales (MTU) causées par le trafic acheminé via PPPoE, PPP et ATM, chacune d’elles entraînant une surcharge qui réduit la charge utile disponible pour IP. à partir des 1500 octets habituels d’une trame Ethernet.

Les systèmes situés à chaque extrémité du canal, comme d’habitude, auraient leur unité MTU à la valeur par défaut habituelle de 1 500 et ils essaieraient donc d’envoyer des trames IP de cette taille. Étant donné que la taille de la charge utile disponible était plus petite, cela aurait provoqué la fragmentation des paquets, sauf que souvent l'expéditeur demandera que les paquets ne soient pas fragmentés et, en tant que tels, ils finissent par être entièrement supprimés.

Dans un monde idéal, la découverte de MTU de chemin aurait permis aux points d'extrémité d'ajuster leur MTU selon les besoins, mais cette découverte dépend de ICMP, et les réseaux indépendants de ma volonté étaient souvent configurés pour abandonner ICMP pour des raisons de sécurité.

Le seul choix était d'utiliser la manipulation de paquets dans mon routeur afin de modifier les paquets TCP SYN afin de réduire la taille de segment maximale au niveau de la couche de transport:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452

Ce genre de chose est en désordre et devrait idéalement être évité, mais je n'avais pas d'autre option et cela a résolu le problème.

J'espère que ces exemples vous aideront, ainsi que la page de manuel.


18
2018-01-15 17:40





J'ai récemment trouvé une bonne explication ici. Il est essentiellement utilisé pour définir des en-têtes spécifiques pour les paquets IP afin d'affecter la décision de routage prise ultérieurement. Le cas échéant, l'option TTL est probablement la plus intéressante:

La cible TTL est utilisée pour modifier le champ TTL (Time To Live) du   paquet. Nous pourrions dire aux paquets de n'avoir qu'un TTL spécifique, etc.   Une bonne raison à cela pourrait être que nous ne voulons pas nous donner   loin à des fournisseurs de services Internet curieux. Certains services Internet   Les fournisseurs n'aiment pas les utilisateurs exécutant plusieurs ordinateurs sur un seul   connexion, et il existe des fournisseurs de services Internet connus pour   cherchez un seul hôte générant différentes valeurs TTL, et prenez ceci   comme l'un des nombreux signes de plusieurs ordinateurs connectés à un seul   lien.

Les autres cibles sont TOS, MARK, SECMARK, CONNSECMARK.


19
2018-01-14 05:08



Mangle est également utilisé dans QOS pour gérer le marquage de paquets ou dans la distribution de charge de données pour distribuer des paquets sur différents itinéraires. - TomTom


En tant que noob iptables, je dirais: La table mangle permet de modifier certaines entrées spéciales dans l'en-tête des paquets. (tel: Type de service, Durée de vie) (il permet également de définir des marques spéciales et des marques de contexte de sécurité)


7
2018-05-05 08:25





Il y a une bonne plongée profonde mais pas trop difficile à comprendre le tutoriel sur iptables ici.

La table mangle est utilisée pour modifier les en-têtes IP du paquet de différentes manières. Par exemple, vous pouvez ajuster la valeur TTL (Time to Live) d’un paquet, en allongeant ou en raccourcissant le nombre de sauts réseau valides que le paquet peut supporter. D'autres en-têtes IP peuvent être modifiés de la même manière.

Cette table peut également placer un noyau interne "marque" sur le paquet pour   traitement ultérieur dans d'autres tables et par d'autres outils de mise en réseau. Ce   La marque ne touche pas le paquet réel, mais ajoute la marque au   la représentation du paquet par le noyau.

Cela m'a beaucoup aidé, car il explique clairement comment toutes les parties s'emboîtent et interagissent les unes avec les autres.


1
2018-06-27 10:03