O Mod_Evasive é um módulo do Apache que nos facilita trabalhar com proteções contra DoS e DDoS e ataques de força bruta em requisições HTTP para o Apache.
Ele cria tabelas no firewall com os IP's requisitantes e as URI's que o mesmo estão tentando floodar, e se ele cair em alguma regra, ele ficará banido por x segundos até que possa fazer requisições novamente para o servidor.
Ele é um modulo que pode ser usado com o Modsecurity para melhor a segurança do seu web server. Aqui você pode conhecer um pouco mais sobre o ModSecurity.
- Modsecurity :: Configurando regras de detecção de ataques
- Modsecurity :: Configurando regras de bloqueio de SQL Injection e XSS
Instalando o Mod_Evasive
O modulo é um pacote simples que pode ser instalado via APT
# sudo apt-get update ; sudo apt-get install libapache2-mod-evasive
Agora vamos verificar se deu tudo certinho:
root@servidor:~# sudo apachectl -M | grep evasive
evasive20_module (shared)
root@servidor:~#
Agora vamos editar o arquivo de configurações do Mod_Evasive para definir alguns parâmetros de comportamento do módulo
# vim /etc/apache2/mods-enabled/evasive.conf
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 30
DOSEmailNotify teste@admin.com
DOSLogDir "/var/log/apache2/"
#DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
</IfModule>
- DOSPageCount : Contador de requisições de uma só página
- DOSSiteCount: Contador de requisições feitas para todo o site
- DOSPageInterval: Intervalo aceitável entre as requisições feitas em páginas específicas
- DOSSiteInterval: Intervalo aceitável entre as requisições feitas em todo o site
- DOSBlockingPeriod: Período de bloqueio do IP em segundos
Agora vamos reiniciar o apache com as novas configurações e testar nossa configuração com o arquivo de negação de serviço nativo do próprio Mod_Evasive
# service apache2 restart
sudo perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl
:)
Há algo semelhante no Nginx ?
ResponderExcluir