Como prevenir ataques DDoS ao servidor Apache

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