Jump to content

[Tutorial] Instalação Do Módulo "mod_Evasive" No Apache


Jamis Henrique
 Share

Recommended Posts

Olá pessoal,
 
Andei pesquisando nos últimos dias algumas novas medidas de segurança para servidores e encontrei esta que achei bem interessante, eu não a conhecia e creio que muitos também não. Pois bem, essa proteção é um módulo para o Apache, o "mod_evasive". Para defini-lo e explicá-lo nada melhor que o próprio criador (citação do site do autor):

mod_evasive é um módulo para o Apache de manobras evasivas, fornecendo 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 syslog.
 
O processo de detecção é feita através da criação de uma tabela dinâmica interna hash de endereços IP e URIs, negando qualquer endereço IP a partir das ações:
 
- 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
- Fazendo todos os pedidos, enquanto temporariamente na lista negra (em uma lista de bloqueio)
 
Este método tem funcionado bem, tanto em ataques no servidor de forma única (DoS) como em distribuídos (DDoS), mas não apenas como as outras ferramentas de proteção, é tão útil para o ponto de largura de banda e consumo de processador (por exemplo, a quantidade de largura de banda e processador necessário para receber/processar/responder às solicitações inválidas), que é por isso que é uma boa idéia de integrá-lo com seus firewalls e roteadores para a proteção máxima.
 
Este módulo instancia para cada ouvinte individualmente, e, portanto, tem um mecanismo de limpeza interna e recursos de escalabilidade. Devido a este projeto de criação, pedidos legítimos nunca são comprometidas (mesmo de proxies e endereços NAT), mas apenas ataques de script. Até mesmo um usuário repetidamente clicando em 'reload' não deve ser afetada, a menos que este faça de forma maliciosa. "mod_evasive" é totalmente ajustável através do arquivo de configuração do Apache, fácil de incorporar em seu servidor web, e fácil de usar.

 

Vamos instalar então, primeiramente logue-se em seu servidor (pelo terminal) como root.
Baixe e extrai o mod_evasive
# wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
# tar zxvf mod_evasive_1.10.1.tar.gz
# cd mod_evasive
Na pasta do mod_evasive você terá acesso ao LEIA-ME onde tem explicações de instalação em alguns tipos diferentes de servidores. O que iremos seguir será baseado em um servidor rodando o cPanel com Apache 2x, prosseguindo com a instalação, execute:
# /usr/local/apache/bin/apxs -i -a -c mod_evasive20.c
Agora, iremos criar uma entrada no arquivo httpd.conf. Para mantermos o módulo depois de uma atualização/reconstrução do Apache, nós precisamos dizer ao cPanel para não removê-lo! Para fazer isso, nós iremos rodar:
# /usr/local/cpanel/bin/apache_conf_distiller -–update
O módulo já foi instalado no Apache, agora iremos adicionar as configurações do mod_evasive em algum lugar, rode (use o editor de sua preferência):
# nano /usr/local/apache/conf/includes/post_virtualhost_2.conf
Ao abrir adicione nas últimas linhas, o seguinte:
<IfModule mod_evasive20.c>
DOSHashTableSize    3097
DOSPageCount        2
DOSSiteCount        50
DOSPageInterval     1
DOSSiteInterval     1
</IfModule>
Rode os dois comandos para reconstruir o httpd.conf e reiniciar o Apache.
# /scripts/rebuildhttpdconf
# /scripts/restartsrv httpd 

Uma tradução das funções de cima.


DOSHashTableSize
O tamanho da tabela hash define o número de nós de nível superior para cada criação de tabela hash. Aumentar este número irá proporcionar desempenho mais rápido por diminuir o número de interações necessárias para chegar ao recorde, mas consomem mais memória para o espaço de tabela. Você deve aumentar isso se você tiver um servidor web ocupado. O valor que você especificar automaticamente ser escalonados até o próximo número primo na lista de números primos (ver mod_evasive.c para uma lista de números primos utilizados).
 
DOSPageCount 
Esta é a entrada para o número de pedidos para a mesma página (ou URI) por intervalo de página. Uma vez que a entrada para o intervalo tenha sido excedido, o endereço IP do cliente será adicionado à lista de bloqueio.
 
DOSSiteCount 
Esta é a entrada para o número total de pedidos de qualquer objeto com o mesmo cliente no mesmo visitante por intervalo no site. Uma vez que a entrada para o intervalo tenha sido excedido, o endereço IP do cliente será adicionado à lista de bloqueio.
 
DOSPageInterval 
O intervalo para a entrada de contagem de páginas; padrão para intervalos de 1 segundo.
 
DOSSiteInterval
O intervalo para a entrada da contagem do site; padrão para intervalos de 1 segundo.
 
DOSBlockingPeriod 
O período de bloqueio é a quantidade de tempo (em segundos) que um cliente será bloqueado, eles serem adicionados à lista de bloqueio. Durante este tempo, todas as solicitações subseqüentes do cliente irá resultar em um erro 403 (proibido) e do reset temporizador estar (por exemplo, mais 10 segundos). Uma vez que o temporizador é reposto para cada pedido subsequente, não é necessário ter um tempo de bloqueio, no caso de um ataque DoS, este temporizador vai conseguir redefinir.
 
DOSEmailNotify
Se este valor for definido, um email será enviado para o endereço especificado sempre que um endereço IP torna-se na lista negra. Um mecanismo de bloqueio usando /tmp impede o envio de e-mails contonuos.
 
NOTA: Certifique-se que "Mailer" é definido corretamente no mod_evasive.c (ou mod_evasive20.c). O padrão é "/ bin / mail-t% s", onde "s%" é utilizada para designar o endereço de e-mail de destino definido na configuração. Se você estiver rodando em Linux ou algum outro sistema operacional com um tipo diferente de mailer, você vai precisamos mudar isso.
 
DOSSystemCommand 
Se este valor for definido, o sistema de comando especificado será executado sempre que um endereço IP torna-se mebro da lista negra. Isto é projetado para permitir chamadas de sistema de filtro de IP ou outras ferramentas. Um mecanismo de bloqueio usando /tmp impede chamadas de sistema contínuo. Use %s para indicar o endereço IP na lista negra.
 
DOSLogDir
Escolha um diretório temporário alternativa
 
Por padrão "/tmp" será usado para o mecanismo de travamento, que abre algumas questões de segurança se o seu sistema está aberto a usuários shell.
 
 
No caso de você ter usuários shell não privilegiados, você vai querer criar um diretório gravável apenas para o usuário do Apache que está sendo executado (normalmente raiz), em seguida, definir isso no seu httpd.conf.
 
DOSWhitelist
Endereços IP de clientes confiáveis ​​podem ser adicionais a lista branca para garantir que elas nunca sejam negados. O objetivo da lista branca é para proteger o software, scripts, searchbots, ou outras ferramentas automatizadas de serem negadas para o pedido de grandes quantidades de dados a partir do servidor. Whitelisting *não* deve ser usado para adicionar listas de clientes ou qualquer coisa do tipo, pois isso irá abrir o servidor de abuso. 
 
Este módulo é muito difícil de ser disparado sem a realização de algum tipo de ataque malicioso, e por isso é mais apropriado permitir que o módulo decida sobre a sua própria existência ou não de um cliente individual que deva ser bloqueado.
 
Para whitelist um endereço (ou faixa) adicionar uma entrada para a configuração do Apache da seguinte forma:
 
DOSWhitelist 127.0.0.1 
DOSWhitelist 127.0.0. *
 
O sinal * pode ser utilizado em cima para os últimos 3 octetos, se necessário. Múltiplos comandos DOSWhitelist podem ser usados na configuração.
 
Nota: Ainda estou testando esse módulo!
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...