Name request log actions so they say what they mean (closes #229)
check / check (push) Failing after 14m41s
check / check (push) Failing after 14m41s
Rename too_large, rate_limited, rule_blocked and denied, and split banned into temporarily_banned and permanently_banned by whether the ban runs out. A client under both a temporary and a permanent ban gets the permanent one. A request that makes a ban permanent gets permanently_banned. A ban rule, a trap path or a CrowdSec decision gets the value for the ban it makes, and in observe mode would_action names the ban enforce mode would have made. The offence kind rule_blocked follows, as a metric label and a key in clients.json. Model: opus-5-5
This commit is contained in:
1 parent
6850cb0e9f
commit
d8fefb1288
48 files changed
+522
-300
No files matched your search
@@ -321,6 +321,13 @@ ban is dropped alike. A scanner whose ban was dropped that way is refused and
|
||||
banned again by its next probe. A ban whose cause is `admin` is never dropped
|
||||
and does not count toward `SWW_MAX_BANS`, so such bans can never fill the table.
|
||||
|
||||
A request refused under a ban that runs out is logged with the action
|
||||
`temporarily_banned`. Under a permanent ban the action is `permanently_banned`.
|
||||
A request refused for a clear sign of attack or a CrowdSec decision takes the
|
||||
action for the ban it made. A request that makes a ban permanent is logged as
|
||||
`permanently_banned`. A request over a rate limit is logged as
|
||||
`client_is_rate_limited`, whichever ban it makes.
|
||||
|
||||
## Settings
|
||||
|
||||
`docs/settings.md` lists every setting with its default and the values it takes,
|
||||
@@ -580,9 +587,10 @@ lower case, except a country code, which is in capitals. `SWW_TAG_DENY` and
|
||||
|
||||
Two settings act on tags:
|
||||
|
||||
- `SWW_TAG_DENY` lists tags whose requests are refused with the action `denied`
|
||||
(`tag_deny`). The check runs twice: just before the rate limits, and again
|
||||
after the Core Rule Set, so that `exploitsignature` can refuse too.
|
||||
- `SWW_TAG_DENY` lists tags whose requests are refused with the action
|
||||
`client_denied` (`tag_deny`). The check runs twice: just before the rate
|
||||
limits, and again after the Core Rule Set, so that `exploitsignature` can
|
||||
refuse too.
|
||||
- `SWW_TAG_LIMIT_PERCENT` lists tags with a percentage from 1 to 99. Their
|
||||
clients get that percentage of every request and byte limit. The lowest
|
||||
percentage among a client's tags applies. `exploitsignature` cannot be listed,
|
||||
@@ -1338,9 +1346,9 @@ over either one:
|
||||
`Transfer-Encoding` do not count. `X-Request-ID` and `X-Forwarded-Proto` do.
|
||||
|
||||
Real clients never reach these limits. The answer is `deny` with `431`, and the
|
||||
log line's action is `too_large`. The refusal makes no ban and is no offence.
|
||||
The rate limits count the request as usual, so a client that keeps sending such
|
||||
requests breaks a limit.
|
||||
log line's action is `request_header_too_large`. The refusal makes no ban and is
|
||||
no offence. The rate limits count the request as usual, so a client that keeps
|
||||
sending such requests breaks a limit.
|
||||
|
||||
The limits apply on every path and in every `SWW_WAF_MODE`. A client in
|
||||
`SWW_ALLOW_NETS` skips them, as it skips the Core Rule Set. In `observe` mode
|
||||
|
||||
Reference in new issue
Block a user