Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 45. Começando com nftables

A estrutura nftables oferece facilidades de classificação de pacotes e é o sucessor designado para as ferramentas iptables, ip6tables, arptables, e ebtables. Ela oferece inúmeras melhorias em conveniência, características e desempenho em relação às ferramentas de filtragem de pacotes anteriores, mais notadamente:

  • tabelas de pesquisa em vez de processamento linear
  • uma estrutura única para ambos os protocolos IPv4 e IPv6
  • regras todas aplicadas atomicamente em vez de buscar, atualizar e armazenar um conjunto completo de regras
  • suporte para depuração e rastreamento no conjunto de regras (nftrace) e monitoramento de eventos de rastreamento (na ferramenta nft )
  • sintaxe mais consistente e compacta, sem extensões específicas de protocolo
  • uma API Netlink para aplicações de terceiros

Da mesma forma que iptables, nftables utiliza tabelas para o armazenamento de correntes. As cadeias contêm regras individuais para a realização de ações. A ferramenta nft substitui todas as ferramentas das estruturas anteriores de filtragem de pacotes. A biblioteca libnftnl pode ser usada para interação de baixo nível com nftables Netlink API sobre a biblioteca libmnl.

O efeito dos módulos sobre o conjunto de regras nftables pode ser observado usando o comando nft list rule set. Como estas ferramentas adicionam tabelas, correntes, regras, conjuntos e outros objetos ao conjunto de regras nftables, esteja ciente de que nftables operações do conjunto de regras, como o comando nft flush ruleset, podem afetar os conjuntos de regras instalados usando os comandos herdados anteriormente separados.

45.1. Migrando de iptables para nftables

Se você atualizou seu servidor para o RHEL 8 ou sua configuração de firewall ainda usa as regras iptables, você pode migrar suas regras iptables para nftables.

45.1.1. Quando usar firewalld, nftables, ou iptables

A seguir, uma breve visão geral em que cenário você deve usar uma das seguintes utilidades:

  • firewalld: Use o utilitário firewalld para casos simples de uso de firewall. O utilitário é fácil de usar e cobre os casos de uso típico para estes cenários.
  • nftables: Use o utilitário nftables para criar firewalls complexos e de desempenho crítico, como para toda uma rede.
  • iptables: O utilitário iptables no Red Hat Enterprise Linux 8 usa a API do kernel nf_tables ao invés do back end legacy. A API nf_tables fornece compatibilidade retroativa para que scripts que usam os comandos iptables ainda funcionem no Red Hat Enterprise Linux 8. Para novos scripts de firewall, a Red Hat recomenda usar nftables.
Importante

Para evitar que os diferentes serviços de firewall influenciem uns aos outros, execute apenas um deles em um host RHEL, e desabilite os outros serviços.

45.1.2. Conversão de regras iptables em regras nftables

O Red Hat Enterprise Linux 8 fornece as ferramentas iptables-translate e ip6tables-translate para converter as regras existentes iptables ou ip6tables em regras equivalentes para nftables.

Observe que algumas extensões carecem de suporte de tradução. Se tal extensão existir, a ferramenta imprime a regra não traduzida prefixada com o sinal #. Por exemplo:

# iptables-translate -A INPUT -j CHECKSUM --checksum-fill
nft # -A INPUT -j CHECKSUM --checksum-fill

Além disso, os usuários podem usar as ferramentas iptables-restore-translate e ip6tables-restore-translate para traduzir um lixão de regras. Note que antes disso, os usuários podem usar os comandos iptables-save ou ip6tables-save para imprimir um dump das regras atuais. Por exemplo:

# iptables-save >/tmp/iptables.dump
# iptables-restore-translate -f /tmp/iptables.dump

# Translated by iptables-restore-translate v1.8.0 on Wed Oct 17 17:00:13 2018
add table ip nat
...

Para mais informações e uma lista de opções e valores possíveis, digite o comando iptables-translate --help.