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.

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.
# 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 -pPasso 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).
# 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 statusPasso 3: Proteção Nginx
Se estiver a usar Nginx, configure limitação de taxa para proteger contra ataques HTTP flood.
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 nginxPasso 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.
# 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 sshdMedidas 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