Como configurar um firewall básico no Ubuntu com UFW
Redes & Segurança · Por Kevin Marcondes · Publicado em · Atualizado em · 8 min de leitura
Este passo a passo mostra como configurar um firewall básico no Ubuntu com UFW de forma segura e objetiva. Você vai definir políticas padrão, liberar apenas os serviços necessários, ativar o log e verificar se tudo está funcionando. Serve para servidores e desktops. É necessário acesso sudo. Se você usa SSH remoto, libere a porta antes de ativar o firewall para evitar perda de acesso.
Pré-requisitos e o que é o UFW
UFW (Uncomplicated Firewall) é uma camada simples para gerenciar regras de rede no Ubuntu. Ele controla o mecanismo de filtragem do kernel e facilita tarefas comuns, como permitir ou bloquear portas e IPs.
Um firewall básico normalmente segue dois princípios: negar conexões de entrada por padrão e permitir conexões de saída. Assim, você expõe somente o que realmente precisa e reduz a superfície de ataque.
Para acompanhar o guia, você precisa de: acesso sudo, um terminal e conhecimento das portas/serviços que seu sistema realmente precisa expor (SSH, HTTP, bancos etc.).
- Acesso sudo no Ubuntu
- Lista de serviços que precisam estar acessíveis
- Endereços IP ou redes que terão permissão (se houver restrições)
1. Instalação e checagem inicial
Em muitas instalações do Ubuntu, o UFW já vem disponível. Ainda assim, confirme a instalação e verifique o status atual. O comando de status não altera regras; ele apenas exibe a situação configurada no momento.
Se aparecer “inactive”, significa que o firewall ainda não está aplicado. Vamos configurar primeiro e ativar depois, para evitar travar o acesso remoto sem querer.
sudo apt update
sudo apt install -y ufw
# Verifique versão e status atual
sudo ufw --version
sudo ufw status verbose
2. Defina políticas padrão seguras
O primeiro passo é garantir políticas padrão seguras: negar tudo que entra e permitir o que sai. Isso bloqueia serviços expostos por engano e mantém o acesso de saída para atualizações, repositórios e integrações.
Se você precisar de políticas diferentes no futuro, ajuste após liberar explicitamente os serviços necessários.
sudo ufw default deny incoming
sudo ufw default allow outgoing
3. Garanta acesso remoto (SSH) antes de ativar
Se você administra o sistema via SSH, libere o SSH antes de ativar o UFW. Ignorar este passo pode encerrar sua sessão e impedir novo acesso remoto.
Use o nome do aplicativo quando disponível (OpenSSH) ou especifique a porta. Se você usa uma porta não padrão, ajuste o número correspondente.
# Se o serviço OpenSSH está instalado:
sudo ufw allow OpenSSH
# OU, especificando a porta diretamente (padrão 22):
# sudo ufw allow 22/tcp
# Porta SSH não padrão (exemplo):
# sudo ufw allow 2222/tcp
4. Libere serviços essenciais de forma mínima
Agora, libere apenas os serviços que seu sistema realmente precisa expor. Para a maioria dos servidores web, isso significa HTTP e HTTPS. Serviços internos de banco de dados costumam ser restritos a um IP de aplicação ou a uma rede específica.
Considere restringir por IP/rede sempre que possível. Isso reduz o risco de exploração por hosts desconhecidos.
- HTTP: 80/tcp
- HTTPS: 443/tcp
- DNS (quando seu host oferece DNS para outros): 53/udp
- NTP (servidor de tempo): 123/udp
- Bancos/aplicações internas: liberar somente para IPs ou redes confiáveis
# Web (HTTP/HTTPS)
sudo ufw allow 80,443/tcp
# DNS (apenas se este host atende requisições DNS)
sudo ufw allow 53/udp
# Exemplo: liberar PostgreSQL apenas para o IP da aplicação
sudo ufw allow from 203.0.113.10 to any port 5432 proto tcp
# Restringir SSH à sua rede corporativa (exemplo)
sudo ufw allow from 192.0.2.0/24 to any port 22 proto tcp
# Bloquear explicitamente um serviço que não deve receber conexões (ex.: SMTP)
sudo ufw deny 25/tcp
5. Ative o firewall e revise as regras
Com as políticas padrão definidas e as regras essenciais liberadas, ative o UFW. A partir deste momento, as conexões serão filtradas conforme suas regras.
Use a listagem numerada para revisar e, se necessário, remover regras por número no futuro. Após ajustes, recarregue o UFW para aplicar mudanças sem desativá-lo.
sudo ufw enable
# Revise as regras ativas (numeradas)
sudo ufw status numbered
# Após ajustes de regras, recarregue
sudo ufw reload
6. Ative logs e ajuste o nível de detalhamento
Habilite o registro de eventos para facilitar auditoria e troubleshooting. O arquivo de log costuma ficar disponível em /var/log/ufw.log por meio do sistema de logs do Ubuntu.
Níveis como low, medium e high controlam quanto detalhe será registrado. Ajuste de acordo com sua necessidade e monitore o crescimento de arquivos de log.
- low: eventos essenciais
- medium: bom equilíbrio entre visibilidade e ruído
- high: mais verboso; use com moderação em produção
# Ativar logs e definir nível sugerido
sudo ufw logging on
sudo ufw logging medium
Verificação e resolução de problemas comuns
Valide de outro host se as portas esperadas estão realmente abertas e as demais fechadas. Em paralelo, acompanhe o log enquanto faz testes para confirmar o bloqueio/permitir conforme suas regras.
Problemas comuns e como pensar na solução:
- Conexão remota caiu ao ativar: verifique se a porta/serviço de acesso foi liberado corretamente e se há restrição por IP que não contempla seu endereço atual. - Serviço não abre mesmo liberado: confirme se o processo está ouvindo na porta/iface certa e no protocolo correto (tcp/udp). - Docker e port mapping: containers podem criar regras próprias. Publique apenas o que precisa e teste a exposição real do host. - IPv6: se seu host usa IPv6, assegure que ele esteja habilitado também no UFW e que as regras cubram ambos os protocolos.
Para monitoramento contínuo do ambiente, veja este guia de logs estruturados e correlação de requisições. Para operação diária, considere também um serviço de monitoramento 24h de servidores Linux. Se precisa revisar exposição de serviços e pontos fracos, avalie uma auditoria de vulnerabilidades de aplicações web.
# Testes a partir de outro host da rede/Internet
nmap -Pn -p 22,80,443 SEU_IP
nc -vz SEU_IP 22
# No servidor, acompanhe logs e confira regras
sudo tail -n 50 /var/log/ufw.log
sudo ufw status numbered
# Se necessário, remova uma regra pelo número
# sudo ufw delete NUMERO
# Último recurso para voltar ao padrão (cautela)
# sudo ufw reset
Perguntas frequentes
O UFW substitui iptables ou nftables?
O UFW é uma camada de conveniência que gerencia regras no mecanismo de filtragem do kernel. Ele simplifica a administração diária sem exigir comandos de baixo nível. Você continua com a proteção do kernel, mas com uma interface mais direta para permitir, negar e revisar regras.
As regras do UFW persistem após reiniciar o sistema?
Sim. Depois de ativado, o UFW carrega suas regras automaticamente nas próximas inicializações. Caso altere configurações críticas do sistema de logs ou de rede, revise o status e as regras após o reboot para garantir que tudo permaneça como esperado.
Como lidar com Docker e UFW no mesmo host?
Containers podem criar regras próprias para publicar portas, o que pode afetar o comportamento esperado. Planeje a exposição das portas do Docker com cuidado e teste a partir de outro host. Restrinja serviços a interfaces específicas e publique somente o necessário para evitar exposição indesejada.
É possível permitir uma faixa de portas com UFW?
Sim. Você pode autorizar um intervalo definindo a faixa e o protocolo. Isso é útil para aplicações que exigem múltiplas portas adjacentes. Porém, prefira liberar o mínimo necessário e, quando viável, restringir por IP ou rede para reduzir riscos.
Como habilitar IPv6 no UFW?
Se seu ambiente usa IPv6, edite a configuração do UFW e ajuste a opção que controla o suporte a IPv6. Em seguida, recarregue o firewall para aplicar as mudanças. Também crie regras que contemplem o tráfego IPv4 e IPv6, conforme os serviços expostos.
Posso aplicar regras por interface de rede (ex.: apenas na eth0)?
Sim. Regras podem ser aplicadas a interfaces específicas para granularidade adicional. Esse controle é útil quando o host tem múltiplas placas ou redes (pública e privada). Planeje com atenção para não bloquear acesso administrativo nem expor serviços na interface errada.
Quer uma segunda opinião nas suas regras UFW?
Se você precisa revisar exposição de portas, ajustar políticas e registrar eventos com qualidade, fale e descreva seus serviços. Podemos alinhar um checklist de hardening para o seu caso.
Falar sobre firewall no UbuntuVeja também
- tutorial: implementar Canary releases com Traefik em Docker Compose usando headers e weight routing para deploys graduais de aplicações PHP
- Tutorial: configurar HAProxy com Let's Encrypt e healthchecks para balanceamento de tráfego entre containers Docker em VPS (passo a passo)
- Tutorial prático: implementar mTLS entre Nginx e microserviços usando smallstep CA em Docker Compose
- Tutorial: configurar cgroup v2 e systemd ResourceControl para limitar CPU, memória e I/O de containers Docker no Debian