on master help sign in
filtron: log suspiciously frequent queries (WIP)
b5449ecMarkus Heiser
utils/templates/etc/filtron/rules.json+40−19
@@ -1,42 +1,63 @@
1[{
1[{
2+ "name":"suspiciously frequent queries",
3+ "filters":[
4+ "Param:q",
5+ "Path=^(/|/search)$"
6+ ],
7+ "interval":120,
8+ "limit":9,
9+ "actions":[
10+ {"name":"log"}
11+ ]
12+ },
13+ {
2 "name":"search request",
14 "name":"search request",
3 "filters":[
15 "filters":[
4 "Param:q",
16 "Param:q",
5 "Path=^(/|/search)$"
17 "Path=^(/|/search)$"
6 ],
18 ],
7− "interval":60,
19+ "interval":120,
8− "limit":15,
20+ "limit":19,
21+ "actions":[
22+ {
23+ "name":"block",
24+ "params":{
25+ "message":"common rate limit exceeded"
26+ }
27+ }
28+ ],
9 "subrules":[
29 "subrules":[
10 {
30 {
11 "name":"roboagent limit",
31 "name":"roboagent limit",
12 "interval":60,
32 "interval":60,
13− "limit":15,
33+ "limit":3,
14 "filters":[
34 "filters":[
15− "Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client)"
35+ "Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client|Ruby)"
16 ],
36 ],
17 "actions":[
37 "actions":[
18− {"name": "log"},
38+ {"name":"log"},
19− {
39+ {
20 "name":"block",
40 "name":"block",
21 "params":{
41 "params":{
22− "message":"Rate limit exceeded"
42+ "message":"rate limit exceeded"
23 }
43 }
24 }
44 }
25 ]
45 ]
26 },
46 },
27 {
47 {
28 "name":"botlimit",
48 "name":"botlimit",
49+ "interval":60,
29 "limit":0,
50 "limit":0,
30 "stop":true,
51 "stop":true,
31 "filters":[
52 "filters":[
32 "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)"
53 "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)"
33 ],
54 ],
34 "actions":[
55 "actions":[
35− {"name": "log"},
56+ {"name":"log"},
36 {
57 {
37 "name":"block",
58 "name":"block",
38 "params":{
59 "params":{
39− "message":"Rate limit exceeded"
60+ "message":"rate limit exceeded"
40 }
61 }
41 }
62 }
42 ]
63 ]
@@ -44,17 +65,17 @@
44 {
65 {
45 "name":"IP limit",
66 "name":"IP limit",
46 "interval":60,
67 "interval":60,
47− "limit":15,
68+ "limit":13,
48 "stop":true,
69 "stop":true,
49 "aggregations":[
70 "aggregations":[
50 "Header:X-Forwarded-For"
71 "Header:X-Forwarded-For"
51 ],
72 ],
52 "actions":[
73 "actions":[
53− {"name": "log"},
74+ {"name":"log"},
54 {
75 {
55 "name":"block",
76 "name":"block",
56 "params":{
77 "params":{
57− "message":"Rate limit exceeded"
78+ "message":"rate limit exceeded"
58 }
79 }
59 }
80 }
60 ]
81 ]
@@ -62,34 +83,34 @@
62 {
83 {
63 "name":"rss/json limit",
84 "name":"rss/json limit",
64 "interval":60,
85 "interval":60,
65− "limit":15,
86+ "limit":13,
66 "stop":true,
87 "stop":true,
67 "filters":[
88 "filters":[
68 "Param:format=(csv|json|rss)"
89 "Param:format=(csv|json|rss)"
69 ],
90 ],
70 "actions":[
91 "actions":[
71− {"name": "log"},
92+ {"name":"log"},
72 {
93 {
73 "name":"block",
94 "name":"block",
74 "params":{
95 "params":{
75− "message":"Rate limit exceeded"
96+ "message":"rate limit exceeded"
76 }
97 }
77 }
98 }
78 ]
99 ]
79− },
100+ },
80 {
101 {
81 "name":"useragent limit",
102 "name":"useragent limit",
82 "interval":60,
103 "interval":60,
83− "limit":15,
104+ "limit":13,
84 "aggregations":[
105 "aggregations":[
85 "Header:User-Agent"
106 "Header:User-Agent"
86 ],
107 ],
87 "actions":[
108 "actions":[
88− {"name": "log"},
109+ {"name":"log"},
89 {
110 {
90 "name":"block",
111 "name":"block",
91 "params":{
112 "params":{
92− "message":"Rate limit exceeded"
113+ "message":"rate limit exceeded"
93 }
114 }
94 }
115 }
95 ]
116 ]