Apache & nginx 404 Fail2Ban Regex

Hacker versuchen teils über 404 Fehler eine Webseite einzunehmen, indem sie Skripte ausführen oder zumindest den Server belasten. Um solche Versuche zu unterbinden, lassen sich für Apache2 und nginx Fail2ban Regeln erstellen. Im folgenden werden die passenden Regeln für die beiden Webserver kurz erläutert.

Bedingung ist, dass Fail2ban installiert ist:


sudo apt-get install fail2ban

Alle Regeln werden unter /etc/fail2ban/filter.d/ gespeichert, die dann in der /etc/fail2ban/jail.conf referenziert und aktiviert werden. Eine hilfreiche deutsche Einführung in die verschiedenen Konfigurationsbegriffe ist auf GitHub.

Apache2

Zuerst erstellen wir für Apache die Regel, um 404 Fehlerverursacher zu bannen (Vorlage von Nerdchannel). Pfad /etc/fail2ban/filter.d/apache-404.conf (bitte korrekt schreiben, da der Dateiname als Referenz dient):

# Fail2Ban configuration file
#
# Author: Dominic Derdau
# Website: www.erasel.net
# License: GPL
# You are free to Use this on other Sites if you link back to this Site.
# $Revision: 2.1.1 $
#
[Definition]
# Option: failregex
# Notes.: regex to match the "File does not exist" messages in the logfile. The
# host must be matched by a group named "host". The tag "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT
#
failregex = [[]client <HOST>[]] File does not exist: *
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# standart search for favicon.ico and robots.txt - this is often thrown and may do stupid mistakes
# Values: TEXT
#
ignoreregex = .*(robots.txt|favicon.ico|jpg|png)

Mit der dieser Regel werden unten robots.txt, favicon und Bilddateien ausgeschlossen. Nun brauchen wir noch den jail für /etc/fail2ban/jail.conf (einfach unten in eine neue Zeile anhängen):


[apache-404]
enabled = true
port = http,https
filter = apache-404
logpath = /var/customers/logs/*error.log
maxretry = 10
findtime = 60
bantime = 86400

Parameter von Zeit (in Sekunden) und Häufigkeit jeweils anpassen. Der Logpfad ist für das Froxlor Kundenverzeichnis konfiguriert, in dem alle Logdateien der einzelnen Kunden liegen. Standardmäßig ist es aber /var/log/apache2/*error.log.

nginx

Nun erstellen wir für nginx die Regel, um 404 Fehlerverursacher zu bannen (Vorlage von GitHub). Pfad /etc/fail2ban/filter.d/nginx-404.conf (bitte korrekt schreiben, da der Dateiname als Referenz dient):

<pre>
# Fail2Ban configuration file
#
# Author: Chris Cohoat
#
[Definition]
failregex = <HOST> - - \[.*\] "(GET|POST).*HTTP.* 404
ignoreregex = .*(robots.txt|favicon.ico|jpg|png)

Mit der dieser Regel werden unten robots.txt, favicon und Bilddateien ausgeschlossen. Nun brauchen wir noch den jail für /etc/fail2ban/jail.conf (einfach unten in eine neue Zeile anhängen):


[nginx-404]
enabled = true
filter = nginx-404
port = http, https
logpath = /var/log/nginx/error.log
findtime = 60
bantime = 3600
maxretry = 30

Parameter von Zeit (in Sekunden) und Häufigkeit jeweils anpassen. Der Logpfad ist auf das Standard nginx Verzeichnis gelegt.

404Apache2bannenerrorFail2banFehlerFilterhow tonginxRegelRegex
Comments (0)
Add Comment