Corrigindo a regra regex fail2ban para o filtro php-url-fopen

1

Estou corrigindo o padrão php-url-fopen filtro para permitir alguns parâmetros de consulta GET que estou usando em meu sistema (não está publicamente disponível, mas eu ainda gostaria de bloquear solicitações desnecessárias). O problema é que eu tenho o regex de trabalho para um nome de parâmetro, mas não consigo trabalhar regex para dois parâmetros onde second opiton é combinado de dois nomes. Estou usando o fail2ban 0.8.11 - aqui está trabalhando (falha) regex:

^<HOST> -.*"(GET|POST).*\?.*(?<!outer)\=http\:\/\/.* HTTP\/.*$

E aqui está a regex que não funciona:

^<HOST> -.*"(GET|POST).*\?.*(?<!outer|type\=outer\&url)\=http\:\/\/.* HTTP\/.*$

Quando tento iniciar o serviço fail2ban com regex não funcional, recebo esta mensagem:

ERROR  NOK: ('Unable to compile regular expression \'^(?:::f{4,6}:)?(?P<host>[\w\-.^_]*\w) -.*"(GET|POST).*\?.*(?<!outer|type\=outer\&url)\=http\:\/\/.* HTTP\/.*$\'',)

Qualquer ajuda seria apreciada.

    
por user1257255 01.07.2016 / 15:20

1 resposta

0

A solução para o meu segundo regex é:

^<HOST> -.*"(GET|POST).*\?.*(?<!outer)(?<!type\=outer\&url)\=http\:\/\/.* HTTP\/.*$

Ambas as palavras / parâmetros na consulta GET devem ser separadas e contidas apenas em um aspecto negativo.

    
por 04.07.2016 / 14:31