2015-08-13 3 views
0

Mon serveur apache Descend lorsqu'un client aléatoire commence al beaucoup de GET pour même URL. Le problème est que cela arrive avec des chemins d'URL imprévisibles. Avec fail2ban je peux interdire une URL prédéterminée mais ne pas l'empêcher pour des chemins d'URL inconnus. y a-il un moyen de résoudre cela?Comment puis-je bloquer les clients qui ont frappé constamment les mêmes URL imprévisibles

+0

Peut-être que vous pouvez interdire les clients qui obtiennent trop de 404 erreurs dans un intervalle de temps donné? Je pense que fail2ban pourrait le faire. – larsks

+0

les URL sont réelles, pas 404 – nris

Répondre

1

En fonction de votre serveur Web, vous devriez être en mesure de scanner vos journaux de serveur Web pour les requêtes GET et interdire les gens qui font un trop grand nombre d'entre eux dans une période de temps spécifique. Vous avez juste besoin d'être prudent pour éviter d'interdire les utilisateurs légitimes, donc la fréquence des requêtes GET autorisées est quelque chose à affiner avec soin.

  1. Créer un nouveau filtre de prison: sudo nano /etc/fail2ban/filter.d/GETFlood.conf
  2. Définir l'expression rationnelle dont vous avez besoin pour identifier les requêtes GET basées sur les journaux de votre serveur Web. Avec un access.log Apache standard, il serait: failregex = ^<HOST>.*\s"GET\s.*$
  3. Ajouter une entrée à votre /etc/fail2ban/jail.local:

     
    [getflood] 
    enabled = true 
    action = iptables-allports[name=getflood] 
    filter = getflood 
    logpath = /var/log/apache2/*access.log 
    maxretry = 30 
    findtime = 90 
    bantime = 604800 
    

Ici, nous laissons une adresse IP individuelle faire jusqu'à 30 requêtes GET chaque 90 secondes. Encore une fois, sans plus de détails sur votre serveur, vous aurez besoin de jouer avec ces horaires pour éviter d'interdire les utilisateurs légitimes.