Faites sortir les enfants et amenez-moi le geek
Par Kozlika le samedi 21 mai 2005, 15:51 - Lien permanent
Alertée par mon hébergeur (Aquaray) d'un trafic anormalement élevé sur les blogs de kozlika.org et d'une grosse consommation de bande passante, j'ai constaté qu'en effet il y a plein de « visiteurs » provenant de sites de poker, de photos d'art et autres rencontres éminemment conviviales.
Outre que ma chaste réputation risque d'en souffrir, l'accès à nos blogs en est parfois très ralenti ; c'est également embêtant vis-à-vis de ceux qui partagent mon serveur mutualisé et qui en pâtissent aussi du coup. J'ai cru pouvoir m'en sortir en consultant d'une part Outils pour webmaster et en ajoutant quelques lignes au fichier htaccess
que mon hébergeur m'avait aidée à faire il y a quelques mois en semblables circonstances mais je vois dans mes stats qu'il n'en est rien, que les domaines censés être bannis me visitent toujours avec assiduité.
Si quelqu'un pouvait m'aider en regardant cette copie du fichier htaccess et me dire comment je dois le modifier, ça serait bien sympathique. Pour information, sachez que les IP sont systématiquement différentes et que le gros chieur du moment que je n'arrive pas à bannir est <celui qui joue au poker> (vais pas lui faire de la pub avec un vrai lien non plus, mais le domaine est en clair dans le fichier) mais ça n'est pas le seul.
Mon futur bienfaiteur jouira, outre de ma reconnaissance éternelle, d'un bon pour une boisson gratuite au prochain Paris-Carnet, motivant, non ?
Commentaires
François mon frère m'a fait un machin qui a fait disparaitre tous les joueurs de carte du mien : vachement efficace !
je lui fais suivre ton message
Ca manque un peu d'informations, un extrait de l'access log aurait été utile :-) Des petites choses peuvent être modifiées néanmoins. Par exemple au niveau des
La requête va être bloquée si le référant est exactement http://www.legrosmechant.com/indexr.htm ou http://www.legrosmechant.com/indexr.html. On peut plus simplement bloquer tous les référants de www.legrosmechant.com avec :
Le point important est de faire sauter tout ce qui suit le nom de domaine, et le '$' final.
Un access log hein ? Ahem... oui bien sûr... je sais ce que c'est faut pas croire, faut juste que ça me revienne...
Mais j'ai compris le reste je crois, Damien B. - et merci ! j'essaie ça de ce pas !
Kozlika > Si tu y arrives… ce serait bien que la technique d'eradication figure quelque part (sur ton chantier ?). Ce genre de désagrément peut arriver à tout un chacun.
Deux heures entières et pas le moindre joueur à l'horizon ! Damien B, la bière est au frais :) Tu as décidément de multiples talents !
Obni, je veux bien mais il va d'abord falloir que je comprenne un peu mieux sinon je n'ai aucune chance de savoir expliquer :-/ C'est le souci que j'ai eu en cherchant sur Google : soit il y a tellement d'informations (5 ou 6 longues pages sur le site que j'ai cité sur mon billet) que je décroche rapidement, soit les « tutoriels » réclament des prérequis que je n'ai pas...
Le problème dans le fait de donner une explication simple de ce blocage est que l'on est au croisement de TCP/IP, d'HTTP et de la configuration d'Apache (qui heureusement ne ressemble en rien à celle de Sendmail), saupoudré d'expressions régulières de base. Le principe est de dénier l'accès à un client qui cherche à se positionner en tant que référant d'une page, ceci pourrait parfaitement être fait en PHP dans Dotclear. Mais dans le cas qui nous intéresse (charge sur le serveur), il est bigrement plus efficace de le faire au niveau d'Apache : il faut alors se plonger un minimum dans la configuration que l'hébergeur laisse accessible. Espérons juste que le changement au niveau des SetenvIf suffise.
J'ai fait un petit schéma de fonctionnement dans le cas du blocage sur le référant : http://www.cynicalturtle.net/kame/images/bloquer_kozlika.jpg
sur wp j ai tout essaye (htaccess)et le seul truc efficasse a ete referer karma et spam karma si quelqu un peu développer un truc similaire sur dot il me semble que spam referer peux s adapter facilement ->
->
Le code de referer karma fonctionne comme le .htaccess, de toute façon il n'a pas trop le choix (cf. le schéma) : blocage sur l'adresse IP / nom d'hôte distant et blocage sur le contenu d'une entête Referer. Ce qu'apporte referer karma et une facilité de gestion des expressions régulières à bloquer, mais sinon je le répète, la stratégie de blocage est identique à celle du .htaccess de dame Kozlika. Ce qu'on perd par rapport à la solution du .htaccess par contre, c'est que plus de ressources serveurs sont consommées. Toujours par rapport au schéma, il faudrait rajouter des étapes :
Résultat, toutes les ressources que l'on veut économiser (mémoire, traitement de script, accès base de données) se sont envolées par rapport à la solution .htaccess. Une solution hybride consisterait en ayant un plugin "interface de gestion" dans dotClear qui mettrait à jour le .htaccess. Seulement, cette solution est restreinte (cf. commentaire précédent) aux libertés que laisse l'hébergeur pour la personnalisation du .htaccess. Ca ne serait en aucun cas un plugin universel comme referer karma.
Damien B, un grand merci pour ces explications limpides et le schéma, j'ai parfaitement compris les points que tu as développés. D'ailleurs, si tu es d'accord, je mettrai ledit schéma sur mon serveur et modifierai le lien pour que tu puisses faire le ménage sur le tien.
Cette histoire de plugin pour aller compléter le .htaccess me plaît assez : j'ai bien compris que ce n'était pas universel mais au moins ceux dont l'hébergeur le permet pourraient en bénéficier. Et peut-être pour les autres, l'autre solution, plus gourmande mais qui passerait partout (si j'ai bien compris ?).
romu, je ne connaissais pas referrer karma, en revanche nous avons déjà eu l'occasion de parler sur le forum de dotclear de spam karma et je n'y suis pas favorable - ni les autres membres de l'équipe d'ailleurs. Cette méthode exclut de facto les internautes aveugles ou plus largement ceux qui utilisent un navigateur non graphique. Olivier avait commencé à travailler sur un captcha accessible mais il est incomplet et il n'a pas eu le temps d'y rebosser.
Ceux que la discussion pour trouver un système fiable et accessible intéresse peuvent jeter un œil sur les fils où il en a été question (un, deux, trois)
François Granger a quant à lui travaillé sur la mise en place d'une blacklist pour empêcher la publication de commentaires ou trackbacks en fonction de leur provenance.
A suivre donc...
Je m'aperçois que je suis également atteint par le site de jeu dont tu fais allusion et qui me fait des accès permanent sur mon bloc note virtuel.
Je vais essayer la technique du .htaccess que préconise Damien.
Visiblement ça ne semble pas fonctionner, ou alors ce n'est pas immédiat.
Juste une précision, si je place des
SetEnvIf Referer "^http://www.lesitedujoueurala.com" bang
ai-je besoin de repréciser plus loin :
deny from www.lesitedujoueurala.com ?
Pour finir, j'ai écrit :
Order allow,deny Allow from all Deny from env=bang
La première commande est-elle utile ?
Kozlika : ce schéma est libre d'utilisation :-) J'ai l'original en SVG si tu veux le retravailler.
obni : le SetEnvIfReferer ne fait que placer une variable d'environnement particulière, celle-ci ne sert à rien en tant que tel, c'est la ligne "Deny from env=bang" qui utilise cette variable et effectue le blocage. "deny from www.lesitedujoueurala.com" est différent, Apache prend l'adresse IP du client (a.b.c.d dans le schéma), puis demande au serveur de noms le nom d'hôte associé à cette adresse IP (c'est ce qu'on appelle un requête inverse au serveur de noms), et si ce nom est "www.lesitedujoueurala.com", alors la requête est bloquée. Ce cas se présente assez rarement, mais pour le quantifier, il faut un bouts des logs bruts (l'access log :-)
relire relire relire, c'est horrible
Dans la série "pourquoi chercher midi à quatorze heures", j'ai laissé passé la faute qui rend le .htaccess inopérant. La directive Order est un peu contre-intuitive... d'après la documentation :
est inopérant ! La documentation spécifie en effet "Allow,Deny : les directives Allow sont évaluées avant les directives Deny", or, la seule directive Allow est... autorise tout le monde ! La configuration correcte est donc
Order Deny, Allow
, et il faut enleverallow from all
. Cette fois ça devrait être correct ^^;J'ai mis mon .htaccess ici
J'ai l'impression que le order Allow,Deny ne sert pas à grand chose en effet.
Bravo pour tout ce boulot !
A partire de là, il va être possible de construire un vrai plug in un jour ;-)
La liste publié ici est partageable, modifiable et améliorable. On peut en particulier lui donner un format plus universel, modifiable ensuite par script pour s'adapter aux besoins.
Il lui faudrait aussi un système de partage des adresses bloquées.
Attention au blocage sur les IP. Elles sont souvent "empruntées"... LLM pratique cette mèthode et ses commentateurs s'en pleignent.
PS: un crash disque m'a tenu déconnecté depuis hiers matin. Je n'ai pas encore complètement récupéré....
Bravo pour tout ce boulot !
A partire de là, il va être possible de construire un vrai plug in un jour ;-)
La liste publié ici est partageable, modifiable et améliorable. On peut en particulier lui donner un format plus universel, modifiable ensuite par script pour s'adapter aux besoins.
Il lui faudrait aussi un système de partage des adresses bloquées.
Attention au blocage sur les IP. Elles sont souvent "empruntées"... LLM pratique cette mèthode et ses commentateurs s'en pleignent.
PS: un crash disque m'a tenu déconnecté depuis hiers matin. Je n'ai pas encore complètement récupéré....
Je croyais que j'avais plein de visiteurs moi ! En fait non. Juste 2 3 connaissances.
est-ce que les indésirables sont visibles avec le plugin referers ?
sinon comment ?
kaz : dans les statistiques fournies par mon hébergeur et confirmées par BBclone. Je n'utilise pas le plugin Referers.
J'aimerais être rassuré, ça fonctionne bien en mettant
Order Deny,Allow
et en faisant sauter leAllow from all
?Damien B: pas sûr que cela ait une importance. Chez moi j'ai un
oder allow, deny
et unallow from all
comme dernière règle, et toutes les adresses que je souhaite bloquer (même par env) sont bel et bien bloquées.Damien > Pour moi, ça marche avec le fichier que j'ai indiqué (lien plus haut). J'ai indiqué comme règles finales:
Order allow,deny
Allow from all
Deny from env=bang
Quant à moi j'ai modifié le fichier donné en lien dans mon billet en procédant uniquement aux changements conseillés par Damien dans le commentaire numéro 2 et ça marche aussi.
Bon... Relisons la documentation... Encore... Ca m'apprendra à lire... N'empêche qu'avec
deny, allow
on gagne une ligne :-PTrouvé ça chez Tomtom, on devrait peut-être organiser la mise en commun de cette discussion et de la liste des gros-méchants ?
Chez Aquaray, il faut virer le allow from all.
Eric.
Tu es gentil El Desaparecido, mais en supprimant
Allow from all
même moi je n'ai plus accès aux pages :-DEuh... Est-ce que j'oserais demander l'état final du htaccess à créer à l'issue de ces réflexions pour bannir les spameurs? Et dans quel répertoire faut-il le mettre: à la racine, où est index.php? ou à la racine du répertoire où sont lee fichiers Dotclear?
" Le jeudi 2 juin 2005 à 14:22, par Kozlika
Tu es gentil El Desaparecido, mais en supprimant Allow from all même moi je n'ai plus accès aux pages :-D"
En Fait le Allow from all doit etre avant tes DENY vu que ton allow annule tous les DENY Precedents
Precise que le ALLOW est prioritaire donc si tu autorise tout apres avoir bloquer ça ne sert à rien.