Fail2Ban - Typo3 Regeln  [GELÖST]

Diskussionen zur Bedienung von KeyHelp.
Post Reply
alex-kehl
Posts: 36
Joined: Wed 30. May 2018, 12:19

Fail2Ban - Typo3 Regeln

Post by alex-kehl »

Hallo, entschuldigt bitte, dass ich einen vier Jahre alten Thread wiederbelebe.

Ich habe eine Typo3 10.2 Installation auf meinem Keyhelp-Server installiert. Nun habe ich in der Datei:

/home/users/user1/logs/access.log

immer wieder Fehlversuche von irgendwelchen Leuten die sich versuchen am System anzumelden. Die Zeile im Log sieht so aus:

5.188.xx.xxx - - [12/Jan/2022:20:45:46 +0100] "POST /typo3/?loginProvider=1433416747 HTTP/1.1" 200 2994 "https://www.domain.de/typo3/index.php" "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2224.3 Safari/537.36" 849 3873

Nun habe ich in der Datei jail.local folgendes eingetragen:

Code: Select all

[apache-typo3]
enabled  = true
port     = http,https
filter   = apache-typo3
protocol = tcp
logpath  = /home/users/user1/logs/access.log
maxretry = 3
#findtime = 60
und in der apache-typo3.conf folgendes:

Code: Select all

[INCLUDES]
before = apache-common.conf

[Definition]
failregex = ^<HOST> .*"POST /typo3/?loginProvider= HTTP/1.1" 200
                 ^<HOST> .*"POST /typo3/index.php HTTP/1.1"
ignoreregex =

führe ich nun den Befehl

Code: Select all

fail2ban-regex /home/users/user1/logs/access.log /etc/fail2ban/filter.d/apache-typo3.conf
aus erhalte ich alle Einträge als missed wie folgt:

Lines: 18430 lines, 0 ignored, 0 matched, 18430 missed

Nun habe ich schon gelesen, dass es wohl am Datumsformat der Logdatei liegt, dass fail2ban die Informationen der Log nicht auslesen kann. Kann man fail2ban beibringen auch dieses Format lesen zu können? In Typo3 soll man wohl über die Einstellung [SYS][ddmmyy] = d.m.Y. das Datumsformat ändern können, allerdings kann ich da eingeben was ich und wie ich möchte, ändert sich nichts in der Logdatei.
Würde mich freunen wenn ich hier Hilfe bekommen würde.

Ich möchte mich jetzt schon für eventuelle Hilfe bedanken


---

MOD-EDIT: Beitrag in neues Thema gewandelt
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: Fail2Ban - Typo3 Regeln

Post by Alexander »

Hallo!

Ohne es jetzt getestet zu haben aber die Regex

Code: Select all

^<HOST> .*"POST /typo3/?loginProvider= HTTP/1.1" 200
sollte eher so aussehen, damit sie für o.g. Zeile greift:

Code: Select all

^<HOST> .*"POST /typo3/\?loginProvider=.* HTTP/1\.1" 200
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
alex-kehl
Posts: 36
Joined: Wed 30. May 2018, 12:19

Re: Fail2Ban - Typo3 Regeln

Post by alex-kehl »

Hallo Alexander,

vielen Dank für Deine Hilfe. Am Filter scheint es offensichtlich nicht zu liegen. Ich habe im fail2ban.log folgenden Eintrag gefunden:


2
2022-01-11 16:53:30,615 fail2ban.filter [551651]: WARNING Found a match for '37.201.x.xxx - - [11/Jan/2022:16:53:30 +0100] "POST /typo3/index.php?loginProvider=1433416747 HTTP/2.0" 303 - "https://www.domain.de/typo3/index.php?route=%2Flogin" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.55" 668 697' but no valid date/time found for '37.201.x.xxx - - [11/Jan/2022:16:53:30 +0100] "POST /typo3/index.php?loginProvider=1433416747 HTTP/2.0" 303 - "https://www.domain.de/typo3/index.php?route=%2Flogin" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.55" 668 697'. Please try setting a custom date pattern (see man page jail.conf(5)). If format is complex, please file a detailed issue on https://github.com/fail2ban/fail2ban/issues in order to get support for this format.

So wie ich es verstehe findet fail2ban nun tatsächlich die Fehlanmeldung, kann aber aufgrund des Datumformats die IP nicht sperren. Diesbezüglich war auch eben ursprünglich die Frage nach dem erweitern des Datumformats für fail2ban. Gibt es denn die Möglichkeit fail2ban ein weiteres Datumsformat wie Typo3 es wohl vorgibt [11/Jan/2022:16:53:30 +0100] beizubringen? Vielleicht hast du noch eine Idee dazu?
tab-kh
Posts: 450
Joined: Thu 22. Apr 2021, 23:06

Re: Fail2Ban - Typo3 Regeln

Post by tab-kh »

User avatar
ShortSnow
Posts: 251
Joined: Thu 15. Nov 2018, 00:45

Re: Fail2Ban - Typo3 Regeln

Post by ShortSnow »

Hallo,

ich hab da vor einer Weile auch mit experimentiert:

Code: Select all

[INCLUDES]
before = apache-common.conf

[Definition]
failregex = ^<HOST> .*"POST .*loginProvider.* 200.*
ignoreregex =

datepattern = ^[^\[]*\[({DATE})
              {^LN-BEG}
Mein failregex ist etwas auf Sparflamme... Hat aber funktioniert. Nur ist das blöde halt, das es diesen Eintrag immer gibt. Auch bei erfolgreichem Login. Ich hatte im Endeffekt keinen Nutzen davon. Kein Bot hat sich innerhalb von 60 Sekunden 3x angemeldet. Der Abstand war bis zu 1h. In dieser Zeit hatte ich Redakteure die sich häufiger Anmelden und nur durch erfolgreiche Logins geblockt wurden.

Meiner Meinung nach wird erst was bringen wenn es eine Möglichkeit gibt einen Logeintrag mit Error zu erzeugen. Da habe ich damals nichts gefunden. Wäre super, wenn's da was geben würde.

Ich lasse mir von allen Systemen die LoginWarnung zusenden. Und da kommt sehr selten was. Meistens Redakteure die kurz darauf nach Ihrem Passwort fragen. Einmal war es lediglich eine IP die Terror gemacht hat und die habe per Firewall manuell gesperrt.

Gruß Arne
alex-kehl
Posts: 36
Joined: Wed 30. May 2018, 12:19

Re: Fail2Ban - Typo3 Regeln

Post by alex-kehl »

Hallo Arne,

auch Dir vielen Dank für die Hilfe. Bis auf eine optische Kleinigekeit hier die komplette Lösung, welche zumindest bei mir funktioniert:
[INCLUDES]
before = apache-common.conf

[Definition]
failregex = ^<HOST> .*"POST /typo3.*?loginProvider=.* HTTP/2.0" 200.*
^<HOST> .*"POST /typo3.*?loginProvider=.* HTTP/1.1" 200.*

ignoreregex =

datepattern = \[(%%d/%%b/%%Y:%%H:%%M:%%S %%z)\]
nun noch zu meinem "Schönheitsfehler" welchen ich noch gerne behoben hätte. Gebe ich

^<HOST> .*"POST /typo3.*?loginProvider=.* HTTP/2.0" 200.* funktioniert der Filter. Setze ich aber "/" für den Pfad so wie ich es gerne hätte:

^<HOST> .*"POST /typo3/?loginProvider=.* HTTP/2.0" 200.*

funktioniert der Filter leider nicht :(

Vielleicht gibts da noch eine Schönheits OP ;) für meinen Pfad.

Nochmals Vielen Dank allen
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: Fail2Ban - Typo3 Regeln  [GELÖST]

Post by Alexander »

Das Fragezeichen "?" ist ein Sonderzeichen im Kontext regulärer Ausdrücke und muss escaped werden, wenn man tatsächlich auf den Buchstaben "?" prüfen möchte.
Zum Escapen setzt du einfach dem Fragezeichen einen Backslash voran -> \?
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
alex-kehl
Posts: 36
Joined: Wed 30. May 2018, 12:19

Re: Fail2Ban - Typo3 Regeln

Post by alex-kehl »

Nur der Vollständigkeit halber :D

Meine endgültige Lösung:

[INCLUDES]
before = apache-common.conf

[Definition]
failregex = ^<HOST> .*"POST /typo3/\?loginProvider=.* HTTP/2.0" 200.*
^<HOST> .*"POST /typo3/\?loginProvider=.* HTTP/1.1" 200.*

ignoreregex =

datepattern = \[(%%d/%%b/%%Y:%%H:%%M:%%S %%z)\]

Thema für mich erledigt, Vielen Dank für die Hilfe,
Nur gemeinsam ist man stark ;)
Post Reply