Mod_evasive não bloqueia um ataque DOS usando solicitações HEAD

Mod_evasive não bloqueia um ataque DOS usando solicitações HEAD

Usando Apache/2.2.15 no RHEL6 com configuração mod_evasive:

DOSHashTableSize    3097
DOSPageCount        14
DOSPageInterval     2
DOSSiteCount        70
DOSSiteInterval     1
DOSBlockingPeriod   60

Infelizmente não bloqueou este ataque, que veio apenas de 1 IP:

207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:53 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:53 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:53 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"
207.xxx.xxx.xxx - - [14/Jun/2015:06:06:54 +0400] "HEAD / HTTP/1.1" 200 - "-" "some fake user agent"

Mod_evasive funciona, bloqueia alguns IPs em outros casos. Não funciona para solicitações HEAD?

EDIT: Meu apache está rodando no modo prefork. Pelo que li, mod_evasive tem problemas com isso.

Responder1

Modifique a variável para algo menor, 14 é muito alto.

DOSPageCount 3

Como o ataque vem do mesmo lugar, você pode banir o endereço IP.

sudo iptables -t raw -I PREROUTING -s 207.x.x.x/32 -j DROP

Ou você pode instalar o mod_security, configurá-lo e adicionar "algum agente de usuário falso" ao arquivo bad_robots.data e ele será recebido com um 401 proibido.

OBSERVAÇÃO

Os ataques DDoS são projetados para consumir largura de banda e também recursos. Você pode banir um endereço IP, bloqueá-lo com mod_evasive ou rejeitar suas solicitações com 401. NENHUM DESSES MÉTODOS IRÁ PARAR UM DDoS. O DDoS continuará a consumir toda a sua largura de banda, mantendo o seu dispositivo offline. O melhor método é entrar em contato com seu ISP e pedir que ele bloqueie os IPs ofensivos ou entre em contato com um serviço de mitigação de DDoS, como o cloudflare. Nada mais que você fizer impedirá o DDoS.

Se você estiver sob constante DDoS, use um serviço de mitigação de DDoS.NENHUM dos métodos mencionados anteriormente interromperá um DDoS.

informação relacionada