Comment bannir une fois pour toutes une adresse IP indésirable ?

| | Commentaires (2) | Trackbacks (0)
Amis bloggeurs,

Vous avez un serveur dédié pour votre blog ? Vous l'hébergez chez vous peut-être ? Et vous avez une IP indésirable qui envoie constemment du spam, ou un visiteur qui dépose des commentaires agaçant ? Et vous en avez assez ? Vous aimeriez bien bannir ces vilaines adresses IP de votre serveur ? J'ai quelque chose pour vous !

Un collègue de travail m'a enseigné une technique aussi old-school qu'efficace pour dégager de la vie paisible de votre serveur chéri un indésirable : l'interface loopback. La technique consiste à créer une route statique qui enverra les paquets à destination de l'adresse IP que vous haïssez dans le trou noir de l'interface loopback.

Explication technique :



Le méchant envoie le premier paquet de sa requette sur votre serveur, le paquet est réceptionné par le serveur, qui va envoyer le second paquet de bonne réception. Si vous n'avez rien fait pour modifier le comportement de la machine, il va le transmettre à sa passerelle par défaut, et le méchant va réceptionner l'accusé de réception, et continuer à émettre : la connexion TCP monte !

Maintenant, vous en avez assez de le voir trainer sur votre serveur. Vous décidez donc de le dégager. La solution la plus simple, la plus indolore pour le serveur, et la moins consommatrice en ressource, est de créer une route statique sur le serveur qui va envoyer les paquets à destination de l'@ IP du méchant dans les limbes. Reprenons donc l'action où nous l'avions abandonnée :

Le méchant envoie son premier paquet sur votre serveur. Le serveur va donc répondre. Ca passe dans le kernel, qui va appliquer la gentille route statique que vous avez configuré, qui envoie sur l'interface loopback tous les paquets à destination de l'IP du méchant : les paquets sont détruits, la session TCP ne va jamais pouvoir être établie, il enverra tout le temps le premier paquet sans jamais recevoir de réponse : il est filtré, et n'y peut absolument rien, le socket ne s'ouvre pas, et sur tous les ports : il est power-owned.

Démonstration entre mes deux serveurs dédiés OVH

Sans route spécifique dans la table, le socket s'ouvre, j'ajoute la route envoyant l'ip dans la loopback, il ne s'ouvre plus, je la retire, ça s'ouvre de nouveau.

C'est old-school, c'est une vraie technique de tueur, et il n'y a aucune parade, si ce n'est changer d'IP :). Notez que ça fonctionne aussi sur des subnets entiers ( si vous voulez bannir la Corée ou la Chine, par exemple ;) ), et ça ne prend absolument aucune ressource sur le système, contrairement à un filtrage intégré à Apache. Elle est pas belle la vie ?

0 trackbacks

Voici la liste des liens vers les blogs faisant référence à cette note : Comment bannir une fois pour toutes une adresse IP indésirable ?.

URL de trackback pour cette note : http://blog.lesur.net/mt-tb.cgi/33

2 commentaires

flo a dit :

Black Hole Routing :)

Guillaume Lesur a dit :

Oui :)

Ca marche sur tout, c'est redoutable.

Laisser un commentaire

À propos de cette note

Cette page contient une unique note de Guillaume Lesur publiée le 13 juillet 2008 23h00.

Ce soir, je me moque. est la note précédente de ce blog.

Retrouvez le contenu récent sur l'index principal ou allez dans les archives pour retrouver tout le contenu.

Powered by Movable Type 4.01