Um firewall adequadamente configurado é a primeira linha de defesa para qualquer servidor exposto à internet. O Ubuntu inclui o UFW (Uncomplicated Firewall) como sua ferramenta padrão de gerenciamento de firewall, fornecendo uma interface simples sobre o poderoso mas complexo framework iptables. Este guia cobre tudo o que você precisa saber para configurar o UFW em servidores Ubuntu de produção.
Pré-requisitos
Antes de começar, certifique-se de ter:
- Ubuntu Server 20.04, 22.04 ou 24.04
- Acesso ao terminal com privilégios sudo
- Acesso SSH ao servidor (se configurando remotamente)
- Compreensão básica de portas TCP/UDP e conceitos de rede
O que é UFW?
UFW significa Uncomplicated Firewall. Foi criado pela equipe do Ubuntu para simplificar o processo de configuração do iptables. O UFW envolve o iptables com uma interface de comandos legível.
Características principais:
- Firewall com estado — rastreia estados de conexão e permite automaticamente tráfego de retorno
- Perfis de aplicação — conjuntos de regras pré-configurados para serviços comuns
- Suporte IPv4 e IPv6 — pilha dupla por padrão
- Logging — níveis de log configuráveis para monitoramento de segurança
- Limitação de taxa — proteção integrada contra ataques de força bruta
Instalar o UFW
sudo apt update
sudo apt install ufw
sudo ufw status
Importante: Não habilite o UFW até que tenha configurado sua regra de acesso SSH.
Definir Políticas Padrão
sudo ufw default deny incoming
sudo ufw default allow outgoing
Permitir SSH Antes de Habilitar o UFW
Sempre permita SSH primeiro:
sudo ufw allow ssh
Para uma porta SSH não padrão (por exemplo, 2222):
sudo ufw allow 2222/tcp
Habilitar o UFW
sudo ufw enable
sudo ufw status verbose
Regras Comuns de Firewall
Permitir uma Porta Específica
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 8080/tcp # Personalizado
sudo ufw allow 51820/udp # WireGuard VPN
Permitir de um Endereço IP Específico
sudo ufw allow from 203.0.113.50
sudo ufw allow from 203.0.113.50 to any port 22
sudo ufw allow from 10.0.1.20 to any port 3306
Permitir uma Sub-rede
sudo ufw allow from 10.0.1.0/24
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
Excluir Regras
sudo ufw status numbered
sudo ufw delete 3
sudo ufw delete allow 80/tcp
Perfis de Aplicação
sudo ufw app list
sudo ufw allow 'Nginx Full'
sudo ufw app info 'Nginx Full'
Criar Perfis Personalizados
Crie um arquivo em /etc/ufw/applications.d/:
[MyApp]
title=Minha Aplicação Node.js
description=Aplicação web Express.js
ports=3000/tcp
Limitação de Taxa
sudo ufw limit ssh
Isso limita conexões SSH de entrada a 6 conexões em 30 segundos de um único endereço IP.
Configurar Logging
sudo ufw logging on
sudo ufw logging medium
sudo tail -50 /var/log/ufw.log
sudo grep '\[UFW BLOCK\]' /var/log/ufw.log | tail -20
Configurações Práticas de Servidor
Servidor Web
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Servidor de Banco de Dados
sudo ufw allow ssh
sudo ufw allow from 10.0.1.20 to any port 3306
sudo ufw allow from 10.0.1.20 to any port 5432
sudo ufw enable
Servidor VPN (WireGuard)
sudo ufw allow ssh
sudo ufw allow 51820/udp
Solução de Problemas
Não Consigo Conectar Após Habilitar o UFW
- Acesse o servidor através de um console
- Desabilite o UFW:
sudo ufw disable - Revise suas regras:
sudo ufw status numbered - Corrija a configuração e reabilite
Redefinir Tudo
sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
Referência de Comandos UFW
| Comando | Descrição |
|---|---|
sudo ufw enable | Habilitar o firewall |
sudo ufw disable | Desabilitar o firewall |
sudo ufw status | Mostrar regras atuais |
sudo ufw status verbose | Mostrar regras com detalhes |
sudo ufw status numbered | Mostrar regras numeradas |
sudo ufw reload | Recarregar regras sem reiniciar |
sudo ufw reset | Redefinir para padrões |
sudo ufw allow <porta> | Permitir tráfego de entrada |
sudo ufw deny <porta> | Negar tráfego de entrada |
sudo ufw limit <porta> | Limitar conexões |
sudo ufw delete <regra> | Excluir uma regra |
Resumo
O UFW fornece uma maneira simples de gerenciar regras de firewall em servidores Ubuntu. Seguindo o princípio do menor privilégio — negar todo o tráfego de entrada por padrão e permitir apenas o que é explicitamente necessário — você estabelece uma base de segurança sólida.
Para hardening adicional, combine o UFW com outras medidas de segurança. Consulte nossos guias sobre Hardening SSH e Configuração VPN WireGuard.