• Apache: Bot? No, thank you margaret

    Possédant un serveur de développement sous OpenBSD, je suis confronté régulièrement à un afflue d’erreurs dans mes logs d’apache.
    Il s’agit la plupart du temps de “page not found” générés par des robots qui explorent le net à la recherche d’applications web mal configurées ou plus simplement pas à jour.

    Ce n’est pas bien gênant, mais si l’on peut l‘éviter, pourquoi ne pas le faire ?

    J’ai donc réalisé un petit script sans prétention qui a pour mission de bannir la vermine.

    Celui-ci est très simple, ne demande que l’interpréteur ruby d’installé sur la machine, et utilise par défaut Packet Filter (le firewall d’OpenBSD) pour bannir les IP.

    On peut néanmoins très facilement l’adapter, en changeant les quelques constantes au début du script :

                      LOGFILE = "/var/www/logs/error_log"
    BANLOG = "/var/log/banlog"
    FCMD = "pfctl -t bruteforce -T add"
    EXIP = ["10.0.0.0/8","127.0.0.0/8","172.16.0.0/12","192.168.0.0/16"]
    MRATE = "3/10" # n/m : a max of n try in m seconds
                    

    Ce n’est certes pas une solution miracle, encore moins révolutionnaire, mais elle a le mérite de marcher et de combler mes attentes.

    Download

    par Cédric TESSIER le 03/03/2007