Configure o mod_evasive para prevenir ataques DoS e DDoS no CentOS

Neste artigo, aprenderemos como instalar e configurar o mod_evasive para evitar ataques DoS e DDoS no CentOS.

Para esta demonstração, usamos o servidor dedicado CentOS 7 de 64 bits.

Vamos começar.

O módulo mod_evasive Apache. Ajuda a sustentar Ataques Distribuídos de Negação de Serviço (DoS e DDoS) e ataques de força bruta no servidor web Apache. O mod_evasive opera monitorando solicitações de entrada e relata abusos por e-mail e recursos de syslog. Ele se destina a ser uma ferramenta de detecção e gerenciamento de rede e rapidamente configurado para se comunicar com ipchains, firewalls, roteadores e muito mais.

O mod_evasive observa solicitações suspeitas e nega qualquer endereço IP único de qualquer um dos seguintes:

  • Solicitar a mesma página mais do que algumas vezes por segundo
  • Fazer mais de 50 solicitações simultâneas na mesma criança por segundo
  • Fazer qualquer solicitação enquanto estiver temporariamente na lista negra

Pré-requisitos

  • Servidor CentOS 7 de 64 bits dedicado ou servidor em nuvem (também funciona com CentOS 6)
  • Apache Webserver LAMP (Linux, Apache, MySQL, PHP) instalado e configurado
  • Servidor de e-mail

1. Mantenha o servidor atualizado:

# yum update -y

2. Instale EPEL (pacotes extras para Enterprise Linux):

# yum install epel-release -y

3. Instale o pré-requisito de mod_evasive:

# yum install httpd-devel

4. Instale o mod_evasive:

# yum install mod_evasive -y

Agora, mod_evasive está instalado

5. Para adicionar a configuração mod_evasive ao seu arquivo de configuração do Apache:

Por padrão, a linha LoadModule será adicionada ao arquivo de configuração mod_evasive.conf. Abra o arquivo e adicione a linha a seguir, se ainda não estiver presente.

# vi /etc/httpd/conf.d/mod_evasive.conf

LoadModule evasive20_module modules/mod_evasive24.so

Abra o arquivo de configuração mod_evasive.conf e verifique as seguintes entradas.

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify

Você pode configurar as entradas acima de acordo com sua necessidade. Modifique DOSEmailNotify para o seu id de e-mail.

Para colocar o endereço IP na lista de permissões, adicione a seguinte linha no arquivo de configuração:

DOSWhitelist 127.0.0.1

DOSWhitelist 127.0.0.*

Você também pode adicionar vários endereços IP.

Mais uma entrada precisa alterar DOSLogDir. Por padrão, ele se refere a / tmp para um mecanismo de bloqueio.

Crie um novo diretório em / var / log / :

# mkdir /var/log/mod_evasive

Defina a propriedade para o usuário apache:

# chown -R apache:apache /var/log/mod_evasive

Agora, edite a seguinte linha na configuração mod_evasive e modifique o caminho do diretório:

DOSLogDir  /var/log/mod_evasive

Salve e saia do arquivo de configuração mod_evasive.

Em seguida, reinicie o Apache:

# systemctl restart httpd.service

É isso, mod_evasive instalado e configurado.

Aprenda mais sobre as opções de configuração do mod_evasive.
Essas descrições das opções de configuração foram obtidas diretamente do arquivo README.

DOSHashTableSize

O tamanho da tabela hash define o número de nós de nível superior para a tabela hash de cada filho. Aumentar esse número fornecerá um desempenho mais rápido, diminuindo o número de iterações necessárias para chegar ao registro, mas consumirá mais memória para o espaço de tabela. Você deve aumentar isso se tiver um servidor web ocupado. O valor que você especificar será escalonado automaticamente até o próximo número primo na lista de primos (consulte mod_evasive.c para uma lista de primers usados).

DOSPageCount

Este é o limite para o número de solicitações para a mesma página (ou URI) por intervalo de página. Assim que o limite desse intervalo for excedido, o endereço IP do cliente será adicionado à lista de bloqueio.

DOSSiteCount

Este é o limite para o número total de solicitações de qualquer objeto pelo mesmo cliente no mesmo listener por intervalo de site. Assim que o limite desse intervalo for excedido, o endereço IP do cliente será adicionado à lista de bloqueio.

DOSPageInterval

O intervalo para o limite de contagem de páginas; o padrão é intervalos de 1 segundo.

DOSSiteInterval

O intervalo para o limite de contagem do site; o padrão é intervalos de 1 segundo.

DOSBlockingPeriod

O período de bloqueio é a quantidade de tempo (em segundos) que um cliente ficará bloqueado se for adicionado à lista de bloqueio. Durante esse tempo, todas as solicitações subsequentes do cliente resultarão em 403 (Proibido) e o cronômetro será zerado (por exemplo, outros 10 segundos). Como o cronômetro é zerado para cada solicitação subsequente, não é necessário um longo período de bloqueio; no caso de um ataque DoS, este cronômetro continuará sendo zerado.

DOSEmailNotify

Se este valor for definido, um e-mail será enviado para o endereço especificado sempre que um endereço IP entrar na lista negra. Um mecanismo de bloqueio usando / tmp evita que emails contínuos sejam enviados.

Observação:

Certifique-se de que MAILER esteja configurado corretamente em mod_evasive.c (ou mod_evasive20.c). O padrão é “/ bin / mail -t% s” onde% s é usado para denotar o endereço de e-mail de destino definido na configuração. Se você estiver executando no Linux ou algum outro sistema operacional com um tipo diferente de mailer, você precisará alterar isso.

DOSSystemCommand

Se este valor for definido, o comando do sistema especificado será executado sempre que um endereço IP entrar na lista negra. Isso é projetado para permitir chamadas de sistema para filtro de IP ou outras ferramentas. Um mecanismo de bloqueio usando / tmp evita chamadas de sistema contínuas. Use% s para denotar o endereço IP do IP na lista negra.

DOSLogDir

Escolha um diretório temporário alternativo
Por padrão, “/ tmp” será usado para o mecanismo de bloqueio, o que abre alguns problemas de segurança se o seu sistema estiver aberto para usuários do shell. No caso de você ter usuários de shell não privilegiados, você desejará criar um diretório gravável apenas para o usuário que o Apache está executando como (geralmente root), então defina isso em seu httpd.conf.

Neste artigo, cobrimos como nosso engenheiro de suporte instala e configura o mod_evasive para evitar ataques DoS e DDoS no CentOS.


Como desativar o Block Editor e instalar o Classic Editor no WordPress 5.0

Como desativar o Block Editor e instalar o Classic Editor no WordPress 5.0

A partir do WordPress 5.0, o editor padrão do WordPress é o novo editor de blocos. O novo editor é radicalmente diferente

Como definir o Editor Clássico como Editor Padrão no WordPress em vez do Gutenberg

Como definir o Editor Clássico como Editor Padrão no WordPress em vez do Gutenberg

O Gutenberg Editor logo se tornará o editor padrão do WordPress. Você terá a opção de selecionar o Editor Clássico

Como consertar problemas do WordPress 5.0

Como consertar problemas do WordPress 5.0

O WordPress 5.0 está finalmente sendo lançado e traz consigo uma nova experiência de edição com o Gutenberg

Como atualizar itens de pasta no Windows 11

Como atualizar itens de pasta no Windows 11

Com a opção Atualizar ausente no menu de contexto, veja como você pode atualizar itens no Explorador de Arquivos no Windows 11.

Como corrigir erro de agrupamento “utf8mb4_0900_ai_ci” ao importar banco de dados WordPress

Como corrigir erro de agrupamento “utf8mb4_0900_ai_ci” ao importar banco de dados WordPress

Se você estiver mudando a instalação do WordPress de um servidor MySQL 8 para MySQL 5.7 (ou inferior), provavelmente encontrará

CORREÇÃO: “O editor encontrou um erro inesperado” no WordPress após a atualização

CORREÇÃO: “O editor encontrou um erro inesperado” no WordPress após a atualização

Incapaz de escrever uma nova postagem usando o novo Editor de Bloco no WordPress? É provável que você receba “O editor

🔧 CORREÇÃO: parece que sua instalação do PHP não contém a extensão MySQL exigida pelo WordPress

🔧 CORREÇÃO: parece que sua instalação do PHP não contém a extensão MySQL exigida pelo WordPress

Quer administrar um site WordPress autogerenciado? Excelente. Você aprenderá um zilhão de coisas. Uma das partes críticas da configuração

Como habilitar tags curtas de PHP

Como habilitar tags curtas de PHP

Neste artigo, abordamos como habilitar tags curtas de PHP. O PHP analisa o arquivo usando tags de abertura e fechamento, que são semelhantes. Para habilitar tags curtas de PHP

Configure o mod_evasive para prevenir ataques DoS e DDoS no CentOS

Configure o mod_evasive para prevenir ataques DoS e DDoS no CentOS

Neste artigo, aprenderemos como instalar e configurar o mod_evasive para evitar ataques DoS e DDoS no CentOS. O módulo mod_evasive Apache.

Como instalar o PHP com PHP-FPM para NGINX no CentOS

Como instalar o PHP com PHP-FPM para NGINX no CentOS

como instalar PHP com PHP-FPM para NGINX no CentOS. A configuração básica do servidor da web NGINX para processar aplicativos PHP e servi-los na porta 80.