comment lutter contre la surcharge d'un serveur

WRInaute discret
Aujourd'hui il y a l'ip 88.101.234.243 qui a essayer de scroller notre site web avec des dizaines de connections simultannée !

probleme bien evidement => Surcharge du serveur !

Comment lutter contre cela? comment savoir si l'ip 88.101.234.243 (ou autre) ne provient pas d'un robot d'un moteur de recherche ?

Comment faite vous pour identifier les connexion "normal" des connexions "anormal" ?

merci d'avance !
stéphane
 
WRInaute passionné
Es-ce que c'était un crawl à l'aveugle (logs 404), si oui, un fail2ban bien cfg pour la jail noscript devrait être efficace (attention à bien le cfg :p)

Sinon, tu peux peut-être jouer avec la configuration d'apache, pas trop sûr, mais le maxserver/client... Et peut-être un des mods d'Apache, (le bandwidth limite peu limiter la casse, mais je n'ai jamais joué avec) Il y a peut-être quelques mods intéressant permettant de limiter les crawls massifs...

Autre question quel été l'useragent qui t'as crawlé ?
 
WRInaute occasionnel
Si juste une dizaine de connections simultanées ont fait saturer ton serveur, cela vient vraissemblablement d'un probleme de configuration d'apache ou de php.

Il faut regarder du coté des process child etc pour optimiser le nombre de connections simultanées.

Aujourd'hui sur un serveur simple (Intel celeron 2ghz, 1go de ram), j'obtiens sans problèmes 300 connections simultanées.

Bon courage !
 
Nouveau WRInaute
sinon la bonne vieille méthode que nous utilisons quand on tente de nous flooder les serveurs : bloquer l'IP sur le firewall :)

En tout cas c'est toujours galère ce genre de pb :(
 
WRInaute discret
Kaliiii a dit:
Si juste une dizaine de connections simultanées ont fait saturer ton serveur, cela vient vraissemblablement d'un probleme de configuration d'apache ou de php.

Il faut regarder du coté des process child etc pour optimiser le nombre de connections simultanées.

Aujourd'hui sur un serveur simple (Intel celeron 2ghz, 1go de ram), j'obtiens sans problèmes 300 connections simultanées.

Bon courage !

non, par dizaine je voulais dire centaine qui accede a des pages qui font un lourd traitement dans la base de données ... ca plante pas le serveur mais ca le surchage ! l'idée c'est de savoir quand et comment je peux considerer qu'une requete est "anormal" ...
 
WRInaute impliqué
Bonjour,

vous pouvez brider les connections avec une règles Iptables, faut l'adapter pour votre cas, c'est juste un exemple, c'est le terme limit qui est important.
/sbin/iptables -A INPUT -p icmp -m state --state NEW -m limit --limit 2/s -j ACCEPT
 
WRInaute passionné
arkadia, il existe un module apache, mod_evasive qui te permetra de résoudre ton problème.

Ce module te permet de te protéger des requetes trops fréquentes sur une même url depuis la même sources, ou d'un trop grand nombre de requetes depuis la même source dans un laps de temps donné, ou d'un trop grand nombre de requetes d'une source donnée vers le même processus apache.

la doc est ici

sinon une requette google et tu trouveras des infos en fraçais :wink:
 
WRInaute occasionnel
les modules comme mod_evasive, la limitation du nb de servers apache, etc... tout cela ne sera pas utile lors d'un attaque par synflood :

l'attaque par synflood est tres simple techniquement a mettre en place :
il suffit pour le client d'envoyer le premier SYN TCP (voir http://www.commentcamarche.net/internet/tcp.php3 pour comprendre la poignée de main SYN SYN ACK de TCP) et de maintenir la connexion en ignorant le SYN du serveur.

Ainsi on sature très rapidement tous les slots TCP du kernel, et donc plus aucune connexion TCP n'est acceptée sur le serveur.

Pour contrer cela, ce n'est pas au noveau de Apache, mais au niveau de la pile TCP/IP dans le kernel, et donc comme le dit topsitemaker créer une regle iptables.
 
WRInaute occasionnel
hum,
iptables c'est un module du noyau linux.

pour windows, je connais pas, il faut voir du cote des logiciels de firewalling qui existent, et se palucher la doc :)
 
Discussions similaires
Haut