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 ce tutoriel iptables :
Ce tableau devrait, comme nous l'avons déjà noté, être principalement utilisé pour la manipulation de paquets. En d'autres termes, vous pouvez librement utiliser les correspondances mangle, etc. qui pourraient être utilisées pour modifier les champs TOS (Type Of Service), etc.
Il est fortement conseillé de ne pas utiliser ce tableau pour tout filtrage; aucun DNAT, SNAT ou Masquerading ne fonctionnera dans ce tableau.
Quelqu'un peut-il me décrire la table mangle et fournir des exemples pour comprendre quand je dois l'utiliser?
iptables(8)
page de manuel contient toutes les informations que vous souhaitez, y compris plusieurs bons exemples d'utilisation de la table mangle.Réponses:
Suite aux autres bonnes réponses, j'ai récemment dû utiliser la table mangle pour ajuster les écarts MTU (unité de transmission maximale) causés par le trafic acheminé via PPPoE, PPP et ATM, chacun ajoutant des frais généraux qui réduisent la charge utile disponible pour IP à partir des 1500 octets habituels d'une trame Ethernet.
Les systèmes à chaque extrémité du tuyau, comme c'est normal, auraient leur MTU à la valeur par défaut régulière de 1500 et ils essaieraient donc d'envoyer des trames IP aussi grandes. Étant donné que la taille réelle de la charge utile disponible était plus petite, cela aurait causé la fragmentation des paquets, sauf que souvent l'expéditeur demanderait 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 au besoin, mais cette découverte dépend d'ICMP, et les réseaux hors de mon contrôle étaient souvent configurés pour supprimer ICMP pour des raisons de sécurité.
Le seul choix était d'utiliser le désamorçage de paquets dans mon routeur afin de modifier les paquets TCP SYN pour réduire la taille maximale des segments au niveau de la couche transport:
Ce genre de chose est désordonné et devrait idéalement être évité, mais je n'avais pas d'autres options et cela a résolu le problème.
J'espère que ces exemples vous aideront, ainsi que la page de manuel.
la source
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 plus loin. Le cas échéant, l'option TTL est probablement la plus intéressante:
Les autres cibles sont
TOS, MARK, SECMARK, CONNSECMARK
.la source
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. (comme: Type de service, Time To Live) (il permet également de définir des marques spéciales et des marques de contexte de sécurité)
la source
Il y a une bonne plongée en profondeur mais pas trop difficile à comprendre le tutoriel sur iptables ici .
Cela m'a beaucoup aidé, car cela explique également clairement comment toutes les pièces s'assemblent et interagissent les unes avec les autres.
la source