mirror of
https://github.com/TecharoHQ/anubis.git
synced 2026-04-10 18:48:44 +00:00
feat(data): add challenge-browser-like.yaml
This is a huge change to Anubis and will make it a lot more invisible at the cost of requiring additional server configuration to make it happen. If you add this bit of nginx config to your location block: ```nginx proxy_set_header X-Http-Version $server_protocol; ``` And then adjust the bottom bot rule to this: ```yaml - import: (data)/common/challenge-browser-like.yaml ``` Anubis will be way less aggressive than it was before. This will let through any traffic that comes from a browser that actually is a browser via some more advanced heuristics. I think that this rule alone is the key feature of v1.18.0. Signed-off-by: Xe Iaso <me@xeiaso.net>
This commit is contained in:
@@ -43,10 +43,7 @@ bots:
|
||||
# report_as: 4 # lie to the operator
|
||||
# algorithm: slow # intentionally waste CPU cycles and time
|
||||
|
||||
# Generic catchall rule
|
||||
- name: generic-browser
|
||||
user_agent_regex: >-
|
||||
Mozilla|Opera
|
||||
action: CHALLENGE
|
||||
# Challenge things that claim to be a browser but are not
|
||||
- import: (data)/common/challenge-browser-like.yaml
|
||||
|
||||
dnsbl: false
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
- name: cloudflare-workers
|
||||
headers_regex:
|
||||
CF-Worker: .*
|
||||
action: DENY
|
||||
expression: '"Cf-Worker" in headers'
|
||||
action: CHALLENGE
|
||||
16
data/common/challenge-browser-like.yaml
Normal file
16
data/common/challenge-browser-like.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Challenge anything with HTTP/1.1 that claims to be a browser
|
||||
- name: challenge-lies-browser-but-http-1.1
|
||||
action: CHALLENGE
|
||||
expression:
|
||||
all:
|
||||
- '"X-Http-Version" in headers'
|
||||
- headers["X-Http-Version"] == "HTTP/1.1"
|
||||
- >-
|
||||
( userAgent.contains("Mozilla")
|
||||
|| userAgent.contains("Opera")
|
||||
|| userAgent.contains("Safari")
|
||||
|| userAgent.contains("Edge")
|
||||
|| userAgent.contains("Gecko")
|
||||
|| userAgent.contains("Windows")
|
||||
|| userAgent.contains("Linux")
|
||||
)
|
||||
5
data/common/legacy-challenge-everything.yaml
Normal file
5
data/common/legacy-challenge-everything.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
# Generic catchall rule
|
||||
- name: generic-browser
|
||||
user_agent_regex: >-
|
||||
Mozilla|Opera
|
||||
action: CHALLENGE
|
||||
Reference in New Issue
Block a user