регулярное выражение fail2ban отрицательное -прогноз

#regex #negative-lookahead #fail2ban

#регулярное выражение #отрицательный-прогноз #fail2ban

Вопрос:

У меня есть apache access log filter , в fail2ban котором используется черный список слов, например (db|project|wp-admin|wp-content) , который работает, но из-за определенных путей и определенных ошибок решил добавить ignoreregex с отрицательным прогнозом, чтобы исключить некоторые из них в зависимости от пути, но это не работает, поскольку an ignoreregex еще действителен.

Пример журнала доступа

 127.0.0.1 - - [10/Oct/2016:13:00:42  0100] "GET /images/imagecache/cache_232dbf2e1e./wp-content/ HTTP/1.1" 404 16 "http://[referrer]" "[user-agent]"
127.0.0.1 - - [10/Oct/2016:13:10:21  0100] "GET /images/imagecache/cache_3d87dbea9f./wp-content/ HTTP/1.1" 404 16 "http://[referrer]" "[user-agent]"
127.0.0.1 - - [10/Oct/2016:13:14:41  0100] "GET /images/imagecache/cache_232dbf2e1e./wp-content/ HTTP/1.1" 404 16 "http://[referrer]" "[user-agent]"
127.0.0.1 - - [10/Oct/2016:13:21:04  0100] "GET /images/imagecache/cache_232dbf2e1e. HTTP/1.1" 404 16 "http://[referrer]" "[user-agent]"
  

игнорируйте запись regex в filter.d файле

 .*images/imagecache. (db|project). (?!(wp|wp-admin|wp-content|xampp|xplorer)). $
  

Используя это для чего-то вроде https://regex101.com правильно соответствует только последней записи в журнале выше, но использование этого в моем filter.d файле игнорирует все 4 записи. Без ignoreregex всех 4 — это matched со ignoreregex всеми 4 ignored .

Приведенное выше регулярное выражение должно сопоставлять записи с images/imagecache белым списком слов и разрешать его, если оно присутствует в этом случае (db|project) , но не в том случае, если присутствуют какие-либо слова из черного (?!(wp|wp-admin|wp-content|xampp|xplorer)) списка .

Комментарии:

1. Действительно ли fail2ban движок регулярных выражений поддерживает поисковые запросы?

2. По-видимому, да, согласно этому коммиту, использующему его github.com/fail2ban/fail2ban/pull/387/commits /…