On 04/08/2024 13:17, Serhii via dovecot wrote:
I am trying to implement logging of all failed authentication attempts to catch bruteforce automatically. Currently, I have the following configuration:
...

But for me it doesn't look like what is specified in docs[1]:

Field | Description
---
error | Set when error happens
success | yes, when authentication succeeded
policy_penalty | Time of penalty added by policy server
policy_result | Values: ok, delayed, refused

Why I don't see neither "success" and "error" field in logs? Also, why policy_result is ok despite I am logging only failed authentication attempts? From postfix I can see that those attempts were actually failed:


Hi Serhii

the way the code currently works is that "success: yes" is the only possible value. When the authentication is not successful the "success" is not present. i.e. there is no "success: no".

You're not seeing any "success" values since the code only produces "success: yes" and you've filtered that out.

As to why you're not seeing any error, my suspicion is that it is unintentional. If I am right about that then the following patch in the function auth_request_fail_with_reply(...) could solve it. It now logs error: authentication failed.

--- dovecot-2.3.21-orig/src/auth/auth-request.c    2023-09-14 15:17:46.000000000 +0200 +++ dovecot-2.3.21/src/auth/auth-request.c    2024-08-04 14:43:03.837000812 +0200
@@ -303,7 +303,7 @@
         stats = auth_request_stats_get(request);
         stats->auth_failure_count++;
     }
-
+    request->failed = TRUE;
     auth_request_set_state(request, AUTH_REQUEST_STATE_FINISHED);
     auth_request_refresh_last_access(request);
     auth_request_log_finished(request);

The need for something like this also seems to be warranted by the fact that internal failures on authentication only get reported by the event logging if request->failed is set and I couldn't see anywhere that happens. With the above patch these will also now be logged if there is a call to the function auth_request_internal_failure(...)

I also think that the above patch may not deal with all the cases where there is an internal failure in authentication, but those are a bit harder to test. There may still be some cases where there is neither a success or error, and those cases should still be treated as failures or subject to further patching.

John

_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to