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

fail2ban для журнала доступа к apache

Я пробовал все известные мне подходы для получения хоста из журнала доступа apache, но ни один из них не работал

мой базовый подход к тестированию следующий:

fail2ban-regex '87.97.244.57 - - [05/Nov/2015:12:46:24 -0500] "GET /index.php/?a=30%60%22( HTTP/1.1" 200 22639 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)' '^<HOST> - - [[^]+] ".*60.20.*'

я пытался ^<HOST> - - [[^]+] ".*60.20.* <HOST> - - [[^]+] ".*60.20.* [[]client []].*60.20.* ^<HOST>.*60.20.*$ .*60.20.* ... и т.д.

Они либо не попадают в цель, либо я получаю ошибку fail2ban.server.failregex.RegexException: No 'host' group in [...]

Действительно сложно понять, что вы пытаетесь сделать, сопоставить хосту это так же просто, как

'^<host>'

Если вы хотите сопоставить более конкретные вещи, тогда

'^<host> - - .*30%60%22' 

работает.

Сообщение об ошибке, которое вы получаете, связано с тем, что ( интерпретируется как часть группы регулярных выражений, которую вы оставляете незавершенной. Вы должны убежать от этого вот так

'^<host> - - .*30%60%22\('