Da ich mittlerweile zu sehr von irgendwelchen Script-Kiddys genervt bin die meinen die coolen Hacker zu sein weil die irgendwo nen Script ausführen konnten habe ich mal Fail2Ban installiert. In der Grund-Config kann man da schon recht viele Anfragen direkt blocken (wobei ich die Zeiten direkt mal von 1800 Sek. auf 1 Tag Blockzeit hochgesetzt habe). Leider kommen natürlich immer noch die Anfragen an den Webserver für die Default-Seiten wie Wordpress, PhpMyAdmin,... Somit wurde Fail2Ban direkt noch um ein weiteres Modul ergänzt:

filter.d/apache-banrequests.conf

# Fail2Ban filter for script-kiddys 

[Definition]

failregex =  ^<HOST> .* "(GET|POST) /shell.php.*"$
^<HOST> .* "(GET|POST) /webdav.php.*"$
^<HOST> .* "(GET|POST) /bbs.php.*"$
^<HOST> .* "(GET|POST) /forum.php.*"$
^<HOST> .* "(GET|POST) /bbs/.*"$
^<HOST> .* "(GET|POST) /phpmyadmin/.*"$
^<HOST> .* "(GET|POST) /myadmin/.*"$
^<HOST> .* "(GET|POST) /MyAdmin/.*"$
^<HOST> .* "(GET|POST) /phpMyAdmin/.*"$
^<HOST> .* "(GET|POST) /Joomla/.*"$
^<HOST> .* "(GET|POST) /joomla/.*"$
^<HOST> .* "(GET|POST) /phpadmin/.*"$
^<HOST> .* "(GET|POST) /phpAdmin/.*"$
^<HOST> .* "(GET|POST) /pma/.*"$
^<HOST> .* "(GET|POST) /cisco/.*"$
^<HOST> .* "(GET|POST) /cfg/.*"$
^<HOST> .* "(GET|POST) /tftp/.*"$
^<HOST> .* "(GET|POST) /polycom/.*"$
^<HOST> .* "(GET|POST) /snom/.*"$
^<HOST> .* "(GET|POST) /grandstream/.*"$
^<HOST> .* "(GET|POST) /provisioning/.*"$
^<HOST> .* "(GET|POST) /wp-admin/.*"$
^<HOST> .* "(GET|POST) /boaform/.*"$
^<HOST> .* "(GET|POST) /db/.*"$

jail.local (im fail2ban-config Verzeichnis)

[apache-banrequests]
# Own rules for useless scriptkiddys
enabled = true
port    = http,https
logpath  = %(apache_access_log)s
bantime = 172800
maxretry = 1

(bei den HTTP-Servers)

Damit wird bereits nach einem Versuch auf eine der oberen URLs (und die Liste kann natürlich erweitert werden) der Host direkt mal für eine ganze Weile (bantime) gesperrt. Insbesondere zusammen mit dem normalen SSHd-Filter ist die Blocklist da mittlerweile schon recht ausgiebig.