12 min de leitura · Guia técnico
Otimizar o UFW no Ubuntu 24.04 envolve definir políticas padrão restritivas, organizar regras por prioridade com ufw insert, aplicar rate-limiting em portas expostas e controlar o volume de logs no kernel. Para otimizar em produção, siga estes passos:
- Defina políticas padrão: negar entrada, permitir saída.
- Libere SSH com
limitantes de habilitar o firewall. - Ordene regras específicas acima de regras genéricas usando
ufw insert. - Ajuste o nível de logging para
lowe filtre ruído de broadcast. - Valide as regras aplicadas com
nft list ruleset. - Teste conectividade antes de fechar a sessão SSH.
Pré-requisitos para otimizar o UFW no Ubuntu 24.04
- Servidor com Ubuntu 24.04 LTS (Noble Numbat) atualizado via
apt update && apt upgrade. - Acesso root ou usuário com privilégios sudo.
- Conexão SSH estável — idealmente com sessão alternativa aberta em caso de bloqueio acidental.
- Pacote
ufwinstalado (padrão no Ubuntu Server) enftablescomo backend (default desde o Ubuntu 20.10). - Conhecimento básico das portas em uso: 22 (SSH), 80/443 (HTTP/HTTPS), 25/587 (SMTP) etc.
- Backup prévio de
/etc/ufw/e/etc/default/ufwantes de alterações estruturais.
Entendendo a arquitetura do UFW no Ubuntu 24.04
O Uncomplicated Firewall é uma camada de abstração sobre o netfilter que, no Ubuntu 24.04, gera regras diretamente para o nftables. Isso significa que cada comando ufw allow ou ufw deny é traduzido em entradas dentro das chains ufw-before-input, ufw-user-input e ufw-after-input. Compreender essa hierarquia é essencial para otimizar sem conflitos.
Você pode inspecionar o que o UFW realmente aplicou no kernel executando:
sudo nft list ruleset | less
Output esperado (trecho):
table inet filter {
chain ufw-user-input {
tcp dport 22 ct state new limit rate 6/minute accept
tcp dport 80 accept
tcp dport 443 accept
}
}
Essa transparência é útil quando você precisa auditar regras geradas automaticamente por aplicações como Docker, que frequentemente inserem diretivas no iptables legado e podem ignorar as políticas do UFW. Para ambientes com containers, recomendo revisar também o artigo Dicas de Otimização de Servidores Linux para ajustes complementares de kernel.
Configurar regras UFW com prioridade correta
A ordem de avaliação é um dos pontos mais negligenciados na otimização. O netfilter processa regras sequencialmente e, ao encontrar a primeira correspondência, aplica a ação e ignora as subsequentes. Se você adicionou ufw allow from any to any port 80 e depois tentou bloquear um IP específico com ufw deny from 203.0.113.50, o bloqueio nunca será efetivo para a porta 80.
A solução é usar ufw insert para posicionar regras de negação antes das regras genéricas:
sudo ufw insert 1 deny from 203.0.113.50 to any
sudo ufw status numbered
Output esperado:
Status: ativo
Para Ação De
--- ------ --
[ 1] Anywhere DENY IN 203.0.113.50
[ 2] 22/tcp LIMIT IN Anywhere
[ 3] 80/tcp ALLOW IN Anywhere
[ 4] 443/tcp ALLOW IN Anywhere
Para reorganizar regras já existentes, delete pelo número e reinsira na posição desejada:
sudo ufw delete 3
sudo ufw insert 2 allow 80/tcp
Atenção: sempre revise a ordem com ufw status numbered após cada alteração. Uma regra mal posicionada pode expor serviços que você acreditava protegidos.
Aplicar rate-limiting e proteção contra força bruta
O diferencial do UFW frente a scripts iptables manuais é a diretiva limit, que aplica automaticamente um controle de taxa de 6 conexões em 30 segundos por IP de origem. Essa proteção é ideal para SSH, painéis administrativos e endpoints de login.
sudo ufw limit 22/tcp comment 'SSH rate-limit'
sudo ufw limit proto tcp from any to any port 2083 comment 'cPanel'
Para cenários mais específicos, combine o UFW com listas de IPs confiáveis. Por exemplo, libere SSH sem limite apenas para sua rede corporativa e aplique limit para o restante:
sudo ufw allow from 198.51.100.0/24 to any port 22 proto tcp
sudo ufw limit 22/tcp
Esse padrão reduz drasticamente o volume de tentativas bem-sucedidas de brute-force sem a sobrecarga de um daemon como Fail2Ban. Ainda assim, para sistemas de alto valor, ambas as camadas são complementares — o rate-limit atua no kernel (rápido, barato), enquanto o Fail2Ban analisa logs da aplicação.
Otimizar logs do UFW e evitar enchimento de /var/log
O logging agressivo é uma fonte comum de problemas em VPS com disco limitado. Por padrão, o UFW grava em /var/log/ufw.log e também em /var/log/kern.log e /var/log/syslog, triplicando o volume de dados.
Os níveis disponíveis são:
- off: logging desativado.
- low: registra pacotes bloqueados não filtrados por regras específicas (recomendado para produção).
- medium: inclui pacotes permitidos que não batem em regra explícita e inválidos.
- high: registra todos os pacotes com rate-limiting.
- full: sem limite de taxa — use apenas para troubleshooting pontual.
sudo ufw logging low
Para separar os logs do UFW dos demais e reduzir o tamanho do syslog, crie um filtro em /etc/rsyslog.d/20-ufw.conf:
:msg,contains,"[UFW " -/var/log/ufw.log
& stop
Depois reinicie o rsyslog:
sudo systemctl restart rsyslog
Complemente com rotação agressiva via logrotate. Edite /etc/logrotate.d/ufw:
/var/log/ufw.log {
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
Silenciar tráfego ruidoso antes que seja logado
Broadcast, multicast e pacotes mDNS enchem os logs sem agregar valor de segurança. Descarte-os silenciosamente editando /etc/ufw/before.rules e adicionando, antes do COMMIT:
-A ufw-before-input -d 224.0.0.0/4 -j DROP
-A ufw-before-input -d 255.255.255.255 -j DROP
-A ufw-before-input -p udp --dport 137:138 -j DROP
-A ufw-before-input -p udp --dport 5353 -j DROP
Recarregue as regras:
sudo ufw reload
Output esperado:
Firewall recarregado
Esse ajuste costuma reduzir em 60-80% o volume diário de ufw.log em servidores expostos a redes com muitos dispositivos IoT ou tráfego de descoberta de serviços.
Problemas comuns e como resolver
Sintoma: perda de acesso SSH após habilitar o UFW
Causa: o firewall foi ativado sem uma regra allow prévia para a porta 22, ou a política padrão de entrada foi setada como deny antes da liberação.
Solução: se você mantém console de recuperação (KVM/VNC do painel AviraHost), execute sudo ufw allow 22/tcp && sudo ufw reload. Como prevenção, antes de habilitar remotamente, agende um cron de segurança:
echo "*/5 * * * * root /usr/sbin/ufw disable" | sudo tee /etc/cron.d/ufw-safety
Após confirmar que o SSH continua acessível, remova o cron.
Sintoma: regras do UFW ignoradas para containers Docker
Causa: o Docker insere suas próprias regras na chain DOCKER-USER do iptables legado, contornando as chains do UFW.
Solução: edite /etc/docker/daemon.json adicionando "iptables": false (requer configuração manual de NAT) ou insira regras específicas na chain DOCKER-USER via iptables -I DOCKER-USER. Para publicar containers respeitando o UFW, exponha portas apenas em 127.0.0.1 e use proxy reverso.
Sintoma: log cresce rapidamente mesmo com logging low
Causa: um scanner externo está gerando milhares de tentativas por minuto em portas fechadas, e cada pacote bloqueado é registrado.
Solução: bloqueie a faixa de origem antes de chegar à chain de log, adicione rate-limit ao rsyslog em /etc/rsyslog.conf com $SystemLogRateLimitInterval 2 e $SystemLogRateLimitBurst 50, e considere ativar fail2ban para banimentos temporários de scanners persistentes.
Sintoma: ufw status mostra inactive após reboot
Causa: o serviço ufw.service não está habilitado no systemd.
Solução: execute sudo systemctl enable ufw e verifique com systemctl is-enabled ufw. O retorno esperado é enabled.
Perguntas frequentes sobre otimização do UFW no Ubuntu 24.04
Qual a diferença entre UFW allow e limit no Ubuntu 24.04?
O allow libera conexões sem restrição, enquanto o limit aplica rate-limiting automático, bloqueando IPs que tentam mais de 6 conexões em 30 segundos. O limit é ideal para portas expostas como SSH, pois mitiga ataques de força bruta sem precisar instalar Fail2Ban. Para serviços públicos como HTTP/HTTPS, prefira allow para não penalizar usuários legítimos com múltiplas requisições.
A ordem das regras do UFW importa?
Sim, a ordem é crítica. O UFW processa regras de cima para baixo e aplica a primeira que casar com o pacote, ignorando as seguintes. Use ufw insert para posicionar regras de bloqueio antes de regras genéricas de allow. Sempre valide com ufw status numbered após cada alteração para garantir que a hierarquia está correta.
Como reduzir o tamanho dos logs do UFW que enchem o /var/log?
Ajuste o nível de log com ufw logging low em vez de medium ou high, configure rate-limit no rsyslog para o kernel.log e adicione regras específicas para descartar silenciosamente tráfego ruidoso como broadcast e multicast antes que sejam logados. Complemente com rotação semanal via logrotate para evitar que arquivos antigos consumam espaço desnecessário.
UFW substitui iptables ou nftables no Ubuntu 24.04?
Não, o UFW é apenas uma interface amigável. No Ubuntu 24.04 ele gera regras para o nftables por baixo dos panos. Você pode inspecionar o que o UFW realmente aplicou com nft list ruleset ou iptables-save. Isso é especialmente útil em ambientes com Docker ou Kubernetes, onde múltiplos componentes manipulam o netfilter simultaneamente.
Como testar regras UFW sem perder acesso SSH remoto?
Antes de habilitar o UFW remotamente, libere explicitamente a porta SSH com ufw allow 22/tcp e use um cron job de segurança que desabilite o firewall após 5 minutos. Se perder o acesso, o cron reverterá a política e você recupera o SSH. Após confirmar que tudo funciona, remova o cron de segurança com sudo rm /etc/cron.d/ufw-safety.
Conclusão
- Organize regras por especificidade: use
ufw insertpara priorizar bloqueios antes de permissões genéricas e valide sempre comufw status numbered. - Aplique
limitem portas sensíveis como SSH e painéis administrativos para reduzir vetores de força bruta sem overhead de daemons adicionais. - Controle o volume de logs com nível
low, filtros no rsyslog e descarte silencioso de tráfego broadcast/multicast diretamente embefore.rules.
Leia também
- Checklist Completo para Configurar e Testar o Firewall UFW em VPS Linux e Servidores Dedicados
- Comparativo: Firewall UFW vs. CSF para Proteção em VPS Linux e Servidor Dedicado
- Checklist para Segurança de VPS Linux: Guia Completo de Proteção
Precisa de ajuda com firewall e segurança no seu VPS?
A AviraHost oferece VPS Linux com Ubuntu 24.04 pré-configurado e suporte técnico especializado em hardening de firewall, tuning de kernel e monitoramento de logs. Conte com nossa equipe para revisar suas políticas de UFW e proteger seus serviços em produção.