我不时会在Apache日志中看到可疑的“找不到文件”错误的集合,基本上使用的是模式
File does not exist: /var/www/file,referer: http://my.server.com/file
在人类方面:找不到文件,尽管它在这里引用.一个明确的黑客尝试,因为这几乎是不可能的(REQUEST_URI经常表明相同).在我看来,fail2ban的一个明显案例 – 如果我可以在这里得到反向引用:
failregex = ^%(_apache_error_client)s File does not exist: /var/www(.+),referer: http://.+\1$
(Justin Case:以上示例假设该Web服务器的DIRECTORY_ROOT为/ var / www)
我用Google搜索了几个小时,上下搜索了fail2ban wiki – 但我无处可寻找有关其过滤器反向引用的声明.他们不受支持,还是我做错了?任何提示如何使其工作(除了“脏黑客”,如首先使用mod-rewrite将请求发送到另一个假网址,然后抓住它(如果有人有兴趣,我可以在答案中详细说明这种方法),或做使用mod-security类似的东西)?
因为要求整个日志行:
[Fri Nov 08 14:57:28 2013] [error] [client 50.67.234.213] File does not exist: /var/www/text/files.htm++++++++++++++++++++++++++Result:+using+proxy+27.34.142.47:9090;+no+post+sending+forms+are+found;,referer: http://www.myserver.com/text/files.htm++++++++++++++++++++++++++Result:+using+proxy+27.34.142.47:9090;+no+post+sending+forms+are+found;
(对不起,日志刚刚切换,所以这个长期候选人是目前唯一剩下的人;出于隐私原因进行了微小调整)
看起来反向引用编号有点古怪.尝试使用
Named Group ……这样的事情:
原文链接:https://www.f2er.com/regex/357017.htmlfailregex = ^%(_apache_error_client)s File does not exist: /var/www(?P<snoop_file>.+),referer: http://.+(?P=snoop_file)$