diff options
Diffstat (limited to 'config/services/web/searx/filtron/default.nix')
| -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";}; - } - ]; - } - ]; - } - ]; - }; -} |
