Ataques DDoS (Distributed Denial of Service) , por meio de táticas abusivas de comunicação digital, sobrecarregam os recursos do servidor. Esses tipos de ataques são ataques organizados no mundo da informática. Inúmeros atos de oposição desagradável se combinam para criar uma ameaça formidável o suficiente para forçar a paralisação de um servidor.
Pior de tudo, existem muitos meios para travar “guerras” de guerrilha na web contra esses anfitriões. Felizmente, os servidores podem ser configurados para resistir a tais ataques.
Nginx, um sistema de servidor muito popular para máquinas Unix, vem com funcionalidades integradas suficientes para limitar significativamente a eficácia dos ataques DDoS.
Aqui estão algumas opções eficazes para lidar com essas ameaças com o Nginx.
Como prevenir ataques DDoS com Nginx?
Arquivos de configuração de backup
Antes de alterar qualquer configuração, faça um backup rápido da configuração do seu servidor. O seguinte comando funciona para esse propósito:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original

Depois de concluído, você estará pronto para continuar.
Verifique o trânsito
O monitoramento do tráfego em seu servidor facilita a otimização da segurança e a implementação de estratégias adicionais. O Nginx possui um módulo criado especificamente para esse fim.
Configurar página de status
O Nginx geralmente vem com um módulo chamado “stub status” (http_stub_status_module), que permite que esse tipo de funcionalidade seja integrada ao ambiente do servidor com bastante facilidade. Primeiro, teste-o usando o seguinte comando:
nginx -V
![Como prevenir ataques DDoS com Nginx Como prevenir ataques DDoS com Nginx]()
Ou use o seguinte comando para encontrá-lo mais rápido:
nginx -V 2>&1 | grep -o with-http_stub_status_module
![Como prevenir ataques DDoS com Nginx Como prevenir ataques DDoS com Nginx]()
Se a sua saída for semelhante à acima, então está tudo bem. Caso contrário, você precisará instalar 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 precisa limitar o acesso ao mínimo (somente computador) para manter a segurança. Comece abrindo o arquivo de configuração principal do servidor encontrado em /etc/nginx/nginx.conf.
Abra-o e adicione o seguinte código à “diretiva http” para habilitar o módulo, substituindo suas próprias informações em “localhost”, “/status_page” e “127.0.0.1”.
server {
listen 80;
listen [::]:80;
server_name localhost;
##
# Status Page Settings
##
location /status_page {
stub_status on;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
Nota : Você precisará de privilégios sudo para modificar este arquivo.
![Como prevenir ataques DDoS com Nginx Como prevenir ataques DDoS com Nginx]()
Agora, teste sua configuração:
sudo nginx -t
![Como prevenir ataques DDoS com Nginx Como prevenir ataques DDoS com Nginx]()
Se tudo estiver bem, envie ao servidor um sinal de recarga:
sudo systemctl reload nginx
![Como prevenir ataques DDoS com Nginx Como prevenir ataques DDoS com Nginx]()
Para acessar sua página de status, visite o local server_name seguido de “/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). Aqui está o comando curl para acessar a página nos exemplos:
curl localhost/status_page
![Como prevenir ataques DDoS com Nginx Como prevenir ataques DDoS com Nginx]()
No navegador, a saída do comando acima se parece com a imagem a seguir.
![Como prevenir ataques DDoS com Nginx Como prevenir ataques DDoS com Nginx]()
Verifique os registros de acesso
Se você notar tráfego incomum ao verificar a página de status configurada acima, verifique o log de acesso do servidor. O log de acesso do servidor pode ser encontrado em “/var/log/nginx/access.log”. O log lista os métodos HTTP utilizados, data/hora das tentativas de acesso, agente do usuário e páginas acessadas.
![Como prevenir ataques DDoS com Nginx Como prevenir ataques DDoS com Nginx]()
Limites de conexão
Entre as muitas táticas úteis para prevenir ataques DDoS que vale a pena tentar, uma das mais simples e eficazes é limitar a taxa de tráfego de entrada.
Idealmente, você deve limitar o acesso apenas o suficiente para evitar que bots maliciosos sobrecarreguem seu servidor, ao mesmo tempo em que mantém taxas razoáveis. No Nginx, isso pode ser feito com as diretivas limit_req_zone e limit_req . O código a seguir define as restrições de memória e velocidade para uso em qualquer local que seu servidor esteja configurado para exibir:
limit_req_zone $binary_remote_addr zone=speedbump:10m rate=10r/s;
“Zona” especifica o nome e a capacidade (neste caso em Megabytes) do espaço de memória onde as solicitações do usuário são armazenadas. “Taxa” define o número total de solicitações que o Nginx aceitará por segundo (10 solicitações neste exemplo). Pense neste código como uma regra e o que se segue é o uso dessa regra:
limit_req zone=speedbump burst=20;
O código acima, na verdade, faz um pouco mais do que apenas implementar uma regra de limite. Ele também adiciona uma pequena fila de até 20 solicitações para lidar normalmente com conexões legítimas, que são renderizadas um pouco mais rápido que o normal, excedendo as regras e a fila, resultando em um erro 503 para o cliente. Ambas as diretivas são assim no nginx.conf:
![Como prevenir ataques DDoS com Nginx Como prevenir ataques DDoS com Nginx]()
Crie uma lista negra de endereços IP
Se você obtiver o endereço IP que está realizando o ataque DDoS em seu servidor, poderá simplesmente colocá-lo na lista negra e eliminar quaisquer conexões originadas desse endereço IP.
Adicione o seguinte código à diretiva do seu servidor:
location / {
deny 123.123.123.0/28;
# ...
}
Bloquear solicitações de determinados arquivos
Se o ataque DDoS tiver como alvo determinados arquivos no servidor - por exemplo, o arquivo xmlrpc.php no WordPress (este é um arquivo comumente direcionado na maioria dos servidores WordPress), você pode bloquear todos os requisitos para isso. Adicione este código à diretiva do seu servidor:
location /xmlrpc.php {
deny all;
}
Siga o processo acima e você poderá limitar a maioria dos ataques DDoS. Certifique-se de verificar a documentação do Nginx para opções de segurança adicionais que você pode aplicar.
Espero que você tenha sucesso.