view mod_limit_auth/README.markdown @ 5381:32a9817c7516

mod_firewall: Initialize compiled chunk just once for all handlers This should fix a case where some stateful dependencies (such as throttles) produce separate instances for every call to new_handler(), leading to surprising behaviour (e.g. rules executed via JUMP CHAIN vs ::deliver would have separate rate limits). This also adds better error handling in case the compiled code fails to run for some reason.
author Matthew Wild <mwild1@gmail.com>
date Fri, 28 Apr 2023 13:27:06 +0100
parents 4916c1b6517f
children
line wrap: on
line source

---
summary: Throttle authentication attempts with optional tarpit
...

Introduction
============

This module lets you put a per-IP limit on the number of failed
authentication attempts.

It features an optioanal
[tarpit](https://en.wikipedia.org/wiki/Tarpit_%28networking%29), i.e.
waiting some time before returning an "authentication failed" response.

Configuration
=============

``` {.lua}
modules_enabled = {
  -- your other modules
  "limit_auth";
}

limit_auth_period = 30 -- over 30 seconds

limit_auth_max = 5 -- tolerate no more than 5 failed attempts

 -- Will only work with Prosody trunk:
limit_auth_tarpit_delay = 10 -- delay answer this long
```

Compatibility
=============

Requires 0.9 or later. The tarpit feature requires Prosody trunk.