Система - Ubuntu 16.04. Использование fail2ban из диспетчера пакетов (в настоящее время это 0.9.3-1). Включили nginx-botsearch в jail.local.
Вот мой /etc/fail2ban/filter.d/nginx-botsearch.local (обратите внимание, что nginx-botsearch зависит от botsearch-common):
[INCLUDES]
before = botsearch-common.conf
after = botsearch-common.local
[Definition]
failregex = ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) \/<block> \S+\" 404 .+$
^ \[error\] \d+#\d+: \*\d+ (\S+ )?\"\S+\" (failed|is not found) \(2\: No such file or directory\), client\: <HOST>\, server\: \S*\, request: \"(GET|POST|HEAD) \/<block> \S+\"\, .*?$
ignoreregex =
Вот мой /etc/fail2ban/filter.d/botsearch-common.local:
[Init]
block = \/?(<webmail>|<phpmyadmin>|<wordpress>|cgi-bin|mysqladmin)[^,]*
webmail = roundcube|(ext)?mail|horde|(v-?)?webmail
phpmyadmin = (typo3/|xampp/|admin/|)(pma|(php)?[Mm]y[Aa]dmin)
wordpress = wp-(login|signup)\.php
Итак, вот в чем проблема. Я хочу, чтобы он соответствовал "http://example.com/wp-login.php" или "http://example.com/folder/wp-login.php"
и нет
"http://example.com/wp-login.phpasdfasdfasdf" или "http://example.com/wp-login.php?asdfasdfasdf". Я пробовал использовать $, \ n, \ b, \ B и любые другие вещи в конце строки wordpress, но безрезультатно. Пожалуйста, посоветуйте, как это можно сделать.
изменение
failregex = ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) \/<block> \S+\" 404 .+$
failregex = ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) \/<block>\S+\" 404 .+$
и изменить
block = \/?(<webmail>|<phpmyadmin>|<wordpress>|cgi-bin|mysqladmin)[^,]*
block = \/?(<webmail>|<phpmyadmin>|<wordpress> |cgi-bin|mysqladmin)[^,]*