Difference between revisions of "Fail2ban custom filter rule/de"

(Created page with "Jetzt müssen Sie einen Jail für den bentzerdefinierten Filter erstellen. Das Jail für den erstellen benutzerdefinierten Filter wird dann in der Datei jail.local hinzugefügt.")
(Created page with "ACHTUNG: action kann ausgelassen werden (um Standardeinstellung zu übernehmen). Eventuell müssen logpath oder der failregex angepasst werden. Bei einer Standardkonfiguration...")
Line 55: Line 55:
  
  
ATTENTION: action can be removed of this jail to use default settings of your Fail2ban instance. You may have to adjust the logpath according to your webserver. This code example can be used if you use Apache2 on Ubuntu or Debain.
+
ACHTUNG: action kann ausgelassen werden (um Standardeinstellung zu übernehmen). Eventuell müssen logpath oder der failregex angepasst werden. Bei einer Standardkonfigurationen von Apache2 (unter Ubuntu oder Debian) sollte dies passen.
  
 
Now we are finished with the configuration of the fail2ban custom filter. Fail2ban will check for matches (occurances) according to our new created filter. Do not forget to restart fail2ban after the configuration.
 
Now we are finished with the configuration of the fail2ban custom filter. Fail2ban will check for matches (occurances) according to our new created filter. Do not forget to restart fail2ban after the configuration.

Revision as of 18:27, 8 June 2019

Dieses Tutorial zeigt wie man ein Fail2ban Custom Filter (benutzerdefinierten Filter) für Web Applikationen (z.B. Joomla, Wordpress, etc.) erstellt.

Fail2ban wird benötigt um Brute-Force-Attacken zu blockieren. Einfacheste Erklärung: Eine Brute-Force-Attacke wird durch geführt, wenn man versucht sich in eine Webseite einzuloggen, durch das Ausprobieren von unzähligen Passworts bis das Einloggen erfolgreich gelingt. Mit diesem Fail2ban-Filter wird dieses Problem vermieden.

Mehr über Brute force attacken: https://de.wikipedia.org/wiki/Brute-Force-Methode


Einen benutzerdefinierten Filter für Fail2ban einrichten

Zuerst muss eine Fail2ban Filter-Conf-Datei für den Webdienst angelegt werden. Hier als Beispiel der Webdienst "SERVICENAME"

vim /etc/fail2ban/filter.d/SERVICENAME.conf


In der Datei SERVICENAME.conf folgenden Code einfügen und die URL nach "POST" ANPASSEN:

# SERVICENAME configuration file
#


[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#

failregex = ^<HOST> -.*POST /myurl/login/index.php HTTP/1.1

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Fail2ban überprüft Loginversuche auf Webseiten mittels dem Failregex. In diesem Beispiel vermeidet das failregex folgenden Vorfall. Auszug eines Logineintrags von Apache2:

127.0.0.1 - - [28/Feb/2018:14:40:54 +0100] "POST /myurl/login/index.php HTTP/1.1" 303 906 "https://somewebsite.tld/myurl/login/index.php" "Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0"


Jetzt müssen Sie einen Jail für den bentzerdefinierten Filter erstellen. Das Jail für den erstellen benutzerdefinierten Filter wird dann in der Datei jail.local hinzugefügt.

[SERVICENAME]
enabled = true
filter = SERVICENAME
action  = iptables-multiport[name=web, port="http,https", protocol=tcp]
logpath = /var/log/apache2/access.log
maxretry = 5


ACHTUNG: action kann ausgelassen werden (um Standardeinstellung zu übernehmen). Eventuell müssen logpath oder der failregex angepasst werden. Bei einer Standardkonfigurationen von Apache2 (unter Ubuntu oder Debian) sollte dies passen.

Now we are finished with the configuration of the fail2ban custom filter. Fail2ban will check for matches (occurances) according to our new created filter. Do not forget to restart fail2ban after the configuration.


Testing this fail2ban custom filter

You can test the new created fail2ban custom filter with the program fail2ban-regex

fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/SERVICENAME.conf


Several checks / using several lines in the failregex

If you want to check for several occurances (matches) then you have to put the your regex in seperate lines. A failregex can have multiple lines, any one of which may match a line of the log file.

Example code:

failregex = Authentication failure for .* from <HOST>
            Failed [-/\w]+ for .* from <HOST>
            ROOT LOGIN REFUSED .* FROM <HOST>
            [iI](?:llegal|nvalid) user .* from <HOST>

Kategorie: Linux