- O nftables oferece uma alternativa mais simples e eficiente ao iptables, com tratamento unificado de IPv4/IPv6.
- Recursos como o rastreamento de regras e as regras com múltiplas ações no nftables aprimoram o gerenciamento de rede.
- A migração para o nftables oferece melhor desempenho e simplicidade, com o apoio de ferramentas como o iptables-translate.
A trajetória contínua do Linux na filtragem de pacotes de rede e no gerenciamento de firewalls, especialmente destacada no debate entre iptables e nftables, representa uma mudança fundamental na segurança de rede. Tanto o iptables quanto o nftables oferecem abordagens únicas para controlar e proteger o tráfego de rede. Esta postagem do blog fará uma análise aprofundada da comparação entre iptables e nftables, destacando suas características específicas, diferenças e aplicações práticas em diversos ambientes de rede.
Noções básicas
Desde sua introdução no final da década de 1990, o iptables tem sido um componente essencial na resolução de diversos problemas do Linux, oferecendo flexibilidade e controle robusto sobre o tráfego de rede. No entanto, sua sintaxe complexa pode ser intimidadora. Em contrapartida, o nftables, introduzido com o kernel 3.13 do Linux em 2014, foi projetado para resolver algumas das limitações observadas no iptables. Ao comparar o iptables com o nftables, percebe-se que o nftables simplifica a filtragem e a classificação de pacotes, oferecendo uma sintaxe mais intuitiva, melhor desempenho e maior compatibilidade com protocolos de rede modernos.
Além das melhorias na usabilidade, garantir a segurança das configurações do firewall do Linux é um aspecto crucial do fortalecimento do sistema, já que regras configuradas incorretamente podem introduzir vulnerabilidades que devem ser corrigidas por meio da aplicação regular de patches de vulnerabilidade. O fortalecimento das políticas de firewall com o nftables aumenta a segurança do sistema, minimizando as superfícies de ataque e, ao mesmo tempo, mantendo um controle eficiente do tráfego de rede.
iptables x nftables
A sintaxe e a usabilidade do iptables, conhecidas por sua complexidade e verbosidade, costumam apresentar uma curva de aprendizado íngreme, especialmente para iniciantes. A sintaxe das opções do iptables pode ser bastante delicada em certos casos. Em algumas situações, é possível inserir um espaço após uma vírgula, enquanto em outras, isso não é permitido. Às vezes, é possível trocar a ordem de duas opções sem problemas, mas, em outras ocasiões, isso pode gerar um erro. Essa complexidade dificulta especialmente os testes quando as regras são geradas por scripts.
O Nftables supera esse desafio com uma sintaxe intuitiva que simplifica a criação de regras e reduz a probabilidade de erros, resultando em maior facilidade de gerenciamento.
Por exemplo, uma regra típica do iptables pode ser assim:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Essa regra permite o tráfego SSH de entrada na porta 22.
Em contrapartida, o nftables oferece uma sintaxe mais simples, como pode ser visto nesta regra equivalente do nftables:
nft adicionar regra filtro de IP entrada tcp porta de destino 22 aceitar
Outro ponto na discussão entre iptables e nftables é o tratamento de IPv4 e IPv6. Com a prevalência de configurações de pilha dupla nos servidores, os administradores muitas vezes precisam duplicar regras em dois arquivos de configuração diferentes. O nftables supera isso ao integrar funcionalidades como IPv4, IPv6, arp e inet em uma única estrutura, melhorando o desempenho e eliminando a redundância.
Além disso, o nftables permite que uma única regra execute várias ações. Por exemplo, ele pode registrar e bloquear pacotes provenientes de uma rede específica, como 10.10.1.0/24, simultaneamente, simplificando as configurações das regras e agilizando o processamento delas.
Rastreamento de regras no nftables
Um desafio comum no gerenciamento de redes é identificar qual regra está bloqueando o tráfego de forma inesperada. O nftables resolve isso com um recurso de rastreamento integrado, uma funcionalidade da qual o iptables carece. Por exemplo, se houver uma regra bloqueando o tráfego SSH proveniente de um intervalo como 10.10.1.0/24:
$ sudo nft insert rule inet filter input ip saddr 10.10.1.0/24 tcp dport 22 drop
E, se você estiver investigando conexões bloqueadas provenientes do endereço 10.10.1.15, ativar o rastreamento para esse IP pode identificar a regra problemática:
$ sudo nft insert rule inet filter input ip saddr 10.10.1.15 tcp dport 22 meta nftrace set 1
Ao executar o comando “nft monitor trace”, você poderá ver a regra exata que está causando o bloqueio.
A introdução desse recurso de rastreamento no nftables melhora significativamente a capacidade de depurar conjuntos de regras complexos, oferecendo aos administradores de rede uma ferramenta poderosa para gerenciar e solucionar problemas no tráfego de rede.
Migração do iptables para o nftables
A migração do iptables para o nftables marca uma mudança em direção a um gerenciamento de rede mais eficiente. Ferramentas como o iptables-translate ajudam a converter regras do iptables para o formato do nftables, trazendo benefícios como melhor desempenho e simplicidade. Por exemplo, a transição das regras de firewall de um servidor web do iptables para o nftables pode envolver a conversão de regras do iptables que permitem o tráfego HTTP e HTTPS:
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
nas regras do nftables:
nft add rule ip filter input tcp dport 80 ct state new,established accept nft adicionar regra filtro IP entrada TCP porta de destino 443 estado de conexão novo, estabelecido aceitar
Após converter todas as regras, a nova configuração do nftables garantiria o mesmo nível de segurança e gerenciamento de tráfego que a configuração anterior do iptables, mas com os benefícios adicionais da eficiência e simplicidade do nftables.
Escolhendo a ferramenta certa
Embora o iptables seja, há muito tempo, uma ferramenta confiável, o nftables surge como uma solução mais eficiente e preparada para o futuro. Na escolha entre o iptables e o nftables, a decisão depende das necessidades e dos ambientes específicos. O iptables ainda pode ser a opção preferida em sistemas com configurações legadas, enquanto o nftables costuma ser a escolha preferida em novas implantações devido ao seu desempenho e escalabilidade.
Em ambos os cenários, a integração as garantirá que suas soluções de firewall estejam rodando em um kernel Linux seguro, com suporte e em conformidade.

