mod_security A chave de coleta de IP não está sendo configurada corretamente

2

Estou usando uma coleção IP em uma configuração de balanceamento de carga, portanto, quero mod_security para atuar no x-encaminhado para o cabeçalho em vez do REMOTE_ADDR. Aqui está minha regra:

SecAction "phase:1,nolog,pass,initcol:IP=%{REQUEST_HEADERS.x-forwarded-for}"
SecAction "nolog,phase:1,setvar:IP.hitcount=+1,deprecatevar:IP.hitcount=100/15"
SecRule IP:hitcount "@gt 600" "nolog,drop,phase:1,msg:'Possible DoS'"

Não importa o que eu definir a chave após o IP = eu recebo o IP do balanceador de carga através do qual, obviamente, banirá todo mundo. Isso é um bug ou eu estou fazendo alguma coisa errada? Eu até codifiquei a chave para 1.1.1.1 e ainda defini o IP do balanceador de carga no arquivo ip.pag. SOCORRO! :]

    
por Caseus 22.03.2011 / 10:42

2 respostas

2

Eu encontrei o problema. Eu estava colocando essa regra no arquivo de regras locais, que é a última coisa a ser definida. A coleção de IP já havia sido inicializada por outra regra que prevalecia.

A solução foi mover a linha superior (aquela com initcol in) para o início da configuração do mod_security, de modo que todas as referências à coleção IP usem a chave x-forwarded-for que defini, em vez da% padrãoREMOTE_ADDR.

Espero que isso resgate outra pessoa lá fora, uma manhã de tirar o cabelo! :]

    
por 22.03.2011 / 11:48
0

Eu também pesquisei o problema com o mod_security por trás de um balanceador de proxy / carga. Você pode tentar o mod_rpaf ou o mod_extract_forwarded2 para não ter que ajustar suas regras.

Veja o link

    
por 20.07.2011 / 23:47