Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1525 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Question à propos d'iptables et du comportement des tables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question à propos d'iptables et du comportement des tables

n°1093962
redvivi
Posté le 30-11-2008 à 11:44:36  profilanswer
 

Bonjour à tous !
 
     Une question me turlupine: Etant un adepte du traffic shaping, je filtre et classe tous mes packets dans la table POSTROUTING:
 

Code :
  1. iptables -t mangle -A POSTROUTING -o $DEV -p tcp --dport 80 -j MARK --set-mark 21
  2. iptables -t mangle -A POSTROUTING -o $DEV -p tcp --dport 80 -j RETURN


 
Jusqu'ici tout va bien, les paquets sont traités correctement, par contre, je vérifie les paquets selon certains critères, ici le TOS:

Code :
  1. # Table TOSFIX
  2. iptables -t mangle -N tosfix
  3. iptables -t mangle -A tosfix -p tcp -m length --length 0:512 -j RETURN
  4. iptables -t mangle -A tosfix -m limit --limit 2/s --limit-burst 10 -j RETURN
  5. iptables -t mangle -A tosfix -j TOS --set-tos Maximize-Throughput
  6. iptables -t mangle -A tosfix -j RETURN
  7. ...
  8. iptables -t mangle -A POSTROUTING -o $DEV -p tcp -m tcp --tcp-flags SYN,RST,ACK ACK -j ack (première règle qui traite les paquets)


 
Ma question se trouve au niveau du -j RETURN, une fois qu'un paquet est matché par la première règle de la table TOSFIX par exemple (iptables -t mangle -A tosfix -p tcp -m length --length 0:512 -j RETURN), est-ce que le RETURN signifie que le paquet poursuit son bonhomme de chemin dans la table POSTROUTING (pour être traité par les règles éventuelles qui suivent de la table POSTROUTING, comme celle matchant les paquets à destinatin du port 80 dans mon premier exemple) ou alors le paquet sort immédiatement de la table TOSFIX et POSTROUTING pour sortir sur l'interface réseau?
 
Merci à tous !
RedVivi

mood
Publicité
Posté le 30-11-2008 à 11:44:36  profilanswer
 

n°1093963
o'gure
Modérateur
Multi grognon de B_L
Posté le 30-11-2008 à 11:51:35  profilanswer
 

Dans mes souvenirs d'iptables, ton paquet quitte la chaine courante à la première règle qui matches :o
Suivant comment il est rentré dans la chaine, soit il passe à la chaine suivante, soit si c'est la dernière chaine il est émis (si non filtré) sur la bonne interface en fonction du routage.
 
Je n'ai pas trop trifouillé avec mangle. Je ne sais donc plus quelle chaine suit :o


---------------
Relax. Take a deep breath !
n°1093965
redvivi
Posté le 30-11-2008 à 12:01:51  profilanswer
 

o'gure a écrit :

Dans mes souvenirs d'iptables, ton paquet quitte la chaine courante à la première règle qui matches :o
Suivant comment il est rentré dans la chaine, soit il passe à la chaine suivante, soit si c'est la dernière chaine il est émis (si non filtré) sur la bonne interface en fonction du routage.
 
Je n'ai pas trop trifouillé avec mangle. Je ne sais donc plus quelle chaine suit :o


 
Je suis d'accord avec ce que tu dis, mais est-ce le cas pour une "sous-chaine" de POSTROUTING créee dans mangle ? Ce que je fais (voir code ci-dessous), c'est que je récupère les paquets qui passent dans le POSTROUTING mangle pour l'envoyer vers la chaine TOSFIX ou ACK mangle. Une fois ces paquets traités par les tables TOSFIX et ACK, ils continuent dans le POSTROUTING mangle d'après toi ou sortent vers le POSTROUTING nat (qui suit le POSTROUTING mangle) ?
 

Code :
  1. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
  2. ...
  3. # Table TOSFIX
  4. iptables -t mangle -N tosfix
  5. iptables -t mangle -A tosfix -p tcp -m length --length 0:512 -j RETURN
  6. iptables -t mangle -A tosfix -m limit --limit 2/s --limit-burst 10 -j RETURN
  7. iptables -t mangle -A tosfix -j TOS --set-tos Maximize-Throughput
  8. iptables -t mangle -A tosfix -j RETURN
  9. # Table ACK
  10. iptables -t mangle -N ack
  11. iptables -t mangle -A ack -m tos ! --tos Normal-Service -j RETURN
  12. iptables -t mangle -A ack -p tcp -m length --length 0:128 -j TOS --set-tos Minimize-Delay
  13. iptables -t mangle -A ack -p tcp -m length --length 128: -j TOS --set-tos Maximize-Throughput
  14. iptables -t mangle -A ack -j RETURN
  15. #Selecting HTTP Traffic
  16. iptables -t mangle -A POSTROUTING -o $DEV -p tcp --dport 80 -j MARK --set-mark 21
  17. iptables -t mangle -A POSTROUTING -o $DEV -p tcp --dport 80 -j RETURN
  18. iptables -t mangle -A POSTROUTING -o $DEV -p tcp --dport 443 -j MARK --set-mark 21
  19. iptables -t mangle -A POSTROUTING -o $DEV -p tcp --dport 443 -j RETURN
  20. # Is our TOS broken? Fix it for TCP ACK and OpenSSH.
  21. iptables -t mangle -A POSTROUTING -o $DEV -p tcp -m tcp --tcp-flags SYN,RST,ACK ACK -j ack
  22. iptables -t mangle -A POSTROUTING -o $DEV -p tcp -m tos --tos Minimize-Delay -j tosfix
  23. # Here we deal with ACK, SYN, and RST packets
  24. # Match SYN and RST packets
  25. iptables -t mangle -A POSTROUTING -o $DEV -p tcp -m tcp --tcp-flags ! SYN,RST,ACK ACK -j MARK --set-mark 20
  26. iptables -t mangle -A POSTROUTING -o $DEV -p tcp -m tcp --tcp-flags ! SYN,RST,ACK ACK -j RETURN
  27. # Match ACK packets
  28. iptables -t mangle -A POSTROUTING -o $DEV -p tcp -m tcp --tcp-flags SYN,RST,ACK ACK -m length --length :128 -m tos --tos Minimize-Delay -j MARK --set-mark 20
  29. iptables -t mangle -A POSTROUTING -o $DEV -p tcp -m tcp --tcp-flags SYN,RST,ACK ACK -m length --length :128 -m tos --tos Minimize-Delay -j RETURN
  30. # Match packets with TOS Minimize-Delay
  31. iptables -t mangle -A POSTROUTING -o $DEV -p tcp -m tos --tos Minimize-Delay -j MARK --set-mark 20
  32. iptables -t mangle -A POSTROUTING -o $DEV -p tcp -m tos --tos Minimize-Delay -j RETURN


n°1093966
o'gure
Modérateur
Multi grognon de B_L
Posté le 30-11-2008 à 12:08:56  profilanswer
 

Ah j'avais loupé ta sous-chaine.
Si ton paquet traverse la sous-chaine sans rencontré de règle qui la matche, il retourne dans la chaine "appelante".
S'il rencontre une regle qui la matche je ne me souviens plus :D


---------------
Relax. Take a deep breath !
n°1093967
o'gure
Modérateur
Multi grognon de B_L
Posté le 30-11-2008 à 12:14:10  profilanswer
 

Après relecture du man ca vient du -j return :

Citation :

RETURN means stop traversing this chain and resume at the next rule in the previous (calling) chain. If the end of a built-in chain is reached or a rule in a built-in chain with target RETURN is matched, the target specified by the chain policy determines the fate of the packet.


Donc tu retournes à la chaine appelante, à la règle suivant directement ton -j TOSFIX :o


Message édité par o'gure le 30-11-2008 à 12:15:17

---------------
Relax. Take a deep breath !
n°1094023
redvivi
Posté le 30-11-2008 à 16:53:02  profilanswer
 

Ok super !! Merci pour ces précisions !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  Question à propos d'iptables et du comportement des tables

 

Sujets relatifs
Probleme IPTABLES, avec un bridge (application de virtualisation)petite question pour les chefs de projet
Question concernant Backuppcprobleme iptables -F
iptables et log -résolu-[RESOLU] Comportement bizarre
Questions à propos du RMI....... urgent..Taille limite des partitions à 400Go et autre question
Aide avec IPTABLES et OpenVPNDeux questions à propos des DVD
Plus de sujets relatifs à : Question à propos d'iptables et du comportement des tables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR