我尝试了所有我知道的从 apache 访问日志中获取主机的方法,但都没有奏效
我的基本测试方法如下:
fail2ban-regex '87.97.244.57 - - [05/Nov/2015:12:46:24 -0500] "GET /index.php/?a=30%60%22( HTTP/1.1" 200 22639 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)' '^<HOST> - - [[^]+] ".*60.20.*'
我已試過^<HOST> - - [[^]+] ".*60.20.*
<HOST> - - [[^]+] ".*60.20.*
[[]client []].*60.20.*
^<HOST>.*60.20.*$
.*60.20.*
......等等。
他们要么错过了目标线,要么我得到了一个错误fail2ban.server.failregex.RegexException: No 'host' group in [...]
答案1
真的很难理解你想做什么,要匹配主机就很简单
'^<host>'
如果你想匹配更具体的东西,那么
'^<host> - - .*30%60%22'
作品。
您收到的错误消息是因为(
被解释为正则表达式分组的一部分,而您没有终止它。您应该像这样转义它
'^<host> - - .*30%60%22\('