2010-06-19 4 views
0

Je reçois de nombreux échec des demandes de connexion de spammers/bots qui tentent de brute-force les informations d'identification, aussi je reçois beaucoup de demandes à des pages comme /forum/index.php.Méthode fiable pour bloquer les spammeurs dans Rails App?

j'ai écrit un script pour analyser l'adresse IP de ces attaquants de production.log: les années IP jusqu'à

#!/bin/bash 

# Failed Logins 
grep "Failed " ~/app/log/production.log | egrep -o -e "[0-9]{2,3}\.[0-9]{2,3}\.[0-9]{2,3}\.[0-9]{2,3}" | sort | uniq > ~/spammers.txt 

# Try to GET .php Files 
cat ~/app/log/production.log | awk '$0!~/^$/ {print $0}' | sed -n -e "N; /\.php/p" | grep "ApplicationController#index" | egrep -o -e "[0-9]{2,3}\.[0-9]{2,3}\.[0-9]{2,3}\.[0-9]{2,3}" | sort | uniq >> ~/spammers.txt 

Mais je ne peux pas bloquer (.httaccess) Je vérifie manuellement leur origine par Geolocation.

Existe-t-il une solution Rail-ish pour ce problème?

Répondre

1

Je ne pense pas qu'il y ait une réponse de Rails à cela. Si vous utilisez un serveur Linux, vous pouvez utiliser LFD (Login Failure Daemon). http://www.configserver.com/cp/csf.html

Une fois que vous définissez pour regarder votre application Rails, il les bloquer au niveau pare-feu après suffisamment de connexions échouées, les tentatives d'intrusion, etc.

-1

Il y a un certain nombre de choses que vous pourriez faire. Aucun n'est particulièrement Rails-y, mais devrait aider de toute façon.

Tout d'abord, je vous recommande d'utiliser JanRain Engage (formerly rpxnow.com) pour l'authentification. Ce produit permet aux utilisateurs de se connecter à votre site à l'aide des informations d'authentification de Google, Yahoo, Microsoft, Facebook et de nombreux autres fournisseurs OpenID. Laissez-les s'inquiéter des attaques DOS. Deuxièmement, s'ils ont des URL spécifiques qu'ils essaient d'atteindre, demandez à votre site Web de les afficher en tant que page Web statique et définissez les en-têtes HTTP afin que la page non autorisée soit mise en cache dans leur navigateur. Alors, au moins votre serveur ne sera pas martelé aussi fort. Troisièmement, consignez les adresses IP des spammeurs & robots qui tentent de se connecter à vos pages plus de, disons, 10 fois dans une minute, et s'ils tentent de se connecter à nouveau, limiter leur réponse en mettant un sommeil de 4 secondes avant de rendre leur page.

+0

D'une certaine manière, je parie que le script les pirates ont écrit ne pas le respect en-têtes de cache. En outre, je parierais que les pirates ne font que pointer sur des URL communes et continueraient à le faire même s'il s'agissait d'un site d'identification ouvert. –

+0

Utiliser le sommeil avant de rendre leur page ne fera que lier vos processus de rails. Ne fais pas ça. –

+0

@Scott S - Bon point. Le sommeil devrait se produire dans la page Web javascript qui rend le formulaire de connexion, ou le formulaire de réponse de connexion. Mais vous avez raison sur le premier ... les robots spammeurs ne sont généralement pas des programmes dans les navigateurs Web. –

Questions connexes