Comment refuser automatiquement l’adresse IP en analysant le fichier journal nginx

J’ai 4 serveurs Web derrière cloudflare et un loadbalancer, nginx est le serveur web, php-fpm gère les pages php. Je ne sais pas comment bloquer une simple attaque de dos …

Je suis capable de détecter cette attaque en utilisant le module http_limit_req de nginx http://wiki.nginx.org/HttpLimitReqModule

mais cela ne bloque pas du tout l’attaque, oui cela peut atténuer mais les serveurs web sont de nouveau touchés, et php-fpm atteint 80% et en une minute le site Web est inaccessible.

J’essaie de trouver un moyen de bloquer ce type de demande.

Je sais comment bloquer certaines adresses IP ou certains useragent avec nginx mais je veux le faire automatiquement. Je pense que je ne peux pas bloquer l’ip avec iptables car la requête provient du loadbalancer 🙁 mais je suis toujours capable de détecter l’adresse IP correcte avec set_real_ip_from et real_ip_header X-Forwarded-For avec nginx.

J’ai le fichier journal (error.log) rempli avec l’adresse IP correcte comme vous pouvez le voir:

2012/03/27 18:34:02 [erreur] 31234 # 0: * 1283 connexions limitant par zone “staging”, client: XX.XX.XX.XXX, serveur: www.xxxxxxx.com, demande: “HEAD / it HTTP / 1.1 “, hôte:” www.xxxxxxx.com ”

Quelqu’un a une idée et peut m’apprendre comment bloquer automatiquement cette adresse IP?

utilisez fail2ban pour cela. Il s’agit d’un parsingur de fichier journal pour de nombreux services différents qui peuvent détecter les échecs de connexion, etc., puis bloquer une adresse IP.

http://www.fail2ban.org

Cordialement