fail2ban apache-auth filter ne détecte pas les mots de passe ayant échoué

J’ai du mal à obtenir fail2ban pour détecter les tentatives apache-auth échouées

Le filtre ressemble à ceci:

^%(_apache_error_client)s (AH01617: )?user .* authentication failure for "\S*": Password Mismatch$ ^%(_apache_error_client)s (AH01618: )?user .* not found(: )?\S*\s*$ 

et les erreurs qui se présentent:

 [Tue Dec 23 13:41:45.870693 2014] [auth_basic:error] [pid 2818] [client 97.171.82.123:91131] AH01617: user miati: authentication failure for "/test/file.html": Password Mismatch, referer: https://example.org/test/file.html [Tue Dec 23 13:41:45.870693 2014] [auth_basic:error] [pid 2818] [client 97.171.82.123:91131] AH01617: user miati: authentication failure for "/test/file.html": Password Mismatch, referer: https://example.org/test/file.html 

Ni fonctionnent correctement. Je voudrais les réécrire pour qu’ils travaillent mais je ne peux pas comprendre comment le filtre fonctionne, et googler ne me mène nulle part. La plupart des guides supposent que je comprends la regex, ce que je ne sais pas.

Quelqu’un pourrait-il expliquer (ou faire un lien vers) ce que signifient ces parameters dans le filtre afin que je puisse le modifier seul?

J’avais ce même problème avec Fail2Ban v0.8.11 et j’ai trouvé votre message environ 13 heures après votre publication. Ma solution finale a été d’utiliser plus de fichiers apache-common.conf et apache-auth.conf actuels du repository officiel GitHub. Il attrape maintenant les tentatives de connexion, puis interdit automatiquement l’adresse IP, même si j’utilise ufw pour l’interdiction / le bannissement réel.

Votre message d’erreur contient du texte supplémentaire que fail2ban n’attendait pas, pour indiquer à fail2ban d’accepter ce texte supplémentaire:

Supprimez le $ de la fin du motif ou ajoutez .* avant le $ .

Le $ dans la règle indique que la ligne de journal doit se terminer là mais vos lignes de journal contiennent du texte après les mots “Incompatibilité de mot de passe”, la suppression de $ supprime cette ressortingction. .* signifie “autoriser tout”, ce qui signifie que tout ce qui précède la fin de la ligne,