#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 /…