Bloquer dynamiquement l'utilisation excessive de la bande passante HTTP?

24

Nous avons été un peu surpris de voir cela sur nos graphiques Cacti pour le trafic Web du 4 juin:

Nous avons exécuté Log Parser sur nos journaux IIS et il s'est avéré que c'était une tempête parfaite de robots Yahoo et Google nous indexant .. au cours de cette période de 3 heures, nous avons vu 287k hits de 3 IP Google différentes, plus 104k de Yahoo. Aie?

Bien que nous ne voulions pas bloquer Google ou Yahoo, cela a déjà été fait. Nous avons accès à un Cisco PIX 515E , et nous envisageons de le mettre en avant afin de pouvoir traiter de manière dynamique les contrevenants à la bande passante sans toucher directement à nos serveurs Web.

Mais est-ce la meilleure solution? Je me demande s'il existe des logiciels ou du matériel qui peuvent nous aider à identifier et à bloquer l'utilisation excessive de la bande passante , idéalement en temps réel? Peut-être un peu de matériel ou de logiciels open source que nous pouvons mettre devant nos serveurs Web?

Nous sommes principalement une boutique Windows mais nous avons également des compétences Linux; nous sommes également ouverts à l'achat de matériel si le PIX 515E n'est pas suffisant. Que recommanderais-tu?

Jeff Atwood
la source

Réponses:

23

Si votre PIX exécute la version 7.2 ou supérieure du système d'exploitation, ou peut y être mis à niveau, vous pouvez implémenter des stratégies QOS au niveau du pare-feu. En particulier, cela vous permet de façonner le trafic et devrait vous permettre de limiter la bande passante utilisée par les bots. Cisco a une bonne idée ici .

Sam Cogan
la source
Le seul problème que j'ai avec cette réponse est que l'affiche ne veut pas BLOQUER (ou dégrader) Google ou Yahoo mais veut plutôt qu'ils "rampent bien".
KPWINC
1
QOS ne consiste pas à bloquer. C'est pourquoi Sam Cogan a écrit "devrait vous permettre de limiter la bande passante utilisée par les bots".
Piotr Dobrogost
9

Je ne suis pas sûr de Yahoo, mais vous pouvez configurer la fréquence à laquelle le robot Google indexe votre site. Jetez un oeil à Google Webmasters . Je ne sais pas si Yahoo a quelque chose de similaire. Dans tous les cas, cela réduira votre trafic jusqu'à 50%.

Alternativement, certains serveurs Web peuvent limiter le trafic par connexion, vous pouvez donc essayer cela. Personnellement, je resterais loin des solutions matérielles car cela coûtera très probablement plus cher.

buecking
la source
Yahoo! a Site Explorer.
Amok
9

Pour réduire la charge d'exploration - Cela ne fonctionne qu'avec Microsoft et Yahoo. Pour Google, vous devrez spécifier une vitesse d'exploration plus lente via leurs outils pour les webmasters ( http://www.google.com/webmasters/ ).

Soyez TRÈS prudent lors de l'implémentation, car si vous ralentissez trop l'exploration, les robots ne pourront pas accéder à l'ensemble de votre site et vous risquez de perdre des pages de l'index.

Voici quelques exemples (ceux-ci vont dans votre robots.txtdossier):

# Yahoo's Slurp Robot - Please wait 7 seconds in between visits

User-agent: slurp
Crawl-delay: 7

# MSN Robot - Please wait 5 seconds in between visits

User-agent: msnbot
Crawl-delay: 5

Légèrement hors sujet, mais vous pouvez également spécifier un plan Sitemap ou un fichier d'index Sitemap.

Si vous souhaitez fournir aux moteurs de recherche une liste complète de vos meilleures URL, vous pouvez également fournir une ou plusieurs directives de découverte automatique de sitemaps. Veuillez noter que l'agent utilisateur ne s'applique pas à cette directive, vous ne pouvez donc pas l'utiliser pour spécifier un plan du site pour certains moteurs de recherche, mais pas pour tous.

# Please read my sitemap and index everything!

Sitemap: http://yourdomain.com/sitemap.axd
KPWINC
la source
4

Nous utilisons un pare-feu Watchguard (le nôtre est un X1000 qui est maintenant en fin de vie). Ils ont de nombreuses fonctionnalités qui tournent autour de domaines de blocage ou d'ips qui sont vus maintes et maintes fois ou qui utilisent une quantité de bande passante obsessionnelle.

Cela nécessiterait quelques ajustements car vous ne voudriez évidemment pas bloquer Jon Skeet sur stackoverflow :)

Mat
la source
3

Je recommanderais Microsoft ISA Server 2006. Spécifiquement pour cette exigence, il limitera à 600 requêtes HTTP / min par IP par défaut et vous pouvez appliquer une exception pour Jon Skeet (désolé, je me rends compte que "blague" a déjà été faite! ).

Vous avez les avantages supplémentaires du filtrage au niveau de l'application, la possibilité d'équilibrer la charge sur plusieurs serveurs Web (au lieu de NLB sur ces serveurs), la terminaison VPN, etc. Il existe un certain nombre d'extensions commerciales disponibles et vous pouvez même écrire votre propre filtre ISAPI si vous vous sentez courageux.

Ce n'est évidemment pas open-source mais présente des avantages pour une boutique Windows et fonctionne sur du matériel standard.

Robin M
la source
Il s'agit de l'approche la plus flexible avec la modification de robots.txt
Jim B
Merci. Je suis d'accord que les robots doivent être dirigés!
Robin M
2

Nous utilisons des équilibreurs de charge Foundry (en particulier les SI850) pour gérer ce type de problème de mise en forme, il gère également un grand nombre d'autres `` nastys '' comme les inondations SYN, etc. Peut-être un peu exagéré pour vous

Chopper3
la source
2

Bluecoat (anciennement Packeteer) Les produits PacketShaper peuvent étrangler dynamiquement une utilisation excessive sur le trafic qu'il gère.

Kevin Kuphal
la source
1

Vous pouvez même effectuer une limitation de débit rudimentaire avec n'importe quel routeur Cisco ordinaire de n'importe quelle capacité / millésime décent. Utilisez-vous un routeur Cisco?

Brian Knoblauch
la source