Configurar firewall na VPS com UFW
UFW é a interface simplificada para iptables no Ubuntu/Debian — permite configurar um firewall completo com comandos diretos em inglês, sem precisar entender a sintaxe complexa do iptables. A regra básica é negar tudo e liberar apenas o que for necessário: SSH, HTTP, HTTPS e as portas dos seus apps.
Instalação e configuração inicial
UFW vem pré-instalado no Ubuntu. Antes de habilitar, libere o SSH para não se trancar para fora:
# Verificar se o UFW está instalado
which ufw || apt install -y ufw
# Ver status atual
sudo ufw status
# PASSO CRÍTICO: liberar SSH antes de habilitar
sudo ufw allow OpenSSH # porta 22
# Se mudou a porta: sudo ufw allow 2222/tcp
# Definir política padrão: negar entrada, permitir saída
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Habilitar o firewall
sudo ufw enable
# Confirmar regras ativas
sudo ufw status verboseRegras mais comuns para apps
Libere apenas as portas que os seus serviços precisam — cada porta aberta desnecessariamente é um vetor de ataque:
# Web (HTTP + HTTPS)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Atalho equivalente:
sudo ufw allow 'Nginx Full'
# Banco de dados PostgreSQL (apenas de IPs confiáveis)
sudo ufw allow from 10.0.0.0/8 to any port 5432
sudo ufw allow from 192.168.1.0/24 to any port 5432
# n8n (só acesse de IP específico ou use Nginx como proxy)
sudo ufw allow from SEU_IP to any port 5678
# Docker expõe portas bypassando o UFW por padrão!
# Para ports mapeados com "0.0.0.0:PORTA", o Docker abre no iptables
# Solução: mapear apenas para localhost e usar Nginx como proxy
# ports: "127.0.0.1:5678:5678" (acessível só via Nginx/proxy)Gerenciar e remover regras
Manter as regras organizadas evita acúmulo de permissões desnecessárias:
# Listar regras com número (para remoção)
sudo ufw status numbered
# Remover regra por número
sudo ufw delete 3
# Remover regra por descrição
sudo ufw delete allow 8080/tcp
# Negar um IP específico (bloquear atacante)
sudo ufw deny from 203.0.113.0 to any
# Negar uma faixa de IPs
sudo ufw deny from 203.0.113.0/24 to any
# Resetar todas as regras (cuidado!)
sudo ufw resetRate limiting para SSH (proteção contra força bruta)
UFW tem suporte nativo a rate limiting — bloqueia IPs que fazem muitas tentativas de conexão em pouco tempo:
# Habilitar rate limiting na porta SSH (6+ tentativas em 30s = ban temporário)
sudo ufw limit OpenSSH
# Ou: sudo ufw limit 22/tcp
# Para porta SSH customizada:
sudo ufw limit 2222/tcp
# Verificar se a regra foi aplicada
sudo ufw status | grep LIMIT
# Ver tentativas bloqueadas nos logs
sudo grep "UFW BLOCK" /var/log/ufw.log | tail -20Logs e diagnóstico
Habilite logs para entender quais conexões estão sendo bloqueadas e identificar tentativas de intrusão:
# Habilitar logs (nível low registra conexões bloqueadas)
sudo ufw logging on
sudo ufw logging medium # mais detalhado
# Ver log em tempo real
sudo tail -f /var/log/ufw.log
# Contar tentativas bloqueadas por IP (top atacantes)
sudo grep "UFW BLOCK" /var/log/ufw.log \
| grep -oP 'SRC=\K[0-9.]+' \
| sort | uniq -c | sort -rn | head -10
# Desabilitar logs (reduz I/O em VPS muito atacadas)
sudo ufw logging off$ runstack deploy --plan starter
Não quer configurar manualmente?
Não quer configurar manualmente? Implante o VPS em menos de 3 minutos com a Runstack. Infraestrutura da OPEN DATACENTER, com servidores no Brasil.