0

我正在尝试设置fail2ban并使用正则表达式失败...在我的apache日志中我有这样的行

xxx.xxx.xxx.xxx - - [27/Sep/2013:12:41:21 +0200] "GET /shop/index.php?do=/blog/add HTTP/1.1" 301 566 "http://www.tld.com/shop/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)"

所有这些条目都有一个共同点“?do =”根本无效(因此不会影响常规页面)我试图用正则表达式来捕捉它

failregex = <HOST> - - * "GET *\?do\=* 

但它没有匹配。经过几个小时的搜索,我迷路了。任何人都可以帮助我使用正则表达式吗?

4

2 回答 2

1

缺少另一个点:

failregex = <HOST> - - .* "GET *\?do\=.*
                       ^              ^

在在线正则表达式测试器中使用它:

http://regex101.com/r/jQ7wQ9/1

于 2014-07-07T16:15:38.470 回答
0

你有它的方式,“*”正在搜索空格字符串,然后检查得到“?do”。我想你想要:

failregex = <HOST> - - .* "GET *\?do\=* 
                       ^
于 2013-09-27T12:17:06.210 回答