Voltar ao blog
Janeiro 19, 2026Guias

Como Proteger o Seu VPS de Ataques DDoS: Guia Prático

Guia abrangente sobre como proteger o seu VPS de ataques DDoS utilizando firewalls, limitação de taxa e outros métodos comprovados.

Como Proteger o Seu VPS de Ataques DDoS: Guia Prático

Os ataques DDoS (Distributed Denial of Service) podem colocar o seu servidor offline em minutos, levando a perda de receita, insatisfação dos clientes e danos à reputação. Em 2026, tais ataques tornaram-se mais sofisticados e acessíveis. Felizmente, os métodos de proteção modernos também evoluíram. Este guia mostrar-lhe-á como proteger o 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 pedidos ao seu servidor, sobrecarregando os seus recursos e tornando-o indisponível para utilizadores legítimos.

Principais Tipos de Ataques DDoS

  • Ataques Volumétricos (L3/L4): UDP flood, ICMP, SYN flood — sobrecarregam largura de banda da rede
  • Ataques de Camada de Aplicação (L7): HTTP flood, Slowloris — visam a camada de aplicação
  • Ataques de Protocolo: Exploram vulnerabilidades em protocolos de rede

Proteção Integrada Hiddence

Todos os VPS Hiddence incluem proteção DDoS básica de Camada 3-4 (nível de rede). Isto filtra automaticamente a maioria dos ataques volumétricos. No entanto, ataques de Camada 7 (aplicação) requerem configuração adicional.

Passo 1: Configuração da Firewall

A primeira linha de defesa é a configuração adequada da firewall. O UFW (Uncomplicated Firewall) é uma ferramenta simples e eficaz para Ubuntu/Debian.

bash
# Instalar UFW
sudo apt update && sudo apt install ufw -y

# Permitir SSH (IMPORTANTE! Faça isto antes de ativar 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 estado
sudo ufw status verbose

# Regras de proteção avançadas:
# Limitar ligações SSH (proteção contra força bruta)
sudo ufw limit 22/tcp

# Bloquear floods de ping ICMP
sudo nano /etc/ufw/before.rules
# Adicionar 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 SYN flood
sudo nano /etc/sysctl.conf
# Adicionar:
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 -p

Passo 2: Instalar Fail2Ban

O Fail2Ban bloqueia automaticamente endereços IP que mostram atividade suspeita (múltiplas tentativas de início de sessão falhadas, scanning de portas).

bash
# 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

# Adicionar:
[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 estado
sudo fail2ban-client status

Passo 3: Proteção Nginx

Se estiver a usar Nginx, configure limitação de taxa para proteger contra ataques HTTP flood.

bash
sudo nano /etc/nginx/nginx.conf

# Adicionar ao bloco http:
http {
    # Limite de pedidos: 10 pedidos por segundo por IP
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
    
    # Limite de ligações
    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 servidor adicionar:
server {
    location / {
        # Aplicar limite de pedidos
        limit_req zone=one burst=20 nodelay;
        
        # Limite de ligações: máx 10 por IP
        limit_conn addr 10;
        
        # A sua configuração...
    }
}

# Testar configuração e recarregar
sudo nginx -t
sudo systemctl reload nginx

Passo 4: Usar CDN

Para máxima proteção, use um serviço CDN como Cloudflare. O CDN atua como proxy, escondendo o IP real do seu servidor e absorvendo a maioria dos ataques DDoS. Benefícios: esconder IP real, filtragem automática de tráfego malicioso, distribuição de carga, SSL/TLS gratuito, WAF para proteção L7.

  • Registe-se em cloudflare.com (plano gratuito disponível)
  • Adicione o seu domínio e altere registos NS no seu registador
  • Ative modo 'Proxy' (nuvem laranja) para registos DNS
  • Defina modo SSL para 'Full (strict)' na secção SSL/TLS
  • Ative 'DDoS Protection' e 'Bot Fight Mode' nas definições de segurança

Passo 5: Monitorização

A monitorização regular ajuda a detetar ataques cedo.

bash
# Monitorizar ligações ativas
watch -n 1 'ss -s'

# Ver IPs principais por contagem de ligações
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 sshd

Medidas de Emergência

Se um ataque já estiver em curso, tome as seguintes medidas:

  • Identificar a origem: Use 'netstat' ou logs para identificar IPs de ataque
  • Bloqueio temporário: sudo ufw insert 1 deny from IP_DE_ATAQUE
  • Bloquear sub-redes inteiras: sudo ufw deny from 123.45.0.0/16
  • Limitar limite de taxa: Reduza temporariamente limites Nginx para 1-5 req/s
  • Contactar suporte: Entre em contacto com suporte Hiddence para ativação de proteção avançada
  • Ative 'Under Attack Mode' no Cloudflare (se usar)

Melhores Práticas

  • Nunca publique o IP real do seu servidor se usar CDN
  • Atualize regularmente o sistema: sudo apt update && sudo apt upgrade
  • Use chaves SSH em vez de palavras-passe para acesso ao servidor
  • Altere a porta SSH padrão (22) para não padrão
  • Configure cópias de segurança automáticas para recuperação rápida
  • Use IPs separados para serviços críticos
  • Ative registo e verifique regularmente logs para atividade suspeita
  • Considere usar bloqueio geográfico se o seu serviço não for global