Le blocage par IP est-il efficace ?

Question

Le blocage par IP est-il efficace ?

Traitement

Langage humain

Fais la liste des ordinateurs refusés et de ce qu’ils faisaient à ce moment-là. Notes-moi tout ça dans un fichier bien rangé et tenu à jour.

Procédure

Le fichier de log obtenu sur le serveur (je n’explique pas ici comment obtenir un tel fichier) doit se trouver dans votre répertoire utilisateur (~) et s’appeller main.log.

Isoler toutes les adresses qui se sont prises un deny from IP (erreur 403) (grep '" 403 ') depuis le fichier de log (le journal de bord) (~/main.log). Conserver également ce qu’ils étaient en train de faire sur cette machine (du GET ou du POST) (sed 's/- blog.empyree.org \[.*\] "//' | sed 's/ [^-A-Z].*//). Écrire le tout sur un premier fichier temporaire (> ~/main-onlyrejected.log)

Ce fichier ne contient que la dernière moisson. Nous voulons l’ajouter aux moissons précédentes. S’il n’existe pas, nous créons (touch) le fichier liste_refus.log (~/liste_refus.log), qui sera notre fichier final. Nous allons ensuite (;) combiner (cat) le contenu du nouveau fichiers ( ~/main-onlyrejected) et du fichier existant, liste_refus.log (~/liste_refus.log) (s’il y en a un). Une fois les fichiers combinés (;), nous allons faire un peu de ménage : tri par ordre numérique (12 avant 109, alors qu’en alphabétique ce serait le contraire) (| sort -n) et suppression des doublons (| uniq) et tout cela, nous allons l’écrire (>) dans un second dossier temporaire, liste_refus-new.log (~/liste_refus-new.log)

Maintenant, faisons un peu de ménage : nous n’avons plus besoin du fichier de nouvelles IP interdites, nous le supprimons donc (rm ~/main-onlyrejected). Quant au fichier liste_refus-new.log, il peut désormais remplacer l’ancienne version (mv ~/liste_refus-new.log ~/liste_refus.log).

Code

  1. Filtrer les rejetés (attention, il y a des rejetés pas par moi) :
    grep '" 403 ' ~/main.log | sed 's/- blog.empyree.org \[.*\] "//' | sed 's/ [^-A-Z].*//' > ~/main-onlyrejected.log
  2. Concaténer les fichiers journaliers :
    touch ~/liste_refus.log; cat ~/main-onlyrejected ~/liste_refus.log | sort -n | uniq > ~/liste_refus-new.log
  3. Nettoyer les tris concaténés :
    rm ~/main-onlyrejected
  4. Ne garder que le nouveau :
    mv ~/liste_refus-new.log ~/liste_refus.log
Code concaténé

Tout ceci d’un coup d’un seul grâce à la commande de séparation de commandes, ; :

grep '" 403 ' ~/main.log | sed 's/- blog.empyree.org \[.*\] "//' | sed 's/ [^-A-Z].*//' > ~/main-onlyrejected.log;touch ~/liste_refus.log; cat ~/main-onlyrejected.log ~/liste_refus.log | sort -n | uniq > ~/liste_refus-new.log;rm ~/main-onlyrejected.log;mv ~/liste_refus-new.log ~/liste_refus.log

Réponse

À peine une semaine après la création de ce suivi, ma liste de refus m’affiche 2251 machines refusées. C’est surprenant, car je n’ai pas 2251 adresses interdites dans mon .htaccess, mais il est vrai que je partage l’ordinateur avec d’autres personnes ; c’est peut-être la raison (mais ça ne devrait pas). De plus, certaines des personnes qui sont interdits de séjour sur le territoire empyréen sont peut-être de parfaits innoncents (les spammeurs viennent pour poster, ce qui est plutôt du POST, mais j’ai beaucoup de GET, qui ne devraient pas avoir été piégés par mon .htaccess). La présence du qu’est-ce que vous faisiez quand on vous a arrêté ? et dont la réponse est soit GET ou POST, permettra peut-être d’y voir plus clair.

Quoiqu’il en soit, 2308 adresses refusées, c’est beaucoup. À la réponse Le blocage par IP est-il efficace ?, ma réponse est oui.

Merci à Arnaud pour le log et à Laura pour le code. Fine équipe que nous trois (enfin, surtout eux deux, moi, mon rôle, c’est surtout de ronchonner et de quémander ;-) )

flattr this!

  • « mais j’ai beaucoup de GET, qui ne devraient pas avoir été piégés par mon .htaccess » : le filtrage par .htaccess est indépendant du GET ou du POST, quand on demande à Apache de bloquer, il bloque, tout simplement.

    Sinon, pour les blocages en plus de ceux de ton .htaccess, tu peux avoir certains plugins anti-spam qui refoulent avec un 403. C’est le cas de « Blocage par référent », et peut-être la modification de code qui contrôle la cohérence de l’origine des trackbacks.

  • Frog > Ah ben au contraire, ça change tout. Si tu n’étais pas chez toi quand tu t’es fais bannir, c’est que la personne chez qui tu étais était infectée :-). Ceci étant dit, comme je te l’ai écrit, l’erreur humaine de ma part est toujours possible.</p> <p>Arnaud > J’avais oublié ton greffon. Je crois que je vais le désactiver, vu comment j’utilise les 403.</p>

  • DL > Non, si tu te bases sur les erreurs, soit mon navigateur a appele un fichier qui n’existait pas, soit quelqu’un a utiliser ma connexion pendant mon absence (fortement improbable), soit la connexion de deux semaines de mon navigateur aux RSS a entrainer le ban.

  • La première hypothèse n’aurait pas entraîné un ban : la liste noire sur .htaccesse est effectuée à la main depuis Spamplemousse et SpamClear (oui, c’est très long). Hormis les polliotages, si tu ne t’es jamais amusé à mettre un nom bidon spammoïde, tu ne devrais pas passer en liste noire. De même manière, la troisième hypothèse est exclu ainsi, bien sûr, que la seconde.