
Ich habe fail2ban mit Odoo 13 installiert.
Unten sind meine Konfiguration und die Beispielausgabe, aber ich kann nicht herausfinden, warum nicht gefiltert wird.
Benutzer@tempdev:/etc/fail2ban# fail2ban-regex -v /var/log/odoo/odoo.log /etc/fail2ban/filter.d/odoo-login.conf
Running tests
=============
Use failregex filter file : odoo-login, basedir: /etc/fail2ban
Use log file : /var/log/odoo/odoo.log
Use encoding : UTF-8
Results
=======
Failregex: 0 total
|- #) [# of hits] regular expression
| 1) [0] ^\d+ INFO \S+ \S+ Login failed for db:\S+ login:\S+ from <HOST>
`-
Benutzer@tempdev:/etc/fail2ban# cat /var/log/odoo/odoo.log | grep 'Anmeldung fehlgeschlagen'
2020-12-11 12:54:06,442 1620 INFO TestSRV odoo.addons.base.models.res_users: Login failed for db:TestSRV login:asfd from 1.2.23.3
2020-12-11 13:11:20,945 1620 INFO TestSRV odoo.addons.base.models.res_users: Login failed for db:TestSRV login:asfd from 1.2.23.3
2020-12-11 13:12:07,928 1620 INFO TestSRV odoo.addons.base.models.res_users: Login failed for db:TestSRV login:asdf from 1.2.23.3
Antwort1
\s*
Fail2ban schneidet zwar den Teil des Strings heraus, der mit dem Datumsmuster übereinstimmt, aber es bleibt immer noch ein Leerzeichen übrig, sodass Sie nach dem Anker davor Folgendes hinzufügen müssen \d+
:
-failregex = ^\d+ INFO \S+ \S+ Login failed for db:\S+ login:\S+ from <HOST>
+failregex = ^\s*\d+ INFO \S+ \S+ Login failed for db:\S+ login:\S+ from <HOST>