Назад | Перейти на главную страницу

Fail2Ban Regex - Joomla / PHP5-FPM

Я не могу получить регулярное выражение для работы fail2ban. Я хочу сопоставить следующее:

[Tue Jun 24 10:22:14.528987 2014] [fcgid:warn] [pid 22526:tid 139757615011584] [client IP:PORT] mod_fcgid: stderr: user admin joomla authentication failure, referer: http://www.mydomain.com/administrator/index.php?option=com_login

Я попытался:

^\[.*\s*.*]* \[client <HOST>\] mod_fcgid: stderr: user .* joomla authentication failure, referer: .*

Любая помощь будет очень признательна.

Вам не нужно иметь сложное регулярное выражение, чтобы пропустить начальное поле времени. Я подозреваю, что это вызывает у вас проблемы. Для данной записи в журнале это работает, если я конвертирую ваш IP:PORT в числовое значение ip: port.

'^.*[[]client <HOST>.*user .*joomla authentication failure,'

Вышеуказанное приведет к бану любого пользователя со слишком большим количеством ошибок аутентификации.

Я не знаю, используете ли вы его, но fail2ban-regex - отличный инструмент для этого

Всего 2 заметки:

  • В этом примере нам нужно использовать фактический IP и порт вместо IP:PORT, даже если это подделка.
  • В регулярном выражении нужно поймать IP, а порт указать отдельно: <HOST>:[0-9]+. Я предполагаю, что порт обязателен.

Тест (последняя строка - регулярное выражение):

fail2ban-regex \
'[Tue Jun 24 10:22:14.528987 2014] [fcgid:warn] [pid 22526:tid 139757615011584] [client 1.2.3.4:1234] mod_fcgid: stderr: user admin joomla authentication failure, referer: http://www.mydomain.com/administrator/index.php?option=com_login' \
'^\[.*]* \[client <HOST>:[0-9]+\] mod_fcgid: stderr: user .* joomla authentication failure, referer: .*'

Меня устраивает.