Cedo ou tarde, qualquer servidor Apache vai sofrer ataque DDoS HTTP. Felizmente, podemos utilizar o mod_evasive do Apache para medidas evasivas contra um ataque DDoS ou por força bruta.
A sua instalação e ativação é bem simples em um servidor Linux moderno. Para Ubuntu ou Debian, basta executar:
# apt-get install libapache2-mod-evasive.
Será necessário acrescentar esta configuração em /etc/apache2/mods-available/mods-evasive.load:
<IfModule mod_evasive20.c> DOSHashTableSize 2048 DOSPageCount 20 DOSSiteCount 300 DOSPageInterval 1.0 DOSSiteInterval 1.0 DOSBlockingPeriod 10.0 DOSLogDir "/var/log/apache2/evasive" #DOSEmailNotify admin@domain.com DOSWhiteList 127.0.0.1 </IfModule>
Esta configuração faz com que qualquer IP que faça mais do que 20 solicitações da mesma URL num intervalo de 1 segundo, ou mais do que 300 URLs ao mesmo website num intervalo de 1 segundo, seja bloqueado por 10 segundos e passe a receber erro 403 (Forbidden). O localhost 127.0.0.1 é liberado da checagem.
Depois, será necessário criar a pasta para guardar os logs de ação do mod_evasive, e reiniciar o Apache:
# mkdir -p /var/log/apache2/evasive # service apache2 restart