Fail2Ban: RegEx para filtrar todos os erros 404 do log do Apache

Fail2Ban: RegEx para filtrar todos os erros 404 do log do Apache

Em meus registros, vejo regularmente muitos erros 404, onde os bots obviamente verificam o servidor sistematicamente em busca de instalações de software específicas. Como isso também causa muito tráfego, quero bani-los.

Então, com base em alguns HowTos, tentei encontrar um RegEx para fail2ban que filtra essas solicitações 404 dos logs do Apache e com base nisso bloqueia os IPs relacionados.

Infelizmente, nenhum dos padrões RegEx que encontrei e tentei funcionou. Então, como exemplo:

fail2ban-regex /var/log/apache2/other*access.log '^<HOST> - .* "(GET|POST|HEAD).*HTTP.*" 404 .*$'

(o que me parece bom) não encontra nada:

Date template hits:
|- [# of hits] date format
|  [1210] Day(?P<_sep>[-/])MON(?P=_sep)ExYear[ :]?24hour:Minute:Second(?:\.Microseconds)?(?: Zone offset)?
`-

Lines: 1210 lines, 0 ignored, 0 matched, 1210 missed

Definitivamente existem vários erros 404 nesse arquivo de log. Então, o que estou fazendo de errado? Como deve ser uma aparência adequada do RegEx para obter todos os 404s?

Obrigado!

Responder1

other_vhosts_access.logpor padrão tem um diferente LogFormat vhost_combinedque é prefixado por um vhost:portquando comparado com o padrão common LogFormat. Você precisa modificar o regex de acordo.

Responder2

Você já tentou este

failregex = ^<HOST> - .* "(GET|POST|HEAD).*HTTP.*" 404 .*$
ignoreregex =.*(robots.txt|favicon.ico|jpg|png)

informação relacionada