Jeremy Harris wrote:
On 2011-09-26 21:00, Caines, Max wrote:
Hi

We're running rate-limiting based on sender address, which has been
very effective in reducing the consequences of compromised accounts.
Until now, I've been relying on some code on a server that's archiving
Exim logs to recognise the blocking message, and email us once per
sender, but it's not very reliable. Really I'd like to get Exim to
send a notification when someone crosses the threshold for the first
time in, say, a 24-hour period, but I can't see a way to do it. The
rate-limiting's via an ACL, and I don't have Perl embedded, and don't
really have the memory to do so. Anyone got any ideas?

In the over-limit situation, using a second ratelimit to avoid doing it
too often, use ${run ....}
to send your warning mail.

IF you set a flag in an acl_m variable at the point of detection...

(optionally a 'count' or 'time since' value, not just binary..)

AND add an 'unseen' router chained to whatever else is already being done (temp reject?) that tests said acl_m variable..

THEN that router can perform whatever notification or file-writes it is told to do.

ELSE not progressing as far as the router, while within the acl, do a log_message to the panic log instead of main or reject. Ordinarily the paniclog will be MUCH less verbose - empty, even - hence faster and easier to parse with your externals, AND more forgiving of being perodically wiped and started fresh.

ELSEIF using SQL, just INSERT a record to a DB..

We've had 'all of the above' in stable production use for years - just never with ratelimiting.

HTH,

Bill
--
韓家標

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to