可以在 fail2ban 过滤器中使用反向引用吗?

可以在 fail2ban 过滤器中使用反向引用吗?

有时,我会在 Apache 日志中看到一堆可疑的“文件未找到”错误,这些错误基本上都使用了以下模式

File does not exist: /var/www/file, referer: http://my.server.com/file

用人的话来说:文件未找到,尽管它在此处引用了自身。这显然是黑客行为,因为这几乎不可能(而且 sREQUEST_URI经常暗示这一点)。在我看来,这显然是黑客行为fail2ban——如果我能让反向引用在此处发挥作用:

failregex = ^%(_apache_error_client)s File does not exist: /var/www(.+), referer: http://.+\1$

(Justin Case:以上示例假设DIRECTORY_ROOT该网络服务器是/var/www

我在 Google 上搜索了几个小时,搜索了fail2ban 维基上上下下——但我找不到关于过滤器中反向引用的声明。它们不受支持,还是我做错了?有没有提示如何让它工作(除了“肮脏的黑客”,比如首先使用,然后抓住这一点(如果有人感兴趣,我可以在答案中详细说明这种方法),或者使用)?


因为请求了整行日志:

[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;

(抱歉,日志刚刚切换,所以只剩下这个长候选了现在;出于隐私原因做了微小调整)

答案1

看起来反向引用编号有点奇怪。尝试使用命名组...像这样:

failregex = ^%(_apache_error_client)s File does not exist: /var/www(?P<snoop_file>.+), referer: http://.+(?P=snoop_file)$

相关内容