Bon, je m’essuie les mains et j’arrive… Je vais vous raconter un peu c’était pas beau à voir.
Vers 19h45 je reçois un message urgent sur mon iphone : la charge CPU de votre serveur est passée au dessus de 20mn… Depuis quelques jours j’ai des soucis avec le blog. La charge CPU part à 100% et je dois le relancer. C’est arrivé début août et depuis je n’arrive pas à trouver ce qui se passe. Mais ce soir j’y crois.
Ni une, ni deux je prends ma trousse de soin et je fonce au bloc voir l’état du patient. A cet instant j’ai deux options : soit un restart via la console de secours, soit essayer de se connecter via SSH mais il ne me reste que quelques minutes avant que le serveur ne meurt…
J’arrive à me connecter. Je fonce vers le répertoire des fichiers logs. C’est là, sous mes yeux : un fichier access.log de 155Mo. Un petit tail me montre tout de suite que la raison du ramage du serveur Web est facile à trouver (j’ai changé l’adresse IP). On note que le User Agent est Java… ben dis-donc, c’est pas un méchant virus à vue de nez.
anyuser@touilleur-express.fr> tail -f access.log 123.999.170.30 - - [27/Sep/2009:23:01:29 +0200] "GET / HTTP/1.1" 200 40129 "-" "Java/1.5.0_14" 123.999.170.30 - - [27/Sep/2009:23:01:29 +0200] "GET / HTTP/1.1" 200 40129 "-" "Java/1.5.0_14" 123.999.170.30 - - [27/Sep/2009:23:01:17 +0200] "GET / HTTP/1.1" 200 40129 "-" "Java/1.5.0_14" 123.999.170.30 - - [27/Sep/2009:23:01:17 +0200] "GET / HTTP/1.1" 200 40129 "-" "Java/1.5.0_14" 123.999.170.30 - - [27/Sep/2009:23:01:32 +0200] "GET /feed/ HTTP/1.1" 200 77121 "-" "JT******/1.0-alpha r27" 123.999.170.30 - - [27/Sep/2009:23:01:30 +0200] "GET / HTTP/1.1" 200 40129 "-" "Java/1.5.0_14" 123.999.170.30 - - [27/Sep/2009:23:01:34 +0200] "GET /feed/ HTTP/1.1" 200 77121 "-" "JT******/1.0-alpha r27" 123.999.170.30 - - [27/Sep/2009:23:01:34 +0200] "GET / HTTP/1.1" 200 40129 "-" "Java/1.5.0_14" 123.999.170.30 - - [27/Sep/2009:23:01:34 +0200] "GET /feed/ HTTP/1.1" 200 77121 "-" "JT******/1.0-alpha r27" 123.999.170.30 - - [27/Sep/2009:23:01:34 +0200] "GET /feed/ HTTP/1.1" 200 77121 "-" "JT******/1.0-alpha r27"
Voyons un peu combien de fois cette adresse IP est passée ces dernières heures
anyuser@touilleur-express.fr> grep 123.999.170.30 | wc -l access.log 630348 access.log
Ouais super, c’est open-bar. 630 000 connexions, autant dire que c’est plus du flooding à ce niveau-là.
Bon voyons qui est derrière cette adresse IP… Google est mon ami. Ah je suis sur kenai.net, et c’est un projet open source appelé JT******. Un lecteur de feed RSS en ligne. C’est sans doute un petit bug, mais bon, le gars qui a codé cela a juste laissé un @#$% de bug qui me coûte cher.
Bon pas envie de jouer avec iptables, en fait je sais pas. Alors j’ai édité mon fichier de conf apache2 et j’ai ajouté une ligne sournoise, qui le vire et m’évite qu’il me pompe toutes mes ressources.
Stop au cannibalisme
La majorité des visiteurs du Touilleur Express passent via les feeds RSS. Ces feeds RSS permettent aussi facilement de récupérer le contenu d’un blog. Or le contenu du Touilleur Express n’est pas libre de droit. Il n’est pas possible d’agréger son contenu et de le reposter sur un site. Et ce, parce que ces sites affichent ensuite des publicités, ce qui leur permet de vivre tranquillement en vivant sur votre dos. Depuis quelques temps sur Google Reader j’utilise FairShare. Ce moteur très pratique me signale les articles copiés. Je peux alors simplement ignorer les citations ou les bouts recopiés, ou carrément lancer mes armées d’avocats sur le pauvre site en question… Bon ok, je n’ai pas d’avocats, mais le coeur y est…
Et si vous pouviez vraiment ne pas utiliser ces services, vous me feriez très plaisir.
Par exemple
– bloglines.com
– socialmedian.com
– b-trail.com
– dailynewsabout.com
PS: j’ai changé l’IP et le nom du projet open-source bien entendu. Mais vivien, si tu lis mon blog, tu seras sympa de faire en sorte que j’ai pas une facture astronomique chez mon hébergeur ce mois-ci. Merci
0 no like
Euh, tu payes au volume ? Un hébergement du type Dedibox n’est il pas plus intéressant (c’est limité en bp non ?) ?
Tu es peut-être déjà au courant, mais un fail2ban bien configuré pourrait probablement te permettre de régler ce type de problème.
C’est un utilitaire auquel on indique des fichiers de logs et des règles associées, et qui bannit les ip méchantes via des règles ipconfig. De base, ça contient quelques configs par défaut, par exemple des règles contre les bruteforce SSH.