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

Re: Protection contre un DDOS tcp open

28 réponses
Avatar
Jean-Baptiste FAVRE
Salut,

En fait, d=C3=A9j=C3=A0 envisag=C3=A9 mais, j'aurais d=C3=BB le pr=C3=A9cis=
er dans mon premier mail d=C3=A9sol=C3=A9, une dizaine de milliers d'IP (he=
ureusement pas simultan=C3=A9es) provenant d'une 30aine de pays diff=C3=A9r=
ents...
Un peu dur =C3=A0 g=C3=A9rer :-)

Merci quand m=C3=AAme
JB

> Message du 15/05/07 18:52
> De : "Benjamin RIOU" <pandolphe@pandolphe-vision.net>
> A : "Jean-Baptiste FAVRE" <jean-baptiste.favre@wanadoo.fr>
> Copie =C3=A0 :=20
> Objet : Re: Protection contre un DDOS tcp open
>=20
> Salut !
>=20
> Que penses tu de limiter le nombre connexion par IP avec connlimit (si
> les attaques sont issues d'un sous r=C3=A9seau IP d=C3=A9fini) ou bien av=
ec le
> module recent d'iptables ?
>=20
> ++
> Ben
>=20
>

10 réponses

1 2 3
Avatar
Stephane Bortzmeyer
On Wed, May 16, 2007 at 12:03:33AM +0200,
François Boisson wrote
a message of 33 lines which said:

Ces connexions peuvent se faire à l'aveugle non (i.e sans avoir la
réponse, on envoit un paquet «SYN» et on se moque du «ACK» qui
revient. Il y a donc de grande chances que l'IP d'origine soit
fausse.



Dans ce cas, les "SYN cookies" suffisent (j'avais fait la même
erreur). Mais le message originel montre bien que l'attaquant renvoie
des ACK. Donc, les "SYN cookies" ne suffiraient pas.


--
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
Stephane Bortzmeyer
On Wed, May 16, 2007 at 12:11:31AM +0200,
François Boisson wrote
a message of 25 lines which said:

J'ai du mal à croire qu'un gars ait dix mille machines à sa
disposition pour te polluer mais je ne comprends pas comment il
fait...



C'est un petit botnet. Les plus gros font plus de cent mille
machines. « A botnet is comparable to compulsory military service for
Windows boxes » (Stromberg)

Voir l'excellent article de Honeynet « Know your Enemy »
http://www.honeynet.org/papers/bots/


--
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
François Boisson
Le Wed, 16 May 2007 08:05:04 +0200
Stephane Bortzmeyer a écrit:

On Wed, May 16, 2007 at 12:11:31AM +0200,
François Boisson wrote
a message of 25 lines which said:

> J'ai du mal à croire qu'un gars ait dix mille machines à sa
> disposition pour te polluer mais je ne comprends pas comment il
> fait...

C'est un petit botnet. Les plus gros font plus de cent mille
machines. « A botnet is comparable to compulsory military service for
Windows boxes » (Stromberg)

Voir l'excellent article de Honeynet « Know your Enemy »
http://www.honeynet.org/papers/bots/



Merci de ce papier particulièrement complet, Il ne manque que le prix de
location et l'endroit où trouver cela. Je ne pensais pas que ce phénomène
s'était généralisé à ce point.

Le problème consiste donc à différencier une connexion vivante d'une connexion
endormie et ce, juste après l'établissement de la dite connexion. Je ne vois
qu'une fonctionnalité de netfilter que je ne connaitrais pas ou un wrapper à
Apache (à faire)...

François Boisson


--
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
Stephane Bortzmeyer
On Wed, May 16, 2007 at 10:06:11AM +0200,
François Boisson wrote
a message of 38 lines which said:

Il ne manque que le prix de location et l'endroit où trouver cela.



La mafia russe ne pratique pas la transparence tarifaire :-) Quant aux
endroits pour trouver cela, je suppose qu'il faut trainer dans les
canaux IRC mal famés.


--
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
Jean Baptiste Favre
Bonsoir à tous,

Finalement, c'est Benjamin Riou
(http://lists.debian.org/debian-user-french/2007/05/msg00765.html) qui,
j'espère, m'a mis sur les rails pour trouver une solution. J'espère
parce que l'attaque s'est arrêtée (jusqu'à la prochaine fois...). C omme
quoi, une "probable connerie" n'en est pas forcément une :-)
Merci Benjamin.

Le plus simple est effectivement de filtrer sur la présence (ou pas)
d'une requête HTTP, ce qui n'empêche pas de limiter le nombre de
connexions par IP. Bon, la redirection ou le rewrite rule ne me
conviennent pas pour différentes raisons, mais un proxy léger et rapi de
m'irait comme un gant.

Donc, j'ai un peu fouillé le net et suis tombé sur ça: pound
(http://www.apsis.ch/pound/ et packagé Debian) ou HAProxy
(http://haproxy.1wt.eu/ mais pas packagé :-( ).

Ils semblent très légers et performants et leur configuration, a prio ri,
assez simple.

Je teste tout ça le plus rapidement possible et je vous tiens au couran t.

Merci en tout cas pour toutes vos suggestions, ça fait toujours avancer
sa propre réflexion :-)
@+
JB

François Boisson a écrit :
Le Wed, 16 May 2007 08:05:04 +0200
Stephane Bortzmeyer a écrit:

On Wed, May 16, 2007 at 12:11:31AM +0200,
François Boisson wrote
a message of 25 lines which said:

J'ai du mal à croire qu'un gars ait dix mille machines à sa
disposition pour te polluer mais je ne comprends pas comment il
fait...


C'est un petit botnet. Les plus gros font plus de cent mille
machines. « A botnet is comparable to compulsory military service fo r
Windows boxes » (Stromberg)

Voir l'excellent article de Honeynet « Know your Enemy »
http://www.honeynet.org/papers/bots/



Merci de ce papier particulièrement complet, Il ne manque que le prix de
location et l'endroit où trouver cela. Je ne pensais pas que ce phé nomène
s'était généralisé à ce point.

Le problème consiste donc à différencier une connexion vivante d' une connexion
endormie et ce, juste après l'établissement de la dite connexion. J e ne vois
qu'une fonctionnalité de netfilter que je ne connaitrais pas ou un wr apper à
Apache (à faire)...

François Boisson




Avatar
Franck Joncourt
--8JPrznbw0YAQ/KXy
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, May 16, 2007 at 07:54:59AM +0200, Benjamin RIOU wrote:

(ce qui suit est probablement une immense connerie)

Mettons que ton service à contacter sur le port 80.
Serait-il possible de faire une erreur 301 "Moved Permanantly" vers
un autre port ?

Je m'explique,
X se connecte à ton serveur sur le port 80. Il fait un GET /
La page lui répond d'aller voir sur le port 8040, sur laquelle ton
serveur est doresetnavant.
X se connecte alors au 8040 et tout va bien.

Formidable.
Maintenant, le bot va pas aller sur le port 8040 car il fait pas de
requette HTTP.
Sur ton serveur Apache, tu mets un timeout de 3 secondes sur le port
80, et un timeout plus long sur le 8040.


Comme ca ton bot n'aura pas d'accès à ton serveur, et pourra être
jetté sur le champ.

Qu'est-ce que t'en penses ?




Avant d'attaquer on apprend a connaitre son adversaire. Donc port 80 ou
8040, cela ne va pas aider. C'est un peut le meme principe que de faire
ecouter son serveur SSH sur un port different de 22 : aucun interet.

Le but c'est d'arriver a mettre en place une procedure pour apprendre a
ton serveur a reconnaitre les attaquants, autrement tu ne fais que
deplacer le probleme.

--
Franck Joncourt
http://www.debian.org
http://smhteam.info/wiki/
GPG server : pgpkeys.mit.edu
Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE

--8JPrznbw0YAQ/KXy
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGS1rDxJBTTnXAif4RAkEeAJ9LnNhgveoCp7y28feTMB9pPDaF3QCfc0Cr
TGoTrWE0f4ZQpOBsj2+Kx3A =nN8s
-----END PGP SIGNATURE-----

--8JPrznbw0YAQ/KXy--


--
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
François Boisson
Le Wed, 16 May 2007 21:25:55 +0200
Franck Joncourt a écrit:

Avant d'attaquer on apprend a connaitre son adversaire. Donc port 80 ou
8040, cela ne va pas aider. C'est un peut le meme principe que de faire
ecouter son serveur SSH sur un port different de 22 : aucun interet.



Si, dès que le client fait une requête quelle qu'elle soit, le serveur renvoit
la requête en local sur le port 8040. Cela permet de faire un traitement
différent ET automatique aux connexions suivies d'un GET /?? et aux simples
connexions ouvertes sans effet.

Je pense que apache sait faire un transfert de ce type sans pbm. Le seul
souci, c'est si les personnes consultant le serveur sont sur des machines
filtrées ou les ports en sortie sont limités...

François Boisson


--
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
Franck Joncourt
--8S1fMsFYqgBC+BN/
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, May 16, 2007 at 09:32:14PM +0200, François Boisson wrote:
Le Wed, 16 May 2007 21:25:55 +0200
Franck Joncourt a écrit:

> Avant d'attaquer on apprend a connaitre son adversaire. Donc port 80 ou
> 8040, cela ne va pas aider. C'est un peut le meme principe que de faire
> ecouter son serveur SSH sur un port different de 22 : aucun interet.

Si, dès que le client fait une requête quelle qu'elle soit, le serveur renvoit
la requête en local sur le port 8040. Cela permet de faire un traite ment
différent ET automatique aux connexions suivies d'un GET /?? et aux simples
connexions ouvertes sans effet.



Je ne comprends pas.
Qu'est ce que cela apporte en plus de travailler sur le port 8040, qui
ne pourrait etre fait sur le port 80 ? Les nouvelles connexions sont
toujours presentes !

Je vois ce que tu as ecris de la facon suivante :
Le client etablit une connexion sur le port 80, puis effectue un GET qui
est renvoyé en local sur le port 8040 (ou le serveur apache est à
l'ecoute). Ensuite le dialogue entre le serveur apache et le client se
fait sur le port (serveur) 8040.
Ainsi, impossible pour le client d'ouvir une nouvelle connexion directement
sur le port 8040.

--
Franck Joncourt
http://www.debian.org
http://smhteam.info/wiki/
GPG server : pgpkeys.mit.edu
Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE

--8S1fMsFYqgBC+BN/
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGS2xJxJBTTnXAif4RAuD6AKDHVZJHVjMBOD4+bXgIo0CxrFhdSACeN+ml
lI48/mvU/8Pd4D5SyeZcCWQ =uSaG
-----END PGP SIGNATURE-----

--8S1fMsFYqgBC+BN/--


--
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
> Je ne comprends pas.
Qu'est ce que cela apporte en plus de travailler sur le port 8040, qui
ne pourrait etre fait sur le port 80 ? Les nouvelles connexions sont
toujours presentes !

Je vois ce que tu as ecris de la facon suivante :
Le client etablit une connexion sur le port 80, puis effectue un GET qui
est renvoyé en local sur le port 8040 (ou le serveur apache est à
l'ecoute). Ensuite le dialogue entre le serveur apache et le client se
fait sur le port (serveur) 8040.
Ainsi, impossible pour le client d'ouvir une nouvelle connexion directeme nt
sur le port 8040.



je n'ai pas compris comme toi.
Le client ouvre une connexion vers le port 80.
Le port 80 lui renvoie une erreur 304 : Moved Permantly (@ip : 8040).
** Point barre. Une unique connexion vers le port 80 et un timeout très c ourt.
Y a rien de renvoyé en local ou quoi que ce soit.

Le client ouvre une connexion une connexion vers le port 8040, et est
connecté au serveur.

Le botnet ne faisant pas de requete GET /,
Jean Baptiste a choisi de le localiser les mauvaises connexions de
cette manière.
Ce qui revient à faire un filtrage de couche 7 (conso CPU en montée en charge ?)

++
Ben
Avatar
François Boisson
> > > Avant d'attaquer on apprend a connaitre son adversaire. Donc port 80 ou
> > 8040, cela ne va pas aider. C'est un peut le meme principe que de faire
> > ecouter son serveur SSH sur un port different de 22 : aucun interet.
>
> Si, dès que le client fait une requête quelle qu'elle soit, le serveur
> renvoit la requête en local sur le port 8040. Cela permet de faire un
> traitement différent ET automatique aux connexions suivies d'un GET /?? et
> aux simples connexions ouvertes sans effet.

Je ne comprends pas.
Qu'est ce que cela apporte en plus de travailler sur le port 8040, qui
ne pourrait etre fait sur le port 80 ? Les nouvelles connexions sont
toujours presentes !




Oui, mais les actives sont sur le port 8040 et celles qui ne donnent pas lieu
à activité sur le port 80, Benjamin Riou suggère simplement de mettre un
timeout différent sur les deux ports ce qui permet de liquider les connexions
dormantes sur le port 80.

Je vois ce que tu as ecris de la facon suivante :
Le client etablit une connexion sur le port 80, puis effectue un GET qui
est renvoyé en local sur le port 8040 (ou le serveur apache est à
l'ecoute). Ensuite le dialogue entre le serveur apache et le client se
fait sur le port (serveur) 8040.
Ainsi, impossible pour le client d'ouvir une nouvelle connexion directement
sur le port 8040.



Je pense que si, je ne connais pas bien apache là dessus mais sans doute que
si, je ne vois pas de raison d'enlever cette possibilité pour le moment.

François Boisson


--
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
1 2 3