Forum général.test Iptales --limit-burst problemes

Posté par .
Tags : aucun
-2
11
avr.
2010
bonjour tt le monde,

j'ai un pc equipé avec 2 cartes reseau eth0 et eth1 j'ai construit un pont reliant les 2 cartes et j'essaye de dropper quelques paquets passant sur le réseau.

j'ai écrit ce code

iptables -F
iptables -Z
iptables -A FORWARD -p udp -m limit --limit-burst 6 -j DROP

mais la réalité que c'est pas toujours 6 paquets udp sont droppés, parfois 7 parfois 8 et 9, c à dire le nombre n'est pas stables.je ne sais pas pourquoi.

S.V.P aidez moi j'en ai besion pour mon sujet de pfe.

Merci d'avance ..!!
  • # logique

    Posté par . Évalué à 2.

    il ne limite pas par tranche de 6 mais à partir de 6

    en gros tu envoies 50 paquets, il laisse passer les 6 premiers, qui sont trop rapides, coupe (à cause de la limite) et tant que c'est trop rapide il reste coupé

    ce qui semble etre confirmé par le man
    --limit-burst number
    Maximum initial number of packets to match: this number gets
    recharged by one every time the limit specified above is not
    reached,
    up to this number; the default is 5.


    ca compte +1 à chaque passage jusqu'a la limite
    • [^] # Re: logique

      Posté par . Évalué à 1.

      Merci de votre réponse,

      Mais oui je sais bien ce que vous venez de dire, moi réellement je veux stopper 6 UDP c à d les 6 premiers paquets dés que la règle est affecté dans le pare-feu.

      Le problème c'est que n'est pas toujours je trouve 6 paquets droppé exactement mais avec + 1 ou 2 paquets UDP qui sont droppés.

      le problème c'est cette inexactitude de la valeur....!!
      • [^] # Re: logique

        Posté par . Évalué à 2.

        peut-etre simplement parceque ta limitation n'est pas precise

        toujours dans le man
        limit
        This module matches at a limited rate using a token bucket filter. A rule using this extension will match until this limit is reached (unless the `!' flag is used). It can be used in combination with the LOG target to give limited logging, for example.

        [!] --limit rate[/second|/minute|/hour|/day]
        Maximum average matching rate: specified as a number, with an optional `/second', `/minute', `/hour', or `/day' suffix; the default is 3/hour.

        --limit-burst number
        Maximum initial number of packets to match: this number gets recharged by one every time the limit specified above is not reached, up to this number; the default is 5.


        le limit burst est en relation avec le limit precedent (above)

        mais ne precise pas la durée pendant laquelle il considere que c'est un "burst"

        ex : --limit 5/second
        voudrait dire que tu toleres 5 passages correspondants dans un delai de la seconde
        mais si ton emetteur n'en envoie que 4, tu n'appliquera pas la regle.

        inversement, si l'emetteur envoie 10 requetes secondes, les 5 premieres vont passer mais pas les suivantes
        • [^] # Re: logique

          Posté par (page perso) . Évalué à 2.

          NeoX: OP veut faire le contraire de ce que fait limit-burst : il ne veut pas laisser passer n paquets et bloquer les suivants, il veut bloquer les n premiers paquets et laisser passer les suivants. Alors après, je n'ai pas compris pourquoi houssem est parti dans la direction de limit-burst...

          Est-ce qu'il ne faudrait pas plutôt développer un petit module iptables perso ?
          • [^] # Re: logique

            Posté par . Évalué à 0.

            j'utilise la limit-burst parce que je n'ai pas d'autres solutions afin de bolquer qulqeus paquets udp....

            Si vous avez une idée vazi ;)))))
            • [^] # Re: logique

              Posté par . Évalué à 2.

              y a pas un parametre count ou counter ?

              qui permettrait de compter les paquets et de bloquer si count<6 ?

              man iptables
              -c, --set-counters packets bytes
              This enables the administrator to initialize the packet and byte counters of a rule (during INSERT, APPEND, REPLACE operations).

              [...]
              -x, --exact
              Expand numbers. Display the exact value of the packet and byte counters, instead of only the rounded number in K's (multiples of 1000) M's (multiples of 1000K) or G's (multiples of 1000M).
              This option is only relevant for the -L command.


              si a cela tu rajoutes un JUMP
              tu dois pouvoir faire des conditionnels


              sinon c'est quoi en fait l'interet de DROP les 6 premiers paquets, mais pas les suivants ?
              en general on fait l'inverse, et c'est pour ca que c'est pas simple à trouver.
              - on log les 2 ou 3 premiers essais, et on laisse tomber les suivants si la personne s'acharne
              - on drop si le rythme de connexion est superieur à N / secondes...

              peut-etre qu'avec un exemple on arrivera à t'aider ;)
              • [^] # Re: logique

                Posté par . Évalué à 0.

                En fait, moi je développe une application qui perturbe le réseau, en sniffant le réseau actuelle je trouve qu'il y a plein de trames udp OK!!

                Pour cela pour perturber le réseau je réalise cela par la commande iptables.

                mais parmi les exigences, c'est d'importer un scripte qui contient une matrice binaire comme celle-ci

                0 1 1
                1 0 0
                1 1 1

                avec : 1 correspond à iptables ......limit-burst 1 - j DROP

                et : 0 correspond à iptables ...... limit-burst 1 - j ACCEPT

                dans l'exemple que je viens de donner il faut dropper 6 paquets UDP

                mais avec Wireshark je trouve parfois 7, 8 et même 9 paquets droppé
                et rarement 6 paquets :(((((

                voilaaaaa le prob
                • [^] # Re: logique

                  Posté par . Évalué à 2.

                  si pour toi perturbé le reseau c'est jouer de iptables, ce n'est pas vraiment du developpement.

                  le developpement voudrait que tu fasse un "proxy" perturbant.

                  un truc qui ecoute, modifie, reemet
                  ainsi tu controles tout de A à Z

                  hors là tu n'utilises deja pas les bonnes fonctions iptables puisque tu lui demande de limiter les "burst"

                  en francais, tu lui demandes de dropper quand il y a des "rafales" sur UDP

                  dans ton cas il faudrait faire l'inverse

                  laisser passer tant que le compteur n'atteint pas 6
                  dropper ensuite

                  par exemple en limitant à 6 requetes par secondes
                  iptables -A FORWARD -p udp -m limit 6/s -j ACCEPT
                  iptables -A FORWARD -p udp -j DROP
                  • [^] # Re: logique

                    Posté par . Évalué à 0.

                    Mais moi je veux totalement l'inverse, je veux laisser passer le trafic réseau et à un certain moment je bloques quelques paquets UDP....!!

                    Ce que vous venez de dire c'est de bloquer totalement le réseau.

                    et à propos la limit-burst c'est tout à fait ce que je veux c'est de bloquer le trafic UDP en rafale. :)))

                    Donc c 'est la seule solution que j'ai trouvé
                    • [^] # Re: logique

                      Posté par . Évalué à 2.

                      le limit et limitburst c'est pour compter les paquets qui passent
                      et limiter si ce comptage depasse un certain rythme

                      par exemple pour limiter un Deny Of Service, tu va dropper si l'emetteur envoie plus de X requetes par secondes/minutes...

                      toi tu veux interrompre le reseau X sec puis le remettre.
                      ce qui n'est pas vraiment pareil.

                      sinon c'est quoi une "PFE"
                      car dans le sujet initial, tu nous dis que tu as besoin d'aide pour ton sujet de "PFE"...
                    • [^] # Re: logique

                      Posté par . Évalué à 2.

                      avec le man en Francais on comprend mieux ce que fait limit et limitburst
                      http://www.delafond.org/traducmanfr/man/man8/iptables.8.html
                  • [^] # Re: logique

                    Posté par . Évalué à 0.

                    Mais moi je veux totalement l'inverse, je veux laisser passer le trafic réseau et à un certain moment je bloques quelques paquets UDP....!!

                    Ce que vous venez de dire c'est de bloquer totalement le réseau.

                    et à propos la limit-burst c'est tout à fait ce que je veux c'est de bloquer le trafic UDP en rafale. :)))

                    Donc c 'est la seule solution que j'ai trouvé
    • [^] # Re: logique

      Posté par . Évalué à -1.

      Merci de votre réponse,

      Mais oui je sais bien ce que vous venez de dire, moi réellement je veux stopper 6 UDP c à d les 6 premiers paquets dés que la règle est affecté dans le pare-feu.

      Le problème c'est que n'est pas toujours je trouve 6 paquets droppé exactement mais avec + 1 ou 2 paquets UDP qui sont droppés.

      le problème c'est cette inexactitude de la valeur....!!
  • # un outil pour sniffer, enregistrer, modifer puis rejouer ...

    Posté par . Évalué à 2.

    http://linuxfr.org/2010/04/16/26740.html

    avec ces outils tu vas pouvoir capturer le trafic normal
    le modifier (pour simuler des pertes ou modifs de paquet)
    et rejouer le trafic

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.