Saturation serveur

Saturation serveur

Déjà quelques jours que je m’arrache les cheveux et perd un temps précieux sur un sérieux problème d’attaque Web sur mon serveur, un soucis qui semble s’orienter autour d’attaque de BingBot ou d’un bon bug dans celui-ci, le tout causant une charge CPU anormal sur le serveur.

Et c’est de la que le problème a été identifié. Contacté par Infomaniak il y a un moment, mon hébergement avait dû être démutualisé pour cause de surcharge CPU, or ce n’est pas vraiment le genre d’Infomaniak de faire la grimace ! Difficile de mettre la doigt exactement sur ce qui en est la cause, il a donc fallu tenter plusieurs pistes.

J’ai d’abord fait un genre de test malware de mes différents sites avec cet outil : http://sucuri.net/ sans grand résultat, il m’annonçait simplement que mes versions de WordPress n’était pas à jour. Dans la mesure où le passage à Worpdress 3.x impliquait toute une série d’incompatibilité plugins, je m’étais volontairement arrêté à la version 2.9.8.2  J’ai donc mis à jour mes noyaux, mis à jour les nombreux plugins et puis ?

Je me suis souvenu avoir lu qu’il était parfois utile de checker authenticité des thèmes wordpress utilisés. En effet, par exemble, celui de mon blog avait été réalisé au départ d’un thème datant maintenant de 2007…. Cause potentiel ? Pas vraiment sur, mais bon, cela n’aura pas fait de tord de mettre tout cela à jour

J’en ai profité pour faire du nettoyage sur mon serveur, par bloquer via .htaccess certains répertoires,… puis sous les conseilles d’Infomaniak, j’ai installé un outil d’optimisation de cache du site WP Super Cache, qui permet de diminuer les requêtes aux serveurs.

Mais rien à faire, la charge CPU restait toujours assez élevée… Dans les statistiques, je voyais qu’une page d’un de mes blogs était anormalement visitée, plus de 600.000 fois depuis début mai sans aucune raison. La page était plutôt clean, on aurait juste pu lui reprocher un embed de player Jamendo… Un croisement avec les weblog du site me montre effectivement que le problème passe bien par là, on retrouve ce genre de log plusieurs fois par seconde en permanence :

157.55.17.151 – – [16/May/2012:00:00:10 +0200] « GET /cyborgjeff/site/albums/divagation-se-1997/%26layout=button_count%26show_faces=false%26width=250%26action=like%26colorscheme=light%26font=arial%26height=35px/1997/02/24/344-4u2-ethnic-drums-ftl-mix-16/1997/04/10/372-ego/1997/03/23/365-2-3-frutti-dance-classics/1997/02/24/344-4u2-ethnic-drums-ftl-mix-16/1997/04/10/370-introduction-of-dream-part-ii/1996/11/27/279-moon-day/1996/11/27/279-moon-day/1997/04/04/368-deep-house-titanic-mix/1997/04/10/372-ego/1997/04/10/372-ego/1997/04/05/369-i-get-no-sleep-part-2/1997/03/03/351-one-month-but-three-weeks-without-you-mixing/1997/03/16/361-hey-mister-dj/1997/02/12/335-space-del/1997/02/12/335-space-del/ HTTP/1.1 » 301 – « – » « Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) »

Plusieurs choses m’intrigue là dedans, d’abord tout le blabla après la page proprement dit et ensuite des appels vers les urls des pages liées à la première, un peu comme si l’appel en question allait ouvrir une dizaine de pages d’un coup, ce qui pourrait évidemment expliquer la surcharge, ensuite à quoi peut bien faire référence ceci : %26layout=button_count%26show_faces=false%26width=250%26action=like%26colorscheme=light%26font=arial%26height=35px

J’ai tout d’abord supprimer ma page temporairement, les appels ont continuer sans soulager le serveur, et pour cause, c’est wordpress qui génère les messages d’erreur type 404 et compagnie, par contre fin de journée, le BingBot a fini par se lassé et la charge CPU est retombée… J’ai réactivé la page, et dès le lendemain, bardouf !

Petit check, les différentes IPs semblent bien provenir de Microsoft (MSNBot et BingBot), j’avais fini par trouver quelques Abus BingBot récent mais qui semble surtout provenir d’adresse IP douteuses, et cibler essentiellement les pages de logins ou de commentaires, ce qui n’est pas le cas ici… J’ai par contre aussi trouvé certaines personnes rapportant des comportements agressif et anormaux des BingBots officiels ces dernières semaines…

Que faire ? Pour l’heure j’ai bloqué l’accès à Bingbot et Msnbot via du code .htaccess

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*(msnbot).* [NC] # Si le user agent contient la chaine msnbot
RewriteRule ^.* – [F,L] # On interdit alors l’accès à la page

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*(bingbot).* [NC] # Si le user agent contient la chaine msnbot
RewriteRule ^.* – [F,L] # On interdit alors l’accès à la page

Cela soulage le serveur, mais je trouve la parade un peu trop large… j’aimerais bien pouvoir affiner cela, voir comprendre la raison du problème sur ma page bien précise… histoire de pouvoir me prémunir d’autres pertes de temps de ce genre !

>> Ici la solution finale mise en place : https://www.studio-quena.be/cyborgjeff/blog/2012/05/24/cyborg-jeff-vs-robots/

différentes choses à lire sur le sujet :

http://blog.johanbleuzen.fr/lutter-efficacement-contre-spams-wordpress

http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/changelog/

http://serverfault.com/questions/382946/blocking-good-bots-in-nginx-with-multiple-conditions-for-certain-off-limits-ur

http://support.tigertech.net/wordpress-performance#think-twice-about-jmp

http://forum.webrankinfo.com/referencement-des-articles-blog-sous-wordpress-t97481.html

http://web-tech.ga-usa.com/2012/03/abuse-from-bingbot-2012/ 

http://boomshadow.net/tech/fixes/spoofed-bingbot/

http://www.robotstxt.org/robotstxt.html

Vous aimerez aussi
Optimisation Mobile
Optimisation Mobile

Je poursuis mes analyses afin d'optimiser ce qui peut l'être sur mon blog. Depuis le mois de juin, Goolge semble (Lire la suite)

Google Analytic 4, on chamboule tout !
Google Analytic 4, on chamboule tout !

Ah les statistiques de visite des sites web, c'est un truc qui m'a toujours passionné ! J'avais bien sur mon (Lire la suite)

La course à la technologie
La course à la technologie

Je pensais le passage au 45 pixels moins douloureux (-- parce que là, cela fait 4 semaines que j'ai mal (Lire la suite)

8 réflexions sur « Saturation serveur »

  1. Bon ceci dit, je pense que je vais écouter l’idée de frangin Pype, puisqu’au fond l’importance du bon référencement de cet page du site n’est pas importante. Je vais changer les URLs des liens et liens entre eux… histoire que Bing me foutent la paix !

  2. J’ai le même problème avec un site SPIP, avez vous pur réduire la limitation faite par htaccess ?
    ou trouvé une autre solution ?

  3. Le .htaccess a permis d’empecher le serveur php de construire la page. Cela a fait gagner en charge CPU, mais les logs restaient très très nombreux et constituait en soit un désagrément.
    Dans la mesure où il s’agissait de requête de vraie serveur Microsoft, j’ai construit un fichier ROBOTS.TXT affiné afin de bloquer le référencement de tout un série de lien critique ou anormaux.
    Je compte réaliser un article sur le sujet ce midi, ou tout du moins avant le weekend.
    Cela a été très efficace.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.