Создайте пользовательское правило fail2ban для Apache2

Я пытаюсь создать пользовательское правило, чтобы запретить пользователям слишком много попыток входа в систему. Триггер — это слово «CheckLogin» в файле журнала apache.

Выдержка из журнала:

[03/Mar/2016:19:38:24 -0600] 186.77.136.133 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 "POST /CheckLogin HTTP/1.1" -
[03/Mar/2016:19:38:24 -0600] 186.77.136.133 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 "GET /Login?nok=badpassword HTTP/1.1" 10570
[03/Mar/2016:19:38:27 -0600] 186.77.136.133 TLSv1.2 ECDHE-RSA-AES128-

Текущий фильтр : /etc/fail2ban/filter.d/test.conf:

[INCLUDES]
[Definition]
failregex = ^<HOST> -.*"(GET|POST|HEAD).*CheckLogin".*$
ignoreregex =

Текущий jail.local:

# detect password authentication failures
[test-auth-ssl]
enabled  = true
port     = https
filter   = test
logpath  = /var/log/apache2/ssl_request_log
maxretry = 3
bantime  = 36000  ; 10 hrs
findtime = 360   ; 


[test-auth]
enabled  = true
port     = http
filter   = test
logpath  = /var/log/apache2/access_log
maxretry = 3
bantime  = 36000  ; 10 hrs
findtime = 360   ; 

Должна быть сложная деталь в фильтре failregex, но я пробовал разные варианты, и ни один не работал. Я могу перезапустить fail2ban без ошибок, но внешний IP-адрес, используемый для тестирования, никогда не блокируется (триггеры не работают).

Status for the jail: test-auth-ssl
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- Journal matches:
`- Actions
   |- Currently banned: 0
   |- Total banned:     0
   `- Banned IP list:

person Cedric Simon    schedule 04.03.2016    source источник


Ответы (1)


Понятно !

Играя с fail2ban-regex, я наконец нашел решение.

/etc/fail2ban/filter.d/test.conf 
[INCLUDES]
[Definition]
failregex =  <HOST> .*CheckLogin.*$
ignoreregex = 

Также в jail.local мне пришлось добавить backend=auto, так как по умолчанию использовалось systemd

person Cedric Simon    schedule 04.03.2016