Создайте фильтр fail2ban для Wordpress под nginx - PullRequest
0 голосов
/ 27 октября 2019

Я пытаюсь создать фильтр fail2ban для wordpress под nginx, но он не работает и нуждается в некоторой помощи.

Журнал:

111.111.111.111 - - [27/Oct/2019:02:54:48 +0200] "POST /wp-login.php HTTP/1.1" 200 1697 "http://my-wordpress.com/wp-login.php" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1"

Фильтр:

[INCLUDES]
before = common.conf

[Definition]
failregexe = <HOST> - - .* "POST /wp-login.php .* 200
ignoreregex =

Jail:

[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/nginx/access.log
maxretry = 3
bantime = 3600

Test Regex

#fail2ban-regex /var/log/nginx/access.log  /etc/fail2ban/filter.d/wordpress.conf

Running tests
=============

Use   failregex filter file : wordpress, basedir: /etc/fail2ban
Use      datepattern : Default Detectors
Use         log file : /var/log/nginx/access.log
Use         encoding : UTF-8


Results
=======

Failregex: 0 total

Ignoreregex: 0 total

Date template hits:

Lines: 72 lines, 0 ignored, 0 matched, 72 missed
[processed in 0.01 sec]

Missed line(s): too many to print.  Use --print-all-missed to print all 72 lines

Что не так с этим регулярным выражением?

Я пробовал также

^<HOST>.*"POST./wp-login.php.*200.*$
^<HOST> - - .* "POST /wp-login.php .* 200

и многие другие ....

1 Ответ

0 голосов
/ 05 ноября 2019

Есть опечатка (удалить последнюю e):

- failregexe = ...
+ failregex = 

Кстати: вы действительно хотите запретить 200-й ответ? (200 означает ОК). Кроме того, ваше регулярное выражение слишком «уязвимо», лучше использовать что-то привязанное и более точное, например:

^<HOST> - \S+ \[\] "[A-Z]+ /wp-login.php [^"]+" 200

Или даже использовать (?!- )\S+ ... [54]0\d+ вместо \S+ ... 200, если вы хотите захватывать другие коды и для пользователей столько реальное имя пользователя (поэтому игнорирует запросы на рукопожатие, если пользователь зарегистрирован как -).

...