Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Otimizar UFW no Ubuntu 24.04: regras, prioridade e logs

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:

  1. Defina políticas padrão: negar entrada, permitir saída.
  2. Libere SSH com limit antes de habilitar o firewall.
  3. Ordene regras específicas acima de regras genéricas usando ufw insert.
  4. Ajuste o nível de logging para low e filtre ruído de broadcast.
  5. Valide as regras aplicadas com nft list ruleset.
  6. 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 ufw instalado (padrão no Ubuntu Server) e nftables como 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/ufw antes 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 insert para priorizar bloqueios antes de permissões genéricas e valide sempre com ufw status numbered.
  • Aplique limit em 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 em before.rules.

Leia também

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.

Conheça os planos de VPS da AviraHost

  • 0 Os usuários acharam isso útil
  • ufw, firewall, ubuntu-24-04, seguranca-linux, iptables, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Guia Completo: Como escolher o melhor plano de hospedagem para o seu site

Escolher o plano de hospedagem ideal para o seu site é fundamental para garantir seu bom...

Lista Prática: 5 Vantagens de ter SSL gratuito no seu site

Ter um certificado SSL no seu site não é apenas uma questão de segurança, mas também uma...

Comparativo: Hospedagem de sites vs. VPS: qual é a melhor opção?

Quando se trata de escolher entre hospedagem compartilhada ou VPS, as opções variam de acordo...

Dicas de Otimização de Servidores Linux

Dicas de Otimização de Servidores Linux Servidores Linux são amplamente utilizados por sua...

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online...