UFW: Firewall na VPS Linux passo a passo

Tempo de leitura: 3 minutos

Uma VPS Linux exposta na internet, sem firewall nenhum, responde a qualquer porta aberta por padrão — banco de dados, painéis de administração, serviços internos que nunca deveriam ser alcançáveis de fora. O UFW (Uncomplicated Firewall) é a forma mais simples de controlar isso: uma interface direta por cima do iptables, feita para configurar regras de firewall sem precisar decorar sintaxe complexa.

Este guia mostra como instalar o UFW, liberar só as portas que o servidor realmente precisa e ativar o firewall sem correr o risco de perder o próprio acesso SSH no processo.

O erro mais comum: ativar o firewall sem liberar o SSH antes

Isso merece destaque logo no início porque é o erro mais fácil de cometer: ativar o UFW sem ter liberado a porta do SSH primeiro tranca você para fora do próprio servidor — e, sem acesso, a única saída costuma ser o console de emergência do provedor. A ordem certa é sempre: liberar a porta do SSH, CONFERIR que a regra foi criada, e só depois ativar o firewall.

Como instalar o UFW

Em muitas distribuições baseadas em Debian/Ubuntu o UFW já vem instalado. Para garantir:

sudo apt update
sudo apt install ufw -y

Passo 1: liberar o SSH antes de qualquer coisa

Se o SSH usa a porta padrão (22):

sudo ufw allow OpenSSH

Se a porta foi trocada por segurança (prática comum combinada com Fail2ban), libere a porta certa em vez do atalho OpenSSH:

sudo ufw allow 2222/tcp

Troque 2222 pela porta real configurada no seu servidor.

Passo 2: liberar as outras portas que o servidor usa

Antes de ativar, libere tudo que o servidor precisa responder de fora. Exemplos comuns:

  • sudo ufw allow 80/tcp — HTTP, se o servidor hospeda um site.
  • sudo ufw allow 443/tcp — HTTPS, essencial se o site tem SSL (veja como emitir um grátis com Let’s Encrypt e Certbot).
  • Portas de banco de dados (3306 para MySQL, 5432 para PostgreSQL) só devem ser liberadas se algo de FORA da VPS precisa se conectar — na maioria dos casos, a aplicação roda na mesma máquina e não precisa expor essa porta pra internet.

A regra geral: libere só o que precisa ser alcançado de fora. Cada porta aberta é uma porta a menos de segurança — e o UFW nem deixa nada passar por padrão além do que for explicitamente liberado.

Passo 3: conferir as regras antes de ativar

Antes do passo que não tem volta fácil, confira o que foi configurado:

sudo ufw show added

Confirme que a porta do SSH está na lista antes de continuar.

Passo 4: ativar o firewall

sudo ufw enable

O sistema avisa que isso pode interromper conexões SSH existentes — normal, é só um aviso padrão. Depois de confirmar, teste o acesso numa nova janela de terminal (sem fechar a sessão atual) antes de encerrar a conexão que já está aberta. Se algo der errado, ela continua disponível para corrigir.

Comandos do dia a dia

  • sudo ufw status verbose — mostra todas as regras ativas e o status geral.
  • sudo ufw delete allow 80/tcp — remove uma regra que não é mais necessária.
  • sudo ufw disable — desativa o firewall por completo (útil só para diagnóstico pontual, não deixe desativado).

UFW não resolve tudo sozinho

O UFW decide quais portas ficam acessíveis — ele não identifica tentativa de força bruta contra um serviço já liberado. Essa parte é do Fail2ban, que trabalha em conjunto: o UFW libera a porta do SSH, o Fail2ban bane quem abusa dela. Somando chave SSH em vez de senha, são três camadas diferentes cobrindo o mesmo ponto de entrada, cada uma resolvendo o que a outra não cobre.

O funcionamento do UFW segue o padrão descrito na documentação oficial do Ubuntu sobre o UFW, então vale consultar sempre que precisar de uma regra mais específica do que as listadas aqui.