- Compreendendo o comando nftables do Linux
Compreendendo o Linux nftables Command #
O nftables command é uma poderosa ferramenta de firewall Linux que substitui iptables, ip6tables, arptables e ebtables. Com uma sintaxe unificada, nftables simplifica a filtragem de pacotes de rede, NAT e outras configurações avançadas de rede. O comando funciona com o nft utilitário, que se comunica com o subsistema netfilter do kernel para gerenciar regras de rede.
Sintaxe e estrutura básicas do nft Command #
O nft comando geralmente segue esta estrutura:
nft [OPTIONS] COMMAND
- OPÇÕES: Bandeiras como
-a(mostrar identificadores de regras) ou-j(saída em formato JSON). - COMANDO: A ação específica, como
add,delete,list, ouflush, usado para gerenciar tabelas, cadeias ou regras.
nft Tabela de Cheatsheet de Comandos #
| Command | Descrição |
nft list tables |
Listar todas as tabelas |
nft add table inet filter |
Crie uma nova tabela chamada filter no inet família |
nft delete table inet filter |
Excluir o filter mesa no inet família |
nft list ruleset |
Listar todas as tabelas, cadeias e regras em um formato legível por humanos |
nft flush ruleset |
Excluir todas as tabelas, cadeias e regras (limpar todo o conjunto de regras) |
nft add chain inet filter input { type filter hook input priority 0; } |
Adicione um input cadeia para o filter mesa com input gancho |
nft add rule inet filter input tcp dport 22 accept |
Aceitar tráfego SSH de entrada na porta 22 |
nft delete rule inet filter input handle <handle_number> |
Excluir uma regra no input cadeia especificando o identificador da regra |
nft add rule inet filter forward counter |
Adicione uma regra de contador para forward cadeia de monitoramento de tráfego |
Adicionando e gerenciando tabelas #
In nftables, tabelas são contêineres para cadeias e regras. Veja como criá-las e gerenciá-las:
Crie uma mesa #
nft add table inet my_table
Este comando cria uma nova tabela chamada my_table dentro do inet família, que suporta IPv4 e IPv6.
Excluir uma tabela #
nft delete table inet my_table
Exclui o my_table do inet família.
Correntes em nftables #
Cadeias são sequências de regras que definem como os pacotes são manipulados. Cada cadeia tem uma hook, que determina o estágio de filtragem de pacotes (por exemplo, input, output, ou forward).
Crie uma corrente #
nft add chain inet my_table my_chain { type filter hook input priority 0; }
Isso cria um input cadeia em my_table para filtrar pacotes com prioridade de 0.
Excluir uma cadeia #
nft delete chain inet my_table my_chain
Remove o my_chain da my_table.
Regras em nftables #
As regras especificam ações para pacotes que atendem a determinadas condições. Abaixo, exemplos de como adicionar, listar e excluir regras.
Adicionando regras #
nft add rule inet my_table my_chain tcp dport 80 accept
Esta regra permite tráfego na porta TCP 80 (HTTP).
Regras de Listagem #
nft list chain inet my_table my_chain
Exibe todas as regras em my_chain.
Excluindo Regras #
nft delete rule inet my_table my_chain handle <handle_number>
Remove uma regra especificando seu número de identificador, que pode ser mostrado por nft list chain inet my_table my_chain -a.
Exemplo nftables Configuração: Configuração básica de firewall #
Aqui está uma configuração básica de firewall que permite a entrada de SSH e HTTP/HTTPS, enquanto bloqueia todo o outro tráfego:
nft adicionar tabela inet filtro nft adicionar cadeia inet filtro entrada { tipo filtro gancho entrada prioridade 0\; política descartar\; } nft adicionar regra inet filtro entrada tcp dporta 22 aceitar # Permitir SSH nft adicionar regra inet filtro entrada tcp dporta 80 aceitar # Permitir HTTP nft adicionar regra inet filtro entrada tcp dporta 443 aceitar # Permitir HTTPS nft adicionar regra inet filtro entrada ct estado estabelecido, relacionado aceitar # Permitir conexões estabelecidas
Avançado: Regras com Estado e Rastreamento de Conexão #
nftables possui suporte integrado para rastreamento de conexão, permitindo que você gerencie regras com estado.
Exemplo: Permitir conexões relacionadas e estabelecidas #
nft add rule inet filter input ct state established,related accept
Isso permite pacotes de conexões já estabelecidas ou relacionadas a conexões existentes, ajudando a reduzir o reprocessamento desnecessário de conexões permitidas anteriormente.
Resumo #
O nftables O comando é uma ferramenta moderna e versátil para filtragem de pacotes de rede, fornecendo uma sintaxe unificada e opções flexíveis para gerenciar regras de firewall. Com nftables, você pode criar configurações de firewall eficientes e fáceis de manter, adequadas tanto para configurações simples quanto para ambientes corporativos complexos.