X

Teste do modulo evasive no apache

O que é mod_evasive?
mod_evasive é 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)

Fonte: http://www.zdziarski.com/blog/?page_id=442
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:

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);
}