Como Proteger Seu VPS de Ataques DDoS: Guia Prático
Guia abrangente sobre como proteger seu VPS de ataques DDoS usando firewalls, limitação de taxa e outros métodos comprovados.

Ataques DDoS (Distributed Denial of Service) podem tirar seu servidor do ar em minutos, levando a perda de receita, insatisfação do cliente e danos à reputação. Em 2026, tais ataques se tornaram mais sofisticados e acessíveis. Felizmente, os métodos de proteção modernos também evoluíram. Este guia mostrará como proteger seu VPS Hiddence dos tipos mais comuns de ataques DDoS.
O que é um Ataque DDoS?
Um ataque DDoS ocorre quando múltiplos computadores (botnet) enviam simultaneamente solicitações ao seu servidor, sobrecarregando seus recursos e tornando-o indisponível para usuários legítimos.
Principais Tipos de Ataques DDoS
- Ataques Volumétricos (L3/L4): Inundação UDP, ICMP, inundação SYN — sobrecarregam largura de banda da rede
- Ataques na Camada de Aplicação (L7): Inundação HTTP, Slowloris — direcionam a camada de aplicação
- Ataques de Protocolo: Exploram vulnerabilidades em protocolos de rede
Proteção Integrada da Hiddence
Todos os VPS Hiddence incluem proteção básica DDoS de Camada 3-4 (nível de rede). Isso filtra automaticamente a maioria dos ataques volumétricos. No entanto, ataques de Camada 7 (aplicação) requerem configuração adicional.
Passo 1: Configuração do Firewall
A primeira linha de defesa é a configuração adequada do firewall. O UFW (Uncomplicated Firewall) é uma ferramenta simples e eficaz para Ubuntu/Debian.
# Instalar UFW
sudo apt update && sudo apt install ufw -y
# Permitir SSH (IMPORTANTE! Faça isso antes de ativar o UFW)
sudo ufw allow 22/tcp
# Permitir HTTP e HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Ativar UFW
sudo ufw enable
# Verificar status
sudo ufw status verbose
# Regras de proteção avançadas:
# Limitar conexões SSH (proteção contra força bruta)
sudo ufw limit 22/tcp
# Bloquear inundações de ping ICMP
sudo nano /etc/ufw/before.rules
# Adicione após *filter:
-A ufw-before-input -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
# Proteção contra inundação SYN
sudo nano /etc/sysctl.conf
# Adicione:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Aplicar alterações
sudo sysctl -pPasso 2: Instalar Fail2Ban
O Fail2Ban bloqueia automaticamente endereços IP mostrando atividade suspeita (múltiplas tentativas de login falhadas, varredura de portas).
# Instalar
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Configuração para proteção SSH e HTTP
# Criar configuração local
sudo nano /etc/fail2ban/jail.local
# Adicione:
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
banaction = ufw
[sshd]
enabled = true
port = 22
logpath = /var/log/auth.log
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log
[nginx-limit-req]
enabled = true
filter = nginx-limit-req
port = http,https
logpath = /var/log/nginx/error.log
# Reiniciar Fail2Ban
sudo systemctl restart fail2ban
# Verificar status
sudo fail2ban-client statusPasso 3: Proteção Nginx
Se você está usando Nginx, configure limitação de taxa para proteger contra ataques de inundação HTTP.
sudo nano /etc/nginx/nginx.conf
# Adicione ao bloco http:
http {
# Limite de solicitação: 10 solicitações por segundo por IP
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
# Limite de conexão
limit_conn_zone $binary_remote_addr zone=addr:10m;
# Proteção Slowloris
client_body_timeout 10s;
client_header_timeout 10s;
keepalive_timeout 5s 5s;
send_timeout 10s;
# Resto da configuração...
}
# No bloco server adicione:
server {
location / {
# Aplicar limite de solicitação
limit_req zone=one burst=20 nodelay;
# Limite de conexão: máximo 10 por IP
limit_conn addr 10;
# Sua configuração...
}
}
# Testar configuração e recarregar
sudo nginx -t
sudo systemctl reload nginxPasso 4: Usar CDN
Para máxima proteção, use um serviço CDN como Cloudflare. O CDN atua como proxy, ocultando o IP real do seu servidor e absorvendo a maioria dos ataques DDoS. Benefícios: ocultar IP real, filtragem automática de tráfego malicioso, distribuição de carga, SSL/TLS gratuito, WAF para proteção L7.
- Registre-se no cloudflare.com (plano gratuito disponível)
- Adicione seu domínio e altere registros NS no seu registrador
- Ative o modo 'Proxy' (nuvem laranja) para registros DNS
- Defina modo SSL para 'Full (strict)' na seção SSL/TLS
- Ative 'Proteção DDoS' e 'Modo de Combate a Bots' nas configurações de segurança
Passo 5: Monitoramento
O monitoramento regular ajuda a detectar ataques cedo.
# Monitorar conexões ativas
watch -n 1 'ss -s'
# Ver principais IPs por contagem de conexão
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
# Ver logs em tempo real
sudo tail -f /var/log/nginx/access.log
sudo journalctl -u nginx -f
# Verificar IPs bloqueados no Fail2Ban
sudo fail2ban-client status sshdMedidas de Emergência
Se um ataque já está em andamento, tome as seguintes medidas:
- Identificar a origem: Use 'netstat' ou logs para identificar IPs atacantes
- Bloqueio temporário: sudo ufw insert 1 deny from IP_ATACANTE
- Bloquear sub-redes inteiras: sudo ufw deny from 123.45.0.0/16
- Limitar limite de taxa: Temporariamente reduza limites do Nginx para 1-5 req/s
- Contatar suporte: Entre em contato com o suporte Hiddence para ativação de proteção avançada
- Ativar 'Modo Sob Ataque' no Cloudflare (se usando)
Melhores Práticas
- Nunca publique o IP real do seu servidor se estiver usando CDN
- Atualize regularmente o sistema: sudo apt update && sudo apt upgrade
- Use chaves SSH em vez de senhas para acesso ao servidor
- Altere a porta SSH padrão (22) para não padrão
- Configure backups automáticos para recuperação rápida
- Use IPs separados para serviços críticos
- Ative registro e verifique regularmente logs para atividade suspeita
- Considere usar bloqueio geográfico se seu serviço não for global