Je fais une mise à jour il y a peu d’un forum que je gère (gracieusement) depuis des lustres pour un collectif d’artistes. Testé, etc., tout se passe bien.
Peu de temps après, on me signale l’impossibilité de publier un nouveau message. Je m’aperçois alors qu’on a explosé la taille de la base de données autorisée, du coup tout est bloqué. La table sessions est très chargée et il y a aussi beaucoup de “pertes”. Je la nettoie, et fais en sorte de pouvoir reprendre la main dessus (je la supprime après avoir fait une sauvegarde, puis la recrée, et réimporte). Le forum est à nouveau fonctionnel.
Du coup, je cherche la cause et vais donc regarder les statistiques de l’hébergement… et là, c’est le drame :
Plus d’un Gigaoctets de trafic par jour (une pointe à 1.30 Go le 15 avril) ! Mais d’où ce trafic peut-il bien venir ?
Ah, ok. Non content d’envoyer un putain de virus de merde, ils envoient des fucking robots pour mettre la zone sur les sites… Je commence par bloquer via le fichier htaccess un domaine qui semble apporter énormément de trafic. Je vais ensuite voir les logs d’accès et trouve des noms récurrents de robots pas tout à fait gentils, je fais une recherche et tombe sur un billet (et ses commentaires) qui donne une solution parfaite pour bloquer tout ça. Je rajoute les lignes qu’il faut dans le htaccess, mais je fais une erreur. Quelques jours plus tard, je m’aperçois de ma boulette qui laissait encore passer un robot bien pénible, et le forum redevient enfin peinard. Ouf !
L’occasion de me rappeler de cette courte mais instructive conférence à Paris Web sur le trafic des robots, et les bons et mauvais élèves…
1 mirovinben ·
Oh ! Merde alors !
Tes lignes à ajouter m’intéressent. Au cas où… (ici ou par mail).
2 Tomek ·
Alors c’est assez simple, inspiré du billet sus-mentionné :
SetEnvIfNoCase User-Agent (libwww-perl|wget|LieBaoFast|Mb2345Browser|zh-CN|MicroMessenger|zh_CN|Kinza|Bytespider|Baiduspider|MQQBrowser|Sogou|SemrushBot|AspiegelBot) bad_bot
Order Deny,Allow
Deny from env=bad_bot
À adapter évidemment selon les robots qu’on veut bloquer…
PS : tiens, faudra que j’ajoute un style personnalisé pour la balise <code>. Edit : c’est fait !
3 mirovinben ·
Merci !…
Et pardon pour une question très naïve : j’ai déjà mis en place le bocage de certaines adresses IP ou groupe d’IP, du genre…
order allow,deny
deny from 123.123.123.123
deny from 111.222
allow from all
Si je souhaite insérer tes lignes, je les place où ?
4 mirovinben ·
Aargh, les balises wiki utilisées pour un bloc de code apparaissent en clair dans mon précédent commentaire, du coup les @ sont en trop…
5 Tomek ·
N’étant pas spécialiste, je ne sais pas trop. Je suppose qu’il n’est pas utile de répéter la ligne order deny,allow. Mais à part ça…
Pour le code wiki, il faut je pense l’insérer à chaque ligne. J’ai corrigé en tout cas.
6 mirovinben ·
Ok et merci… :-)
7 Pep ·
Ah ben tiens… Ça me fait penser qu’il serait grand temps que je remonte mes filets et fasse tourner une bonne grosse analyse sur les traces ainsi emmagasinées.
J’ai peu ou prou la même liste de user-agents dans mes règles fail2ban, plus quelques unes pour dégager les script kiddies et leurs webscanners, les bots irrespectueux, toutes les bricoles des pourvoyeurs de mesures d’influence et/ou autres pénibles du SEO débridé, etc.
Pour ceux qui s’entêtent malgré les 403 retournés, ça se traduit au bout de quelques temps par une jolie entrée en blacklist dans l’iptables du serveur.
À force, ça commence tellement à me gonfler que j’envisage la mise en place de contremesures, voire de m’autoriser quelques expéditions punitives.
8 Tomek ·
Oh ? Des expéditions punitives ? J’aimerais bien voir comment ça marche.
9 Pep ·
Je te renvoie à Lucky Luke et “Canyon Apache”. ;-)
10 Tomek ·
Pfff, t’es pas drôle !