diff options
| author | quentin@aristote.fr <quentin@aristote.fr> | 2026-10-12 10:38:20 +0200 |
|---|---|---|
| committer | quentin@aristote.fr <quentin@aristote.fr> | 2026-10-12 10:41:21 +0200 |
| commit | 4b5dd6a2895dde26c38498d0d899aaa12b009a69 (patch) | |
| tree | 70fca0365c8859d4c0fbd00725e69439ff708057 /config/services/web/searx/filtron | |
| parent | 583bbed47c3b85e41bef50eeea4f833076e685b4 (diff) | |
| download | hermes-4b5dd6a2895dde26c38498d0d899aaa12b009a69.tar.gz hermes-4b5dd6a2895dde26c38498d0d899aaa12b009a69.tar.bz2 hermes-4b5dd6a2895dde26c38498d0d899aaa12b009a69.tar.xz | |
searx: filtron -> limiter
Diffstat (limited to 'config/services/web/searx/filtron')
| -rw-r--r-- | config/services/web/searx/filtron/default.nix | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/config/services/web/searx/filtron/default.nix b/config/services/web/searx/filtron/default.nix deleted file mode 100644 index da4f1e6..0000000 --- a/config/services/web/searx/filtron/default.nix +++ /dev/null @@ -1,121 +0,0 @@ -{...}: { - services.filtron = { - enable = true; - target.port = 8000; - rules = [ - { - name = "roboagent limit"; - filters = [ - "Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client|Ruby|UniversalFeedParser)" - ]; - limit = 0; - stop = true; - actions = [ - {name = "log";} - { - name = "block"; - params = {message = "Rate limit exceeded";}; - } - ]; - } - { - name = "botlimit"; - filters = [ - "Header:User-Agent=(Googlebot|bingbot|Baiduspider|yacybot|YandexMobileBot|YandexBot|Yahoo! Slurp|MJ12bot|AhrefsBot|archive.org_bot|msnbot|MJ12bot|SeznamBot|linkdexbot|Netvibes|SMTBot|zgrab|James BOT)" - ]; - limit = 0; - stop = true; - actions = [ - {name = "log";} - { - name = "block"; - params = {message = "Rate limit exceeded";}; - } - ]; - } - { - name = "suspiciously frequent IP"; - filters = []; - interval = 600; - limit = 30; - aggregations = ["Header:X-Forwarded-For"]; - actions = [{name = "log";}]; - } - { - name = "search request"; - filters = ["Param:q" "Path=^(/|/search)$"]; - interval = 61; - limit = 999; - subrules = [ - { - name = "missing Accept-Language"; - filters = ["!Header:Accept-Language"]; - limit = 0; - stop = true; - actions = [ - {name = "log";} - { - name = "block"; - params = {message = "Rate limit exceeded";}; - } - ]; - } - # { - # name = "suspiciously Connection=close header"; - # filters = [ "Header:Connection=close" ]; - # limit = 0; - # stop = true; - # actions = [ - # { name = "log"; } - # { - # name = "block"; - # params = { message = "Rate limit exceeded"; }; - # } - # ]; - # } - { - name = "IP limit"; - interval = 61; - limit = 9; - stop = true; - aggregations = ["Header:X-Forwarded-For"]; - actions = [ - {name = "log";} - { - name = "block"; - params = {message = "Rate limit exceeded";}; - } - ]; - } - { - name = "rss/json limit"; - filters = ["Param:format=(csv|json|rss)"]; - interval = 121; - limit = 2; - stop = true; - actions = [ - {name = "log";} - { - name = "block"; - params = {message = "Rate limit exceeded";}; - } - ]; - } - { - name = "useragent limit"; - interval = 61; - limit = 199; - aggregations = ["Header:User-Agent"]; - actions = [ - {name = "log";} - { - name = "block"; - params = {message = "Rate limit exceeded";}; - } - ]; - } - ]; - } - ]; - }; -} |
