• # mod_rangecnt + fail2ban

    Posté par (site web personnel) . En réponse au journal Apache n'apprécie pas le HTTP Range. Évalué à 10.

    Je viens d'activer le module mod_rangecnt + une règle de fail2ban : super efficace !

    Comment faire (Sous Ubuntu Server 10.04):
    Installer le package apache2-dev (sudo apt-get install apache2-dev)

    1. wget http://people.apache.org/~dirkx/mod_rangecnt.c
    2. sudo apxs2 -i -c -n mod_rangecnt.so mod_rangecdnt.c
    3. Créer le fichier /etc/apache2/mods-available/rangecnt.load avec dedans :

    LoadModule rangecnt_module /usr/lib/apache2/modules/mod_rangecnt.so

    1. cd /etc/apache2/mods-enabled/ puis sudo ln -s /etc/apache2/mods-available/rangecnt.load
    2. Redémarrer Apache

    Ensuite créer la règle fail2ban (si vous avez déja une install de fail2ban !) :
    * Ajouter le fichier /etc/fail2ban/filter.d/apache-range.conf avec dedans :

    [Definition]
    failregex = [[]client <HOST>[]] (Rejected on a Range: header with more than 5 ranges)
    ignoreregex =
    
    
    • Editez /etc/fail2ban/jail.conf et ajoutez :

      [apache-range]
      enabled = true
      port = http,https
      filter = apache-range
      logpath = /var/log/apache/*error.log
      maxretry = 10

    • Relancez votre fail2ban

    Utilisez le script contre votre serveur, vous devriez voir des lignes :

    /var/log/apache2/error.log:[Thu Aug 25 17:20:51 2011] [warn] [client xx.xx.xx.xx] Rejected on a Range: header with more than 5 ranges (has 1300)

    Dans votre log apache puis dans votre log Fail2ban :

    2011年08月25日 17:26:33,814 fail2ban.actions: WARNING [apache-range] Ban xx.xx.xx.xx

    Victoire !