[fail2ban] : filter.d - .conf - failregex

Bonjour à tous,

J’essaie de mettre en place un fichier de conf pour traiter les logs de mon serveur nextcloud.

Le problème c’est que je connais pas bien la syntaxe pour traiter le problème. Si vous avez une doc pour cela, je suis preneur.

Voici mes logs à traiter :

{ "reqId":"nkUHMTIR238pHO8fZ4E3", "level":2, "time":"January 29, 2018 21:25:30", "remoteAddr":"192.168.1.1", "user":"--", "app":"core", "method":"POST", "url":"\/login?user=arthur575", "message":"Login failed: 'arthur575' (Remote IP: '192.168.1.1')", "userAgent":"Mozilla\/5.0 (X11; Linux x86_64; rv:52.0) Gecko\/20100101 Firefox\/52.0", "version":"12.0.5.3" }

en une ligne :

{"reqId":"nkUHMTIR238pHO8fZ4E3","level":2,"time":"January 29, 2018 21:25:30","remoteAddr":"192.168.1.1","user":"--","app":"core","method":"POST","url":"\/login?user=arthur575","message":"Login failed: 'arthur575' (Remote IP: '192.168.1.1')","userAgent":"Mozilla\/5.0 (X11; Linux x86_64; rv:52.0) Gecko\/20100101 Firefox\/52.0","version":"12.0.5.3"}

Voici le fichier de conf que j’ai fait avec failregex pour le moment qui ne match pas par rapport au log.

Je ne connais que la syntaxe :

  • .* → signifie qu’on fait abstraction de cette valeur

][Definition] failregex = { "reqId":".*", "level":2, "time":".*", "remoteAddr":".*", "user":".*", "app":"core", "method":".*", "url":".*", "message":"Login failed: '.*' \(Remote IP: '<HOST>'\)", "userAgent":".*", "version":".*" }

en ligne :

][Definition] failregex = {"reqId":".*","level":2,"time":".*","remoteAddr":".*","user":".*","app":"core","method":".*","url":".*","message":"Login failed: '.*' \(Remote IP: '<HOST>'\)","userAgent":".*","version":".*"}

On m’a donné cette solution (ci-dessous) mais elle ne fonctionne pas lorsque j’execute la commande

failregex = : .*?"Login failed: '.*' \(Remote IP: '<HOST>'\)" 
sudo fail2ban-regex /var/tmp/nextcloud.log /etc/fail2ban/filter.d/nextcloud.conf

On m’a orienté vers ces deux sites mais aussi mais je n’avance pas sur la question :

https://regex101.com/
https://regexper.com/

Merci d’avance.

Je continue de chercher comment m’en sortir.

J’avance dans le sens ou je sais que :
1-mon fichier log est de type « FailJSON metadata » (voir 1er lien)
2-que fail2ban utilise du python

J’ai vu un lien pour fail2ban et la partie python qui le compose :

https://fail2ban.readthedocs.io/en/latest/filters.html
https://docs.python.org/2/library/re.html

Il parait que mon fichier log est en fait de type « FailJSON metadata ».

Le chapitre « Developing Filter Regular Expressions » du 1er lien pourrait être une piste.

Voici une conf classique de ce que j’ai pour du ssh/sshd (mdp : fail2ban) :

https://serveur1.freewind.fr/s/wtl4iZgYIxzqXsp