Slowloris no Apache: é mod_reqtimeout + mod_qos suficiente?

4

Eu detectei há poucos dias que o meu servidor estava sob ataque de slowloris (eu encontrei um monte de "-" 408 0 "-" "-" valores no meu access.log).

Alterei minha configuração assim:

Em mod_reqtimeout:

RequestReadTimeout header=5-20,minrate=20

Eu instalei o mod_qos e o configurei assim:

QS_SrvMaxConnPerIP 50
QS_SrvMinDataRate 120 1500

É o suficiente? A maior parte do tutorial disponível apenas deixa os valores padrão nos arquivos de configuração.

Percebi que agora os valores de "-" 408 0 "-" aumentam muito. Eu suponho que isso é bom porque significa que mais conexões são detectadas como maliciosas e isso significa que elas são fechadas antes que possam "danificar" o servidor. Certo?

Posso fazer algo mais? Bloqueando os ips? ...

Agradecemos desde já por qualquer feedback!

    
por lucas47 26.05.2014 / 12:47

1 resposta

0

Lendo este relatório de bug , descobri que ele não deveria ser usado a opção QS_SrvMinDataRate porque:

The connection cleanup takes too long.

Eles recomendam que você use somente a opção RequestReadTimeout (pelo menos no Apache 2.4+, mas como a opção RequestReadTimeout estava disponível antes, provavelmente não havia necessidade das opções de QoS nessa opção).

Não é improvável que a limpeza demorada esteja causando esses 408 erros. Mas isso é apenas especulação da minha parte.

Note que o Slowloris é difícil de se livrar, a menos que você possa bloquear o endereço IP no seu firewall. Algo Apache2 / QoS não oferece, infelizmente. É muito fácil para o invasor criar uma nova conexão quando recebe o 408 e assim comer outro do seu slot Apache2 aberto.

    
por 13.10.2016 / 07:27