Похоже, это ошибка в fail2ban, с различным поведением у инструмента fail2ban-regex и фильтра failregex
Я пытаюсь разработать новое правило регулярного выражения для fail2ban, чтобы match:
\"%20and%20\"x\"%3D\"x
При использовании fail2ban-regex это дает желаемый результат:
^<HOST>.*GET.*\\"%20and%20\\"x\\"%3D\\"x.* 200.*$
Как это:
^<HOST>.*GET.*\\\"%20and%20\\\"x\\\"%3D\\\"x.* 200.*$
Однако, когда я помещаю любой из них в фильтр, я получаю следующую ошибку:
Failed during configuration: '%' must be followed by '%' or '(', found:…
Чтобы иметь для этой работы в фильтре вы должны удвоить '%', ie '%%':
^<HOST>.*GET.*\\\"%%20and%%20\\\"x\\\"%%3D\\\"x.* 200.*$
Хотя это позволяет получить необходимые совпадения, работающие как фильтр, он не запускается через fail2ban-regex.
Я пробовал \\\\
, как предложил Андре, ниже, но это не дает результатов в fail2ban-regex.
Итак, поскольку это похоже на разницу поведение, я собираюсь зарегистрировать это как ошибку.