Einen Überblick über das Administrationstool KeyHelp der Keyweb AG und dessen Download gibt es auf https://www.keyhelp.de

Dieses Forum soll es interessierten Benutzern ermöglichen, sich über KeyHelp auszutauschen und Hilfe bei Problemen zu finden.

Fail2Ban - Typo3 Regeln  [GELÖST]

Fragen zur Benutzung oder Konfiguration
Antworten
alex-kehl
Beiträge: 23
Registriert: Mi 30. Mai 2018, 12:19

Fail2Ban - Typo3 Regeln

Beitrag von 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: Alles auswählen

[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: Alles auswählen

[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: Alles auswählen

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
Benutzeravatar
Alexander
Keyweb AG
Beiträge: 2312
Registriert: Mi 20. Jan 2016, 02:23

Re: Fail2Ban - Typo3 Regeln

Beitrag von Alexander »

Hallo!

Ohne es jetzt getestet zu haben aber die Regex

Code: Alles auswählen

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

Code: Alles auswählen

^<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
Beiträge: 23
Registriert: Mi 30. Mai 2018, 12:19

Re: Fail2Ban - Typo3 Regeln

Beitrag von 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
Beiträge: 137
Registriert: Do 22. Apr 2021, 23:06

Re: Fail2Ban - Typo3 Regeln

Beitrag von tab-kh »

Benutzeravatar
ShortSnow
Beiträge: 175
Registriert: Do 15. Nov 2018, 00:45

Re: Fail2Ban - Typo3 Regeln

Beitrag von ShortSnow »

Hallo,

ich hab da vor einer Weile auch mit experimentiert:

Code: Alles auswählen

[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
Beiträge: 23
Registriert: Mi 30. Mai 2018, 12:19

Re: Fail2Ban - Typo3 Regeln

Beitrag von 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
Benutzeravatar
Alexander
Keyweb AG
Beiträge: 2312
Registriert: Mi 20. Jan 2016, 02:23

Re: Fail2Ban - Typo3 Regeln  [GELÖST]

Beitrag von 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
Beiträge: 23
Registriert: Mi 30. Mai 2018, 12:19

Re: Fail2Ban - Typo3 Regeln

Beitrag von 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 ;)
Antworten