Como prevenir um ataque DDoS com Nginx

Cum să preveniți un atac DDoS cu Nginx
⏱️ 5 min read

Ataques distribuídos de negação de serviço ou “DDoS” sequestram os recursos de um servidor por meio de táticas abusivas de comunicação digital. Esses tipos de ataques são ataques organizados do mundo dos computadores. Numerosas ações anti-like incômodas se combinam para criar uma ameaça formidável o suficiente para parar um servidor experiente em suas trilhas. Pior de tudo, acontece que existem vários meios de travar essa guerra de guerrilha na web contra servidores desavisados. Felizmente, os servidores podem ser configurados para revidar.

Nginx, um sistema de servidor altamente popular para máquinas Unix, vem com funcionalidade interna suficiente para limitar bastante a eficácia dos ataques DDoS.

Aqui estão algumas opções eficazes para lidar com essas ameaças em um servidor Nginx:

Faça backup do seu arquivo de configuração

Antes de alterar qualquer configuração, certifique-se de fazer um backup rápido da configuração do seu servidor. O seguinte comando funciona para isso:

Uma vez feito isso, você está pronto para seguir em frente.

Verificando o tráfego

Ficar de olho no tráfego do seu servidor torna mais fácil otimizar a segurança e implementar táticas adicionais no futuro. O Nginx possui um módulo feito especificamente para isso.

Configurar uma página de status

O Nginx normalmente vem com um módulo denominado “stub status” (http_stub_status_module) que permite que esse tipo de funcionalidade seja integrado ao ambiente do servidor com bastante facilidade. Primeiro, verifique-o usando o seguinte comando:

Nginx Find Module

Ou canalize o código acima para grep para encontrá-lo mais rápido:

Módulo Nginx Grep

Se sua saída for semelhante à saída acima, você está pronto para prosseguir; caso contrário, você precisará reinstalar ou recompilar a instalação do Nginx com o módulo incluído.

Configurar uma página de status que você pode verificar é simples, mas você também precisará limitar o acesso a ela apenas ao mínimo (sua máquina) para mantê-la segura. Comece abrindo o arquivo de configuração principal do seu servidor, encontrado em “/etc/nginx/nginx.conf.”

Arquivo de configuração Nginx

Abra-o e adicione o seguinte código à “diretiva http” para ativar o módulo, substituindo suas próprias informações em vez de “localhost,” “/ status_page” e “127.0.0.1”:

Nota: você precisará de privilégios sudo para modificar este arquivo.

Código de status Nginx

Agora teste sua configuração:

Nginx Test Config

Se tudo estiver bem, envie ao seu servidor um sinal de recarregamento:

Nginx Reload Server

Para acessar sua página de status, visite o local do seu server_name seguido por “/ status_page” em um navegador da web ou usando uma ferramenta de linha de comando como curl. (Isso é útil se o cache do seu navegador não for atualizado automaticamente.) A seguir está o comando curl para acessar a página em nossos exemplos:

Status do Nginx Curl

No navegador, a imagem acima se parece com a imagem a seguir.

Status do navegador Nginx

Verifique os registros de acesso

Se você notar um tráfego anormal ao verificar a página de status configurada acima, pode ser uma boa ideia verificar o log de acesso do servidor. Isso pode ser encontrado em “/var/log/nginx/access.log.” O log lista os métodos HTTP usados, data / hora das tentativas de acesso, agentes do usuário e as páginas acessadas.

Log de acesso Nginx

Limitando conexões

Entre as muitas táticas úteis que vale a pena tentar para evitar ataques DDoS, uma das mais simples e eficazes é a limitação das taxas de tráfego de entrada.

Idealmente, você deve restringir o acesso apenas o suficiente para evitar que bots mal-intencionados dominem o seu servidor a taxas desumanas, enquanto mantém taxas razoáveis ​​para clientes humanos. No Nginx, isso pode ser feito com o limit_req_zone e limit_req diretivas. O código a seguir define as restrições de memória e taxa para uso em qualquer local que seu servidor esteja configurado para mostrar:

“Zona” especifica o nome e o tamanho (em Megabytes, neste caso) do espaço na memória onde as solicitações do usuário são armazenadas. “Taxa” estabelece o número total de solicitações que o Nginx aceitará a cada segundo (10 neste exemplo). Pense neste código como uma regra e o código a seguir como o uso dessa regra:

O código acima realmente faz um pouco mais do que apenas implementar nossa regra de limitação; ele também adiciona uma pequena fila de até vinte solicitações para manipular suavemente conexões legítimas que aparecem um pouco mais rápido que o normal, excedendo a regra e a fila resulta em um erro 503 para o cliente. Esta é a aparência de ambas as diretivas em nginx.conf:

Código de limite Nginx

Endereço IP na lista negra

Se você conseguir obter o endereço IP que está executando o DDoS em seu servidor, pode simplesmente colocá-lo na lista negra e cancelar qualquer conexão originada desse endereço IP.

Adicione o seguinte código à sua diretiva de servidor:

Bloqueando solicitação para certos arquivos

Se o ataque DDoS tem como alvo certos arquivos em seu servidor – por exemplo, o arquivo xmlrpc.php no WordPress (este é um arquivo altamente direcionado na maioria dos servidores WordPress) – você pode bloquear todas as solicitações para ele. Adicione este código à diretiva do seu servidor:

Siga o procedimento acima e você será capaz de limitar a maioria dos ataques DDoS. Certifique-se de verificar o Documentação Nginx para opções de segurança adicionais que você pode colocar no lugar.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Você pode gostar...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x