Gerador de Regras nftables
Geve regras nftables a partir de CSV
Rule Definitions
nftables Configuration
Enter rules to generate nftables configuration
O Gerador de Regra nftables cria regras de firewall modernas do Linux a partir de entrada CSV estruturada usando sintaxe nftables. Digite regras como linhas CSV com colunas família de tabela, cadeia, origem, destino, protocolo, porta e ação, e obtenha tanto comandos nft individuais quanto um arquivo de conjunto de regras completo que pode ser carregado atomicamente -- a abordagem recomendada para distribuições Linux atuais incluindo Debian 10+, RHEL 8+ e Ubuntu 20.04+.
Entendendo nftables
Se você está configurando um firewall em uma distribuição Linux moderna, nftables é a ferramenta que você deveria estar usando. Ele substituiu iptables como o framework de filtragem de pacotes padrão a partir do kernel Linux 3.13 e todos as distribuições principais agora enviam com nftables como o backend padrão. Debian, Ubuntu, RHEL, Fedora e Arch Linux todos usam nftables sob o capô, até quando você executa comandos iptables (a camada de compatibilidade iptables-nft os traduz automaticamente).
A vantagem mais importante do nftables sobre iptables é carregamento de conjunto de regras atômico. Com iptables, cada regra é um comando separado que modifica o estado de kernel ao vivo -- então se seu script falhar no meio, você fica com um conjunto de regras parcial que pode ter lacunas de segurança. nftables deixa você escrever sua configuração inteira em um único arquivo e carregá-lo em uma operação com nft -f. Se qualquer regra tem um erro de sintaxe, o carregamento inteiro falha e nada muda. Este comportamento atômico elimina o problema "firewall meio-carregado" que causou incidentes reais de segurança com iptables.
A segunda melhoria principal é sintaxe mais limpa para padrões comuns. Em iptables, corresponder múltiplas portas requer a extensão estranha -m multiport --dports 80,443,8080. Em nftables, você escreve tcp dport { 80, 443, 8080 } -- um conjunto simples que lê como expressão natural. A família inet deixa você escrever uma regra que se aplica tanto a IPv4 quanto IPv6 em vez de manter configurações separadas iptables e ip6tables. Conjuntos nomeados deixam você definir um grupo de endereços uma vez e referenciá-lo em múltiplas regras. Estas características reduzem complexidade de configuração e tornam regras de firewall mais fáceis de ler durante auditorias.
Como Gerar Regras nftables a partir de CSV
- Prepare seus dados de regra em formato CSV com colunas: família de tabela, cadeia, origem, destino, protocolo, porta(s) e ação.
- Cole ou faça upload do CSV no gerador.
- Escolha o formato de saída: comandos
nftindividuais ou um arquivo de conjunto de regras completo. - O gerador produz sintaxe nftables aproveitando recursos como conjuntos, mapas e família
inet. - Copie a saída e carregue com
nft -f ruleset.nftpara aplicação atômica.
Formato de Entrada CSV e Regras Geradas
Entrada CSV
family,chain,source,destination,protocol,port,action
inet,input,203.0.113.0/24,,tcp,22,drop
inet,input,10.0.0.0/8,,tcp,443,accept
inet,input,,,tcp,80,accept
inet,output,,198.51.100.10,tcp,3306,accept
inet,forward,192.168.1.0/24,10.0.0.0/8,tcp,8080,accept
Arquivo de Conjunto de Regras Gerado
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
ip saddr 203.0.113.0/24 tcp dport 22 drop
ip saddr 10.0.0.0/8 tcp dport 443 accept
tcp dport 80 accept
}
chain output {
type filter hook output priority 0; policy accept;
ip daddr 198.51.100.10 tcp dport 3306 accept
}
chain forward {
type filter hook forward priority 0; policy drop;
ip saddr 192.168.1.0/24 ip daddr 10.0.0.0/8 tcp dport 8080 accept
}
}
Comandos Individuais Gerados
nft add table inet filter
nft add chain inet filter input '{ type filter hook input priority 0; policy drop; }'
nft add rule inet filter input ip saddr 203.0.113.0/24 tcp dport 22 drop
nft add rule inet filter input ip saddr 10.0.0.0/8 tcp dport 443 accept
nft add rule inet filter input tcp dport 80 accept
Recursos nftables Usados pelo Gerador
| Recurso | Sintaxe nftables | Equivalente iptables |
|---|---|---|
| Múltiplas portas | tcp dport { 80, 443, 8080 } | -m multiport --dports 80,443,8080 |
| Intervalo de porta | tcp dport 8000-8080 | --dport 8000:8080 |
| Múltiplas origens | ip saddr { 10.0.0.0/8, 172.16.0.0/12 } | Duas regras separadas |
| Dual-stack (inet) | table inet filter | Regras separadas iptables e ip6tables |
| Conjuntos nomeados | set blocklist { type ipv4_addr; } | Sem equivalente |
| Logging | log prefix "SSH: " drop | Regras separadas -j LOG e -j DROP |
Quando Usar o Gerador de Regra nftables
- Novas implantações de servidor -- distribuições modernas vêm com nftables como padrão; comece com sintaxe nftables desde o início.
- Migração iptables -- converta regras iptables existentes para nftables ao fazer upgrade para Debian 10+, RHEL 8+ ou Ubuntu 20.04+.
- Carregamento de conjunto de regras atômico -- Diferentemente de iptables (regra-por-regra), nftables pode carregar um conjunto de regras inteiro atomicamente com
nft -f, eliminando lacunas durante mudanças de configuração. - Infraestrutura como Código -- gere conjuntos de regras nftables a partir de dados CSV/planilha para configurações controladas por versão e repetíveis de firewall.
- Simplificação Dual-stack -- use a família
inetpara escrever uma regra que se aplica tanto a IPv4 quanto IPv6 em vez de manter conjuntos de regras separados.
Como nftables Difere de iptables
Famílias de Tabela
nftables organiza regras por família, que determina qual tráfego a tabela processa:
inet-- Trata tanto IPv4 quanto IPv6 (escolha mais comum)ip-- Apenas IPv4ip6-- Apenas IPv6arp-- Protocolo ARPbridge-- Filtragem em nível de bridge
Conjuntos e Mapas
nftables suporta conjuntos anônimos inline e conjuntos nomeados reutilizáveis:
# Conjunto anônimo -- múltiplos valores em uma regra
tcp dport { 22, 80, 443 } accept
# Conjunto nomeado -- reutilizável entre regras
set trusted_nets {
type ipv4_addr
flags interval
elements = { 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 }
}
ip saddr @trusted_nets accept
Carregamento Atômico
O gerador pode produzir um arquivo de conjunto de regras completo que substitui a configuração inteira em uma operação única:
nft -f /etc/nftables.conf # Carregue conjunto de regras inteiro atomicamente
nft list ruleset # Verifique as regras ativas
Conselhos Práticos para Configuração nftables
Se você está migrando de iptables, resista à tentação de simplesmente traduzir regras um-para-um. nftables tem recursos que deixam você expressar a mesma política com muitas menos regras. Aproveite a oportunidade de consolidar: mescle múltiplas regras específicas de porta em regras baseadas em conjunto, combine regras IPv4 e IPv6 usando a família inet e substitua cadeias de LOG-depois-DROP com declarações únicas log prefix "..." drop. Uma migração é o tempo perfeito para auditar e simplificar sua política de firewall, não apenas translitera-la.
Para servidores de produção, sempre armazene sua configuração nftables em /etc/nftables.conf e habilite o serviço systemd nftables com systemctl enable nftables. Isto garante que suas regras sejam carregadas no boot. Diferentemente de iptables onde você precisa de um mecanismo de persistência separado (iptables-persistent em Debian, iptables-services em RHEL), persistência nftables é construída no arquivo de unidade de serviço padrão. Depois de fazer mudanças, execute nft -c -f /etc/nftables.conf para verificar sintaxe sem aplicar, depois recarregue com systemctl restart nftables.
Ao depurar regras nftables, o comando nft list ruleset é seu melhor amigo. Mostra a configuração ativa completa exatamente como o kernel a vê, incluindo contadores de regra que dizem a você quantos pacotes cada regra correspondeu. Se um contador de regra fica em zero, então nenhum tráfego correspondente chegou ou uma regra mais alta na cadeia está pegando o tráfego primeiro. Use nft monitor para logging em tempo real de correspondências de regra, que é inestimável quando resolvendo problemas por que tráfego específico está sendo solto.
Perguntas Frequentes
Posso executar iptables e nftables ao mesmo tempo?
Tecnicamente ambos usam o mesmo framework netfilter do kernel, mas executar ambos simultaneamente causa conflitos. A camada de compatibilidade iptables-nft traduz comandos iptables para nftables internamente, mas misturar regras nftables nativas com comandos iptables não é recomendado.
Como persisto regras nftables entre reboots?
Salve seu conjunto de regras para /etc/nftables.conf e habilite o serviço systemd nftables: systemctl enable nftables. O serviço carrega o arquivo de conjunto de regras no boot.
O que é a família inet e devo sempre usá-la?
A família inet processa tráfego IPv4 e IPv6 em uma tabela única, eliminando a necessidade de regras duplicadas. Use inet para a maioria das configurações. Use ip ou ip6 apenas quando você precisar comportamento específico de família de endereço.
Como migro de iptables para nftables?
Use o comando iptables-save para exportar suas regras atuais, depois execute-as através do iptables-restore-translate (parte do pacote iptables-nft) para obter um equivalente nftables. Revise a saída cuidadosamente -- tradução automatizada produz nftables funcional mas não-idiomático. Use este gerador para construir regras nftables limpas do zero quando possível.
Qual é a diferença de desempenho entre iptables e nftables? nftables usa uma máquina virtual otimizada no kernel para avaliação de regra, que é geralmente mais rápida que iptables para conjuntos de regras complexos. A melhoria é mais notável com grandes conjuntos de regras (centenas de regras) e correspondência baseada em conjunto. Para configurações simples com uma dúzia de regras, a diferença é negligenciável.
Posso usar nftables em kernels mais antigos? nftables requer kernel Linux 3.13 ou posterior. Recursos básicos funcionam de 3.13, mas recursos avançados como mapas e conjuntos concatenados requerem 4.1+. Todas as distribuições LTS atuais incluem kernels suficientemente recentes.
Ferramentas Relacionadas
- Gerador de Regra iptables - Gere regras iptables a partir de CSV para sistemas Linux legados
- Localizador de Conflito de Regra - Encontre regras de firewall duplicadas, sombreadas ou sobrepostas
- Construtor de Allowlist - Construa allowlist CIDR mínimo a partir de lista de IP
- Construtor de Blocklist - Construa blocklist CIDR mínimo a partir de lista de IP
- Gerador de Regra Azure NSG - Gere regras Azure NSG a partir de CSV