Le blocage par IP est-il efficace ?

Ques­tion

Le blo­cage par IP est-il efficace ?

Trai­te­ment

Lan­gage humain

Fais la liste des ordi­na­teurs refu­sés et de ce qu’ils fai­saient à ce moment-là. Notes-moi tout ça dans un fichier bien rangé et tenu à jour.

Pro­cé­dure

Le fichier de log obtenu sur le ser­veur (je n’explique pas ici com­ment obte­nir un tel fichier) doit se trou­ver dans votre réper­toire uti­li­sa­teur (~) et s’appeller main.log.

Iso­ler toutes les adresses qui se sont prises un deny from IP (erreur 403) (grep '" 403 ') depuis le fichier de log (le jour­nal de bord) (~/main.log). Conser­ver éga­le­ment 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 pre­mier fichier tem­po­raire (> ~/main-onlyrejected.log)

Ce fichier ne contient que la der­nière mois­son. Nous vou­lons l’ajouter aux mois­sons 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 (;) com­bi­ner (cat) le contenu du nou­veau fichiers ( ~/main-onlyrejected) et du fichier exis­tant, liste_refus.log (~/liste_refus.log) (s’il y en a un). Une fois les fichiers com­bi­nés (;), nous allons faire un peu de ménage : tri par ordre numé­rique (12 avant 109, alors qu’en alpha­bé­tique ce serait le contraire) (| sort -n) et sup­pres­sion des dou­blons (| uniq) et tout cela, nous allons l’écrire (>) dans un second dos­sier tem­po­raire, liste_refus-new.log (~/liste_refus-new.log)

Main­te­nant, fai­sons un peu de ménage : nous n’avons plus besoin du fichier de nou­velles IP inter­dites, nous le sup­pri­mons donc (rm ~/main-onlyrejected). Quant au fichier liste_refus-new.log, il peut désor­mais rem­pla­cer l’ancienne ver­sion (mv ~/liste_refus-new.log ~/liste_refus.log).

Code

  1. Fil­trer les reje­tés (atten­tion, il y a des reje­tés pas par moi) :
    grep '" 403 ' ~/main.log | sed 's/- blog.empyree.org \[.*\] "//' | sed 's/ [^-A-Z].*//' > ~/main-onlyrejected.log
  2. Conca­té­ner les fichiers journaliers :
    touch ~/liste_refus.log; cat ~/main-onlyrejected ~/liste_refus.log | sort -n | uniq > ~/liste_refus-new.log
  3. Net­toyer les tris concaténés :
    rm ~/main-onlyrejected
  4. Ne gar­der que le nouveau :
    mv ~/liste_refus-new.log ~/liste_refus.log
Code conca­téné

Tout ceci d’un coup d’un seul grâce à la com­mande de sépa­ra­tion de com­mandes, ; :

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éa­tion de ce suivi, ma liste de refus m’affiche 2251 machines refu­sées. C’est sur­pre­nant, car je n’ai pas 2251 adresses inter­dites dans mon .htac­cess, mais il est vrai que je par­tage l’ordinateur avec d’autres per­sonnes ; c’est peut-être la rai­son (mais ça ne devrait pas). De plus, cer­taines des per­sonnes qui sont inter­dits de séjour sur le ter­ri­toire empy­réen sont peut-être de par­faits innon­cents (les spam­meurs viennent pour pos­ter, ce qui est plu­tôt du POST, mais j’ai beau­coup de GET, qui ne devraient pas avoir été pié­gés par mon .htac­cess). La pré­sence du qu’est-ce que vous fai­siez quand on vous a arrêté ? et dont la réponse est soit GET ou POST, per­met­tra peut-être d’y voir plus clair.

Quoiqu’il en soit, 2308 adresses refu­sées, c’est beau­coup. À la réponse Le blo­cage par IP est-il effi­cace ?, ma réponse est oui.

Merci à Arnaud pour le log et à Laura pour le code. Fine équipe que nous trois (enfin, sur­tout eux deux, moi, mon rôle, c’est sur­tout de ron­chon­ner et de qué­man­der ;-) )

Loading Facebook Comments ...

Une réflexion au sujet de « Le blocage par IP est-il efficace ? »

  1. Arnaud Boudou

    « mais j’ai beau­coup de GET, qui ne devraient pas avoir été pié­gés par mon .htac­cess » : le fil­trage par .htac­cess est indé­pen­dant du GET ou du POST, quand on demande à Apache de blo­quer, il bloque, tout simplement.

    Sinon, pour les blo­cages en plus de ceux de ton .htac­cess, tu peux avoir cer­tains plu­gins anti-spam qui refoulent avec un 403. C’est le cas de « Blo­cage par réfé­rent », et peut-être la modi­fi­ca­tion de code qui contrôle la cohé­rence de l’origine des trackbacks.

    Répondre
  2. David Latapie

    Frog > Ah ben au contraire, ça change tout. Si tu n’étais pas chez toi quand tu t’es fais ban­nir, c’est que la per­sonne chez qui tu étais était infec­tée :-). Ceci étant dit, comme je te l’ai écrit, l’erreur humaine de ma part est tou­jours possible.</p> <p>Arnaud > J’avais oublié ton gref­fon. Je crois que je vais le désac­ti­ver, vu com­ment j’utilise les 403.</p>

    Répondre
  3. Frog

    DL > Non, si tu te bases sur les erreurs, soit mon navi­ga­teur a appele un fichier qui n’existait pas, soit quelqu’un a uti­li­ser ma connexion pen­dant mon absence (for­te­ment impro­bable), soit la connexion de deux semaines de mon navi­ga­teur aux RSS a entrai­ner le ban.

    Répondre
  4. David Latapie

    La pre­mière hypo­thèse n’aurait pas entraîné un ban : la liste noire sur .htac­cesse est effec­tuée à la main depuis Spam­ple­mousse et Spam­Clear (oui, c’est très long). Hor­mis les pol­lio­tages, si tu ne t’es jamais amusé à mettre un nom bidon spam­moïde, tu ne devrais pas pas­ser en liste noire. De même manière, la troi­sième hypo­thèse est exclu ainsi, bien sûr, que la seconde.

    Répondre

Laisser un commentaire