Este é um módulo de manobras evasivas para o Apache para fornecer um desvio em caso de DoS HTTP ou ataque DDoS ou ataque de força bruta. Ele também é projetado para ser uma ferramenta de detecção e gerenciamento de rede, e pode ser facilmente configurado para conversar com ipchains, firewalls, roteadores e etcetera. mod_evasive atualmente relata abusos por e-mail e instalações de syslog.
A detecção é feita através da criação de uma tabela dinâmica interna de hash de endereços IP e URIs, e negando qualquer único endereço IP de qualquer um dos seguintes:
- Solicitando a mesma página mais do que algumas vezes por segundo
- Fazendo mais de 50 solicitações simultâneas na mesma criança por segundo.
- Fazer todos os pedidos enquanto temporariamente na lista negra (em uma lista de bloqueio)
Após instalar o modulo evasive no apache faça o teste para verificar seu funcionamento: Crie um script ‘teste_evasive.pl’ com o conteudo abaixo: De permissão de execusão sobre este arquivo e execute ./teste_evasive.pl
O resultado devera assim:
O resultado devera assim:
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
Conteúdo script teste_evasive.pl
#!/usr/bin/perl
# test.pl: small script to test mod_dosevasive’s effectiveness
use IO::Socket;
use strict;
for(0..100) {
my($response);
my($SOCKET) = new IO::Socket::INET( Proto => “tcp”,
PeerAddr=> “127.0.0.1:80”);
if (! defined $SOCKET) { die $!; }
print $SOCKET “GET /?$_ HTTP/1.0\n\n”;
$response = <$SOCKET>;
print $response;
close($SOCKET);
}