Parece que a numeração de referências anteriores é um pouco maluca. Tente usar um Grupo nomeado ... algo assim:
failregex = ^%(_apache_error_client)s File does not exist: /var/www(?P<snoop_file>.+), referer: http://.+(?P=snoop_file)$
Ocasionalmente, vejo coleções de erros suspeitos de "Arquivo não encontrado" nos meus logs do Apache, basicamente usando o padrão
File does not exist: /var/www/file, referer: http://my.server.com/file
Em termos humanos: O arquivo não foi encontrado, embora seja referenciado aqui. Uma clara tentativa de hacking, já que isso é quase impossível (e o REQUEST_URI
s geralmente sugere o mesmo). Aos meus olhos, um caso claro para fail2ban
- se eu pudesse obter referências anteriores para trabalhar aqui:
failregex = ^%(_apache_error_client)s File does not exist: /var/www(.+), referer: http://.+$
(Justin Case: os exemplos acima supõem que DIRECTORY_ROOT
desse servidor da Web seja /var/www
)
Eu pesquisei por horas, procurei no wiki do fail2ban para cima e para baixo - mas em nenhum lugar eu encontrei uma declaração sobre referências anteriores em seu filtros. Eles não são suportados, ou eu fiz da maneira errada? Quaisquer dicas de como fazer isso funcionar (exceto de "hacks sujos", como enviar primeiro o pedido para outro URL falso usando mod-rewrite e, em seguida, percebendo isso (se alguém estiver interessado, posso elaborar essa abordagem em uma resposta), ou fazendo algo semelhante usando mod-security )?
como uma linha de registro inteira foi solicitada:
[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;
(desculpe, os logs foram apenas trocados, então esse longo candidato foi o único que restou atualmente ; pequenos ajustes foram feitos por razões de privacidade)
Parece que a numeração de referências anteriores é um pouco maluca. Tente usar um Grupo nomeado ... algo assim:
failregex = ^%(_apache_error_client)s File does not exist: /var/www(?P<snoop_file>.+), referer: http://.+(?P=snoop_file)$