Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Iptables - Controle nombre connexions par IP

24 réponses
Avatar
Benjamin RIOU
Bonjour =E0 tous,

Apr=E8s avoir mis =E0 jour iptables (en version 1.3.6), certains modules
fonctionnent =E0 nouveau, comme connbytes.

Mais c'est comme d'hab, ca marche tellement bien, qu'on en veut toujours pl=
us ;)

J'ai absolument besoin de controler le nombre de connexions par IP.

Pour cela il y a iplimit
(http://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.=
html)

mais j'aimerais savoir s'il n'y avait pas un moyen sans passer par le
patch d'iptables ?


Merci !
Ben
(qui a rat=E9 son permis pour la 3 eme fois aujourd'hui...) ;)

10 réponses

1 2 3
Avatar
Pascal Hambourg
Benjamin RIOU a écrit :

Comme pour un grand nombre de cibles et de correspondances d'iptables,
il faut deux éléments :
- une bibliothèque libipt_truc.so située dans /lib/iptables/ et utilisée
par le programme iptables lors de la création d'une règle ;
- un module du noyau ipt_truc.[k]o ou xt_truc.ko situé dans
/lib/modules/<version>/kernel/net/...



En effet, cela n'est pas dans /lib/modules/.../kernel/net/ipv4/netfilter/ !

Vais essayer de patcher iptables avec patch-o-matic (je sens déjà les
misères arriver...) afin d'y mettre en place connlimit



Ce n'est pas iptables mais le noyau qu'il faut patcher.

puisque vous me dites que c'est le
mieux (c'est vrai que cela semble moins l'usine que recent).



Je n'ai pas dit ça. Je me contente de dire que connlimit et recent
répondent à des besoins différents, mais je ne connais pas le besoin.

J'avais déjà essayé , mais sans grand succès :



1) Récupérer une archive récente du patch-o-matic-ng dans
<http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/> (pas ceux qui
font 46 octets, ils sont vides).
2) Décompresser l'archive.
3) Exécuter "./runme --download" pour télécharger le patch conlimit.
4) Exécuter "./runme connlimit" pour appliquer le patch connlimit aux
sources du noyau.
5) Configurer le noyau pour activer la correspondance connlimit en dur
ou en module.
6) Compiler et installer le noyau.

Note : il semble qu'il faille patcher le patch (!) pour qu'il fonctionne
avec les dernières versions du noyau, à cause de changements intervenus
dans celles-ci. Cf. les listes netfilter et/ou netfilter-devel.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Benjamin RIOU
> > puisque vous me dites que c'est le
> mieux (c'est vrai que cela semble moins l'usine que recent).

Je n'ai pas dit ça. Je me contente de dire que connlimit et recent
répondent à des besoins différents, mais je ne connais pas le besoi n.



Ma machine refournit un accès à internet, en controlant ses clients
par adresse mac.

Cette machine ne peut avoir plus de 700 connexions simultanées vers
l'exterieur.
A moi de limiter le nombre de connexions par client pour ne pas
dépasser ce stade.

J'arrive déjà : à faire du controle de ports
à faire du controle de flux (un client ne peut
telecharger plus de 20 megs par cnx)
Mais il me manque :
de controler le nombre de cnx par client (soit par
adresse mac)

C'est bien limit qu'il me faut je pense ?

> J'avais déjà essayé , mais sans grand succès :

1) Récupérer une archive récente du patch-o-matic-ng dans
<http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/> (pas ceux qui
font 46 octets, ils sont vides).
2) Décompresser l'archive.
3) Exécuter "./runme --download" pour télécharger le patch conlimit .
4) Exécuter "./runme connlimit" pour appliquer le patch connlimit aux
sources du noyau.
5) Configurer le noyau pour activer la correspondance connlimit en dur
ou en module.
6) Compiler et installer le noyau.

Note : il semble qu'il faille patcher le patch (!) pour qu'il fonctionne
avec les dernières versions du noyau, à cause de changements interven us
dans celles-ci. Cf. les listes netfilter et/ou netfilter-devel.



Le .runme --download semble pointer vers une page qui a été déplacé e.

On va se marrer.
Je vous tient au courant :-)




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact .org




Avatar
Pascal Hambourg
Benjamin RIOU a écrit :

Ma machine refournit un accès à internet, en controlant ses clients
par adresse mac.

Cette machine ne peut avoir plus de 700 connexions simultanées vers
l'exterieur.
A moi de limiter le nombre de connexions par client pour ne pas
dépasser ce stade.

J'arrive déjà : à faire du controle de ports
à faire du controle de flux (un client ne peut
telecharger plus de 20 megs par cnx)
Mais il me manque :
de controler le nombre de cnx par client (soit par
adresse mac)

C'est bien limit qu'il me faut je pense ?



connlimit, plutôt ? Oui, mais il ne prend en compte que l'adresse IP
source, pas l'adresse MAC. Il faut donc vérifier la correspondance
MAC-IP par ailleurs.

3) Exécuter "./runme --download" pour télécharger le patch conlimit.
4) Exécuter "./runme connlimit" pour appliquer le patch connlimit aux
sources du noyau.





Note : on peut télécharger et patcher avec une seule commande :
$ ./runme --download connlimit

Le .runme --download semble pointer vers une page qui a été déplacée.



Comment ça ? Chez moi ça télécharge bien les patches externes :
Successfully downloaded external patch geoip
Successfully downloaded external patch condition
Successfully downloaded external patch IPMARK
Successfully downloaded external patch connlimit
Successfully downloaded external patch ipp2p
Successfully downloaded external patch time
Successfully downloaded external patch ACCOUNT

Au pire, il faut mettre à jour le contenu du fichier sources.list (celui
du pom-ng, pas de Debian).


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Benjamin RIOU
Salut !

Je me suis mis à l'oeuvre :
mais il ne semble pas télécharger grand chose.


:~/patch-o-matic/patch-o-matic-ng-20060701# ./runme --downloa d
http://mynodes.net/pub/linux/netfilter/patchlets: bad patch name
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">, ignored
http://mynodes.net/pub/linux/netfilter/patchlets: bad patch name
<HTML><HEAD>, ignored
http://mynodes.net/pub/linux/netfilter/patchlets: bad patch name
<TITLE>302 Found</TITLE>, ignored
http://mynodes.net/pub/linux/netfilter/patchlets: bad patch name
</HEAD><BODY>, ignored
http://mynodes.net/pub/linux/netfilter/patchlets: bad patch name
<H1>Found</H1>, ignored
http://mynodes.net/pub/linux/netfilter/patchlets: bad patch name The
document has moved <A
HREF="http://people.netfilter.org/peejix/patchlets/">here</A>.<P>,
ignored
http://mynodes.net/pub/linux/netfilter/patchlets: bad patch name
</BODY></HTML>, ignored
Successfully downloaded external patch condition
Hey! KERNEL_DIR is not set.
Where is your kernel source directory? [/usr/src/linux]
/root/kernel/linux-2.6.17.10
Hey! IPTABLES_DIR is not set.
Where is your iptables source code directory? [/usr/src/iptables]
/root/iptables/iptables-1.3.6/
Loading patchlet definitions........................ done

Excellent! Source trees are ready for compilation.


Je pense que mon sources.list (d'iptables) est défaillant.

En voici son contenu :
# Add the URLs for external patchlets here
#

# geoip, maintained by Samuel Jean
http://mynodes.net/pub/linux/netfilter/patchlets

# condition, maintained by Massimiliano Hofer
http://www.nucleus.it/pom-repo

Qu'en penses tu ?

Merci !
++
Ben
Avatar
Pascal Hambourg
Benjamin RIOU a écrit :

:~/patch-o-matic/patch-o-matic-ng-20060701# ./runme --download


[...]
Je pense que mon sources.list (d'iptables) est défaillant.

En voici son contenu :
# Add the URLs for external patchlets here
#

# geoip, maintained by Samuel Jean
http://mynodes.net/pub/linux/netfilter/patchlets

# condition, maintained by Massimiliano Hofer
http://www.nucleus.it/pom-repo

Qu'en penses tu ?



J'en pense qu'effectivement ton sources.list est obsolète. J'avais dit
de récupérer une archive /récente/, ce qui n'est pas franchement le cas
de la 20060701 qui est la plus ancienne encore présente sur le serveur
et qui date de 10 mois. La dernière fois que j'ai fait la manip, c'était
avec la 20070408 datant du mois dernier et ça s'est bien passé. A ma
connaissance il n'y a pas eu de changement dans les archives non vides
suivantes. Voici le contenu de son sources.list :

# Add the URLs for external patchlets here
#

# geoip, maintained by Samuel Jean
http://people.netfilter.org/peejix/patchlets

# condition, maintained by Massimiliano Hofer
http://www.nucleus.it/pom-repo

# ipp2p, time, IPMARK and connlimit maintained by Krzysztof Oledzki

http://people.netfilter.org/ole/pom/

# ACCOUNT, maintained by Intra2net AG
http://www.intra2net.com/de/produkte/opensource/ipt_account/


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Benjamin RIOU
> J'en pense qu'effectivement ton sources.list est obsolète. J'avais dit
de récupérer une archive /récente/, ce qui n'est pas franchement le cas
de la 20060701 qui est la plus ancienne encore présente sur le serveur
et qui date de 10 mois. La dernière fois que j'ai fait la manip, c'ét ait
avec la 20070408 datant du mois dernier et ça s'est bien passé. A ma
connaissance il n'y a pas eu de changement dans les archives non vides
suivantes. Voici le contenu de son sources.list :



Quel âne !
j'ai pensé que ce qui était plus haut était forcément le plus recen t.

j'ai téléchargé les paquets .deb des sources d'ubuntu server
(ah oui parce que je tourne sous ubuntu server)

j'ai repris la config de mon noyeau.
j'ai fait un make menuconfig avev pour base la config de mon noyau.

le menu s'est chargé (grand moment d'émotion...) j'ai chargé les
modules d'iptables que je voulais.

Et quand j'essaye de le compiler, (make-kpkg clean), il me dit qu'il y
a un probleme avec un pilote à la con.

J'essaye de le desactiver dans la compilation (c'est bien la touche N, hum ?)

Et il essaye toujours de compiler ce con de driver dont il n'a pas les sour ces.


Je cherche le menu CREVE-CHAROGNE ou bien CREVE-POURRITURE pour
l'appliquer à ce fameux pilote, je vous tiens au courant.


(d'autres semblent avoir rencontré le même probleme déjà)

++
Ben

scripts/Makefile.clean:17:
/usr/src/linux-headers-2.6.20-15/drivers/infiniband/hw/amso1100/Makefile:
No such file or directory
make[5]: *** No rule to make target
`/usr/src/linux-headers-2.6.20-15/drivers/infiniband/hw/amso1100/Makefile'.
Stop.
make[4]: *** [drivers/infiniband/hw/amso1100] Error 2
make[3]: *** [drivers/infiniband] Error 2
make[2]: *** [_clean_drivers] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.20-15'
make[1]: *** [real_stamp_clean] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-15'
make: *** [CLN-common] Error 2
Avatar
Benjamin RIOU
> Et il essaye toujours de compiler ce con de driver dont il n'a pas les so urces.


Je cherche le menu CREVE-CHAROGNE ou bien CREVE-POURRITURE pour
l'appliquer à ce fameux pilote, je vous tiens au courant.





bon, j'ai créé un fichier vide pour le satisfaire et tout va bien.

Cependant, vers la fin de la compilation de mon kernel , il m'annonce :
CHK include/linux/utsrelease.h
make[2]: *** No rule to make target `init/main.o', needed by
`init/built-in.o'. Stop.
make[1]: *** [init] Error 2


et au début de la compilation, j'ai un message bizarre du type :
:/usr/src/linux-headers-2.6.20-15# make-kpkg --initrd
--append-to-version "-geekland" kernel_image kernel_headers
Warning: The file include/linux/version.h exists
The contained UTS_VERSION string:
""
does not match expectations:
"2.6.20.3-ubuntu1-geekland"
I'll try and recover
exec debian/rules
DEBIAN_REVISION=2.6.20.3-ubuntu1-geekland-10.00.Custom
APPEND_TO_VERSION=-geekland INITRD=YES kernel_image kernel_head

Si quelqu'un à une idée , je suis preneur !


Merci

Ben
Avatar
Pascal Hambourg
Benjamin RIOU a écrit :

et au début de la compilation, j'ai un message bizarre du type :
:/usr/src/linux-headers-2.6.20-15# make-kpkg [...]



Pas d'idée concernant tes erreurs. J'ai construit quelques noyaux
2.6.20, mais à partir des sources originales de kernel.org. Par contre,
un question par curiosité : que diable fais-tu dans ce qui semble être
un répertoire d'en-têtes du noyau (headers) et non des sources ?


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Benjamin RIOU
> > et au début de la compilation, j'ai un message bizarre du type :
> :/usr/src/linux-headers-2.6.20-15# make-kpkg [...]

Pas d'idée concernant tes erreurs. J'ai construit quelques noyaux
2.6.20, mais à partir des sources originales de kernel.org. Par contre,
un question par curiosité : que diable fais-tu dans ce qui semble êtr e
un répertoire d'en-têtes du noyau (headers) et non des sources ?




C'est possible d'obtenir le menu de compilation (make menuconfig) si
on n'a pas les sources du kernel ? :-D

Vous croyez qu'on m'envoie au bucher , si je dis que :
je n'ai téléchargé que les entetes du noyau et les ai patché av ec
patch o matic, croyant fierement avoir patché les sources du kernel ?

Bon, vais essayer de prendre linux-source-2.6.20 et recommencer à nouveau .

++
Ben.
Avatar
Jean-Yves F. Barbier
Benjamin RIOU a écrit :
> et au début de la compilation, j'ai un message bizarre du type :
> :/usr/src/linux-headers-2.6.20-15# make-kpkg [...]

Pas d'idée concernant tes erreurs. J'ai construit quelques noyaux
2.6.20, mais à partir des sources originales de kernel.org. Par cont re,
un question par curiosité : que diable fais-tu dans ce qui semble ê tre
un répertoire d'en-têtes du noyau (headers) et non des sources ?




C'est possible d'obtenir le menu de compilation (make menuconfig) si
on n'a pas les sources du kernel ? :-D

Vous croyez qu'on m'envoie au bucher , si je dis que :
je n'ai téléchargé que les entetes du noyau et les ai patché avec
patch o matic, croyant fierement avoir patché les sources du kernel ?

Bon, vais essayer de prendre linux-source-2.6.20 et recommencer à nou veau.

++
Ben.



il est gentil le p'tit Benji.........
--
Adapt. Enjoy. Survive.
1 2 3