Comparativo: nftables vs firewalld para servidores Ubuntu 22.04 em VPS — desempenho, regras e exemplos práticos

Por · Publicado em · 8 min de leitura

Duas telas de computador com terminais e gráficos verdes sobre uma mesa em ambiente escuro
Ilustra administração de sistemas e redes em servidores VPS Foto: Tima Miroshnichenko / Pexels

Comparativo: nftables vs firewalld para servidores Ubuntu 22.04 em VPS — desempenho, regras e exemplos práticos. Este guia mostra o que muda na gestão, quando cada opção é melhor e como aplicar configurações equivalentes com segurança. Você verá impactos em operação, automação e auditoria para decidir com confiança.

O que são e como se relacionam no Ubuntu 22.04

nftables é o subsistema de filtragem de pacotes do kernel Linux. firewalld é um daemon de alto nível que gerencia políticas por zonas e serviços, usando nftables como backend no Ubuntu 22.04.

As decisões de permitir ou bloquear trafegam no dataplane do kernel (nf_tables). O firewalld traduz políticas para nftables. A diferença está em como você declara, versiona e opera as regras.

Se está iniciando o hardening do servidor, consulte o checklist de segurança para VPS Linux para boas práticas complementares.

  • nftables: sintaxe declarativa, sets/maps, apply atômico.
  • firewalld: zonas, serviços conhecidos, API D‑Bus e CLI.
  • No dataplane, o desempenho é equivalente em ambos.

Qual é mais rápido em VPS?

Em tráfego de rede, nftables puro e firewalld têm desempenho prático equivalente. O kernel decide os pacotes no mesmo subsistema nftables. A diferença aparece na gestão das regras e recargas.

nftables via arquivo único facilita apply atômico e rollback simples. O firewalld permite mudanças em runtime e reloads granulares; complete-reload pode causar breve interrupção. Em VPS comuns, o impacto costuma ser desprezível.

  • Dataplane: igual para ambos (kernel nf_tables).
  • nftables: apply atômico com arquivo versionável.
  • firewalld: runtime-friendly; complete-reload pode interromper.
  • CPU/RAM do firewall: mínimos frente à aplicação.

Tabela comparativa: quando cada opção é melhor

A escolha depende do fluxo de trabalho, necessidade de zonas e complexidade das regras. Este comparativo: nftables vs firewalld para servidores Ubuntu 22.04 em VPS resume critérios objetivos para decidir.

Critério nftables firewalld
Camada/backend Linguagem nativa do kernel (nf_tables) Gerenciador por zonas; usa nftables como backend
Performance de tráfego Equivalente (dataplane do kernel) Equivalente (dataplane do kernel)
Mudanças/reloads Arquivo único, apply atômico com rollback fácil Mudanças em runtime; reload granular; complete-reload pode interromper
Curva de aprendizado Maior; sintaxe própria, poderosa Menor; serviços e zonas prontas
Zonas/serviços Modela com chains, sets e maps Nativo; facilita DMZ, public, internal
Regras avançadas (sets/maps) Excelente; recurso central da linguagem Possível via rich/direct rules
Automação/CI/CD Ótimo; arquivo declarativo versionável Bom; firewall-cmd, permanent e D‑Bus
Auditoria/config como código Simples com /etc/nftables.conf Requer export ou playbooks para convergir
Logs Statement 'log' com prefixos Rich rules ou nível de log por zona

Qual escolher para meu servidor Ubuntu 22.04 em VPS?

Para controle fino, versionamento simples e sets/maps, nftables direto tende a ser a melhor escolha. Para agilidade operacional com zonas e serviços pré-definidos, firewalld acelera a rotina sem sacrificar segurança.

Ambos protegem bem. O que muda é a gestão: arquivo declarativo único (nftables) versus comandos e zonas (firewalld). Integre com seu provisionamento e monitore o resultado continuamente.

  • Equipe pequena e IaC: nftables com arquivo versionado.
  • Operação baseada em zonas/serviços: firewalld.
  • IPv4 e IPv6: ambos atendem plenamente.
  • Listas grandes de IPs: nftables brilha.

Exemplos de regras no nftables (política restritiva)

O exemplo cria tabela inet 'filter' com política padrão drop e libera SSH, HTTP(S), loopback, ICMP e conexões estabelecidas. Aplicar regras erradas pode derrubar sua sessão SSH; mantenha uma segunda sessão e um plano de rollback.

Depois de salvar o arquivo, aplique com 'sudo nft -f /etc/nftables.conf' e valide com 'sudo nft list ruleset'.

# /etc/nftables.conf
flush ruleset

table inet filter {
  sets {
    ssh_admins_v4 { type ipv4_addr; flags interval; elements = { 203.0.113.0/24 } }
  }
  chains {
    input {
      type filter hook input priority 0; policy drop;
      ct state established,related accept
      iif lo accept
      ip protocol icmp accept
      ip6 nexthdr icmpv6 accept
      tcp dport { 80, 443 } accept
      ip saddr @ssh_admins_v4 tcp dport 22 accept
      counter log prefix "nft-drop " flags all drop
    }
    forward { type filter hook forward priority 0; policy drop; }
    output { type filter hook output priority 0; policy accept; }
  }
}

Exemplos equivalentes no firewalld (zones e services)

Abaixo, configuramos a zona 'public', liberamos HTTP/HTTPS e restringimos SSH a um bloco IPv4 via rich rule. Tornamos permanente e recarregamos. Se você remover SSH amplo, teste antes em console/serial para evitar perder acesso.

Para acessos administrativos robustos, considere um salto dedicado; veja como montar um bastion SSH no Ubuntu 22.04.

sudo apt-get update && sudo apt-get install -y firewalld
sudo systemctl enable --now firewalld

# Defina a zona padrão e remova SSH amplo (se existir)
sudo firewall-cmd --set-default-zone=public
sudo firewall-cmd --permanent --remove-service=ssh || true

# Libere HTTP/HTTPS na zona padrão
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Restrinja SSH ao bloco 203.0.113.0/24
sudo firewall-cmd --permanent \
  --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" port protocol="tcp" port="22" accept'

# Aplique alterações
sudo firewall-cmd --reload

# Verifique
sudo firewall-cmd --list-all

Como operar em produção: versionamento, rollback e auditoria

Para nftables, versionar o arquivo /etc/nftables.conf simplifica auditoria e rollback. Use CI/CD com 'nft -c -f' para validar sintaxe antes do apply. No firewalld, mantenha playbooks idempotentes e exporte periodicamente a configuração permanente.

Teste em staging e valide acessos com health checks e logs. Reforce o perímetro com camadas complementares como bloqueio de força bruta e mitigação de volumetria.

Para picos de scans ou brute force, veja fail2ban com webhooks. Se sofre volumetria alta, complemente com mitigação DDoS em VPS.

  • Staging antes de produção, com testes de conectividade.
  • Sessão SSH extra e janela de rollback planejada.
  • Coleta de logs e alertas para tentativas bloqueadas.
  • Automação idempotente para evitar drift de configuração.

Erros comuns ao configurar firewall em VPS Ubuntu 22.04

Evitar armadilhas economiza tempo e incidentes. Revise os pontos abaixo antes de aplicar regras em produção. O comparativo: nftables vs firewalld para servidores Ubuntu 22.04 em VPS ajuda a planejar sem surpresas.

  • Esquecer IPv6: proteja ip e ip6 de forma consistente.
  • Bloquear SSH sem exceção segura ou console disponível.
  • Não começar com política padrão restritiva (drop).
  • Recarregar regras sem checagem de sintaxe e rollback planejado.
  • Ignorar camadas complementares como fail2ban e limites.
  • Não monitorar após mudanças: valide portas e tráfego real.

Perguntas frequentes

nftables substitui iptables no Ubuntu 22.04?

Sim. O kernel usa o subsistema nftables por padrão, e as CLIs iptables costumam apontar para o backend nft (iptables-nft). Para novas implantações, foque em nftables e sua sintaxe nativa.

firewalld usa nftables no Ubuntu 22.04?

Sim. No Ubuntu 22.04, o firewalld normalmente utiliza nftables como backend. O tráfego é decidido no kernel; o firewalld simplifica a gestão com zonas, serviços e API D‑Bus.

Qual tem melhor desempenho: nftables puro ou firewalld?

O desempenho de tráfego é essencialmente igual, pois ambos usam o mesmo dataplane do kernel. A diferença está na gestão e nos reloads, não no processamento de pacotes.

É seguro recarregar o firewall via SSH em produção?

Sim, desde que você mantenha uma segunda sessão aberta e tenha plano de rollback. Valide a sintaxe antes, aplique em janela controlada e teste conectividade logo após o reload.

Posso combinar firewalld e regras diretas em nftables?

Pode, mas prefira consistência. O firewalld já traduz para nftables; misturar ferramentas pode causar drift. Se adotar firewalld, use rich/direct rules dentro dele.

Como garantir cobertura IPv6 no firewall?

Defina políticas para IPv4 e IPv6. Em nftables, use 'table inet' com regras para ip e ip6; em firewalld, serviços e rich rules operam em ambas as famílias quando configurados.

Quer decidir entre nftables e firewalld e implantar com segurança?

Converse sobre requisitos, riscos e automação do firewall no seu Ubuntu 22.04 em VPS. Planeje política, testes e rollback para uma mudança segura.

Falar sobre o projeto

Veja também