Fail2Ban: RegEx для фильтрации всех ошибок 404 из журнала Apache

Fail2Ban: RegEx для фильтрации всех ошибок 404 из журнала Apache

В своих журналах я регулярно вижу кучу ошибок 404, когда боты явно систематически сканируют сервер на предмет установки определенного ПО. Поскольку это также вызывает кучу трафика, я хочу их забанить.

Поэтому, основываясь на некоторых руководствах, я попытался найти RegEx для fail2ban, который отфильтровывает эти 404-запросы из журналов Apache и на основе этого блокирует соответствующие IP-адреса.

К сожалению, ни один из найденных и опробованных мной шаблонов RegEx не работает. Вот пример:

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

(что мне кажется хорошим) ничего не находит:

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

В этом файле журнала определенно есть несколько ошибок 404. Так что я делаю не так? Как должен выглядеть правильный RegEx, чтобы получить все ошибки 404?

Спасибо!

решение1

other_vhosts_access.logпо умолчанию имеет другой LogFormat vhost_combined, который имеет префикс a vhost:portпо сравнению со стандартным common LogFormat. Вам необходимо изменить регулярное выражение соответствующим образом.

решение2

Вы пробовали это?

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

Связанный контент